SlideShare une entreprise Scribd logo
Institut National des Sciences Appliquées et de Technologie

Architectures Orientées Services
Chapitre 3 – Les Services Web
Dr. Lilia SFAXI
LA3 SIL - 2013-2014
1

Plan du Chapitre
2

Définition Web Services (W3C)

Un service web est un système logiciel identifié par un URI (Unified Resource
Identifier), dont les interfaces publiques et les liaisons sont définis et décris en utilisant
XML. Sa définition peut être découverte par d’autres systèmes logiciels. Ces systèmes
peuvent interagir avec le service web d’une manière prédéfinie par sa définition, en
utilisant des messages basés sur XML, acheminés par des protocoles internet.
3

Apports des Services Web


Peuvent correspondre à des applications nouvelles ou déjà existantes



S’appuient sur des standards répandus
o



Meilleure interopérabilité

Ne sont pas centrés sur un langage ou technologie
o

On peut faire communiquer du .Net avec du Java ou du Python
4

Standards pour les Web Services


Format de données
o



XML, XML Schéma

Transport
o
o



HTTP, HTTPS, SMTP, FTP
SOAP, XML-RPC

Description de service
o



Composition
o



MS XLANG, BPEL

Découverte, Publication
o

➪

WSDL, WSCL (Web Services Conversation Language : définit les interfaces abstraites du service web)

UDDI (Universal Description Discovery and Integration)

L’utilisation des standards rend l’accès aux services indépendant de la plateforme
d’implémentation
SOAP

Service Oriented Architecture Protocol


Acronyme initialement pour Simple Object Access Protocol, changé dans
sa version 1.2 vers Service Oriented Architecture Protocol



Un message SOAP
o

Permet la transmission d’un message au format XML

o

Va d’un nœud émetteur vers un nœud receveur

o

Passe éventuellement par un certain nombre de « nœuds » intermédiaires




Maintenir des logs, faires des vérifications ou modifier ou rediriger les messages

SOAP s’appuie sur :
o

XML et XML Schema pour la représentation des messages

o

Les protocoles internet classiques pour la transmission des messages


HTTP, SMTP, JMS, FTP…

5
6

Modèles d’Échange des Messages (1/2)
input

Client

input

Service

Client

Service
fault

in-only
Le consommateur envoie un message au
fournisseur qui change uniquement son statut

Robust In-only
Même chose que in-only si le statut du service change.
Si une erreur est générée, une faute est envoyée
fault

Client

Service
output

out-only
Le contraire de in-only, principalement une
notification d’évènement

Client

Service
output

Robust out-only
Même chose que le out-only, sauf que ça peut
provoquer un message d’erreur
7

Modèles d’Échange des Messages (2/2)
(1) input

Client

input

Service

Client

Service

(2) output

(?) output

(2’) fault

fault

in-out
Équivalent à requête/réponse : le consommateur initie la
requête, le fournisseur répond par un message ou une erreur.

in-optional-out
Un échange à deux directions standard où une réponse du
fournisseur est optionnelle.

(2’) fault

fault

(2) input

(?) input

Client

Service
(1) output

out-in
Contraire de in-out : le fournisseur initie l’échange.

Client

Service
output

Out-optional-in
Contraire de in-optional-out.
8

Structure d’un Document SOAP



Dans SOAP, les messages sont vus comme des enveloppes où
l’application renferme les données à envoyer



Une enveloppe SOAP contient une entête (Header) optionnelle, et un
corps (Body) obligatoire
o

Leur contenu dépend de l’application, pas de la spécification SOAP
9

Structure d’un Document SOAP
SOAP Envelope
SOAP Header
Entête
Entête

….

SOAP Body
Contenu du message
Contenu du message

….

<?xml version='1.0' ?>
<env:Envelope xmlns:env=
"http://www.w3.org/2003/05/
soap-envelope">
<env:Header>
... <!-- optionnel -->
</env:Header>
<env:Body>
... <!-- Message -->
</env:Body>
</env:Envelope>
10

Entête SOAP (Header)


Paramètres annexes : Propriétés du message
o

Corrélation de messages

o

Informations d’authentification

o

Informations liées aux transactions



Chaque application peut décider de la signification des headers



Les nœuds intermédiaires peuvent ajouter/supprimer/traiter/transformer des
headers



Un nœud intermédiaire peut traiter un ou plusieurs éléments du header
o

Sauf spécification contraire (utilisation de env:relay), cet élément est retiré du message

o

Env:role permet de spécifier les nœuds destinés à traiter l’élément
11

Corps SOAP (Body)


Endroit où les données XML spécifiques à l’application, et qui doivent être
échangées, sont placées



L’élément Body est obligatoire, mais peut être vide.



Il peut contenir plusieurs fils (appelés des entrées), qui peuvent être:
o

o



Données spécifiques à l’application: information échangée dans le WS. Représentée
par une méthode et ses arguments (requête) ou une ou plusieurs valeurs (réponses)
Message de faute : utilisé en cas d’erreur.

Un message SOAP contient des données ou un message de faute, mais pas les
deux à la fois.
12

