QU'EST-CE QUE SOA ?
LA THEORIE SOA
Depuis le début, le terme SOA est évoqué
mais la traduction de cet acronyme « Service-Oriented
Architecture » par Architecture Orientée Service ne permet pas
de comprendre exactement ce qu'il signifie. Une définition simple
pourrait être la notion d'intégrer et de manipuler les
différents composants d'un système informatique en tant
qu'ensembles fonctionnels appelés services.
Cette architecture à la mode répond aux
problèmes de réutilisation d'outils (ou produits) des
entreprises. Pour mieux comprendre sa définition, il faut voir cette
architecture comme une philosophie. C'est une approche permettant de
réutiliser et d'organiser des ressources existantes, dans une solution
autorisant une interopérabilité entre plateformes et
environnements, une évolutivité des modules applicatifs et une
flexibilité autorisant l'utilisation dynamique d'applications. Cette
solution permet donc d'intégrer divers systèmes : chaque
ressource peut être accessible en tant que service possédant une
interface. L'implémentation du fournisseur de service est donc libre de
changer sans qu'il y ait un impact sur son utilisation. On peut voir ce service
comme une boîte noire : on sait qu'elle va rendre le service voulu
sans savoir comment est faite la boite noire. On peut choisir de la remplacer
par un autre service implémenté différemment mais
répondant aussi à la même fonctionnalité.
Un exemple concret est le service qui a été
créé par la SNCF : réserver une place de train. Une
architecture SOA a été implémentée et l'un des
services offre la possibilité de réserver une place de
train : que l'on y accède de leur site internet ou d'un guichet, le
service est le même. La personne qui fait la réservation utilise
un client pour se connecter : un consommateur de service.
Cependant, l'interaction entre consommateur et fournisseur
n'est pas directe mais faite par le biais d'un médiateur responsable de
la mise en relation des composants.
Un consommateur de Service X (resp. Y) passe par un
médiateur pour accéder au bon fournisseur de Service X (resp.
Y).
Consommateur de Service X
Consommateur de Service Y
Fournisseur de Service Y
Fournisseur de Service X
Médiateur (« Middle-Tier »)
Pour mieux voir comment fonctionne une architecture SOA, il
est important de savoir ce qu'est un service. Il assure une fonction bien
définie et est autonome, ne dépendant d'aucun contexte ou
service externe. On retrouve dans un service les caractéristiques
suivantes :
· Couplage faible : les services sont exposés
via des standards qui assurent la réduction des dépendances. Le
terme « loosely-coupled » est souvent utilisé.
· Grande Maille : les opérations
proposées par un service encapsulent plusieurs fonctions et
opèrent sur un périmètre de données large. Un
service contient des objets, des composants qu'il utilise pour répondre
à sa fonction. Le terme récurrent est
« coarse-grained ».
· Interface : le contrat d'utilisation du
service.
· Synchrone ou asynchrone : attente de
réponse après l'utilisation d'un service ou non.
· Activable à distance et interopérable.
Une architecture orientée service consiste donc en une
collection de services, indépendants les uns des autres, qui
interagissent et communiquent entre eux.
Il est intéressant de comparer l'architecture SOA
à une autre architecture qui met en avant des différences
importantes. Cette architecture est l'architecture orientée objet. Dans
cette architecture, les données manipulées sont directement
associées au mode de traitement qui leur est appliqué. La
programmation orientée objet (POO) implique deux choses : liaison
forte à un modèle spécifique et un nombre d'appels
important entre les deux couches de présentation et métier
(contenant les objets métiers).
Architecture Orientée Objets
Au contraire, l'architecture SOA permet à la couche de
présentation de passer par des services pour manipuler les objets
métier sans avoir besoin de les connaître explicitement. Les
services agissent ainsi en tant que boites noires faisant abstraction de la
complexité du modèle objet.
Architecture Orientée Services
Pour mettre en pratique cette théorie, une
implémentation s'est vite imposée : les Web Services.
Même si ce n'est pas l'unique choix d'implémentation, elle est
souvent associée à SOA.
|