Service Oriented Architecture
Un article de Freepedia.
| Sigles d'une seule lettre |
| Sigles de deux lettres |
| Sigles de trois lettres |
| Sigles de quatre lettres |
| Sigles de cinq lettres |
| Sigles de six lettres |
| Sigles de sept lettres et plus |
SOA est le sigle de Service Oriented Architecture ou Architecture Orientée Services.
La notion de SOA est un modèle d’interaction applicative qui met en œuvre des services (composants logiciels) :
- avec une forte cohérence interne,
- et des couplages externes « lâches ».
Le service est une action exécutée par un « fournisseur » (ou « producteur ») à l’attention d’un « client » (ou « consommateur »).
Les architectures SOA ont été popularisées avec l'apparition des web services dans l'e-commerce (B2B ou B2C) et elles mettent en application une partie des principes d'urbanisation.
Parmi les exemples visibles, on peut citer la SNCF qui a mis en place une architecture de type SOA pour son système de réservation (recherche d'horaire, demande de tarif, réservation, ...) qui répond ainsi :
- aussi bien aux terminaux des guichets des agences et gares
- qu'aux sollicitations du site web de commande en ligne : SNCF.com.
Sommaire |
Les protocoles et les normes
Les architectures SOA reposent principalement sur l’utilisation d’interface d’invocation (SOAP) et de vocabulaire de description de données (WSDL et XML) qui doivent être communs à l’ensemble des agents (fournisseurs de services et utilisateurs de services).</br> Ce dispositif permet de réutiliser les applicatifs métier, le but étant de permettre à l’entreprise de s’adapter rapidement à un nouveau contexte de marché.
Parmi les différentes couches de normes et protocoles qui permettent de bâtir de telles architectures, on relève :
- la gestion d'un annuaire de services (quels sont les services mis à disposition et par qui) avec : UDDI (Universal Description Discovery and Integration) normalisé par l'OASIS,
- la description des interfaces des services (quelles sont les données nécessaires à l'exécution du service, que fournit-il en retour, ...) avec : WSDL (Web Services Description Language) normalisé par le W3C,
- l' invocation (ou l'appel) du service (la requête transmise au service) avec : SOAP (Simple Object Access Protocol) normalisé par le W3C,
- le format des données échangées avec : XML (eXtensible Markup Language) normalisé par le W3C,
- et enfin, le transport des données avec les protocoles internet : HTTP et TCP/IP qui sont des normes RFC.
Une architecture SOA pourra être également complétée par :
- la gestion de la sécurité avec : SSL (Secure Sockets Layer), XML Signature, XML Encryption, SAML (Security Assertion Markup Language) ou encore XKML (XML Key Management Specification, qui gère les infrastructures à clé publique ou PKI)
- l' orchestration (on parle également de chorégraphie) des services pour constituer des processus métier avec : BPEL4WS (Business Process Execution Language For Web Services) qui regroupe WSFL (Web Services Flow Language) d'IBM et XLang de Microsoft, ou encore WSCI (Web Services Choregraphy Interface)
- la gestion transactionnelle (gestion du two-phase commit pour la mise à jour contrôlée de plusieurs bases de données réparties entre plusieurs fournisseurs de services : la transaction « attend » de recevoir l'acquittement (le commit) des différents serveurs sollicités et en cas de problème avec l'un d'eux, est en mesure de demander aux autres serveurs de « défaire » les mises à jour partielles effectuées afin de maintenir l'intégrité des données) : WS-Transaction d'IBM, XAML (Transaction Authority Markup Language) ou encore BTP (Business Transaction Protocol).



