SOA - Architecture Orientée Service
- Architecture orientée service
- Principes généraux d'une architecture orientée service
- Avantages d'une architecture orientée service
Le système d'information de l'entreprise
est généralement constitué d'applications et de données constituant son héritage (en anglais legacy).
Avec les fusions de groupe, l'évolution des technologies, cet héritage a tendance à devenir hétérogène
et à se spécialiser par métier (entité, service, etc.), ce qui provoque un fonctionnement en silo, c'est-à-dire
un cloisonnement des différents métiers empêchant certaines formes de transversalité et masquant au décideur
une vision globale du système d'information de son entreprise.
L'intégration des applications de l'entreprise (EAI)
est une solution à ce problème. Elle consiste à développer des connecteurs spécifiques permettant de faire communiquer
entre-eux les différents silos de l'entreprise.
Architecture orientée service
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).
Principes généraux d'une architecture orientée service
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
que l'on peut interroger à 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éutilisabilité 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).
Avantages d'une architecture orientée service
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