Vous êtes sur la page 1sur 38

Chapitre I.

Architectures Orientées Services :


Principes et Concepts de base
Plan
1. Historique : évolution des Architectures Logicielles

2. Enjeux des SOAs

3. Principe de fonctionnement des SOAs

4. Service Web

5. Conclusion

Nadia Yacoubi Ayadi 2


Vous avez dit SOA?

Nadia Yacoubi Ayadi 3


• A quels besoins répond les SOA?
• Pourquoi les solutions actuelles sont elles
insuffisantes?

Nadia Yacoubi Ayadi 4


SOA - Historique

• SOA est une nouvelle architecture logicielle distribuée


résultante de :
1. Evolution des modèles de programmation
2. Evolution des architectures

Nadia Yacoubi Ayadi 5


Evolution des modèles de programmation:
Vers plus abstraction

POO POC POS


Objet Composant Service
- - -
1980 1990 2000
•Polymorphisme •Faible couplage •Message
•Encapsulation •Réutilisation •Contrat
•Héritage •Interopérabilité

Nadia Yacoubi Ayadi 6


Limites de la programmation orientée objet

• Granularité des classes/objets trop fine


• Mal adaptée à la programmation grande échelle

• Couplage fort
• Interactions entre objets « enfouies » dans le code
• Rend difficile la réutilisation
• Accroit la complexité des systèmes OO

• Evolution/modification difficile

Nadia Yacoubi Ayadi 7


Programmation Orientée Composant

• Elle consiste à utiliser une approche modulaire au niveau de


l’architecture d’un projet informatique,

• Ceci permet d’assurer des logiciels avec une meilleure lisibilité et une
meilleure maintenance.

• Les développeurs, au lieu de créer un exécutable monolithique, se


servent de briques réutilisables.

Nadia Yacoubi Ayadi 8


Apparition de la notion de composant
logiciel
• Un composant est un module logiciel autonome :

• Encapsule une ou plusieurs fonctionnalités

• Peut être installé sur différentes plate-formes : déploiement

• Peut être assemblé avec d'autres composants : composition

• Porte une description des interfaces requises et fournies

Nadia Yacoubi Ayadi 9


Structure d’un composant
• Interfaces avec un composant :
• Ce qui est fourni par le composant
• Ce qui est nécessaire au composant
Pour s’exécuter son exécution
• Modes de communication

• Configuration du composant
• Propriétés (attributs publics)
• Connexions
• Cycle de vie
• Contraintes techniques (transaction,
sécurité, persistance, …)

Nadia Yacoubi Ayadi 10


Programmation par composant

• Assembler des composants pour réaliser un logiciel plus complexe

• On parle de programmation par assemblage de composants


logiciels

• Cycle de développement est défini comme suit :

1. Recherche de composants
2. Sélection de composants
3. Adaptation
4. Test
5. Déploiement
6. Remplacement

Nadia Yacoubi Ayadi 11


Exemple: Application pour agence de voyage

Nadia Yacoubi Ayadi 12


Evolution des architectures

Nadia Yacoubi Ayadi 13


Architecture Client/Serveur (2-tier)

• L'architecture Client/serveur est un modèle de fonctionnement


logiciel reposant sur l'utilisation de deux éléments :
• Le Client : émet des requêtes vers le serveur pour demander une ressource
(données) ou un service (traitement)
• Le Serveur : traite la demande du client et répond

Nadia Yacoubi Ayadi 14


Architecture Client/Serveur
• L'architecture 2-tiers est composée de deux éléments :
• Le Client comporte le niveau présentation
• Le Serveur comporte le niveau données

• Le niveau traitement peut être :


• Entièrement du côte client. Le serveur dans ce cas ne gère que les données
• Entièrement du côté serveur. Le client dans ce cas ne gère que l'interface
• Découpé entre le client et le serveur

Nadia Yacoubi Ayadi 15


Architecture 2-tiers

Nadia Yacoubi Ayadi 16


Architecture 2-tiers

Nadia Yacoubi Ayadi 17


Architecture 2-tiers : Serveur de données

Tier Client
Tier Serveur
Poste Client de données

Serveur de
Application Client bases de
JDBC/ODBC données
Présentation

Traitement

18

Nadia Yacoubi Ayadi


Architecture 3-tiers

Separation of concerns

Tier Interface Tier Données


Tier Métier

Poste Client Serveur


Traitement

RMI

Application-Client Serveur de
RPC bases de
Logique de
Traitement données
présentation,
Présentation

19

Nadia Yacoubi Ayadi


Architecture n-tiers

• L'architecture n-tiers est aussi appelée architecture distribuée ou


architecture multi-tiers

• L'architecture n-tiers qualifie la distribution d'applications entre de


multiples tiers

• Avec l’apparition des technologies Web, il est possible de séparer la


couche présentation de la couche applicative (aussi appelée couche
métier)

Nadia Yacoubi Ayadi 20


Architecture n-tiers pour le Web

Tier client Tier Web Tier Métier Tier


Données

Navigateur
Serveur Web Serveur Métier

Internet Composant
Applet/ Composant Serveur de
HTML Web métier bases de
données

21

Nadia Yacoubi Ayadi


Architecture n-tiers : programmation par composant
• Séparation des préoccupations :
Réutilisabilité, Adaptation

