SOAP et les RPC XML SOAP WSDL RPC

  • Slides: 29
Download presentation
SOAP et les RPC XML SOAP WSDL RPC

SOAP et les RPC XML SOAP WSDL RPC

Rappels sur le XML l l Langage avec des balises Très lisible Pour stocker

Rappels sur le XML l l Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation du document

Les faiblesses de XML l l l Les DTD ne sont pas en XML

Les faiblesses de XML l l l Les DTD ne sont pas en XML donc on ne peut pas les parser avec un parseur XML classique Pas d’espace de nommage dans les balises Typage limité des données

XML Name. Spaces l l l Résous les ambiguïtés des noms de balise Qu’est

XML Name. Spaces l l l Résous les ambiguïtés des noms de balise Qu’est ce qu’un Name. Space ? Exemple

Exemple XML Name. Spaces <bon. De. Commande : expedition xmlns : bon. De. Commande=

Exemple XML Name. Spaces <bon. De. Commande : expedition xmlns : bon. De. Commande= « http: //www. eb. XML. org » > <adresse> 61 bd. Saint Germain 75005 Paris </adresse> </expedition> <contacts: service. Client xmlns : contacts= «intranet/contacts/xml» > <adresse> info@eyrolles. com </adresse> </service. Clients>

XML Schema l l l Définition de types de données + imbrication des éléments

XML Schema l l l Définition de types de données + imbrication des éléments entre eux Création de types de données personnalisés Héritage Support de XML Name. Spaces Description de tout type de structures de données

Exemple XML Schema <xsd: element name= «Livre» > <xsd : complex. Type> <xsd :

Exemple XML Schema <xsd: element name= «Livre» > <xsd : complex. Type> <xsd : sequence> <xsd: element ref= «Titre» min. Occurs= « 1» max. Occurs= « 1» /> <xsd: element ref= «Auteur» min. Occurs= « 1» max. Occurs= « 1» /> <xsd: element ref= «Date» min. Occurs= « 1» max. Occurs= « 1» /> <xsd: element ref= «ISBN» min. Occurs= « 1» max. Occurs= « 1» /> <xsd: element ref= «Editeur» min. Occurs= « 1» max. Occurs= « 1» /> </xsd : sequence> </xsd : complex. Type> </xsd : element> <xsd: element name= «Titre» type= «xsd : string» /> <xsd: element name= «Auteur» type= «xsd : string» /> <xsd: element name= «Date» type= «xsd : string» /> <xsd: element name= «ISBN» type= «xsd : string» /> <xsd: element name= «Editeur» type= «xsd : string» />

SOAP l l Protocole de transmission de messages basé sur le XML Souvent utilisé

SOAP l l Protocole de transmission de messages basé sur le XML Souvent utilisé avec HTTP Indépendant du langage et de la plate-forme Message constitué d’une enveloppe comprenant une en tête et un corps

Message SOAP : l’enveloppe l l Racine du document XML Définit 2 namespaces SOAP-ENV

Message SOAP : l’enveloppe l l Racine du document XML Définit 2 namespaces SOAP-ENV (pour l’enveloppe) et SOAP-ENC (pour le typage des données)

Message SOAP : l’en tête l l Facultative Transports de données complémentaires Attribut must.

Message SOAP : l’en tête l l Facultative Transports de données complémentaires Attribut must. Understand Attribut Actor pour les intermédiaires SOAP

