L'annuaire de services
L'annuaire de services référence l'ensemble des services (et des contrats associés) disponibles au sein du SI, il participe ainsi activement à la mise en œuvre d'une cartographie dynamique du SI. Dans un modèle de bus, l'annuaire peut être auto-alimenté par le service (enregistrement). Les annuaires UDDI forment aujourd'hui le standard de référencement des services.
Organisme de normalisation
OASIS (Organization for the Advancement of Structured Information Standards) est un consortium à but non lucratif qui pilote le développement, la convergence et l'adoption des standards "OPEN" pour les architectures de systèmes d'information.
Les protocoles et les normes
Les architectures SOA se reposent principalement sur l’utilisation d’interface d’invocation (SOAP, Simple Object Access Protocol) et de vocabulaire de description de données (WSDL, Web Services Description Language et XML, eXtensible Markup Language) qui doivent être communs à l’ensemble des agents (fournisseurs de services et utilisateurs de services).
Ce dispositif permet de réutiliser les applicatifs métiers, le but étant de permettre à l’entreprise de s’adapter rapidement à un nouveau contexte de marché.
En termes d'intéropérabilité, les architectures SOA reposent en partie sur les normes décrites à travers le WS-I.
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 recommandé par le W3C,
- l'invocation (ou l'appel) du service (la requête transmise au service) avec : SOAP recommandé par le W3C,
- le format des données échangées avec : XML recommandé par le W3C,
- et enfin, le transport des données avec les protocoles internet : HTTP et TCP/IP qui sont des recommandations 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 XKMS (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) devenu WS-BPEL et qui est un dérivé à la fois de WSFL (Web Services Flow Language) d'IBM et de XLang de Microsoft qu'il a remplacé, devenant de fait le standard de l'orchestration des services web. On peut aussi citer WSCI (Web Services Choregraphy Interface). L'orchestration suppose l'existence d'un chef d'orchestre (WS-BPEL est un langage d'orchestration), tandis que la chorégraphie implique des interactions pair-à-pair. WS-CDL (Web Services Choregraphy Description Language) est un exemple, le plus récent, d'un tel langage.
- la gestion transactionnelle (gestion du protocole de validation à deux phases, 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).