Architecture orientée services

Architecture orientée services
Page d'aide sur l'homonymie Pour les articles homonymes, voir SOA.

L'architecture orientée services (calque de l'anglais Service Oriented Architecture, SOA) est une forme d'architecture de médiation qui est un modèle d'interaction applicative qui met en œuvre des services (composants logiciels) :

Ce terme est apparu au cours de la période 2000-2001[1] et concernait à l'origine essentiellement les problématiques d'interopérabilité syntaxique en relation avec les technologies d'informatique distribuée utilisées en entreprise. Cette conception a évolué pour désigner maintenant le sous-ensemble particulier d'architecture de médiation en fonction de la technologie disponible.

Le service est une action exécutée par un « fournisseur » (ou « producteur ») à l'attention d'un « client » (ou « consommateur »), cependant l'interaction entre consommateur et producteur est faite par le biais d'un médiateur (qui peut être un bus) responsable de la mise en relation des composants. Le service étant à grandes mailles, il englobe et propose les fonctionnalités des composants du système. Ces systèmes peuvent aussi être définis comme des couches applicatives. L'architecture orientée services est une réponse très efficace aux problématiques que rencontrent les entreprises en termes de réutilisabilité, d'interopérabilité et de réduction de couplage entre les différents systèmes qui implémentent leurs systèmes d'information. Les architectures SOA ou AOS ont été popularisées avec l'apparition de standards comme les Services Web dans l'e-commerce (commerce électronique) (B2B, inter-entreprise, ou B2C, d'entreprise à consommateur), basés sur des plates-formes comme J2EE ou .NET. Elles mettent en application une partie des principes d'urbanisation. Au sein de l'architecture orientée services, on distingue les notions d'annuaire, de bus, de contrat et de service, ce dernier étant le noyau et le point central d'une architecture orientée services. La déclinaison ou plus précisément la mise en œuvre de la SOA qui repose entièrement sur Internet est appelée la WOA (Web Oriented Architecture).

Sommaire

Historique

Au cours de la décennie 1980-1990, la problématique de l'interopérabilité des systèmes d'information, particulièrement complexe lors de fusion ou de l'acquisition d'entreprises, a donné naissance au domaine de recherche de l'interopérabilité des données ; c'est à cette époque que l'on distingua l'interopérabilité syntaxique de l'interopérabilité sémantique des données. Ces recherches aboutirent aux systèmes multibases, aux développements des bases de données réparties et à l'architecture fédérée. En raison de nombreux problèmes insolubles, l'architecture fédérée fut pratiquement abandonnée[2].

Les deux principales exigences fonctionnelles qui se sont dégagées au cours de cette période sont :

  1. Les différents producteurs d'information doivent pouvoir continuer à utiliser leur système de façon transparente. Par exemple, un trust réalisant une acquisition ne doit pas handicaper son nouveau membre en imposant un changement brutal de système informatique.
  2. L'organisation doit pouvoir obtenir une synthèse de l'information produite par ses différents membres. Il s'agit ici d'information en lecture seule, la synthèse s'effectuant toujours du bas vers le haut.

Ces exigences fonctionnelles se cristallisèrent avec l'invention par Gio Wiederhold de l'architecture de médiation en 1990-1992[3] :

  1. Les usagers finaux sont séparés des sources de données par une couche de médiation (couche de services) permettant une synthèse dynamique de l'information.
  2. Les différents médiateurs (services) peuvent communiquer entre eux pour transformer et combiner l'information provenant de différentes sources.
  3. Les différents médiateurs (services) communiquent en utilisant un langage offrant une grande capacité d'expression sémantique et de transformation.

La recherche sur la médiation de données porta alors sur la création d'architecture générique comme le ARPA I3 où apparurent les cinq grandes familles de services (Adaptation, Transformation, Extension, Management et Coordination), le développement de langages à haute expressivité sémantique comme KQML et les outils de transformation sémantique de l'information comme les ontologies[4].