Exemple de Message SOAP (Request)
<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Header/>
<env:Body>
<commande xmlns="http://www.glaces.com">
<parfum>Fraise</parfum>
<quantite>16</quantite>
<livraison>
<adresse>8 bvd N.Bohr Villeurbanne</adresse>
<destinataire>M2TI</destinataire>
</livraison>
</commande>
</env:Body>
</env:Envelope>
13

Exemple de Message SOAP (Response)

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Header/>
<env:Body>
<confirmation xmlns="http://www.glaces.com">
<heure>10h</heure>
</confirmation>
</env:Body>
</env:Envelope>
14

Fautes SOAP


Utilisé lorsqu’une erreur survient
o

En général dans une réponse à un message reçu auparavant



Se place dans la partie Body



Le contenu est une explication de l’erreur:
o

Une valeur

o

Une explication textuelle

o

Un morceau de document spécifique à l’application

o

Le rôle du nœud à l’origine de l’erreur


Utile en présence de nœuds intermédiaires
15

Exemple de Faute SOAP
<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap- envelope">
<env:Header/>
<env:Body>
<env:Code>
<env:Value>env:Receiver</env:Value>
</env:Code>
<env:Reason>
<env:Text xml:lang="fr-FR">Plus de glaces la fraise
</env:Text>
<env:Text xml:lang="en-GB">Nomore strawberry ice- creams
</env:Text>
</env:Reason>
</env:Body>
</env:Envelope>
16

Modèles de Communication SOAP



SOAP supporte deux styles de communication:
o

RPC (Remote Procedure Call)

o

Document (ou message)
17

Services SOAP RPC-Style


Un service web RPC-style apparaît à l’application cliente comme un objet distant



L’interaction entre un client et un service Web RPC est centrée autours d’une interface de
service.



Les clients expriment leurs requêtes sous forme d’appel de méthode avec un ensemble
d’arguments, et le service retourne une réponse contenant une valeur de retour
SOAP Envelope

SOAP Envelope

SOAP Body

SOAP Body

Nom Méthode

Retour méthode

param1

returnVal
param2

….

….
18

Services SOAP RPC-Style : Exemple

Requête

Réponse

<env:Envelope
xmlns:SOAP=“http://www.w3.org/2003/05/soap-envelope”
xmlns:m="http://www.plastics_supply.com/product-prices">

<env:Envelope
xmlns:SOAP=“http://www.w3.org/2003/05/soapenvelope”
xmlns:m="http://www.plastics_supply.com/productprices">

<env:Header>
<tx:Transaction-id
xmlns:t=”http://www.transaction.com/transactions”
env:mustUnderstand='1'>
512
</tx:Transaction-id>
</env:Header>
<env:Body>
<m:GetProductPrice>
<id> 450R6OP </id >
</m:GetProductPrice >
</env:Body>
</env:Envelope>

<env:Header> </env:Header>
<env:Body>
<m:GetProductPriceResponse>
<price> 134.32 </price>
</m:GetProductPriceResponse>
</env:Body>
</env:Envelope>
19

Services SOAP Document-Style


Le corps SOAP contient un fragment de document
o



Ce n’est pas une structure XML

L’environnement d’exécution SOAP accepte ce corps SOAP tel quel, et le transmet à
l’application réceptrice sans le changer.
SOAP Enveloppe

SOAP Enveloppe

SOAP Body

SOAP Body

Document

Document
d’Acquittement

….

….
20

Services SOAP Document-Style : Exemple
<env:Envelope xmlns:SOAP=“http://www.w3.org/2003/05/soap-envelope”>
<env:Header>
<tx:Transaction-id xmlns:t=”http://www.transaction.com/transactions” env:mustUnderstand='1'>
512
</tx:Transaction-id>
</env:Header>
<env:Body>
<po:PurchaseOrder oderDate=”2004-12-02” xmlns:m="http://www.plastics_supply.com/POs">
<po:from>
<po:accountName> RightPlastics </po:accountName>
<po:accountNumber> PSC-0343-02 </po:accountNumber>
</po:from>
<po:to>
<po:supplierName> Plastic Supplies Inc. </po:supplierName>
<po:supplierAddress> Yara Valley Melbourne </po:supplierAddress>
</po:to>
<po:product>
<po:product-name> injection molder </po:product-name>
<po:product-model> G-100T </po:product-model>
<po:quantity> 2 </po:quantity>
</po:product>
</ po:PurchaseOrder >
</env:Body>
</env:Envelope>
21

WSDL

Web Services Description Language


Permet d’automatiser les détails de la communication entre les partenaires



Peut être découvert à travers les registres de services



Il est possible de vérifier si la communication entre les services est conforme au WSDL



Éléments WSDL
o

Types

o

Messages

o

Operation

o

Port Type

o

Binding

o

Port

o

Service

<?xml version="1.0"?>
<definitions name="StockQuote”
targetNamespace="http://example.com/stockquote.wsdl" … >
<!-- types -->
<!-- messages-->
<!-- port types -->
<!-- bindings -->
<!-- service -->
</definitions>
WSDL : Types







WSDL Example: Types

