Académique Documents
Professionnel Documents
Culture Documents
Il n’existe pas de spécifications officielles d’une architecture SOA, néanmoins les principales
notions fédératrices retrouvées dans cette notion sont :
- 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 ;
- 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.
- 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.
- L’invocation, représentant la connexion et l'interaction du client avec le service.
En outre, on dénombre trois grands objectifs de l'architecture orientée services, chacun axé
sur une partie distincte du cycle de vie applicatif (ALL : Application Life cycle Management),
consiste à superviser une application de sa planification initiale jusqu'à son retrait).
Le premier objectif consiste à structurer sous forme de services les procédures ou
composants logiciels. Ces services sont conçus pour être faiblement couplés aux applications :
ils ne servent qu'en cas de besoin. Ils sont prévus pour que les développeurs, tenus de
standardiser la création de leurs applications, les utilisent facilement.
Une autre définition simple du SOA pourrait être la notion d'intégrer et de manipuler
les différents composants logiciels 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.
L'architecture SOA a deux grandes fonctions. Tout d'abord, il s'agit de créer un ample
modèle d'architecture qui définit les objectifs des applications et les approches pour les
atteindre ; ensuite, de définir des caractéristiques de mise en œuvre précises, souvent liées à
celles du langage de description de services WSDL (Web Services Description Language) et
du protocole SOAP (Simple Object Access Protocol).
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 1 : 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.
Pour mieux comprendre 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
1
SNCF :
à 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).
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.
Pour mettre en pratique cette théorie, une implémentation s'est vite imposée : les Web
Services. Ce sont des services associés au SOA.
Un Web Service peut, dans un exemple simple, laisser un client communiquer avec lui
en utilisant des messages XML qui répondent au standard SOAP (Simple Object ou Service
Oriented Architecture Protocol). Il représente donc le format d'échange de données dont les
protocoles primaires sont HTTP et HTTPS. On y trouve un en-tête et un corps. Dans l'en-tête,
on peut faire référence à un fichier XSD (XML Schema Definition), permettant de définir les
types des différentes données échangées. Dans le corps, les données indiquant la méthode
utilisée et les bons paramètres sont présents. Prenons un Web service donnant, pour un
identifiant client particulier et un identifiant produit, le prix du produit désiré. Un message
SOAP contenant les bonnes informations et un champ prix vide pourra être envoyé au service.
En retour, sera renvoyé le message avec le prix du produit renseigné.
2
SOAP/WSDL :
3
REST :
4
EAI :
5
BPEL :
Une architecture orientée service permet d’obtenir tous les avantages d’une architecture
client-serveur notamment :
V. INCONVENIENTS DU SOA
Prenons l’exemple du traitement d’un litige pour une compagnie d’assurances. Dans
un premier temps, la demande de remboursement est traitée et intégrée dans le CRM, qui
reconnaît le client, son contrat, son type de police.
Une fois l’identification effectuée, la demande entre dans l’outil de gestion des processus, qui
se charge de faire appel à un expert pour le traitement du sinistre ; par exemple, s’il s’agit
d’un accident de voiture, il faudra demander ? un devis à un garagiste.
L’outil de gestion des processus intègre les différentes personnes qui peuvent intervenir dans
le traitement du sinistre pour l’apport d’informations complémentaires. Il permet notamment
de déterminer le malus ou le bonus, le montant du remboursement.
Ensuite, la demande est prise en charge par le système financier pour le paiement. Une fois le
sinistre traité et le paiement effectué, les données sont stockées en vue d’être analysées.
Dans une architecture SOA, les applications sont connectées entre elles grâce à des
connexions en couplage lâché via un bus de services (ESB), ce qui offre une grande
flexibilité. En effet, on peut appeler dans le workflow tout type de données, intégrer de
nouvelles applications de manière extrêmement rapide, et procéder à des analyses poussées au
travers d’outils de mesure. Grâce au couplage lâche, il n’est plus nécessaire de développer un
beacon6 (balise) spécifique pour chaque application, le développement d’un beacon générique
permet d’aller chercher les données n’importe où. Ceci rend la modélisation des processus
facile, car au lieu de tout définir, on appelle des services déjà définis. Il en est de même pour
le reporting et l’analyse.
SOA et BPM ont donc beaucoup à apporter à l’entreprise, mais aussi l’un à l’autre
pour offrir une adéquation totale entre l’IT et le business.
6
Beacon
CONCLUSION
Bien que son efficacité ne soit plus à démontrer, la mise en œuvre de l’architecture orientée
service est très complexe et représente un coût important pour l’entreprise ce qui pourrait être
un frein à son utilisation.
7
Retour sur Investissement
8
Information and Technology
WEBOGRAPHIE
-https://www.bpms.info/bpm-et-soa-outils-complementaires-pour-l-entreprise-agile/-
www.commentcamarche.net : Web Services-Architecture orientée services(SOA)
-www.memoireonline.com/12/08/1644/SOA--Definition-Utilisation-dans-le-monde-de-la-banque-et-
methodologie-de-test.html
- https://www.journaldunet.com/solutions/reseau-social-d-entreprise/1093222-soa-pour-service-
oriented-architecture-decryptage/
- https://www.condexatedenbay.com/les-inconvenients-de-l-architecture-orientee-services/
- https://medium.com/@abelmahefa/introduction-au-service-et-micro-service-oriented-
architecture-f5447af937ac
BIBLIOGRAPHIE
Une autre définition simple du SOA pourrait être la notion d'intégrer et de manipuler
les différents composants logiciels d'un système informatique en tant qu'ensembles
fonctionnels appelés services. Ici les services se retrouvent au cœur de l’architecture avec des
données et applications.
Pour mieux comprendre 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.
L'architecture SOA a deux grandes fonctions. Tout d'abord, il s'agit de créer un ample
modèle d'architecture qui définit les objectifs des applications et les approches pour les
atteindre ; ensuite, de définir des caractéristiques de mise en œuvre précises, souvent liées à
celles du langage de description de services WSDL (Web Services Description Language) et
du protocole SOAP (Simple Object Access Protocol).
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 9 : 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.
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).
9
SNCF : Société National de Chemin de fer Francais
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.
Pour mettre en pratique cette théorie, une implémentation s'est vite imposée : les Web
Services. Ce sont des services associés au SOA.