Parallèlement, le développement de la technologie Web rendit progressivement les autres technologies d' informatique distribuée de moins en moins attrayantes. L'arrivée en 1996 d'XML provoqua un engouement pour ce langage dans le milieu de la recherche et les langages ad-hoc ou plus complexes comme KQML furent pratiquement abandonnés, du moins pour ce type d'architecture. L'industrie développa de nombreux produits sous l'impulsion de la recherche fondamentale, par exemple, on compte plus de 150 Ph.D. en ligne directe de Wiederhold[5], la plupart ayant participé activement au développement de cette technologie chez IBM, Oracle, Sun, Microsoft, Cisco, Samsung, LG, Bell Laboratories, Silicon Graphics, Kodak, Google, Napster et autres ; comme James Duncan Davidson qui fut le créateur de Tomcat (Java Servlet et JavaServer Pages) ainsi que de Ant. À la fin de la décennie 1990-2000, on trouvait un nombre considérable de ce type de technologies dont l'interopérabilité était parfois extrêmement problématique, du moins sans recette logicielle pour la réaliser[6].

Les concepts

Concepts des SOA

Le service est l'unité atomique d'une SOA. Une application est un ensemble de services qui dialoguent entre eux par des messages.

Le couplage entre services est un couplage lâche et les communications peuvent être synchrones ou asynchrones.

Le service peut :

  • être codé dans n'importe quel langage ;
  • s'exécuter sur n'importe quelle plate-forme (matérielle et logicielle).