<definitions name="StockQuote"
targetNamespace="http://example.com/stockquote.wsdl"
xmlns:tns="http://example.com/stockquote.wsdl"
xmlns:xsd1="http://example.com/stockquote.xsd"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns="http://schemas.xmlsoap.org/wsdl/”>
<types>
Définitions des types de données
<schema targetNamespace="http://example.com/stockquote.xsd"
xmlns="http://www.w3.org/2000/10/XMLSchema">
<element name="TradePriceRequest">
<complexType>
Utilisés pour décrire les messages
<all>
échangés
<element name=”tickerSymbol" type="string"/>
</all>
</complexType>
Utilisent les schémas XML comme type</element>
<element name="TradePrice">
canonique
<complexType>
<all>
<element name="price" type="float"/>
</all>
</complexType>
</element>
</schema>
</types>

22

12
WSDL : Messages, Operations & Port
Type
Example:

23

Messages, Operation, Port type


Messages




Définitions abstraites et typées
des données échangées

Operations






Description abstraite d’une
action

Fait référence à un message
d’entrée et/ou de sortie

Port Type


Collection d’opérations



Définition abstraite d’un service

<message name="GetLastTradePriceInput">
<part name="body" element="xsd1:TradePriceRequest"/>
</message>
<message name="GetLastTradePriceOutput">
<part name="body" element="xsd1:TradePrice"/>
</message>
<portType name="StockQuotePortType">
<operation name="GetLastTradePrice">
<input message="tns:GetLastTradePriceInput"/>
<output message="tns:GetLastTradePriceOutput"/>
</operation>
<!-- More operations -->
</portType>
14
24

WSDL : Binding, Port & Service

Example: Binding, Port, Service






Binding

<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">
<soap:binding style="document"
 Protocole et format de données
transport="http://schemas.xmlsoap.org/soap/http"/>
concrets pour un port type (ex: SOAP
<operation name="GetLastTradePrice">
1.1 over HTTP, SOAP encoding…)
<soap:operation
soapAction="http://example.com/GetLastTradePrice"/>
Port
<input> <soap:body use="literal" />
 Définit une extrémité de
</input>
communication unique
<output> <soap:body use="literal" />
</output>
 Adresse de l’extrémité pour le binding
</operation>
 URL (pour HTTP), email (pour SMTP) </binding>

Service : ensemble de ports connexes
<service

name="StockQuoteService">
<documentation>My first service</documentation>
<port name="StockQuotePort" binding="tns:StockQuoteSoapBinding">
<soap:address location="http://example.com/stockquote"/>
</port>
25

UDDI

Universal Description, Discovery and Integration


Spécification pour la description et découverte des web services.



Décomposé en 3 parties
o

White Pages (informations générales)



Informations de catégorisation pour faciliter les recherches spécifiques selon le métier de l’entreprise



o

Noms, adresses, contacts, identifiants… des entreprises enregistrées.
Entités : Business Entity

Yellow Pages (catégories de services)



o

Détails sur le métier de l’entreprise, les services qu’elle propose
Entités: Business Service

Green Pages (business rules)


Informations techniques sur les services proposés



Références vers les spécifications des services web, les détails nécessaires à leur utilisation



Entités : Binding Template (coordonnées de services, URL et/ou tModel), et Technology Model (tModel:
description technique du service)
26

Sources


Cours


M. Laaroussi: Web Services, INSAT, Tunis



E. Coquery : Services Web, Université de Lyon



M. Mecella : A very Short Introduction to Web Services, Université de Rome

Contenu connexe

Tendances

Architecture réparties et les services web
Architecture réparties et les services webArchitecture réparties et les services web
Architecture réparties et les services web
CHOUAIB EL HACHIMI
 
Web services SOAP et REST
Web services  SOAP et RESTWeb services  SOAP et REST
Web services SOAP et REST
RadhoueneRouached
 
Services web soap-el-habib-nfaoui
Services web soap-el-habib-nfaouiServices web soap-el-habib-nfaoui
Services web soap-el-habib-nfaoui
El Habib NFAOUI
 
Chp4 - Composition, Orchestration et Choregraphie de services
Chp4 - Composition, Orchestration et Choregraphie de servicesChp4 - Composition, Orchestration et Choregraphie de services
Chp4 - Composition, Orchestration et Choregraphie de services
Lilia Sfaxi
 
Soa & services web
Soa & services webSoa & services web
Soa & services web
Ghazouani Mahdi
 
SOA - Architecture Orientée Service : Démystification
SOA - Architecture Orientée Service : DémystificationSOA - Architecture Orientée Service : Démystification
SOA - Architecture Orientée Service : Démystification
Khaled Ben Driss
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
Lilia Sfaxi
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
Heithem Abbes
 
Architecture des Systèmes Logiciels
Architecture des Systèmes LogicielsArchitecture des Systèmes Logiciels
Architecture des Systèmes Logiciels
Ghazouani Mahdi
 
Introduction a la SOA
Introduction a la SOAIntroduction a la SOA
Introduction a la SOA
Tugdual Grall
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
Lilia Sfaxi
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPEL
Lilia Sfaxi
 
eServices-Tp2: bpel
eServices-Tp2: bpeleServices-Tp2: bpel
eServices-Tp2: bpel
Lilia Sfaxi
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiers
Heithem Abbes
 
eServices-Chp3: Composition de Services
eServices-Chp3: Composition de ServiceseServices-Chp3: Composition de Services
eServices-Chp3: Composition de Services
Lilia Sfaxi
 
