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>