Vous êtes sur la page 1sur 20

Chapitre 2 : Architecture orienté services et services Web

Chapitre 2 : Architecture orienté services et services Web


1. Introduction
Les Systèmes d'Information de nombreuses grandes entreprises se sont construits
graduellement au cours des vingt dernières années sous forme d'applications indépendantes où
les informations sont dupliquées. Le grand défit de l’informatique est les problèmes de
communication et de l’intégration entre application hétérogènes au sein d’une enterprise.
Les architectures SOA ( Service Oriented Architecture) offrent aujourd’hui la solution pour
résoudre ces problématiques . Cette architecture (SOA) peut être implémentée par les services
Web.

Fig1 : Des applications isolées vers services interopérables

2. Architecture orienté services (SOA)


2.1. Vers plus d’abstraction

SOA présente une nouvelle couche d’abstraction. Cette nouvelle couche d'abstraction fait suite
à d'autres abstractions créées au fur et à mesure des besoins et des avancées technologiques :

. Page 1
Chapitre 2 : Architecture orienté services et services Web

Fig2 : niveaux d’abstraction

Exemples
- la création des fonctions et Exemple
procédures,

- la programmation orientée Objet, Exemple

- les logiciels à base de composants :


Un composant est une unité (qui
exporte des attributs et des méthodes)
regroupant les fonctionnalités
concernant une même idée

. Page 2
Chapitre 2 : Architecture orienté services et services Web

2.2. Ce que donne SOA

Fig3: Efficacités d’une SOA

. Page 3
Chapitre 2 : Architecture orienté services et services Web

2.3. Définitions et caractéristiques de SOA


2.3.1. Définitions

Fig4: Plusieurs définitions selon les points de vues différentes

 SOA est une architecture métier conceptuel où les fonctionnalités métiers, ou la logique de
l’application, est mise à disposition aux utilisateurs SOA ou aux utilisateurs, en tant que
services réutilisables et partagés dans un environnement informatique. Les services dans une
SOA sont les modules d’une fonctionnalité de l’application avec des interfaces exposées et qui
sont invoquées par messages.
 SOA est une approche architecturale qui consiste à présenter les différentes fonctions et
informations d’un système sous la forme de services qui peuvent être utilisés de manière
homogène via des méthodes communes et standards
 Un service est une fonction logicielle autonome et sans état qui accepte des requêtes et qui
renvoie des réponses au travers une interface standard bien défini. Un service est donc une
unité de traitement qui fournit un résultat à un consommateur.

2.3.2. Caractéristiques

. Page 4
Chapitre 2 : Architecture orienté services et services Web

 Les services ne doivent pas dépendre de l'état d'autres fonctions ou d'autres traitements
externes. Les technologies employées pour réaliser un service comme le langage de
programmation ne font pas partie de la définition d'un service.
 L’approche SOA se définit par :
 Un couplage lâche (couplage faible) entre les composants d'un système pour ne
pas dépendre de l'état d'autres services et pour faciliter la réutilisation,
 Des services sans état pour faciliter l'extensibilité et l'éventuelle orchestration,
 Des services fortement interopérables : l’interopérabilité ou
interfonctionnement en informatique est la capacité que possède un système
informatique à fonctionner avec d’autres produits ou systèmes informatiques,
existants ou futurs, sans restriction d’accès ou de mise en œuvre.
- Le service répond à trois fonctionnalités caractéristiques : il est indépendant, il peut être
découvert et appelé de manière dynamique, et il fonctionne seul.
- La communication entre les services est réalisée par la transmission des messages.
- Un service peut être invoqué par une ou plusieurs requêtes et retourne une ou plusieurs
réponses à travers une interface standard.
- La technologie utilisée pour implémenter le service, tel que le langage de
programmation, ne fait pas partie de la définition du service. Un service ne doit pas
dépendre d’une condition provenant d’un autre service.
- Acteurs de SOA : L'architecture en elle-même se représente en faisant intervenir trois
acteurs :
 Consommateur, correspond à l'application cliente (ou à un autre service), qui
fait appel au service pour une tâche précise
 Producteur de service, correspond à l'application fournisseuse (ou à un
autre service),
 Répertoire de services (catalogue de services). Le consommateur trouvera
les informations à propos du client au sein du répertoire de services, où sont
enregistrés et triés un grand nombre de ceux-ci.
Le service est une action exécutée par un « fournisseur » (ou « producteur ») à
l'attention d'un « client » (ou « consommateur »), via un médiateur (qui peut
être un bus) responsable de la mise en relation des composants logiciels
implémentant les services.