Architectures distribuées
Architectures distribuéesArchitectures distribuées
Architectures distribuées
Franck SIMON
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
ENSET, Université Hassan II Casablanca
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
ENSET, Université Hassan II Casablanca
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
Youness Boukouchi
 
comment realiser un Service Web
comment realiser un Service Web comment realiser un Service Web
comment realiser un Service Web
Nazih Heni
 

Tendances (20)

Architecture réparties et les services web
Architecture réparties et les services webArchitecture réparties et les services web
Architecture réparties et les services web
 
Web services SOAP et REST
Web services  SOAP et RESTWeb services  SOAP et REST
Web services SOAP et REST
 
Services web soap-el-habib-nfaoui
Services web soap-el-habib-nfaouiServices web soap-el-habib-nfaoui
Services web soap-el-habib-nfaoui
 
Chp4 - Composition, Orchestration et Choregraphie de services
Chp4 - Composition, Orchestration et Choregraphie de servicesChp4 - Composition, Orchestration et Choregraphie de services
Chp4 - Composition, Orchestration et Choregraphie de services
 
Soa & services web
Soa & services webSoa & services web
Soa & services web
 
SOA - Architecture Orientée Service : Démystification
SOA - Architecture Orientée Service : DémystificationSOA - Architecture Orientée Service : Démystification
SOA - Architecture Orientée Service : Démystification
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
Architecture des Systèmes Logiciels
Architecture des Systèmes LogicielsArchitecture des Systèmes Logiciels
Architecture des Systèmes Logiciels
 
Introduction a la SOA
Introduction a la SOAIntroduction a la SOA
Introduction a la SOA
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPEL
 
eServices-Tp2: bpel
eServices-Tp2: bpeleServices-Tp2: bpel
eServices-Tp2: bpel
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiers
 
eServices-Chp3: Composition de Services
eServices-Chp3: Composition de ServiceseServices-Chp3: Composition de Services
eServices-Chp3: Composition de Services
 
Architectures distribuées
Architectures distribuéesArchitectures distribuées
Architectures distribuées
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
comment realiser un Service Web
comment realiser un Service Web comment realiser un Service Web
comment realiser un Service Web
 

En vedette

Mobile developement
Mobile developementMobile developement
Mobile developement
Lilia Sfaxi
 
Systèmes d'Exploitation - chp4-gestion disque
Systèmes d'Exploitation - chp4-gestion disqueSystèmes d'Exploitation - chp4-gestion disque
Systèmes d'Exploitation - chp4-gestion disque
Lilia Sfaxi
 
eServices-Chp6: WOA
eServices-Chp6: WOAeServices-Chp6: WOA
eServices-Chp6: WOA
Lilia Sfaxi
 
Chp6 - Développement iOS
Chp6 - Développement iOSChp6 - Développement iOS
Chp6 - Développement iOS
Lilia Sfaxi
 
Server-side JS with NodeJS
Server-side JS with NodeJSServer-side JS with NodeJS
Server-side JS with NodeJS
Lilia Sfaxi
 
eServices-Chp4: ESB
eServices-Chp4: ESBeServices-Chp4: ESB
eServices-Chp4: ESB
Lilia Sfaxi
 
Chp5 - Applications Android
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications Android
Lilia Sfaxi
 
Angular
AngularAngular
Angular
Lilia Sfaxi
 
Testing Angular
Testing AngularTesting Angular
Testing Angular
Lilia Sfaxi
 
Chp6 - De UML vers C++
Chp6 - De UML vers C++Chp6 - De UML vers C++
Chp6 - De UML vers C++
Lilia Sfaxi
 
Client-side JavaScript
Client-side JavaScriptClient-side JavaScript
Client-side JavaScript
Lilia Sfaxi
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
ENSET, Université Hassan II Casablanca
 
Présentation de Thèse
Présentation de ThèsePrésentation de Thèse
Présentation de Thèse
Lilia Sfaxi
 
Thinking BIG
Thinking BIGThinking BIG
Thinking BIG
Lilia Sfaxi
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
ENSET, Université Hassan II Casablanca
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
Lilia Sfaxi
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
Lilia Sfaxi
 
P5 stockage
P5 stockageP5 stockage
P5 stockage
Lilia Sfaxi
 
P2 éléments graphiques android
P2 éléments graphiques androidP2 éléments graphiques android
P2 éléments graphiques android
Lilia Sfaxi
 
P1 introduction à android
P1 introduction à androidP1 introduction à android
P1 introduction à android
Lilia Sfaxi
 

En vedette (20)

Mobile developement
Mobile developementMobile developement
Mobile developement
 
Systèmes d'Exploitation - chp4-gestion disque
Systèmes d'Exploitation - chp4-gestion disqueSystèmes d'Exploitation - chp4-gestion disque
Systèmes d'Exploitation - chp4-gestion disque
 
eServices-Chp6: WOA
eServices-Chp6: WOAeServices-Chp6: WOA
eServices-Chp6: WOA
 
Chp6 - Développement iOS
Chp6 - Développement iOSChp6 - Développement iOS
Chp6 - Développement iOS
 
Server-side JS with NodeJS
Server-side JS with NodeJSServer-side JS with NodeJS
Server-side JS with NodeJS
 
