Systèmes et Applications Répartis

Web services, SOAP, WSDL, XML · exam

Voir tous les documents en développement web

Ecole Nationale des Sciences de l’Informatique

II2-RSR A. U. : 2014/2015

TD

Systèmes et Applications Répartis

Web services

(Avril 2015)

Exercice 1: (Exam MCAR 2/2015)

1) Dans un fichier wsdl, dire à quoi correspondent les balises suivantes :

Balises wsdl

Terme en java

operation

portType

message

service

type

……………….

……………….

……………….

class of package

……………….

2) Dans l’extrait de l’instance de l’enveloppe SOAP suivante, dire à quelle méthode java

correspond-il ?

<!ENTITY SOAPENC "http://www.w3.org/2001/06/soap-encoding">

<s:Envelope xmlns:s="...">

<s:Body>

<order xmlns="..." s:encodingStyle=&SOAPENC;>

<partName xsi:type="string">valve</partName>

<quantity xsi:type="string">12</quantity>

</order>

</s:Body>

</s:Envelope>

(a) void partName(String s); void quantity(integer n)

Publicité

(b) void order(String quantity, String partName)

(c) void order(String quantity, integer partName)

(d) String order(String partName, String quantity)

(e) Aucune

3) Dans l’extrait du fichier WSDL (Cf. annexe), dire

a) quel est le nom du « web service »,

b) quels sont les types de données décrits dans le langage XML, et

c) quelles sont les opérations, et les paramètres d’appel et de retour utilisés, ainsi que

le mode de transport de la liaison.

Justifiez vos réponses.

4) Que signifie la ligne suivante ?

<soap:body use="literal"

namespace="http://schemas.snowboard-

info.com/EndorsementSearch.xsd"/>

5) Suite à la question 3), dans le fonctionnement de SOAP en mode RPC, voici un extrait

d’un exemple de message requête (extrait du document W3C Annotated WSDL examples).

<SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<SOAP-ENV:Body>

<m:GetEndorsBoarder>

xmlns:m="http://namespaces.snowboard-info.com">

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

Publicité

11. </SOAP-ENV:Envelope>

<manufacturer>K2</manufacture>

<mode>Fatbob</mode>

</m:GetEndorsBoarder>

<SOAP-ENV:Body>

Indiquer les SEPT erreurs de syntaxe contenues dans cet extrait de fichier. Justifiez

ANNEXE

<?xml version="1.0"?>

<wsdl:definitions name="EndorsementSearch"

targetNamespace="http://namespaces.snowboard-info.com"

xmlns:es="http://www.snowboard-info.com/EndorsementSearch.wsdl"

xmlns:esxsd="http://schemas.snowboard-info.com/EndorsementSearch.xsd"

xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"

xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">

<wsdl:types>

<xsd:schema targetNamespace="http://namespaces.snowboard-info.com"

xmlns:xsd="http://www.w3.org/1999/XMLSchema">

<xsd:element name="GetEndorsingBoarder">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="manufacturer" type="string"/>

<xsd:element name="model" type="string"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="GetEndorsingBoarderResponse">

<xsd:complexType>

<xsd:all>

<xsd:element name="endorsingBoarder" type="string"/>

</xsd:all>

</xsd:complexType>

</xsd:element>

Publicité

<xsd:element name="GetEndorsingBoarderFault">

<xsd:complexType>

<xsd:all>

<xsd:element name="errorMessage" type="string"/>

</xsd:all>

</xsd:complexType>

</xsd:element>

</xsd:schema>

</wsdl:types>

<wsdl:message name="GetEndorsingBoarderRequest">

<wsdl:part name="body" element="esxsd:GetEndorsingBoarder"/>

</wsdl:message>

<wsdl:message name="GetEndorsingBoarderResponse">

<wsdl:part name="body" element="esxsd:GetEndorsingBoarderResponse"/>

</wsdl:message>

<wsdl:portType name="GetEndorsingBoarderPortType">

<wsdl:operation name="GetEndorsingBoarder">

<wsdl:input message="es:GetEndorsingBoarderRequest"/>

<wsdl:output message="es:GetEndorsingBoarderResponse"/>

<wsdl:fault message="es:GetEndorsingBoarderFault"/>

</wsdl:operation>

</wsdl:portType>

<wsdl:binding name="EndorsementSearchSoapBinding"

type="es:GetEndorsingBoarderPortType">

<soap:binding style="document"

transport="http://schemas.xmlsoap.org/soap/http"/>

<!-- semi-opaque container of network transport details classed by

soap:binding above @@@ -->

<wsdl:operation name="GetEndorsingBoarder">

<!-- again bind to SOAP? @@@ -->

<soap:operation soapAction="http://www.snowboard-

info.com/EndorsementSearch"/>

Publicité

<wsdl:input>

<soap:body use="literal"

namespace="http://schemas.snowboard-

info.com/EndorsementSearch.xsd"/>

</wsdl:input>

<wsdl:output>

<soap:body use="literal"

namespace="http://schemas.snowboard-

</wsdl:output>

<wsdl:fault>

info.com/EndorsementSearch.xsd"/>

<soap:body use="literal"

namespace="http://schemas.snowboard-

info.com/EndorsementSearch.xsd"/>

</wsdl:fault>

</wsdl:operation>

</wsdl:binding>

<wsdl:service name="EndorsementSearchService">

<wsdl:documentation>snowboarding-info.com Endorsement

Service</wsdl:documentation>

<wsdl:port name="GetEndorsingBoarderPort"

binding="es:EndorsementSearchSoapBinding">

<soap:address location="http://www.snowboard-

info.com/EndorsementSearch"/>

</wsdl:port>

</wsdl:service>

</wsdl:definitions>