SOA

Les architectures orientées services

Qu'est-ce que SOA ?

SOA (Service Oriented Architecture) est une façon de décrire et de comprendre des organismes, des communautés et des systèmes, afin de maximiser l'agilité, la graduation et l'interopérabilité. L'approche SOA est simple – les personnes, les organismes et les systèmes fournissent des services entre eux. Ces services nous permettent de faire faire quelque chose, sans que nous ayons besoin de le faire nous-mêmes, sans même que nous ayons besoin de savoir le faire nous-mêmes. Ceci nous aide à être plus efficace et plus agile. Les services nous permettent également à proposer nos capacités aux autres en échange de quelque valeur, établissant ainsi une communauté, un processus ou un marché. Le paradigme SOA fonctionnement tout aussi bien pour l'intégration des capacités existantes que pour la création et l'intégration de nouvelles capacités.

Un service est une valeur livrée à quelqu'un d'autre à travers une interface bien définie, disponible à une communauté (qui peut être le grand public). Un service a comme résultat un travail fait par l'un et fourni à l'autre. Ainsi, SOA est un paradigme architectural pour définir comment les personnes, les organismes et les systèmes fournissent et utilisent des services, afin d'obtenir des résultats.

Exemples de SOA

SOA technology

 

SOA technology

Les Approches SOA

SOA a été associée à une large gamme d'approches et de technologies. Tout d'abord, SOA est une approche à l'architecture des systèmes, où l'architecture est un moyen de comprendre et de spécifier comment les choses peuvent travailler ensemble de manière aussi efficace que possible, afin d'atteindre des buts et des objectifs précis. Dans ce contexte, les systèmes incluent les organismes, les communautés et les processus, ainsi que des systèmes informatiques. Les architectures décrités par SOA peuvent être des architectures métier, des architectures de missions, des architectures de communautés, ou des architectures de systèmes informatiques – toutes peuvent être orientées vers les services. L'approche SOA à l'architecture aide à séparer la question de ce qu'il faut faire de la question de comment le faire, où, par qui ou par quoi. Certaines vues de SOA et des "Web Services" se concentrent sur les technologies, traitant des "bits and bytes" de l'informatique distribué.

Les Bénéfices de SOA

Les Systèmes d'Informations d'Entreprise ont tendance à être des groupes d'applications monolithiques, organisés en silos qui dépendent des unités de technologies ou des unités métier. La complexité croissante des Systèmes d'Informations, ainsi que la demande augmentée à laquelle ils doivent faire face, ont mené aux systèmes d'informations mal alignés aux besoins métier, difficiles à maintenir et à faire évoluer.

L'architecture SOA aide les systèmes de conception qui ne sont plus monolithiques, ni orientés vers les applications. Ceci fournit des systèmes d'informations agiles qui sont bien alignés aux besoins métier, évitant ainsi la redondance et facilitant la communication et le partage au sein du système d'informations.

SOA ne fournit pas toute la solution. En revanche, lorsque l'on l'associe à l'Architecture d'Entreprise, SOA aide à englober les questions informatiques et les considérations métier dans une seule et unique vue globale.

La contribution de Modelio à SOA

Modelio figure parmi les nombreux contributeurs au standard SoaML de l'OMG.

SoaML est un langage de modélisation standard, dédié à la conception et à la modélisation de solutions SOA solutions utilisant le Unified Modeling Language® (UML®). SoaML est principalement défini comme un profil UML qui utilise les mécanismes d'extensions d'UML pour définir les concepts SOA en termes de concepts UML existants. SoaML peut être utilisé avec des outils UML "sur étagère" actuels, mais certains outils proposent des capacités de modélisation enrichies.

SoaML intègre des capacités de modélisation, afin de supporter l'usage de SOA à différents niveaux, et avec différentes méthodologies. En particulier, SoaML supporte les approches "contract-based" et "interface-based" qui, en général, suivent respectivement les éléments "ServiceContract" et "ServiceInterface" du profil SOA.

Le support Modelio de la Modélisation SOA

Modelio fournit un module dédié à la modélisation SOA : le module Modelio TOGAF Architect. Ce module, qui est intégré dans le produit Modelio BA - Enterprise Architect, est basé sur les notions et approches habituellement utilisées dans la modélisation d'architectures SOA. Il est délibérément simple, et donc facilement utilisable par des utilisateurs qui ne sont pas forcément des experts des arcanes d'UML. Ses principaux concepts sont les suivants :

  • Les composants "service" : Les composants "service" représentent les composants d'un système qui sont reliables à travers des services. Les composants "service" sont habituellement très grands (des applications ou systèmes complets qui peuvent être implémentés par des centaines de classes). La pratique standard est de structurer l'architecture basée sur les composants en plusieurs couches de types de composants "service" différents. Les composants "entité" sont des composants dédiés à la gestion de données système; les composants "processus" sont responsables de la mise en oeuvre d'un processus métier; les composants "présentation" gèrent l'accès à l'IHM. Cette classification introduit également les composants "fonctionnalité" (à mi-chemin entre les composants "processus" et les composants "entité") et les composants "utilité". De nombreuses méthodologies expliquent comment identifier ces composants, et définissent des règles qui gouvernent leur structuration en couches.
  • Services : Les services se décomposent en services fournis et services requis. Ils sont représentés de manière simplifiée par les ports sur les composants typés par une interface (la définition du service).
  • Connecteurs de composants : Les connecteurs de composants lient les composants, en assemblant les services fournis et les services requis, afin de former un système complet et cohérent.
  • Messages : Les messages représentent les informations échangées entre les composants service à travers les services. Ils sont typiquement implémentés comme documents XML.

Modelio fournit des transformations de modèles et des générateurs, afin de faciliter la transformation rapide d'un modèle d'architecture SOA en modèle logiciel, puis en implémentation, par exemple en générant les schémas XML, les services web WSDL, les orchestrations BPEL, les schémas de bases de données SQL, les mappings BPMN, ou en utilisant le générateur de code Java.

Le profil SoaML est un modèle bien plus complexe, supportant une large gamme de méthodologies, et nécessitant une compréhension approfondie d'UML. Modelio a déjà une implémentation d'un profil SoaML, publiée sous la forme d'un module open source dans le Modelio Store. L'utilisation de ce module SoaML ou du module TOGAF Architect doit être mutuellement exclusive, car chacun de ces deux modules met en oeuvre une approche différente à la modélisation SOA.