Message SOAP : le corps l l Élément Fault (code + string + factor

Message SOAP : le corps l l Élément Fault (code + string + factor + detail) Transport des données

Codage des données l l Référence à des balises définies dans SOAPENC. Types simples

Codage des données l l Référence à des balises définies dans SOAPENC. Types simples directement entre les balises sauf exception

Les types simples l l l Les chaînes de caractères Les énumérations Les tableaux

Les types simples l l l Les chaînes de caractères Les énumérations Les tableaux d’octets

Exemple de types simples <element name="age" type="int"/> <element name="height" type="float"/> <element name="displacement" type="negative. Integer"/>

Exemple de types simples <element name="age" type="int"/> <element name="height" type="float"/> <element name="displacement" type="negative. Integer"/> <age>45</age> <height>5. 9</height> <displacement>-450</displacement>

Les types composés l l l Les structures Les tableaux Les transmissions partielles de

Les types composés l l l Les structures Les tableaux Les transmissions partielles de données

Exemples de tableau et d’une structure Tableau : <element name= « my. Favorite. Numbers

Exemples de tableau et d’une structure Tableau : <element name= « my. Favorite. Numbers » type="SOAP-ENC: Array"/> <my. Favorite. Numbers SOAP-ENC: array. Type="xsd: int[2]"> <number>3</number> <number>4</number> </my. Favorite. Numbers> Structure : <e: Book> <author>Henry Ford</author> <preface>Prefatory text</preface> <intro>This is a book. </intro> </e: Book>

SOAP et les RPC l l Utilisation de HTTP Pourquoi HTTP ? – –

SOAP et les RPC l l Utilisation de HTTP Pourquoi HTTP ? – – – l l Simple Présent sur toutes les plate formes Evite les problèmes des proxys et des firewalls Message SOAP inclus dans la requête HTTP de type POST La réponse HTTP => Si code de retour = 500 alors élément Fault doit être présent dans la réponse HTTP

Exemple de requête HTTP contenant un message SOAP POST http: //www. addition. fr HTTP/1.

Exemple de requête HTTP contenant un message SOAP POST http: //www. addition. fr HTTP/1. 1 Content-Type: text/xml SOAPAction: interface. URI#Add Content-Length: 256 <soap: Envelope xmlns: soap=‘uri for soap’> <soap: Body> <Add xmlns=‘interface. URI’> <arg 1>24</arg 1> <arg 2>53. 2</arg 2> </Add> </soap: Body> </soap: Envelope>

SOAP et les RPC l l Informations contenues dans le message SOAP pour effectuer

SOAP et les RPC l l Informations contenues dans le message SOAP pour effectuer un RPC Corps d’un message SOAP RPC – – l Structure : son nom est le nom de la procédure appelée Passage des paramètres En tête d’un message SOAP RPC

WSDL l l Description de services Web Basé sur le XML Indépendant du langage

WSDL l l Description de services Web Basé sur le XML Indépendant du langage et de la plate forme Structure du document WSDL

WSDL : définition des types de données et des messages l l Définition des

WSDL : définition des types de données et des messages l l Définition des types de données qui seront employés dans le document Se base sur XML Schema Les messages sont les données qui seront passées en paramètres à un service Web ou retournées par un service Web. Encore indépendants du protocole de transport

Exemple de messages WSDL <message name="Add. Entry. Request"> <part name="name" type="xsd: string"/> <part name="address"

Exemple de messages WSDL <message name="Add. Entry. Request"> <part name="name" type="xsd: string"/> <part name="address" type="typens: address"/> </message> <message name="Get. Address. From. Name. Request"> <part name="name" type="xsd: string"/> </message> <message name="Get. Address. From. Name. Response"> <part name="address" type="typens: address"/> </message>

WSDL : les types de port l l Collection d’opérations abstraites Dans ces opérations

WSDL : les types de port l l Collection d’opérations abstraites Dans ces opérations on spécifie les messages input et output Différents types d’opérations Analogie avec des langage de programmation

Exemple de type de port WSDL <port. Type name="Address. Book"> <operation name="add. Entry"> <input

Exemple de type de port WSDL <port. Type name="Address. Book"> <operation name="add. Entry"> <input message="Add. Entry. Request"/> </operation> <operation name="get. Address. From. Name"> <input message="Get. Address. From. Name. Request"/> <output message="Get. Address. From. Name. Response"/> </operation> </port. Type>

WSDL : les liaisons l l l Définit les messages concrets Spécifie le protocole

WSDL : les liaisons l l l Définit les messages concrets Spécifie le protocole utilisé (SOAP dans notre cas) Différentes balises à définir pour SOAP

WSDL : le port et le services l l Le port fait le lien

WSDL : le port et le services l l Le port fait le lien entre une liaison et une adresse réseau Un service est constitué d’un ensemble de ports WSDL.

Fonctionnement en mode client / serveur en PHP l l Un client qui appelle

Fonctionnement en mode client / serveur en PHP l l Un client qui appelle un service Web Le serveur exécute le service et renvoie le résultat Utilisation d’une librairie spécifique : Nu. SOAP Tout le travail est effectué par la librairie.

Interfaçage SPIRIT / SOAP l l l Définir les différents service Web dont on

Interfaçage SPIRIT / SOAP l l l Définir les différents service Web dont on a besoin Identifier les paramètres d’entrée et de sortie Les implémenter Créer le fichier WSDL Développer le client et le serveur en PHP Utiliser le client avec une interface graphique

Conclusion l l SOAP est de plus en plus employé Le plus souvent utilisé

Conclusion l l SOAP est de plus en plus employé Le plus souvent utilisé avec HTTP WSDL pour définir les services Web En PHP le gros du travail est effectué par la librairie