Professional Documents
Culture Documents
SOAP Envelope
SOAP fault
LES SERVICES WEB DE TYPE SOAP
LES SERVICES WEB DE TYPE SOAP
POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 299
SOAPAction: "http://www.w3.org/2003/05/soap-envelope"
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header>
</soap:Header>
<soap:Body>
<m:GetStockPrice xmlns:m="http://www.example.org/stock/Surya">
<m:StockName>Balloons</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>
LES SERVICES WEB DE TYPE SOAP
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 299
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header>
</soap:Header>
<soap:Body>
<m:GetStockPriceResponse xmlns:m="http://www.example.org/stock/Surya">
<m:Price>4936.50</m:Price>
</m:GetStockPriceResponse>
</soap:Body>
</soap:Envelope>
LES SERVICES WEB DE TYPE SOAP
üWSDL : Web Service Description Language
LES SERVICES WEB DE TYPE SOAP
LES SERVICES WEB DE TYPE SOAP
<?xml version="1.0" encoding="UTF-8"?>
<description xmlns="http://www.w3.org/ns/wsdl"
xmlns:tns="http://www.tmsws.com/wsdl20sample"
xmlns:whttp="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:wsoap="http://schemas.xmlsoap.org/wsdl/soap/"
targetNamespace="http://www.tmsws.com/wsdl20sample">
<documentation>This is a sample WSDL 2.0 document.</documentation>
<!-- Abstract type -->
<types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.tmsws.com/wsdl20sample"
targetNamespace="http://www.example.com/wsdl20sample">
<xs:element name="request"> ... </xs:element>
<xs:element name="response"> ... </xs:element>
</xs:schema>
</types>
<!-- Abstract interfaces -->
<interface name="Interface1">
<fault name="Error1" element="tns:response"/>
<operation name="Get" pattern="http://www.w3.org/ns/wsdl/in-out">
<input messageLabel="In" element="tns:request"/>
<output messageLabel="Out" element="tns:response"/>
</operation>
</interface>
<!-- Concrete Binding Over HTTP -->
<binding name="HttpBinding" interface="tns:Interface1" type="http://www.w3.org/ns/wsdl/http">
<operation ref="tns:Get" whttp:method="GET"/>
</binding>
<!-- Concrete Binding with SOAP-->
<binding name="SoapBinding" interface="tns:Interface1" type="http://www.w3.org/ns/wsdl/soap"
wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP/"
wsoap:mepDefault="http://www.w3.org/2003/05/soap/mep/request-response">
<operation ref="tns:Get" />
</binding>
<!-- Web Service offering endpoints for both bindings-->
<service name="Service1" interface="tns:Interface1">
<endpoint name="HttpEndpoint" binding="tns:HttpBinding" address="http://www.example.com/rest/"/>
<endpoint name="SoapEndpoint" binding="tns:SoapBinding" address="http://www.example.com/soap/"/>
</service>
</description>
LES SERVICES WEB DE TYPE SOAP
üUDDI (Universal Description Discovery and Integration)
üUne infrastructure d’annuaires pour les services web
üUn annuaire UDDI est consultable de différentes manières :
üLes pages blanches comprennent la liste des entreprises ainsi que des
informations associées à ces dernières. Nous y retrouvons donc des informations
comme le nom de l'entreprise, ses coordonnées, la description de l'entreprise
mais également l'ensemble de ses identifiants.
üLes pages jaunes recensent les services Web de chacune des entreprises sous le
standard WSDL.
üLes pages vertes fournissent des informations techniques précises sur les services
fournis. Ces informations concernent les descriptions de services et d'information
de liaison ou encore les processus métiers associés.
üGrâce à cette triple lecture, l'ensemble des informations utiles sont
accessibles.
LES SERVICES WEB DE TYPE SOAP
LES SERVICES WEB DE TYPE SOAP
LES SERVICES WEB DE TYPE SOAP
LES SERVICES WEB DE TYPE REST
üREST (REpresentational State Transfer) est un style architectural imposant :
üUne architecture client-serveur avec découplage total
üUne communication sans états : Pas de contextes / sessions
üPrise en charge de la mise en cache
üUne interface uniforme :
ü Identification unique de chaque ressource
ü L’accès aux ressources se fait à travers des opérations standards
ü Echanges de messages auto-descriptifs
ü L’Hypermédia comme moteur d'état de l'application
üUn système hiérarchisé par couche transparent
üCode à la demande (facultatif) : exécution par le client de scripts fournis par le
serveur.
LES SERVICES WEB DE TYPE REST
üRajouter des ressources auxiliaires pour invoquer les méthodes métiers : par
exemple pour changer le mot de passe utilisateur, nous pouvons utiliser la
requête HTTP « PUT » sur un URI ayant le format suivant :
« /users/id/password »
LES SERVICES WEB DE TYPE REST
Format :
JSON,
XML, …
État :
URI Données
Payload
Ressource
LES SERVICES WEB DE TYPE REST
LES SERVICES WEB DE TYPE REST
LES SERVICES WEB DE TYPE REST
üLes langages de description des agents de ressources :
üWSDL 2.0
üWADL : Web Application Description Language
üRSDL : RESTful Service Description Language (*)
üOpenAPI Specification (depuis 01/01/2016, anciennement Swagger)
üRAML : RESTful API Modeling Language
üGoogle Cloud Endpoints
üOdata : Open Data Protocol (OASIS / Microsoft)
üCloudRail
üLes services d’annuaires pour les agents de ressources
üUDDI
üDNS + méthode HTTP « HEAD » pour récupérer la description
LES SERVICES WEB DE TYPE REST
üLes WebSockets ?
WebSocket Frame
PROTOCOLE DES WEBSOCKETS
PROTOCOLE DES WEBSOCKETS
WebSockets et Proxies
PROTOCOLE DES WEBSOCKETS
CONNECT example.com:80 HTTP/1.1
Host: example.com
Handshake
ws://
TLS Handshake
Handshake
wss://
WebSockets et Proxies
API DES WEBSOCKETS
API DES WEBSOCKETS
API DES WEBSOCKETS
üWebSocket API - butineurs compatibles
Firefox 11
API DES WEBSOCKETS
üTypes des données échangées :
üString
üArrayBuffer
üBlob
üConstructeur de WebSocket en JavaScript :
WebSocket WebSocket(
in DOMString url,
in optional DOMString protocols
);
API DES WEBSOCKETS
üAPI côté Serveur :
ü Node.js
WebSocket-Node
Socket.IO
Engine.IO
ü C#/.NET (IIS 8 ASP.NET 4.5)
XSockets.NET
Fleck
ü Java
Java API for WebSocket
Atmosphere
ü Ruby
EM-WebSocket