Le terme « architecture distribuée » (en anglais distributed architecture),
par opposition à une architecture centralisée, désigne un environnement informatique
dans lequel les ressources sont réparties sur plusieurs machines. Ainsi, le terme
d'« architecture répartie » est parfois utilisée.
Dans un environnement client-serveur, une
architecture distribuée correspond à un ensemble de services répartis sur
différents serveurs.
Une architecture orientée services (notée SOA pour Services Oriented Architecture)
est une architecture logicielle s'appuyant sur un ensemble de services simples.
L'objectif d'une architecture orientée services est donc de décomposer une
fonctionnalité en un ensemble de fonctions basiques, appelées services, fournies par des composants et de décrire
finement le schéma d'interaction entre ces services.
L'idée sous-jacente est de cesser de construire la vie de l'entreprise
autour d'applications pour faire en sorte de construire une architecture logicielle globale
décomposées en services correspondant aux processus métiers de l'entreprise.
Lorsque l'architecture SOA s'appuie sur des web services, on parle alors de WSOA, pour Web Services Oriented Architecture).
Il n'existe pas à proprement parler de spécifications officielles d'une
architecture SOA, néanmoins les principales notions fédératrices
que l'on retrouve dans une telle architecture sont les suivantes :
- La notion de service, c'est-à-dire une fonction encapsulée dans un composant
interogeable à l'aide d'une requête composée d'un ou plusieurs
paramètres et fournissant une ou plusieurs réponses. Idéalement
chaque service doit être indépendant des autres afin de garantir
sa réusabilité et son interopérabilité.
- La description du service, consistant à décrire les paramètres
d'entrée du service et le format et le type des données retournées.
Le principal format de description de services est WSDL (Web Services Description Language), normalisé par le W3C.
- La publication (en anglais advertising) et la découverte (discovery) des services. La publication consiste à
publier dans un registre (en anglais registry ou repository) les services disponibles aux utilisateurs, tandis que la notion
de découverte recouvre la possibilité de rechercher un service parmi ceux qui
ont été publiés. Le principal standard utilisé est UDDI
(Universal Description Discovery and Integration), normalisé par l'OASIS.
- L'invocation, représentant la connexion et l'interaction du client avec le
service. Le principal protocole utilisé pour l'invocation de services est SOAP
(Simple Object Access Protocol).
Une architecture orientée services permet d'obtenir tous les avantages
d'une architecture client-serveur et notamment :
- Une modularité permettant de remplacer facilement un composant (service)
par un autre
- Une réutilisabilité possible des composants (par opposition à
une système tout-en-un fait sur mesure pour une organisation).
- De meilleures possibilités d'évolution (il suffit de faire évoluer
un service ou d'ajouter un nouveau service)
- Une plus grande tolérance aux pannes
- Une maintenance facilitée
|