Architecture SOA et Service Web
Chapitre4:
SOA et Service Web
Réalisé par: Dr. Ghallabi Sameh
l’Institut d’Informatique et Mathématique à Monastir
Cible : 3émé informatique
Principes du Web Statique H2M
• Serveurs,
•Chaque ressource du web est identifiée par
• Pages
une URL
• Mode de communication = requête / réponse • Liens hypertexte
Client / Serveur Particuliers
Page Web:
-Pointés par une URL
-La plupart des pages WEB se composent de:
Une page HTML de base,
Différentes références à des « objets »
L’agent utilisateur (client) pour le Web s’appel un “browser”
-Microsoft Internet Explorer, Mozilla FireFox, Opera, Safari, Google Chrome, …
Un serveur pour le Web s’appelle un serveur Web :
- Apache, Microsoft Internet Information Server (IIS), …
Architecture distribuée: Problématique
L’interopérabilité: exprime le besoin d’échanger des données entre
deux systèmes distribués et éventuellement hétérogènes pour un
besoin d’intégration.
Architecture orientée services (SOA)
SOA, proposée par Gartner Group (2003-2008), se prête comme
solution au problème d'interopérabilité, en répondant aux
questions :
Quel protocole transport de communication (TCP/IP ? quelle
version?) ?
Quel protocole applicatif (HTTP, FTP, ...) ?
Quel type d'encodage de données ?
Quel est le format de données à adopter ? ( XML)
Architecture orientée services
(SOA)
SOAest un modèle d'interaction applicative qui met en œuvre des services
(composants logiciels).
L’objectif de l'architecture orientée services est de décomposer une application
en un ensemble de fonctions basiques, appelées services.
Un service résout un problème donné.
Le service est une action exécutée par un «fournisseur» (ou «producteur») à
l'attention d'un «client» (ou «consommateur»).
l'interaction entre consommateur et producteur est faite par le biais d'un
médiateur (qui peut être un bus) responsable de la mise en relation des
composants.
Les services peuvent être combinés pour résoudre des problèmes de plus en
plus complexes
Architecture orientée services
(SOA)
Une architecture orientée services permet d'avoir :
Une modularité permettant de remplacer facilement un service
par un autre.
Offre des services réutilisables et interopérables via des
interfaces standards (construites autour de XML)
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
Plusieurs partenaires peuvent communiquer et échanger des
données dans le contexte de SOA indépendamment des
Plateformes et langages.
Service Web : Définition
Un service web est:
un programme
décrit en XML
identifiépar unURL
proposantdiverses fonctionnalités qued’autres
programmes peuvent
découvrirdynamiquement
et utilisergrâce àdes protocoles
décrits en XML
basés sur l’échange de messages
-écrits en XML
-transmis par HTTP, FTP, SMTP, etc.
Service Web : Définition
Un service web est
• un programme accessible par internet
• par l’intermédiaire de messages XML
•transmis par HTTP
Un service Web est une application accessible à partir du Web. Il
utilise les protocoles Internet pour communiquer et utilise un
langage standard pour décrire son interface.
Service Web= Service + W eb
Service = fonctionnalité mise a disposition et exécutée par un
fournisseur, elle est invoquée par un consommateur , réutilisable +
composable + indépendant.
Interface : Définit I 'usage du service (syntaxe, sémantique, qualité)
=> contrat Masque l'implémentation du service pour un couplage
consommateur/fournisseur faible.
Format : Langage commun pour décrire et échanger les données.
Web Service = Service mis à disposition sur Internet
- Associe a une URL sur le web
-Accessible via des protocoles internet standard
- Accessible indépendamment des technologies d’implémentation
(XML)
Pourquoi les services Web
Les Services Web permettent d’interconnecter :
• Différentes entreprises
• Différentes applications
• Différents clients
• Différents matériels
Utilisé dans différents cadres:
• B2B (Business To Business)
• EAI (Enterprise Application Integration)
•…
Architecture de base
Troisacteurs :
le fournisseurde service (service provider) :
Pour créer un web service
Développer le service
Définir le contrat du service
Développer la couche de traitement XML
Déployer sur le serveur
Publier dans l’annuaire
l’annuaire (discoveryagency) :
Reçoit et enregistre les descriptions de services publiées par les
fournisseurs
Reçoit et répond aux recherches de services lancées par les
clients
le client (service requestor) :
Recherche le service dans l’annuaire
Récupérer le contrat du service
Développer la couche de traitement XML.
utilise le service et présenter les résultats
Architecture de base
Service Web: Fonctionnement
Les interactions de base entre ces trois composants incluent les 3
opérations suivantes :
•Publication : opération réalisée par le fournisseur de service, qui consiste à enregistrer le
service dans l’annuaire pour le rendre accessible aux clients.
•Recherche (découverte) : opération réalisée par le client, elle consiste à rechercher un
service dans l’annuaire
•Liens (binding) d’opérations : réponse de l’annuaire à une requête de recherche émise
par un client, elle consiste à trouver le service répondant à la requête du client.
Service Web: Fonctionnement
Invocation : vise a établir la communication entre le client et le fournisseur en
décrivant la structure des messages échanges.
Découverte : permet de localiser un service web particulier dans un annuaire de
services décrivant les fournisseurs ainsi les services fournis.
Composition : consiste a combiner des services pour former un nouveau service
dit compose ou composite. Le but de la composition est avant tout la réutilisation
de services (simples ou composes) et de préférence sans aucune modification de
ces derniers.
Sélection : choisir parmi les services web découverts, ceux qui répondent au
mieux aux exigences de l 'utilisateur sur la base des besoins fonctionnels et/ou non
fonctionnels,
Service Web: Fonctionnement
Étape 1: Définition, description et déploiement du service.
Étape 2: Publication du service par le fournisseur
Étape 3: Recherche du service par un client
Étape 4:Invocation du service par le client
Service Web: Fonctionnement
Étape 1: définition, description et déploiement du service
On doit décrire de point de vue informatique ce que fait le service, la solution qu’il
propose. La définition est faite en WSDL par le fournisseur de services.
Étape 2: publication du service par le fournisseur
Le fournisseur publie la description WSDL de ce service dans l'annuaire (UDDI)
afin de le rendre accessible aux clients.
Étape 3: recherche (découverte) du service par un client
Le client se connecte sur un annuaire UDDI pour effectuer une recherche de
services en spécifiant ses propres exigences de recherches. L'annuaire retourne au
client toutes les URLs des services disponibles selon les critères demandés.
Étape 4: invocation du service par le client
Une fois le service trouvé par le client, ce dernier peut invoquer le service suivant
les conditions inscrites au sein de la description WSDL trouvée.
Les principaux standards
Les principaux standards
WSDL (Web Services Description Language)
Le WSDL : offre un schéma formel de description des Services Web ;
Il est une grammaire XML pour indiquer une interface publique pour
un service de Web, est simplement un ensemble de définitions.
Il représente la définition d'un services Web vue par le fournisseur.
Il doit contenir toutes les information nécessaire au client pour consommer le
service.
Les principaux standards
Structure d'un fichier WSDL
Les principaux standards
Structure d'un fichier WSDL
Un service de compagnie aérienne: Qui permet de
● rajouter des vols
● Consulter des vols
◆ on a besoin de ce que c'est
● Vol
● Date
● Intervalle de dates (départ et retour)
● Liste de vols
Les principaux standards
Structure d'un fichier WSDL
Les principaux standards
Structure d'un fichier WSDL
Les principaux standards
WSDL (Web Services Description Language)
Les services web sont définis en utilisant six éléments principaux :
Types
fournit la définitions des type de données qui décrivent les messages échangés.
Message
représente une définition abstraite des données transmises.
PortType,
ensemble d'opérations abstraites. Chaque opération se rapporte à un message d'entrée
et à des messages de sortie
Binding
indique les caractéristiques concrètes du protocole et du format de données pour les
opérations et les messages définis par un portType particulier.
Port,
indique une adresse pour le « bindig ».
Service,
employé pour agréger un ensemble de ports relatifs.
Les principaux standards
UDDI (Universal Data Description Interface)
Annuaire permetd’enregistrer et de rechercherdes
descriptions de services web.
Est standard dedescription etd’interaction avecdes
annuaires deservices web.
Annuaire de services Web appelévia le protocole SOAP
Les principaux standards
Les données capturées dans l’UDDI sont divisées en trois
catégories:
Pages blanches: informations générales au sujet d'une compagnie
spécifique.
Pages jaunes: classification générales des services.
Pages vertes: informations techniques sur un service web
Les principaux standards
SOAP (Simple ObjectAccess Protocol)
SOAP est un protocole basé sur XML, il assure l’échange de
données indépendamment des langages de programmation et des
systèmes d’exploitation.
• Protocole : SOAP = HTTP + XML
• Requête/réponse = message XML
•Cadre général permettant l’échange de données structurées au
format XML
• Protocole de transport de ces données basé sur HTTP
Les principaux standards
SOAP (Simple ObjectAccess Protocol)
La requête SOAP intervient sur le réseau entre le client et le
serveur
SOAP Côté client SOAP Côté Serveur
• Ouverture d'une connexion HTTP • Récupère la requête
• Requête SOAP: document XML décrivant •Exécution de la méthodeavec les
- La méthode à invoquer sur la machine paramètres
distante • Renvoie une réponse SOAP (document
-les paramètres de la méthode XML) au client
Les principaux standards
SOAP (Simple ObjectAccess Protocol)
Messages SOAP
Les messages SOAP sont utilisés pour envoyer (requête) et recevoir (réponse) des
informations d’un consommateur vers un producteur
Un message SOAP peut être transmis à plusieurs récepteurs intermédiaires avant
d’être reçu par le récepteur final ( chaîne de responsabilité)
Un message SOAP est véhiculé en utilisant un protocole de transport (HTTP,
SMTP, …)
Les principaux standards
SOAP (Simple ObjectAccess Protocol)
SOAP : Requête
Appeler lesopérationsd’un web service SOAP
Les principaux standards
SOAP (Simple ObjectAccess Protocol)
SOAP : Requête
Réponse du service à l’appel de la méthode
Les principaux standards
SOAP (Simple ObjectAccess Protocol)
SOAP : Requête
Appeler lesopérationsd’un web service SOAP
Les principaux standards
SOAP (Simple ObjectAccess Protocol)
SOAP : Requête
Réponse du service à l’appel de la méthode
Bénéfices
S'appuie sur les standards
Encapsule la complexité (on ne voit pas les détails du code)
Favorise la réutilisation
Simplifie des échanges inter-entreprises
Assure l’interopérabilité
Exercice
Exercice