eServices-Chp4: ESB
eServices-Chp4: ESBeServices-Chp4: ESB
eServices-Chp4: ESB
 
Chp5 - Applications Android
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications Android
 
Angular
AngularAngular
Angular
 
Testing Angular
Testing AngularTesting Angular
Testing Angular
 
Chp6 - De UML vers C++
Chp6 - De UML vers C++Chp6 - De UML vers C++
Chp6 - De UML vers C++
 
Client-side JavaScript
Client-side JavaScriptClient-side JavaScript
Client-side JavaScript
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Présentation de Thèse
Présentation de ThèsePrésentation de Thèse
Présentation de Thèse
 
Thinking BIG
Thinking BIGThinking BIG
Thinking BIG
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
P5 stockage
P5 stockageP5 stockage
P5 stockage
 
P2 éléments graphiques android
P2 éléments graphiques androidP2 éléments graphiques android
P2 éléments graphiques android
 
P1 introduction à android
P1 introduction à androidP1 introduction à android
P1 introduction à android
 

Similaire à Chp3 - Les Services Web

Soap
SoapSoap
Soap, wsdl et uddi
Soap, wsdl et uddiSoap, wsdl et uddi
Soap, wsdl et uddi
miraprincesse
 
2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services
Camus LANMADOUCELO
 
webservicesfhjtrddktkddflfddddddyuldydulyulfyul_RESTU.pdf
webservicesfhjtrddktkddflfddddddyuldydulyulfyul_RESTU.pdfwebservicesfhjtrddktkddflfddddddyuldydulyulfyul_RESTU.pdf
webservicesfhjtrddktkddflfddddddyuldydulyulfyul_RESTU.pdf
KHALIDBENABBES1
 
sqcq<svdsdvezsfvkjezbkjfb ckjhs;dvbqcjkhbazvuyaz.pdf
sqcq<svdsdvezsfvkjezbkjfb ckjhs;dvbqcjkhbazvuyaz.pdfsqcq<svdsdvezsfvkjezbkjfb ckjhs;dvbqcjkhbazvuyaz.pdf
sqcq<svdsdvezsfvkjezbkjfb ckjhs;dvbqcjkhbazvuyaz.pdf
KHALIDBENABBES1
 
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnsoapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
HINDGUENDOUZ
 
Programmation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdfProgrammation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdf
ngombeemmanuel
 
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbWebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
HINDGUENDOUZ
 
03_-_SOA_-_SOAP.pdf
03_-_SOA_-_SOAP.pdf03_-_SOA_-_SOAP.pdf
03_-_SOA_-_SOAP.pdf
ngombeemmanuel
 
Presentation SOAP
Presentation SOAPPresentation SOAP
Presentation SOAP
Mahdi Ben Selimene
 
Presentation
PresentationPresentation
Presentation
bois
 
education
educationeducation
education
guestb6689d
 
Presentation SOAP
 Presentation SOAP Presentation SOAP
Presentation SOAP
litayem bechir
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de php
Gautier DUMAS
 
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
hindguendouz2000
 
Cours services web_fabrice_mourlin
Cours services web_fabrice_mourlinCours services web_fabrice_mourlin
Cours services web_fabrice_mourlin
angeeLee
 

Similaire à Chp3 - Les Services Web (20)

Soap
SoapSoap
Soap
 
Soap, wsdl et uddi
Soap, wsdl et uddiSoap, wsdl et uddi
Soap, wsdl et uddi
 
2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services
 
webservicesfhjtrddktkddflfddddddyuldydulyulfyul_RESTU.pdf
webservicesfhjtrddktkddflfddddddyuldydulyulfyul_RESTU.pdfwebservicesfhjtrddktkddflfddddddyuldydulyulfyul_RESTU.pdf
webservicesfhjtrddktkddflfddddddyuldydulyulfyul_RESTU.pdf
 
sqcq<svdsdvezsfvkjezbkjfb ckjhs;dvbqcjkhbazvuyaz.pdf
sqcq<svdsdvezsfvkjezbkjfb ckjhs;dvbqcjkhbazvuyaz.pdfsqcq<svdsdvezsfvkjezbkjfb ckjhs;dvbqcjkhbazvuyaz.pdf
sqcq<svdsdvezsfvkjezbkjfb ckjhs;dvbqcjkhbazvuyaz.pdf
 
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnsoapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
 
Soap
SoapSoap
Soap
 
Programmation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdfProgrammation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdf
 
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbWebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
03_-_SOA_-_SOAP.pdf
03_-_SOA_-_SOAP.pdf03_-_SOA_-_SOAP.pdf
03_-_SOA_-_SOAP.pdf
 
Soap
SoapSoap
Soap
 
Presentation SOAP
Presentation SOAPPresentation SOAP
Presentation SOAP
 
.NET DotNet CF - 3
.NET DotNet CF - 3.NET DotNet CF - 3
.NET DotNet CF - 3
 
Presentation
PresentationPresentation
Presentation
 
education
educationeducation
education
 
Presentation SOAP
 Presentation SOAP Presentation SOAP
Presentation SOAP
 
7 rest
7 rest7 rest
7 rest
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de php
 
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
Cours services web_fabrice_mourlin
Cours services web_fabrice_mourlinCours services web_fabrice_mourlin
Cours services web_fabrice_mourlin
 

