API vs SOA
Pourquoi les comparer ?
Les architectures API et SOA sont similaires par leur périmètre logique.
Elles offrent toutes les 2 :
- des interfaces de services
- une interaction synchrones
- 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:
- faciles à comprendre
- utilisables sans ajout de librairie ou de framework
- 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:
- interopérables car les technologies sont souvent imposées (socles, stacks, OS, etc)
- stricts en encodage car les systèmes partagent des encodages des données différents
- 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
SOA | API |
---|---|
|
|
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
Date | Auteur | Société | Référence |
---|---|---|---|
2017 | Alan Glickenhouse | IBM | https://developer.ibm.com/apiconnect/2017/04/04/esb-not-api-management/ |
2016 | Alan Glickenhouse | IBM | https://developer.ibm.com/apiconnect/2015/03/12/positioning-apis-services-lets-end-confusion/ |
Middleware Solutions https://www.middleware-solutions.fr