Concept: Introduction à l'architecture SOA
Ce concept présente l'architecture SOA, spécialisation de l'architecture basée sur les composants s'appuyant sur l'utilisation de services publiés et pouvant être découverts de façon dynamique.
Relations
Description principale

Introduction

L'architecture basée sur les composants et le développement basé sur les composants constituent une pratique RUP car les composants représentent une méthode efficace de division d'un système complexe en éléments gérables et permettent la réutilisation. L'architecture orientée objet (SOA) est une spécialisation de l'architecture basée sur les composants s'appuyant sur l'utilisation de services publiés et pouvant être découverts de façon dynamique.

Qu'est-ce que l'architecture SOA ?

Un service est un composant logique qui définit un ensemble d'interfaces et qui n'est pas affecté à un utilisateur spécifique mais à plusieurs clients pouvant se le partager. Un fournisseur de services est un composant qui implémente les interfaces de service. Les services et les fournisseurs de services sont publiés et accessibles via un référentiel appelé agent de service d'accès. L'agent de service d'accès permet à d'autres composants (applications utilisateur ou autres services) de découvrir et d'accéder à ces services, selon les principes illustrés dans la figure ci-dessous.

Diagramme décrit dans le texte d'accompagnement.
Figure 1 - Participants SOA et leurs principales opérations

Cette séparation entre les interfaces de services et leur implémentation par le fournisseur de services permet d'avoir plusieurs fournisseurs pour le même service et d'ajouter ou de remplacer des fournisseurs de façon dynamique sans répercussion pour les demandeurs de services. Les demandeurs de services peuvent découvrir dynamiquement les services et les fournisseurs de services associés dont ils ont besoin. Le principe de publication/découverte fait de l'architecture SOA une architecture couple de façon plus flexible et souple que les architectures standard. Cela est particulièrement utile lors de l'intégration ou de la composition de différents systèmes, des systèmes en vigueur avec des packages d'applications et des applications J2EE ou .Net. Consultez Concept : Intégration d'applications d'entreprise, intégration de niveau interface d'application pour plus d'informations sur ce type d'intégration.

Caractéristiques des services

Voici les caractéristiques principales des services :

  • Granularité grossière et orientation métier : dans la mesure où la communication réseau engendre toujours une certaine latence, un service doit contenir une partie conséquente de la logique de l'application, offrant au client une valeur métier importante en un seul appel.
  • Conception basée sur l'interface : un service implémente un ensemble défini d'interfaces.
  • Invocation et découverte : un service et les fournisseurs de ce service peuvent être découverts et invoqués par d'autres systèmes.
  • Distribution : les services composant une application peuvent être distribués sur plusieurs systèmes au sein d'une organisation, ou même sur plusieurs organisations.
  • Couplage souple : les services sont connectés via des interfaces couplées de façon souple, ce qui permet la modification d'une interface sans interrompre les autres.

Architecture SOA et services Web

Tous les points abordés jusqu'ici peuvent être utilisé avec différentes technologies, CORBA et .Net par exemple. Pourquoi les services Web sont-ils si étroitement associés à l'architecture SOA ?

Les services Web sont basé sur les normes Internet, comme le langage XML (eXtensible Markup Language) pour formater les données, le protocole SOAP (Simple Object Access Protocol) pour la communication, le langage WSDL (Web Services Description Language) et l'intégration UDDI (Universal Description, Discovery and Integration) pour publier les descriptions. L'utilisation de ces normes largement acceptées permet une plus grande interopératibilité entre les solutions des différents fournisseurs, ce qui rend l'implémentation de l'architecture SOA plus facile et moins onéreuse.

Vous trouverez une discussion plus détaillée de l'utilisation des services Web et du développement basé sur les composants pour implémenter une architecture SOA dans le Livre blanc : Utilisation d'une architecture orientée services et d'un développement basé sur les composants pour développer des applications de services Web.