Le service doit :

  • offrir un ensemble d'opérations dont les interfaces sont publiées ;
  • être autonome (disposer de toutes les informations nécessaires à son exécution : pas de notion d'état) ;
  • respecter un ensemble de contrats (règles de fonctionnement),
  • correspondre aux processus métier et fonctions mutualisables au niveau de l'entreprise afin d'aligner l'informatique aux changements des décisions stratégiques et tactiques.

Le service

La définition des WebServices

Le service est un composant clef de l'Architecture Orientée Services. Il consiste en une fonction ou fonctionnalité bien définie. C'est aussi un composant autonome qui ne dépend d’aucun contexte ou service externe. Il est divisé en opérations qui constituent autant d'actions spécifiques que le service peut réaliser. On peut faire un parallèle entre opérations et services d'une part, et méthodes et classes dans le mode orienté objet d'autre part.

Une architecture orientée services consiste essentiellement en une collection de services qui interagissent et communiquent entre eux. Cette communication peut consister en un simple retour de données ou en une activité (coordination de plusieurs services).

Un service est une entité de traitement qui respecte les caractéristiques suivantes :

  • Large Granularité (coarse-grained) : Les opérations proposées par un service encapsulent plusieurs fonctions et opèrent sur un périmètre de données large au contraire de la notion de composant technique.
  • Interface : Un service peut implémenter plusieurs interfaces, et aussi plusieurs services peuvent implémenter une interface commune.
  • Localisable : Avant d’appeler (bind, invoke) un service, il faudra le trouver (find).
  • Instance unique : A la différence des composants qui sont instanciés à la demande et peuvent avoir plusieurs instances en même temps, un service est unique. Il correspond au design pattern Singleton.
  • Couplage faible (loosely-coupled) : Les services sont connectés aux clients et autres services via des standards. Ces standards assurent le découplage, c'est-à-dire la réduction des dépendances. Ces standards sont des documents XML comme dans les web services.
  • Synchrone ou Asynchrone.

Une déclinaison du service est par exemple le service Web qui utilise WSDL (un meta langage XML) comme langage de description, un annuaire UDDI pour en permettre la localisation et un protocole de transport comme http dans l'architecture REST et SOAP pour l'architecture SOA.

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.

Implémentations basées sur SOA

Le bus de service

L'implémentation la plus commune de SOA est celle basée sur un bus de services. Ce bus a un rôle de médiateur (middleware) entre le consommateur et le producteur du service, il permet ainsi de réaliser le couplage lâche. Le bus peut aussi fournir une gamme de services :

  • sur la base des patterns EIP (Enterprise Integration Pattern), fournir des fonctionnalités de fractionnement, combinaison, etc. permettant de construire l'appel sur plusieurs services,
  • des fonctionnalités de gestion de version de service,
  • des fonctionnalités de supervision et contrôle (avec SLA) des services.

On parle généralement d'ESB (Enterprise Service Bus), outil de nouvelle génération pour l'IAE (Intégration d'Applications d'Entreprise, EAI) construit sur des standards comme XML, JMS (Java Message Service) ou encore les services web. La différence majeure avec l'IAE réside dans le fait que l'ESB propose une intégration complètement distribuée grâce à l'utilisation des conteneurs de services. Ces "mini-serveurs" contiennent la logique d'intégration et peuvent être déposés n'importe où sur le réseau. L'ESB est principalement un outil d'échange asynchrone disposant d'interfaces standardisées (SOAP, JMS,...) ou intégrées (JBI,...). Il peut aussi offrir des services à valeur ajoutée (traduction, transformation...) activés par des événements.

WOA (Web Oriented Architecture)

Une autre possibilité pour mettre en place SOA au sein d'un SI consiste à utiliser le web comme unique support de service (et non un bus). Cette approche est rendue possible par le fait que le web contient d'ores et déjà les qualités nécessaires à une SOA (routage, sécurité...).

Cependant, une telle architecture impose que tous les services soient exposés sur le web (ce qui signifie accessible depuis un URL), privilégiant ainsi les services web (rappelons que les services web ne sont pas le seul moyen d'exposer des services sur le web). L'avantage de cette conception est que le support des messages d'invocation de service (le web donc) est vraiment universel et ne nécessite aucune configuration, maintenance, évolution… Mais cette solution est actuellement assez dépréciée dans les situations où les performances sont un critère discriminant (cf. inconvénients des services web).

Cette solution semble, en termes de pure architecture (considérations techniques mises à part), vraiment plus conforme aux principes de SOA[7].

A l'heure où ce paragraphe a été écrit (été 2008), WOA est encore jeune et sans véritable formalisme, elle suscite encore de nombreux débats. Ainsi il est nécessaire de prendre tout le recul nécessaire quant à la description présentement faite de WOA

On peut mentionner Qworum, décrit plus loin, comme exemple de technologie WOA.

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).

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.

Technologies basées sur les principes de SOA

  • Service Component Architecture (SCA) est une technologie d'assemblage de composants dans laquelle on considère que tout composant peut exposer des services et que toute dépendance est un lien vers un autre service. Ainsi, créer une application devient un simple assemblage de services, et on peut très aisément publier notre application comme un service sous divers formats (JBI, WS, RMI...).
  • Qworum est une plate-forme qui permet de construire des applications web en combinant des services accessibles par le réseau. Ces services sont interactifs : chaque service peut interagir avec l'utilisateur final par le biais de pages web. Chaque service peut également être composé d'autres services.

Exemples

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 prend en charge à la fois les terminaux des guichets des agences et gares, et les sollicitations de son site web de commande en ligne Voyages-sncf.com.

Le Groupe Air France-KLM a lui aussi décidé en juillet 2008 de choisir une architecture orientée service pour son SI (architecture à base de web services, elle remplacera à terme l'architecture SOA « maison » qui est en place depuis les années 1990). L'entreprise opte pour cette architecture dans le but de « rendre son SI à la fois évolutif et réactif » [8].

Enfin, l'administration française se modernise également à travers la rénovation de l'infrastructure technique dans certains ministères, dont la Défense et les anciens combattants. Par exemple, l'équipe de projet du prochain système d'information ministériel des achats envisage de recourir à une architecture de services reposant sur un ESB. En effet, ce SI HA ministériel devra échanger avec de nombreux autres. Ainsi, la SOA lui permettra de s'intégrer dans un paysage contraint par un fort besoin d'interopérabilité.

Références

  1. Thomi Pilioura, Aphrodite Tsalgatidou, E-Services: Current Technology and Open Issues, Lecture Notes in Computer Science, Springer Berlin / Heidelberg, 2001
  2. Parent, P., Spaccapietra, S.: Intégration de bases de données: Panorama des problèmes et des approches. Ingénierie des Systèmes d'Information, Vol.4, No.3, 1996.
  3. Wiederhold, G.: Mediators in the architecture of future information systems. IEEE Computer Magazine, Vol. 25, No. 3, 38­49, mars 1992
  4. Thomas R. Gruber, Towards Principles for the Design of Ontologies Used for Knowledge Sharing in Formal Ontology in Conceptual Analysis and Knowledge Representation, Kluwer Academic Publishers, 1993
  5. http://infolab.stanford.edu/pub/voy/museum/giotree.html
  6. T. Pilioura et A. Tsalgatidou, e-Services: Current Technologies and Open Issues, In Proc. of VLDB-TES 2001
  7. (en)Une présentation des avantages des architectures WOA par Martin Fowler et Jim Webber
  8. Article "Air France - KLM donne des ailes à son SI", dans jounaldunet.

Articles connexes

Bibliographie


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Architecture orientée services de Wikipédia en français (auteurs)

Игры ⚽ Поможем решить контрольную работу

Regardez d'autres dictionnaires:

  • Architecture Orientée Services — Pour les articles homonymes, voir SOA. L architecture orientée services (calque de l anglais Service Oriented Architecture, SOA ou AOS) est une forme d architecture de médiation qui est un modèle d interaction applicative qui met en œuvre des… …   Wikipédia en Français

  • Architecture orientee services — Architecture orientée services Pour les articles homonymes, voir SOA. L architecture orientée services (calque de l anglais Service Oriented Architecture, SOA ou AOS) est une forme d architecture de médiation qui est un modèle d interaction… …   Wikipédia en Français

  • Architecture Orientee Evenements — Architecture orientée évènements L architecture orientée événements (de l anglais Event Driven Architecture, ou EDA) est une forme d architecture de médiation qui est un modèle d interaction applicative mettant en œuvre des services (composants… …   Wikipédia en Français

  • Architecture Orientée Evènements — Architecture orientée évènements L architecture orientée événements (de l anglais Event Driven Architecture, ou EDA) est une forme d architecture de médiation qui est un modèle d interaction applicative mettant en œuvre des services (composants… …   Wikipédia en Français

  • Architecture orientée évènements — L architecture orientée événements (de l anglais Event Driven Architecture, ou EDA) est une forme d architecture de médiation qui est un modèle d interaction applicative mettant en œuvre des services (composants logiciels) répondant à des… …   Wikipédia en Français

  • Architecture De Médiation — L architecture de médiation est une forme d architecture en flot de données distribuée qui est souvent nommée architecture orientée services dans le monde commercial (basée sur les services Web WS * et WS I) et est, dans sa forme originale,… …   Wikipédia en Français

  • Architecture de mediation — Architecture de médiation L architecture de médiation est une forme d architecture en flot de données distribuée qui est souvent nommée architecture orientée services dans le monde commercial (basée sur les services Web WS * et WS I) et est, dans …   Wikipédia en Français

  • Architecture (informatique) — Pour les articles homonymes, voir Architecture (homonymie). Diagramme d architecture En informatique, architecture désigne la structure générale inhérente à un système informati …   Wikipédia en Français

  • Architecture de médiation — L architecture de médiation est une forme d architecture en flot de données distribuée qui est souvent nommée architecture orientée services dans le monde commercial (basée sur les services Web WS * et WS I) et est, dans sa forme originale,… …   Wikipédia en Français

  • Architecture Logicielle — L’architecture logicielle décrit d’une manière symbolique et schématique les différents composants d’un ou de plusieurs systèmes informatiques, leurs interrelations et leurs interactions. Contrairement aux spécifications produites par l’analyse… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”