API vs SOA

Pourquoi les comparer ?

Les architectures API et SOA sont similaires par leur périmètre logique.

Elles offrent toutes les 2 :

  1. des interfaces de services
  2. une interaction synchrones
  3. une intégration à un existant

Elles proposent une implémentation du pattern Façade en exposant une vision simplifiée des systèmes sous-jacents.

 


Différences

Toutefois, ces implémentations ne s'adressent pas à la même population:

  • les développeurs mobile et Web pour les API
  • les développeurs Back-Office pour la SOA.

Population et contraintes

Les développeurs mobile et Web sont focalisés sur les interactions utilisateurs dans des IHM embarquées ou exécutées par les navigateurs. Les services utilisés doivent alors respecter quelques contraintes:

  1. faciles à comprendre
  2. utilisables sans ajout de librairie ou de framework
  3. performantes.

Les développeurs Back-Office cherchent à relier, intégrer des applications entre elles pour accéder à des référentiels ou des partenaires. Les services doivent respecter des contraintes différentes:

  1. interopérables car les technologies sont souvent imposées (socles, stacks, OS, etc)
  2. stricts en encodage car les systèmes partagent des encodages des données différents
  3. transactionnels afin de garantir l'intégrité des transferts.

Technologies

L'utilisation des API par les navigateurs nécessitent que les services API soient exposées:

  • formalisme manipulable facilement en Javascript: JSON
  • accès simplifié aux données par URL: REST
  • protocole standard: HTTP
  • sécurisation des accès par token: OAuth


La SOA met en jeu des solutions qui sont capables de proposer un formalisme REST / JSON. Le formalisme WebService est standard, formalisé, industrialisé mais difficile à manipuler en Javascript.

Le Bus d'entreprise bien qu'ayant la vocation d'exposer des services SOAP, il manipule un grand nombre de connecteurs vers les systèmes existants.

Au début de la SOA, ce formalisme était aussi utilisé par les interfaces Javascript. Cette pratique n'est pas productive dans ce contexte.


Synthèse versus

SOAAPI
  • Rationalisation des coûts
  • Intégration des applications
  • Formalisation de la modélisation et de la gestion
  • Opérationnel robuste (déploiement, tests, ALM, Supervision)
  • Focus production
  • Simplifie l’usage des services
  • Technologie simple Web
  • Scalabilité
  • Approche SaaS native
  • Orienté communauté des développeurs
  • Focus métier et ROI


Périmètre de responsabilités

Leurs objectifs ne sont pas contradictoires mais complémentaires. Les 2 solutions doivent être assemblées et doivent fonctionner ensemble de manière coordonnées.

L'API simplifie les usages Applicatifs et en prise directes avec les interfaces web et mobiles.

La SOA accélère et standardise les échanges hétérogènes dans le Système d'Information.

Références