Plus de Lilia Sfaxi

chp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdf
Lilia Sfaxi
 
Plan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdf
Lilia Sfaxi
 
Lab3-DB_Neo4j
Lab3-DB_Neo4jLab3-DB_Neo4j
Lab3-DB_Neo4j
Lilia Sfaxi
 
Lab2-DB-Mongodb
Lab2-DB-MongodbLab2-DB-Mongodb
Lab2-DB-Mongodb
Lilia Sfaxi
 
Lab1-DB-Cassandra
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-Cassandra
Lilia Sfaxi
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
Lilia Sfaxi
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-Correction
Lilia Sfaxi
 
TP0-UML-Correction
TP0-UML-CorrectionTP0-UML-Correction
TP0-UML-Correction
Lilia Sfaxi
 
TD4-UML
TD4-UMLTD4-UML
TD4-UML
Lilia Sfaxi
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-Correction
Lilia Sfaxi
 
TD3-UML-Séquences
TD3-UML-SéquencesTD3-UML-Séquences
TD3-UML-Séquences
Lilia Sfaxi
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-Correction
Lilia Sfaxi
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
Lilia Sfaxi
 
TD1 - UML - DCU
TD1 - UML - DCUTD1 - UML - DCU
TD1 - UML - DCU
Lilia Sfaxi
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
Lilia Sfaxi
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrage
Lilia Sfaxi
 
Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques
Lilia Sfaxi
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intents
Lilia Sfaxi
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
Lilia Sfaxi
 
Android - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancés
Lilia Sfaxi
 

Plus de Lilia Sfaxi (20)

chp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdf
 
Plan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdf
 
Lab3-DB_Neo4j
Lab3-DB_Neo4jLab3-DB_Neo4j
Lab3-DB_Neo4j
 
Lab2-DB-Mongodb
Lab2-DB-MongodbLab2-DB-Mongodb
Lab2-DB-Mongodb
 
Lab1-DB-Cassandra
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-Cassandra
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-Correction
 
TP0-UML-Correction
TP0-UML-CorrectionTP0-UML-Correction
TP0-UML-Correction
 
TD4-UML
TD4-UMLTD4-UML
TD4-UML
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-Correction
 
TD3-UML-Séquences
TD3-UML-SéquencesTD3-UML-Séquences
TD3-UML-Séquences
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-Correction
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
TD1 - UML - DCU
TD1 - UML - DCUTD1 - UML - DCU
TD1 - UML - DCU
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrage
 
Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intents
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
 
Android - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancés
 

