soa et services web

74
1 SOA et Services Web 27 juin 2022 Dr. Rim Samia Kaabi

Upload: kishi

Post on 15-Jan-2016

33 views

Category:

Documents


1 download

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 Presentation

TRANSCRIPT

Page 1: SOA et Services Web

1

SOA et Services Web

21 avril 2023

Dr. Rim Samia Kaabi

Page 2: SOA et Services Web

2

Service Web: Standards

Page 3: SOA et Services Web

3

Services Web : vue générale

Page 4: SOA et Services Web

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

Page 5: SOA et Services Web

5

XML: Introduction

Page 6: SOA et Services Web

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

Page 7: SOA et Services Web

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”

Page 8: SOA et Services Web

8

Document structuré

Page 9: SOA et Services Web

9

XML

Page 10: SOA et Services Web

10

Les documents XML

Page 11: SOA et Services Web

11

Exemples de documents XML

Page 12: SOA et Services Web

12

Exemples de documents XML

Page 13: SOA et Services Web

13

Généralités sur les documents XML

Page 14: SOA et Services Web

14

La structure d’un document

Page 15: SOA et Services Web

15

La structure d’un document XML

Page 16: SOA et Services Web

16

La structure d’un document XML

Page 17: SOA et Services Web

17

La structure d’un document XMLDTD: Document Type Definition

Page 18: SOA et Services Web

18

La structure d’un document XMLDTD: Document Type Definition

Page 19: SOA et Services Web

19

La structure d’un document XMLDTD: Document Type Definition

Page 20: SOA et Services Web

20

La structure d’un document XMLDTD: Document Type Definition

Page 21: SOA et Services Web

21

La structure d’un document XMLDTD: Document Type Definition

Page 22: SOA et Services Web

22

ExerciceDTD????

Page 23: SOA et Services Web

23

ExerciceRecette.DTD

Page 24: SOA et Services Web

24

La structure d’un document XMLDTD: Document Type Definition

Page 25: SOA et Services Web

25

La structure d’un document XMLDTD: Document Type Definition

Page 26: SOA et Services Web

26

La structure d’un document XMLDTD: Document Type Definition

Page 27: SOA et Services Web

27

La structure d’un document XML

Page 28: SOA et Services Web

28

SDD: Standalone Document Declaration

Page 29: SOA et Services Web

29

XML NameSpaces

Page 30: SOA et Services Web

30

XML NameSpaces

Page 31: SOA et Services Web

31

XML NameSpaces

Page 32: SOA et Services Web

32

XML Schema: le remplaçant de la DTD

Page 33: SOA et Services Web

33

Les 2 parties d’XML schema

Page 34: SOA et Services Web

34

XML schema XSI

Page 35: SOA et Services Web

35

XML schema XSI

Page 36: SOA et Services Web

36

WSDL: Web Services Description Language

Page 37: SOA et Services Web

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.

Page 38: SOA et Services Web

38

Types : Définition XML Schéma des données

Page 39: SOA et Services Web

39

Messages : Collections de types

Page 40: SOA et Services Web

40

Operations : Fonctions disponibles

Page 41: SOA et Services Web

41

Port Types (interfaces): Ensembles d’opérations

Page 42: SOA et Services Web

42

Binding: Associe des protocoles aux méthodes

Page 43: SOA et Services Web

43

Port: Associe une adresse (URL) à chaque Binding Service

Page 44: SOA et Services Web

44

Service: ensemble de ports

Page 45: SOA et Services Web

45

SOAP: Simple Object Access Protocol

Page 46: SOA et Services Web

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

Page 47: SOA et Services Web

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

Page 48: SOA et Services Web

48

Types de message SOAP

– Appel (Call) – obligatoire

– Réponse (Response) – optionnel

– Erreur (Fault) - optionnel

Page 49: SOA et Services Web

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

Page 50: SOA et Services Web

50

Message SOAP encapsulé dans une requête HTTP

Page 51: SOA et Services Web

51

Message SOAP encapsulé dans une requête HTTP

Page 52: SOA et Services Web

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 ?

Page 53: SOA et Services Web

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

Page 54: SOA et Services Web

54

En résumé

Page 55: SOA et Services Web

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

Page 56: SOA et Services Web

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>

Page 57: SOA et Services Web

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)

Page 58: SOA et Services Web

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

Page 59: SOA et Services Web

59

UDDI: Universal Description,

Discovery and Integration

Page 60: SOA et Services Web

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.),

Page 61: SOA et Services Web

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

Page 62: SOA et Services Web

62

Structure UDDI

Page 63: SOA et Services Web

63

Structuration de l’information

Page 64: SOA et Services Web

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

Page 65: SOA et Services Web

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

Page 66: SOA et Services Web

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

Page 67: SOA et Services Web

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.

Page 68: SOA et Services Web

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.

Page 69: SOA et Services Web

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…

Page 70: SOA et Services Web

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.

Page 71: SOA et Services Web

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

Page 72: SOA et Services Web

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

Page 73: SOA et Services Web

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>

Page 74: SOA et Services Web

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