. Page 5
Chapitre 2 : Architecture orienté services et services Web

Fig5 : interaction entre les acteurs SOA

. Page 6
Chapitre 2 : Architecture orienté services et services Web

2.4. Couche des services dans le modèle MVC

Architecture basée sur les services

Autre architecture (MVC)

Fig6 : architecture en couche

2.5. Eléments de base de l’architecture


Au sein de l'architecture orientée services, on distingue plusieurs notions : d'annuaire, de bus,
de contrat et de service.
 Le processus métier est défini comme un groupe d’activités qui permettent d’atteindre
collectivement un objectif de business dans un contexte inter-organisationnel.
Il permet d’orchestrer les services
Exemple : livraison d’un produit commandé, préparation de commande client

. Page 7
Chapitre 2 : Architecture orienté services et services Web

Fig7 :Processus métier

- Orchestration des services


L'orchestration désigne la façon de coordination et de contrôle de tous les services participant à
la composition. En effet, les services invoqués ne savent pas s'ils participent ou non dans une
composition, seul le coordinateur possède l'information sur l'enchaînement d'exécution du
processus métier.

Service1

Service2

Service3

Fig8: Exemple d’orchestration

 Composant de service
Un service (généralement) est présenté par un composant de service, qui est la brique de base
de l’architecture. Il se décompose en deux parties

. Page 8
Chapitre 2 : Architecture orienté services et services Web

- La vue externe (ou spécification de service), qui expose la facette service proprement
dite, elle est constituée par un ensemble d’opérations de service regroupées en
interfaces (au sens UML), et de l’appareillage pour les utiliser (types des données
échangées, contrat de service, propriétés, etc.…).
- La vue interne contient des informations relatives à la logique interne comme le détail
des traitements ou les bases de données manipulées. On y trouve également les
références vers les services utilisés par le composant. Cette vue est masquée aux
consommateurs du composant de service. Elle est employée notamment par les
architectes SI, qui travaillent sur la vision globale du système.

Fig9 : présentation de service

Remarque : Le catalogue des services publiés sur un périmètre est constitué par l’ensemble
des vues externes des composants de service.
 Contrat de service

. Page 9
Chapitre 2 : Architecture orienté services et services Web

Le contrat de service4 joue un rôle majeur : il détaille les conditions d’utilisation du service
sous forme de pré et post conditions, protocoles, et contraintes (QoS, …). Les contraintes non
fonctionnelles permettent de fixer les termes du contrat opérationnel entre consommateur et
fournisseur de service.

 Entreprise Service Bus (ESB)


ESB est un nouveau modèle basé sur le message, il respecte les caractéristiques de SOA et
propose une infrastructure utilisable pour implémenter la conception de SOA, il permet
d’intégrer des services qui peuvent être déployés dans des systèmes distribués ou des
environnements hétérogènes
Le bus d’entreprise (ESB) agit comme la colonne vertébrale reliant ces participants d’une
manière banalisée à travers les interfaces de services.
Cette architecture modulaire permet :
- d’éviter des points individuels de défaillance, offrant au système la possibilité de
continuer à fonctionner même si un serveur tombe en panne.
- Le bus d’entreprise constitue un médiateur entre les fournisseurs et les consommateurs
de services.

. Page 10
Chapitre 2 : Architecture orienté services et services Web

Fig10 : Bus de services d’entreprise (bus d’entreprise)

. Page 11
Chapitre 2 : Architecture orienté services et services Web

 Données d’échanges et données persistantes


La distinction entre les données d’échange et les données persistantes est inhérente aux
architectures SOA, qui isolent les bases de données à l’aide de services d’accès. Les données
d’échange sont les informations véhiculées entre les participants (consommateurs ou
fournisseurs de service) à travers l’invocation des opérations de service. Les données
persistantes sont les informations contenues et gérées dans les bases de données. Ces
informations sont structurées de façon habituelle (par exemple SGBD en mode relationnel),
dans le cadre de référentiels ou de bases applicatives.

Fig11 : Données d’échanges et données persistantes

. Page 12
Chapitre 2 : Architecture orienté services et services Web

2.6. Avantages et inconvénients de SOA

Avantages Inconvénients

- Obligation d'avoir une modélisation poussée - Coûts de conception et de développement


