Architecture orientée service (SOA)

MCF en SIC, Université Polytechnique des Hauts de France (INSA), Laboratoire LARSH, département DEVISU, Chaire UNESCO ITEN
MCF-HDR en SIC, chercheur associé, Chaire UNESCO ITEN (Innovation, Transmission, Édition Numériques).

L’Architecture Orientée Services est un paradigme d'organisation, d'utilisation de capacités distribuées qui relèvent de domaines de propriété différents. Entendons par capacité (Capability), l’effet concret qu'un fournisseur de services est en mesure d'offrir à un usager. SOA fournit un moyen uniforme d'offrir, de découvrir, d'interagir avec et d'utiliser ces capacités afin de produire des effets souhaités, conformément à des attentes et à des conditions d’utilisation préalablement définies.

L’accélération des échanges d’informations, de biens et de services, à échelle locale comme globale, incite les organisations privées, gouvernementales et non gouvernementales à ouvrir et décloisonner leurs domaines de compétence, leurs infrastructures technologiques, dont la complexité des systèmes d’information est en croissance exponentielle, dans la perspective d’une meilleure agilité et adaptabilité. Cette dynamique s’appuie sur des architectures de systèmes inter-opérables, flexibles et extensibles, aptes à améliorer la réactivité des organisations face à des transformations contextuelles hétérogènes, à augmenter leur aptitude à identifier les besoins et les attentes de leurs partenaires, clients, usagers, habitants, mais aussi et surtout, à renforcer les stratégies de coopération multi-acteurs.

L’Architecture Orientée Services (SOA) est un style d’architecture, un modèle de conception (Design Pattern) qui a émergé à la fin des années quatre-vingt-dix pour se stabiliser en terme de productivité vers 2010. Selon l’ISO, une architecture peut être définie comme « l’ensemble des propriétés et des concepts fondamentaux d’un système, adaptés à son environnement, incorporés dans ses éléments, ses relations, ses principes de conception et d’évolution. » (ISO/IEC/IEEE 42010:2011 ; ISO/IEC JTC 1/SC 7 Ingénierie des systèmes et des logiciels – Description de l’architecture). SOA définit donc la structure et les interconnexions entre des systèmes logiciels distribués qui peuvent être la propriété d’acteurs hétérogènes. Dans SOA, la notion de « services » peut être entendue au sens large, comme une fonction logicielle autonome qui accepte des requêtes et renvoie des réponses par l’intermédiaire d’une interface standard bien définie, humain à machine ou machine à machine. C’est une sur-couche qui facilite alors l’accès à une partie de programme et à son exécution à la demande. La notion de « service » peut dès lors s’apparenter à une interface de localisation, d’accès et d’exécution d’un traitement applicatif modulaire, elle désigne le mécanisme par lequel besoins et capacités peuvent se rencontrer et s’articuler pour produire des effets.

Deux concepts sont au cœur du modèle de conception SOA : visibilité et interaction.
La visibilité introduit la possibilité de faire correspondre les besoins aux capacités (et vice versa). Il s’agit de définir : les objectifs des services (applications ou programmes utilisés pour réaliser une tâche) ainsi que les approches pour les atteindre. Les applications (ou programmes) prennent alors en charge le format de description Langage de Description de Web Services XML (WSDL).
L’interaction recouvre l’opération d’utilisation d’une capacité (métier), les approches pour l’atteindre et ses caractéristiques de mise en œuvre précises, SOA utilise le Protocole d’Accès d’Objet Simples (SOAP), norme permettant de coder en langage XML des messages appelant des fonctions dans d’autres applications (ou programmes).

Sur un territoire les personnes comme les organisations développent des capacités (compétences, métiers) afin d’élaborer, ou de renforcer, une réponse adaptée à un problème auquel elles sont confrontées dans le cadre de leurs activités. Les besoins d’un acteur peuvent alors être satisfaits par les compétences d’un autre acteur. En informatique distribuée, les besoins d’une machine peuvent être satisfaits par une machine appartenant à un propriétaire différent. Notons qu’il n’existe pas nécessairement de corrélation univoque (stricte) entre les besoins et les capacités, en effet la granularité des besoins comme des capacités peut varier, d’élémentaire à très complexe : un besoin peut nécessiter l’articulation de nombreuses compétences, et inversement une compétence peut répondre à de nombreux besoins. Une architecture SOA fournira alors un cadre souple et précis, afin de faire correspondre des besoins à des capacités mais aussi d’articuler des capacités entre elles afin de répondre à un besoin. L’inter-opérabilité des services réside alors dans leur interconnexion sans programmation spécifique.

 

Contributions
Pour contribuer, connectez-vous ou inscrivez-vous