Chp3 - Les Services Web

  • 1. Institut National des Sciences Appliquées et de Technologie Architectures Orientées Services Chapitre 3 – Les Services Web Dr. Lilia SFAXI LA3 SIL - 2013-2014
  • 3. 2 Définition Web Services (W3C) Un service web est un système logiciel identifié par un URI (Unified Resource Identifier), dont les interfaces publiques et les liaisons sont définis et décris en utilisant XML. Sa définition peut être découverte par d’autres systèmes logiciels. Ces systèmes peuvent interagir avec le service web d’une manière prédéfinie par sa définition, en utilisant des messages basés sur XML, acheminés par des protocoles internet.
  • 4. 3 Apports des Services Web  Peuvent correspondre à des applications nouvelles ou déjà existantes  S’appuient sur des standards répandus o  Meilleure interopérabilité Ne sont pas centrés sur un langage ou technologie o On peut faire communiquer du .Net avec du Java ou du Python
  • 5. 4 Standards pour les Web Services  Format de données o  XML, XML Schéma Transport o o  HTTP, HTTPS, SMTP, FTP SOAP, XML-RPC Description de service o  Composition o  MS XLANG, BPEL Découverte, Publication o ➪ WSDL, WSCL (Web Services Conversation Language : définit les interfaces abstraites du service web) UDDI (Universal Description Discovery and Integration) L’utilisation des standards rend l’accès aux services indépendant de la plateforme d’implémentation
  • 6. SOAP Service Oriented Architecture Protocol  Acronyme initialement pour Simple Object Access Protocol, changé dans sa version 1.2 vers Service Oriented Architecture Protocol  Un message SOAP o Permet la transmission d’un message au format XML o Va d’un nœud émetteur vers un nœud receveur o Passe éventuellement par un certain nombre de « nœuds » intermédiaires   Maintenir des logs, faires des vérifications ou modifier ou rediriger les messages SOAP s’appuie sur : o XML et XML Schema pour la représentation des messages o Les protocoles internet classiques pour la transmission des messages  HTTP, SMTP, JMS, FTP… 5
  • 7. 6 Modèles d’Échange des Messages (1/2) input Client input Service Client Service fault in-only Le consommateur envoie un message au fournisseur qui change uniquement son statut Robust In-only Même chose que in-only si le statut du service change. Si une erreur est générée, une faute est envoyée fault Client Service output out-only Le contraire de in-only, principalement une notification d’évènement Client Service output Robust out-only Même chose que le out-only, sauf que ça peut provoquer un message d’erreur
  • 8. 7 Modèles d’Échange des Messages (2/2) (1) input Client input Service Client Service (2) output (?) output (2’) fault fault in-out Équivalent à requête/réponse : le consommateur initie la requête, le fournisseur répond par un message ou une erreur. in-optional-out Un échange à deux directions standard où une réponse du fournisseur est optionnelle. (2’) fault fault (2) input (?) input Client Service (1) output out-in Contraire de in-out : le fournisseur initie l’échange. Client Service output Out-optional-in Contraire de in-optional-out.
  • 9. 8 Structure d’un Document SOAP  Dans SOAP, les messages sont vus comme des enveloppes où l’application renferme les données à envoyer  Une enveloppe SOAP contient une entête (Header) optionnelle, et un corps (Body) obligatoire o Leur contenu dépend de l’application, pas de la spécification SOAP
  • 10. 9 Structure d’un Document SOAP SOAP Envelope SOAP Header Entête Entête …. SOAP Body Contenu du message Contenu du message …. <?xml version='1.0' ?> <env:Envelope xmlns:env= "http://www.w3.org/2003/05/ soap-envelope"> <env:Header> ... <!-- optionnel --> </env:Header> <env:Body> ... <!-- Message --> </env:Body> </env:Envelope>
  • 11. 10 Entête SOAP (Header)  Paramètres annexes : Propriétés du message o Corrélation de messages o Informations d’authentification o Informations liées aux transactions  Chaque application peut décider de la signification des headers  Les nœuds intermédiaires peuvent ajouter/supprimer/traiter/transformer des headers  Un nœud intermédiaire peut traiter un ou plusieurs éléments du header o Sauf spécification contraire (utilisation de env:relay), cet élément est retiré du message o Env:role permet de spécifier les nœuds destinés à traiter l’élément
  • 12. 11 Corps SOAP (Body)  Endroit où les données XML spécifiques à l’application, et qui doivent être échangées, sont placées  L’élément Body est obligatoire, mais peut être vide.  Il peut contenir plusieurs fils (appelés des entrées), qui peuvent être: o o  Données spécifiques à l’application: information échangée dans le WS. Représentée par une méthode et ses arguments (requête) ou une ou plusieurs valeurs (réponses) Message de faute : utilisé en cas d’erreur. Un message SOAP contient des données ou un message de faute, mais pas les deux à la fois.
  • 13. 12 Exemple de Message SOAP (Request) <?xml version='1.0' ?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:Header/> <env:Body> <commande xmlns="http://www.glaces.com"> <parfum>Fraise</parfum> <quantite>16</quantite> <livraison> <adresse>8 bvd N.Bohr Villeurbanne</adresse> <destinataire>M2TI</destinataire> </livraison> </commande> </env:Body> </env:Envelope>
  • 14. 13 Exemple de Message SOAP (Response) <?xml version='1.0' ?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:Header/> <env:Body> <confirmation xmlns="http://www.glaces.com"> <heure>10h</heure> </confirmation> </env:Body> </env:Envelope>
  • 15. 14 Fautes SOAP  Utilisé lorsqu’une erreur survient o En général dans une réponse à un message reçu auparavant  Se place dans la partie Body  Le contenu est une explication de l’erreur: o Une valeur o Une explication textuelle o Un morceau de document spécifique à l’application o Le rôle du nœud à l’origine de l’erreur  Utile en présence de nœuds intermédiaires
  • 16. 15 Exemple de Faute SOAP <?xml version='1.0' ?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap- envelope"> <env:Header/> <env:Body> <env:Code> <env:Value>env:Receiver</env:Value> </env:Code> <env:Reason> <env:Text xml:lang="fr-FR">Plus de glaces la fraise </env:Text> <env:Text xml:lang="en-GB">Nomore strawberry ice- creams </env:Text> </env:Reason> </env:Body> </env:Envelope>
  • 17. 16 Modèles de Communication SOAP  SOAP supporte deux styles de communication: o RPC (Remote Procedure Call) o Document (ou message)
  • 18. 17 Services SOAP RPC-Style  Un service web RPC-style apparaît à l’application cliente comme un objet distant  L’interaction entre un client et un service Web RPC est centrée autours d’une interface de service.  Les clients expriment leurs requêtes sous forme d’appel de méthode avec un ensemble d’arguments, et le service retourne une réponse contenant une valeur de retour SOAP Envelope SOAP Envelope SOAP Body SOAP Body Nom Méthode Retour méthode param1 returnVal param2 …. ….
  • 19. 18 Services SOAP RPC-Style : Exemple Requête Réponse <env:Envelope xmlns:SOAP=“http://www.w3.org/2003/05/soap-envelope” xmlns:m="http://www.plastics_supply.com/product-prices"> <env:Envelope xmlns:SOAP=“http://www.w3.org/2003/05/soapenvelope” xmlns:m="http://www.plastics_supply.com/productprices"> <env:Header> <tx:Transaction-id xmlns:t=”http://www.transaction.com/transactions” env:mustUnderstand='1'> 512 </tx:Transaction-id> </env:Header> <env:Body> <m:GetProductPrice> <id> 450R6OP </id > </m:GetProductPrice > </env:Body> </env:Envelope> <env:Header> </env:Header> <env:Body> <m:GetProductPriceResponse> <price> 134.32 </price> </m:GetProductPriceResponse> </env:Body> </env:Envelope>
  • 20. 19 Services SOAP Document-Style  Le corps SOAP contient un fragment de document o  Ce n’est pas une structure XML L’environnement d’exécution SOAP accepte ce corps SOAP tel quel, et le transmet à l’application réceptrice sans le changer. SOAP Enveloppe SOAP Enveloppe SOAP Body SOAP Body Document Document d’Acquittement …. ….
  • 21. 20 Services SOAP Document-Style : Exemple <env:Envelope xmlns:SOAP=“http://www.w3.org/2003/05/soap-envelope”> <env:Header> <tx:Transaction-id xmlns:t=”http://www.transaction.com/transactions” env:mustUnderstand='1'> 512 </tx:Transaction-id> </env:Header> <env:Body> <po:PurchaseOrder oderDate=”2004-12-02” xmlns:m="http://www.plastics_supply.com/POs"> <po:from> <po:accountName> RightPlastics </po:accountName> <po:accountNumber> PSC-0343-02 </po:accountNumber> </po:from> <po:to> <po:supplierName> Plastic Supplies Inc. </po:supplierName> <po:supplierAddress> Yara Valley Melbourne </po:supplierAddress> </po:to> <po:product> <po:product-name> injection molder </po:product-name> <po:product-model> G-100T </po:product-model> <po:quantity> 2 </po:quantity> </po:product> </ po:PurchaseOrder > </env:Body> </env:Envelope>
  • 22. 21 WSDL Web Services Description Language  Permet d’automatiser les détails de la communication entre les partenaires  Peut être découvert à travers les registres de services  Il est possible de vérifier si la communication entre les services est conforme au WSDL  Éléments WSDL o Types o Messages o Operation o Port Type o Binding o Port o Service <?xml version="1.0"?> <definitions name="StockQuote” targetNamespace="http://example.com/stockquote.wsdl" … > <!-- types --> <!-- messages--> <!-- port types --> <!-- bindings --> <!-- service --> </definitions>
  • 23. WSDL : Types    WSDL Example: Types <definitions name="StockQuote" targetNamespace="http://example.com/stockquote.wsdl" xmlns:tns="http://example.com/stockquote.wsdl" xmlns:xsd1="http://example.com/stockquote.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/”> <types> Définitions des types de données <schema targetNamespace="http://example.com/stockquote.xsd" xmlns="http://www.w3.org/2000/10/XMLSchema"> <element name="TradePriceRequest"> <complexType> Utilisés pour décrire les messages <all> échangés <element name=”tickerSymbol" type="string"/> </all> </complexType> Utilisent les schémas XML comme type</element> <element name="TradePrice"> canonique <complexType> <all> <element name="price" type="float"/> </all> </complexType> </element> </schema> </types> 22 12
  • 24. WSDL : Messages, Operations & Port Type Example: 23 Messages, Operation, Port type  Messages   Définitions abstraites et typées des données échangées Operations    Description abstraite d’une action Fait référence à un message d’entrée et/ou de sortie Port Type  Collection d’opérations  Définition abstraite d’un service <message name="GetLastTradePriceInput"> <part name="body" element="xsd1:TradePriceRequest"/> </message> <message name="GetLastTradePriceOutput"> <part name="body" element="xsd1:TradePrice"/> </message> <portType name="StockQuotePortType"> <operation name="GetLastTradePrice"> <input message="tns:GetLastTradePriceInput"/> <output message="tns:GetLastTradePriceOutput"/> </operation> <!-- More operations --> </portType> 14
  • 25. 24 WSDL : Binding, Port & Service Example: Binding, Port, Service    Binding <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="document"  Protocole et format de données transport="http://schemas.xmlsoap.org/soap/http"/> concrets pour un port type (ex: SOAP <operation name="GetLastTradePrice"> 1.1 over HTTP, SOAP encoding…) <soap:operation soapAction="http://example.com/GetLastTradePrice"/> Port <input> <soap:body use="literal" />  Définit une extrémité de </input> communication unique <output> <soap:body use="literal" /> </output>  Adresse de l’extrémité pour le binding </operation>  URL (pour HTTP), email (pour SMTP) </binding> Service : ensemble de ports connexes <service name="StockQuoteService"> <documentation>My first service</documentation> <port name="StockQuotePort" binding="tns:StockQuoteSoapBinding"> <soap:address location="http://example.com/stockquote"/> </port>
  • 26. 25 UDDI Universal Description, Discovery and Integration  Spécification pour la description et découverte des web services.  Décomposé en 3 parties o White Pages (informations générales)   Informations de catégorisation pour faciliter les recherches spécifiques selon le métier de l’entreprise  o Noms, adresses, contacts, identifiants… des entreprises enregistrées. Entités : Business Entity Yellow Pages (catégories de services)   o Détails sur le métier de l’entreprise, les services qu’elle propose Entités: Business Service Green Pages (business rules)  Informations techniques sur les services proposés  Références vers les spécifications des services web, les détails nécessaires à leur utilisation  Entités : Binding Template (coordonnées de services, URL et/ou tModel), et Technology Model (tModel: description technique du service)
  • 27. 26 Sources  Cours  M. Laaroussi: Web Services, INSAT, Tunis  E. Coquery : Services Web, Université de Lyon  M. Mecella : A very Short Introduction to Web Services, Université de Rome