SOA pour Service Oriented Architecture : décryptage

Transformer les composants d'un système d'information en services, intégrables à la volée, pour construire des processus métier transverses. Telle est la finalité de l'architecture orientée services.

 Que recouvre la notion de SOA ?
Conceptualisée par le Gartner Group, la notion de SOA (Service Oriented Architecture - ou architecture orientée services) renvoie à une nouvelle manière d'intégrer et de manipuler les différentes briques et composants applicatifs d'un système informatique (comptabilité, gestion de la relation client, production, etc.) et de gérer les liens qu'ils entretiennent.

Comme son nom l'indique, cette approche repose sur la réorganisation des applications en ensembles fonctionnels appelés services. Un service n'est autre qu'une application exposée par le biais d'une interface standard (langages SOAP/WSDL ou REST pour Representational State Transfer), connue sous le nom de Web Services, couches d'invocation compréhensibles potentiellement par l'ensemble des systèmes en présence, pour peu qu'elles intègrent le module d'interprétation nécessaire. Au sein d'un tel environnement, des services (dits "producteurs") sont ainsi exposés à d'autres services (dits "consommateurs").

 Comment fonctionne une architecture de services Web ?
Une architecture de services Web consiste à organiser les habilitations d'invocation entre les composants précédemment cités. Mais également à agencer les services Web au sein de processus métier (gestion des commandes, etc.) eux-même opérables sous forme de services Web par d'autres systèmes (facturation, systèmes clients, etc.). Une méthode d'encapsulation que permet de mettre en oeuvre certains standards XML plus récents (tels BPEL). Sur ce dernier point, le SOA ne réinvente pas tout. Il s'appuie sur des méthodes d'orchestration déjà bien connues - telle la gestion de règles métier - pour assurer le routage des flux et des requêtes vers le bon service de destination en fonction des demandes.

Associer les composants du système d'information à des contrats de service métier

 Quel est l'apport d'une telle architecture ?
Par son caractère standard, l'approche SOA contribue à améliorer la rapidité ainsi que la productivité des développements. Un composant exposé sous forme de Web Services pouvant être réutilisé à loisir par d'autres applications. Exemple type : les dispositifs de requêtage et d'inscription au sein d'un annuaire d'entreprise, solution classiquement conçue pour gérer les droits d'accès aux applications en stockant les profils utilisateur. Une fois publiées par le biais de Web Services, ces fonctions peuvent être aisément intégrées aux différentes briques du SI sans que le développement de connecteurs spécifiques au cas par cas ne soit nécessaire.

Autre apport : la technologie des Web Services va jusqu'à intégrer une démarche de "fourniture de services". Une logique qui, au-delà de services techniques d'intégration, renvoie à la publication de composants sous la forme de "services métier" délivrés à des applicatifs clients (internes ou externes), avec à la clé l'ensemble des notions sous-jacentes : contrat de service, niveau de service, etc. Pour être appliquée, cette philosophie passe par la mise en place d'annuaires de Web Services incluant l'ensemble des éléments nécessaires à la consommation de ces derniers (adresses, droits d'accès, conditions d'utilisation, etc.).

 Les solutions de SOA sont-elles mures ?
Aujourd'hui, la plupart des serveurs d'intégration (EAI) et des plates-formes applicatives savent exécuter les interfaces en mode Web Services. Ce qui leur permet par conséquent de supporter des architectures de type SOA, c'est-à-dire un ensemble de Web Services distribués dialoguant entre eux. Au fil des années, l'interface REST s'est imposée comme le principal standard dans ce domaine. Certaines offres vont plus loin néanmoins en incluant l'orchestration de processus standardisés (par exemple via BPEL).

Des pure-players se sont également positionnés sur ce nouveau segment, en apportant tout ou partie d'une architecture de SOA (gestion de processus, supervision, etc.). Certains éditeurs, tels Fiorano ou Progress Software, allant jusqu'à fournir des bus de services complet, ou ESB (pour Enterprise Service Bus), conçus pour orchestrer des services sur la base des standards du domaine, BPEL notamment.