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.

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