SOAP et les RPC XML SOAP WSDL RPC
- Slides: 29
SOAP et les RPC XML SOAP WSDL RPC
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 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 ce qu’un Name. Space ? Exemple
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 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 : 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é 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 (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. Understand Attribut Actor pour les intermédiaires SOAP
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 directement entre les balises sauf exception
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"/> <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 données
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 ? – – – 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. 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 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 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 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" 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 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 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 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 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 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 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é avec HTTP WSDL pour définir les services Web En PHP le gros du travail est effectué par la librairie
- Uddi
- Soap wsdl uddi
- Soap wsdl uddi
- Wsdl meaning in soap
- Java soap xml 파싱
- Websevices
- Uddi wsdl
- What is wsdl
- What wsdl stands for
- Annuaire uddi
- Vermeer rpc packet
- Ucla rpc
- Rpc deventer
- Rpc plumbing
- Rpc
- Openchain rpc
- Statutory rape rpc
- Rpc status: -532462766 -532462766
- Rpc
- Design issues of remote procedure call
- Asynchronous rpc
- Transaction processing system architecture
- Rpc computer science
- Brookens center urbana il
- Rpc semantics in the presence of failures
- Rpc
- Rpc implementation in distributed system
- Remote procedure call diagram
- Lightweight rpc
- Rpc and rmi