soa et services web
DESCRIPTION
Dr. Rim Samia Kaabi. SOA et Services Web. 13 septembre 2014. Plan. Service Web: Standards. Services Web : vue générale. Plan. Protocoles utilisés par les services web XML : Extensible Markup Language WSDL : Web Services Description Language SOAP : Simple Object Access Protocol - PowerPoint PPT PresentationTRANSCRIPT
1
SOA et Services Web
21 avril 2023
Dr. Rim Samia Kaabi
2
Service Web: Standards
3
Services Web : vue générale
Plan
Protocoles utilisés par les services web
XML: Extensible Markup Language
WSDL: Web Services Description Language
SOAP: Simple Object Access Protocol
UDDI: Universal, Description, Discovery and Integration
5
XML: Introduction
6
Historique des langages « Markup »
• SGML (Standard Generalized Markup Language, ISO standard en 1986)– meta-langage pour définir des langages de "markup"
• HTML (application SGML + liens en 1990)– une application SGML avec très peu de balises (tags) fixes
• XML (1997, -)– un meta-langage plus léger que SGML adapté au Web– permet la définition de langages adaptés à des besoins très
variés
7
Besoins …
– structurer de l’information– .... et la retrouver facilement– .... et l’imbriquer facilement dans des applications– faire des hypertextes puissants– afficher et imprimer de façon flexible et jolie– un format universel pour toute sortes de données
et usages– diffuser/échanger/stocker/chercher/..... pas juste
afficher– .... adaptés aux besoins, mais “propres”
8
Document structuré
9
XML
10
Les documents XML
11
Exemples de documents XML
12
Exemples de documents XML
13
Généralités sur les documents XML
14
La structure d’un document
15
La structure d’un document XML
16
La structure d’un document XML
17
La structure d’un document XMLDTD: Document Type Definition
18
La structure d’un document XMLDTD: Document Type Definition
19
La structure d’un document XMLDTD: Document Type Definition
20
La structure d’un document XMLDTD: Document Type Definition
21
La structure d’un document XMLDTD: Document Type Definition
22
ExerciceDTD????
23
ExerciceRecette.DTD
24
La structure d’un document XMLDTD: Document Type Definition
25
La structure d’un document XMLDTD: Document Type Definition
26
La structure d’un document XMLDTD: Document Type Definition
27
La structure d’un document XML
28
SDD: Standalone Document Declaration
29
XML NameSpaces
30
XML NameSpaces
31
XML NameSpaces
32
XML Schema: le remplaçant de la DTD
33
Les 2 parties d’XML schema
34
XML schema XSI
35
XML schema XSI
36
WSDL: Web Services Description Language
37
WSDL
• Une syntaxe XML pour décrire les méthodes et paramètres des Services Web invocables par le biais de messages au format SOAP.
• Permet de définir qu’est-ce qu’un Service Web est capable de faire, où est-ce qu’il réside et comment l’invoquer.
• Permet de décrire de façon précise les Services Web, en incluant des détails tels que les protocoles, les serveurs, les ports utilisés, les opérations pouvant être effectuées, le format des messages d’entrée et de sortie, et les messages d’exception pouvant être renvoyés.
38
Types : Définition XML Schéma des données
39
Messages : Collections de types
40
Operations : Fonctions disponibles
41
Port Types (interfaces): Ensembles d’opérations
42
Binding: Associe des protocoles aux méthodes
43
Port: Associe une adresse (URL) à chaque Binding Service
44
Service: ensemble de ports
45
SOAP: Simple Object Access Protocol
46
Protocole SOAP
– Protocole de transport réseaux
– Utilisation conjointe de XML et HTTP
– But : définir la structure des messages échangés par les applications via le net
– Il est particulièrement utile pour exécuter des dialogues requête-réponse
– Permet à un client d'invoquer un service distant
– SOAP a été construit pour pouvoir être aisément porté sur toutes les plates-formes et les technologies
47
• une enveloppe qui définit la structure du message• Élément racine• Namespace
• un en-tête (optionnel) qui contient les informations d'en-tête (autorisations et transactions par exemple),
• un corps contenant les informations sur l'appel et la réponse
• une gestion d'erreur qui identifie la condition d'erreur
• des attachements (optionnel)
Structure d’un SOAP
48
Types de message SOAP
– Appel (Call) – obligatoire
– Réponse (Response) – optionnel
– Erreur (Fault) - optionnel
49
Structure d’un message SOAP
SOAP Message
SOAP Envelope
SOAP Header
SOAP Body
Method Call & Data
Headers
HTTP Headers
Appel de méthode et descriptionAppel de méthode et descriptionen XML de donnéesen XML de données
Corps qui contient lesCorps qui contient lesappels de méthodes SOAPappels de méthodes SOAP
Entête individuelleEntête individuelle
EntêteEntête
EnveloppeEnveloppe
Entête standard HTTPEntête standard HTTPet entête SOAP HTTPet entête SOAP HTTP
Le message SOAP CompletLe message SOAP Complet
50
Message SOAP encapsulé dans une requête HTTP
51
Message SOAP encapsulé dans une requête HTTP
52
La philosophie SOAP
• SOAP codifie simplement une pratique existante Utilisation conjointe de XML et HTTP
• SOAP est un protocole minimal pour appeler des méthodes sur des serveurs, services, composants, objets
Ne pas imposer une API Ne pas imposer l’utilisation d’un ORB (CORBA, DCOM, …) ou d’un serveur web particulier Ne pas imposer un modèle de programmation
Plusieurs modèles peuvent être utilisés conjointement Et “ne pas réinventer une nouvelle technologie”
• SOAP a été construit pour pouvoir être aisément porté sur toutes les plates-formes et les technologies
Vous pouvez écrire votre 1er appel SOAP en moins d’une heure !! Il vous a fallu combien de temps en CORBA, RMI, DCOM ?
53
Les 3 aspects d’un appel SOAP
• SOAP peut être vu comme un autre RPC ObjetsLes requêtes contiennent les paramètres IN et INOUTLes réponses contiennent les paramètres INOUT et OUT
• SOAP peut être vu comme un protocole d’échange de “message”
La requête contient un seul message (appel d’une méthode sur un objet)La réponse contient un seul message (retour d’un appel de méthode sur un objet)
• SOAP peut être vu comme un format d’échange de documents
•La requête contient un document XML•Le serveur retourne une version transformée
54
En résumé
55
<?xml version=“1.0”>
<soap:Envelope xmlns:soap=http://www.w3.org/2001/12/soap- envelope
soap:encodingStyle=http://www.w3.org/2001/12 /soap-encoding>
<soap:Body mlns:m=http://www.stock.org/stock>
<m:GetStockPrice>
<m:StockName>IBM</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>
Exemple SOAP: Requête
56
Exemple SOAP: Réponse
<?xml version=“1.0”>
<soap:Envelope xmlns:soap=“http://www.w3.org/2001/12/soap-encoding”
soap:encodingStyle=“http://www.w3.org/2001/12/soap-encoding”>
<soap:Body xmlns:m=“http://www.stock.org/stock”>
<m:GetStockPricesResponse>
<m:Price>34.5</m:price>
</m:GetStockPricesResponse>
</soap:Body>
</soap:Envelope>
57
Modèle de messages
• SOAP permet une communication par messaged’un expéditeur vers un récepteur
• Structure d’un messageEnveloppe / Envelope
o Élément racineo Namespace :SOAP-ENV http://schemas.xmlsoap.org/soap/envelope/
Entête / Headero Élément optionnelo Contient des entrées non applicatives
Transactions, sessions, …Corps / Body
o Contient les entrées du messageNom d’une procédure, valeurs des paramètres, valeur de retour
o Peut contenir les éléments « fault » (erreurs)
58
En résumé
• SOAP :
– Permet une communication en univers hétérogène– Est assez léger simple et facile à déployer– Est extensible– Est ouvert
59
UDDI: Universal Description,
Discovery and Integration
60
UDDI
• Annuaire mondial d'entreprises basé sur le Web
• Il permet d'automatiser les communications entre prestataires, clients, etc..
• Très orienté « affaires » (vente, prestation)
• Accessible grâce à SOAP
• Intégrant toutes sortes d'entrées (nom, carte d'identité des sociétés, description des produits et des services, etc.),
61
UDDI
• Qui : Le nom de l’entreprise, les contacts ...
• Quoi : Les classes, les noms des services
• Où : Les adresses d’accès aux services
• Comment : Les informations concernant les
interfaces, les propriétés
62
Structure UDDI
63
Structuration de l’information
64
UDDI
• Objectifs annuaire mondial d'entreprises pour permettre d'automatiser les communications entre prestataires, clients, etc. plusieurs entrées indexées : nom, carte d'identité des sociétés, description des produits, services applicatifs invocables à distance (références des connexions)
• Grammaire XML (schéma XML) soumission/interrogation basées sur SOAP et WSDL
65
UDDI: annuaire distribué de
services
White pages
Yellow pages
Green pages
Adresse, contact info…
Catégorisation des industries
Info techniques: la manière d’invoquer des services
66
Business entity: informations sur l’entreprise (description, adresse…)
Business service: fait une référence à une catégorie de service pour permettre une recherche en fonction du type de service
Binding: sont des pointeurs vers une structure tModel
tModel:c’est un index qui pointe vers un URL dans lequel se trouve une description du service
0…n
0…n
1…n
Structure du registre UDDI
67
Structure du registre UDDI – Business Entity -
Business Entity
businessKeyNameURLContactDescriptionbusinessServicescategoryBagidentifierBag
•Décrit l’entreprise, la catégorie, une description et l’adresse des contacts.•Elle est en relation avec une ou plusieurs définitions de services.•«categoryBag» et «identifierBag» permettent de faciliter la recherche dans le registre UDDI.
68
Business Service
serviceKeybusinessKeyNameDescriptionbindingTemplatescategoryBag
Structure du registre UDDI – Business Service
-
•Décrite au moyen d’une entrée «serviceKey» identifiant le service publié.•Fait référence à une catégorie de service pour permettre une recherche en fonction d’un type de service particulier.•Pointe vers une liste de liens «bindingTemplates» décrivant les différents accès au service.
69
Binding Template
bindingKeyserviceKeyDescriptionaccessPoint
Structure du registre UDDI – Binding
Template -
•Pointent vers une structure «tModel» et vers un point d’accès au service sur le web via HTTP, FTP, SMTP…
70
tModel
NameDescriptionoverviewDoccategoryBagidentifierBag
Structure du registre UDDI – tModel -
•Permet de mettre en relation les 3 précédentes structures.•C’est un index utilisé pour les «businessEntity», les «businessService» et les «bindingTemplates».•Permet de rechercher des services en rapport avec des schémas de classification.•Pointe vers un URL dans lequel se trouve une description ou des instructions concernant un protocole.
71
<businessEntity businessKey= "A687FG00-56NM-EFT1-3456-098765432124"> <name>Rim Travel Agency</name> <description xml:lang="en"> Rim Travel Agency is a world leader in online travel services </description> <contacts> <contact useType="US general"> <personName>Rim Inc.</personName> <phone>1 800 CALL rim</phone> <email useType="">[email protected]</email> <address> <addressLine>rim</addressLine> <addressLine>12 Gaafour Avenue</addressLine> <addressLine>Gaafour, CT 06785</addressLine> </address> </contact> </contacts> <businessServices> ... </businessServices> <identifierBag> ... </identifierBag> <categoryBag> ... <keyedReference tModelKey= "UUID:DB77450D-9FA8-45D4-A7BC-04411D14E384" keyName="Electronic check-in" keyValue="84121801"/> </categoryBag></businessEntity>
UDDI : White Page
72
<businessService serviceKey= "894B5100-3AAF-11D5-80DC-002035229C64" businessKey= "D2033110-3AAF-11D5-80DC-002035229C64"> <name>RimTravelService</name> <description xml:lang="en">Electronic Travel Service</description> <bindingTemplates> <bindingTemplate bindingKey= "6D665B10-3AAF-11D5-80DC-002035229C64" serviceKey= "89470B40-3AAF-11D5-80DC-002035229C64"> <description> SOAP-based e-checkin and flight info </description> <accesssPoint URLType="http"> http://www.rim-travel.com/travelservice </accessPoint> <tModelInstanceDetails> <tModelInstanceInfo tModelKey= "D2033110-3BGF-1KJH-234C-09873909802"> ... </tModelInstanceInfo> </tModelInstanceDetails> </bindingTemplates> <categoryBag> ... </categoryBag></businessService>
UDDI : Yellow Page
UDDI : Green Page
73
<tModel tModelKey=""> <name>http://www.travel.org/e-checkin-Interface
</name> <description xml:lang="en"> Standard service interface definition for travel
services </description> <overviewDoc> <description xml:lang="en"> WSDL Service Interface Document </description> <overviewURL> http://www.travel.org/services/e-checkin.wsdl </overviewURL> </overviewDoc> <categoryBag> ... </categoryBag></tModel>
74
Avantages des services web
• Le coût de mise en place d’une communication entre des applicatifs distants et hétérogènes chute de manière considérable.
• Quel que soit les environnements techniques d’exécution, les applicatifs exposent un même descriptif de message (WSDL, XML Schema) et utilisent un unique protocole d’échange (SOAP, HTTP).
• Jusqu’à présent, le SI se contente d’exposer des applicatifs monolithiques clef en main sous la forme d’Intranet, d’Extranet, de portails… ou des interfaces applicatives propriétaires et souvent lourdes …Avec les services web, il expose des services métiers connectés de façon standard dans les SI