• Tout est composant : du niveau applicatif au niveau ressources :


• Composant application client
• Composant Web
• Composant métier
• Composant accès aux données

Nadia Yacoubi Ayadi 22


Les composants dans le monde JEE

Nadia Yacoubi Ayadi 23


Du composant vers le service
• Hétérogénéité des systèmes d’information
• Hétérogénéité des technologies : J2EE vs Microsoft .Net
• Difficulté d’intégration de composants distribués

• Ce que propose les SOAs :

• Une description de modules logiciels appelés ‘’services’’ à


l'aide de XML

• Des standards et des protocoles pour faciliter l'intégration


de modules dans des systèmes hétérogènes

Nadia Yacoubi Ayadi 24


Les SOAs : enjeux

• Interopérabilité : gérer l’interaction entre les applications


de plates formes différentes
• Liberté des choix technologiques (adaptés aux choix métiers)

• Modularité, couplage faible


• Séparation des préoccupations (et des développements)
• Possibilité de déployer composant par composant
• Agilité
• Scalabilité (verticale/horizontale)

Nadia Yacoubi Ayadi 25


SOA : définition

• Une architecture Orientée services est une


architecture logicielle distribuée :

• S’appuie sur un ensemble de fonctions simples


appelées services (abstraction), d’où la facilité

• Fournit les moyens nécessaires pour permettre à


ces services d’interagir tout en respectant le
principe de faible couplage

Nadia Yacoubi Ayadi 26


Avant et Après SOA

Nadia Yacoubi Ayadi 27


Service Web

• Un service Web est


• un composant logiciel qui encapsule des fonctionnalités métier
accessible via des protocoles standards basés sur XML
• Il expose un contrat décrivant les modalités d’utilisation
• Abstrait
• Un service web est une boîte noire dont l’implémentation
interne est masquée au consommateur
• Sans état
• Ne nécessite pas un contexte d’exécution
• Réutilisable
• Composition de services : Chorégraphie et Orchestration

Nadia Yacoubi Ayadi 28


2 générations de services Web

• SOAP-based
• Simple Object Access Protocol
• REST
• REpresentational State Transfer

https://www.codementor.io/java/tutorial/soap-and-rest-java-web-services
Nadia Yacoubi Ayadi 29
Les trois acteurs du SOA

• Fournisseur de service (Service Provider)


• Module logiciel s'exécutant sur un serveur et décrit par un
document XML

• Annuaire de service (Service Registry)


• Annuaire des services publiés par les providers
• Géré sur un serveur au interne à l’entreprise ou public

• Demandeur de service (Service Requester)


• Application cliente se liant à un service et invoquant ses
fonctions par des messages XML

Nadia Yacoubi Ayadi 30


Les trois acteurs du SOA : fonctionnement

4. Interaction
Service Service
Consommateur Fournisseur

3. Description du
2. Recherche service 1. Publication
critères x,y,z

Annuaire
de services
Nadia Yacoubi Ayadi 31
Standards

4. Message SOAP
Service Service

Consommateur Fournisseur

3. Description
2. Recherche WSDL du service 1. Publication
critères x,y,z WSDL

Annuaire
de services
UDDI
Nadia Yacoubi Ayadi 32
Enjeux de mise en oeuvre
• Actuellement, les application Web font appel (invoque) à plusieurs
services Web distants pour récupérer différents types d’informations.

Services

xml

xml

xml

Nadia Yacoubi Ayadi 33


Définition W3C

" A Web service is a software application identified by a URI, whose


interfaces and binding are capable of being defined, described and
discovered by XML artefacts and supports direct interactions with other
software applications using XML based messages via Internet-based
protocols "

• Un service Web est une application logicielle identifiée


par une URI (Unified Ressource Identifier)
• Utilise une syntaxe basée sur XML pour la description, la
découverte des interfaces
• L'interaction avec les autres applications se fait a travers
des messages bases sur XML via des protocoles Internet
Nadia Yacoubi Ayadi 34
Cycle de vie d’utilisation

Nadia Yacoubi Ayadi 35


Standards et protocoles

• SOAP (Simple Object Access Protocol) : Protocole pour l‘échange de


messages entre services utilisant XML

• WSDL (Web Service Definition Language): Un langage de


description de services. Une description WSDL est un document
XML

• UDDI (Universal Description Discovery and Integration) : annuaire


de services.

Nadia Yacoubi Ayadi 36


Web service vs SOA

• Il est possible de mettre en œuvre une Architecture Orientée service


sans Web Service

• Il est possible d'utiliser des Web Services sans SOA

• Les Web Services constituent la meilleure solution standardisée

• Lorsque l'architecture SOA s'appuie sur des web services, on parle alors de
WSOA, pour Web Service Oriented Architecture

Nadia Yacoubi Ayadi 37


Conclusion

• Les SOAs sont proposées pour répondre aux besoins liés à :


• L’interopérabilité des systèmes
• La maintenance facile des applications informatiques
• La Réutilisation

• Les SOAs résultent de l’évolution :


• Des architectures Informatiques : client/serveur, 3-tiers, n-tiers
• Des modèles de programmation : POO, POC et POS
• Du Web : services Web

• Standards et protocoles : SOAP, WSDL, UDDI

Nadia Yacoubi Ayadi 38

Vous aimerez peut-être aussi