initiaux plus conséquents
- Localisation et interfaçage transparents
- Nécessité d'appréhender de nouvelles
- Possibilité de mise en place facile à partir technologies
d'une application objet existante
- Existant non SOA dans les entreprises
- Réduction des coûts en phase de maintenance
- Performances réduites pour des traitements
et d'évolution
simples (couche supplémentaire)
- Facilité d'amélioration des performances pour
des applications importantes (répartition des
traitements facile)

. Page 13
Chapitre 2 : Architecture orienté services et services Web

2.6. Standards de l’architecture

Les standards sont un élément clé d’une SOA. On peut trouver:

. Page 14
Chapitre 2 : Architecture orienté services et services Web

3. Services Web
Pour mettre en pratique la théorie de SOA, 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.

3.1. Définitions
- Définition 1 : Les services web sont des composants distribués qui offrent des fonctionnalités
aux applications au travers du réseau en utilisant des standards ouverts. Ils peuvent donc être
utilisés par des applications écrites dans différents langages et exécutées dans différentes
plateformes sur différents systèmes.
- Défifnition 2 : Un service web (ou service de la toile) est un programme informatique
permettant la communication et l'échange de données entre applications et systèmes
hétérogènes dans des environnements distribués. Il s'agit donc d'un ensemble de fonctionnalités

. Page 15
Chapitre 2 : Architecture orienté services et services Web

exposées sur internet ou sur un intranet, par et pour des applications ou machines, sans
intervention humaine, et de manière synchrone.

- Une Définition donnée par W3C (W3C:)

3.2. Principe fondamental du service Web


Un Service Web est une interface positionnée entre le code de l'application et l'utilisateur de ce
code. Elle agit comme couche d'abstraction, qui sépare les détails spécifiques à un langage ou
plate-forme donnée, de la façon dont le code sera invoqué. Cette couche de standardisation
signifie que n'importe quel langage qui supporte le service Web peut accéder aux
fonctionnalités de l'application (figure 12).

Figure 12 : Le service Web offre une couche d'abstraction entre l'application client et le
code de l'application

. Page 16
Chapitre 2 : Architecture orienté services et services Web

3 .3. Technologies de services web


Il existe plusieurs technologies derrière le terme services web :
 Les services web de type Representational state transfer (REST) exposent entièrement
ces fonctionnalités comme un ensemble de ressources (URI) identifiables et accessibles
par la syntaxe et la sémantique du protocole HTTP. Les Services Web de type REST
sont donc basés sur l'architecture du web et ses standards de base : HTTP et URI. Le
World Wide Web est une application conçue selon l'architecture REST

 Les Services Web WS-* exposent ces mêmes fonctionnalités sous la forme de services
exécutables à distance. Les Services Web WS-* reposent sur un ensemble de protocoles
et de standards de base utilisés pour l'échange de données entre applications dans des
environnements hétérogènes Leurs spécifications reposent sur les standards SOAP et
WSDL.

 le SOAP (Simple Object Access Protocol) pour l'échange de messages,

 le WSDL (Web Service Description Language) pour la description : des


services web, de leurs opérations, des messages utilisés, des types de
données utilisées, des protocoles utilisés et de leur localisation au sens
internet (URI / URL),
 les annuaires UDDI qui peuvent référencer des services web.

. Page 17
Chapitre 2 : Architecture orienté services et services Web

3.3.1. Architecture et fonctionnement de Services SOAP

Voir aussi le schémas suivant :

. Page 18
Chapitre 2 : Architecture orienté services et services Web

3.4. Avantages de Services web

 Les services Web fournissent l'interopérabilité entre divers logiciels fonctionnant sur
diverses plates-formes. L’interopérabilité ou interfonctionnement en informatique
est la capacité que possède un système informatique à fonctionner avec d’autres
produits ou systèmes informatiques, existants ou futurs, sans restriction d’accès ou de
mise en œuvre.
 Les services Web utilisent des standards et protocoles ouverts.
 Les protocoles et les formats de données sont au format texte dans la mesure du
possible, facilitant ainsi la compréhension du fonctionnement global des échanges.
 Les outils de développement, s'appuyant sur ces standards, permettent la création
automatique de programmes utilisant les services Web existants.

. Page 19
Chapitre 2 : Architecture orienté services et services Web

Conclusion

SOA est une évolution des plate-forme passées, tout en préservant les caractéristiques
réussies des architectures traditionnelles :

– Contractualisation des services


– Découplage Interface/Implémentation, interopérabilité, transparence des
communications, …
– Découplage fournisseur/comsommateur
– Orchestration des services

 SOA est une évolution plutôt qu’une révolution

. Page 20

Vous aimerez peut-être aussi