Vous êtes sur la page 1sur 4

Consortium International e-Miage

&
Université de Picardie Jules Verne d’Amiens

EXAMEN Code du Module : D314


Session de décembre 2018 Intitulé du module : Ingénierie des systèmes à
Nombre de pages : 4 (dont annexes) base de services
Nom de l’enseignant : David DURAND
Durée de l’épreuve : 1 heure

Aucun document n’est autorisé (supports de cours, livres)


Aucun appareil n’est autorisé.

Remarque : l’évaluation de l’examen est conditionnée à la réalisation du projet du semestre en cours.


Les questions sont en rapport avec le thème abordé.

Sujet

1. Répondez aux affirmations et propositions suivantes, en tenant compte du contexte des


web-services
a. L’utilisation des web-services permet un couplage fort entre l’application cliente et
le serveur
☐ VRAI ☐ FAUX
b. Dans les web-services, le format des messages utilisé pour échanger des données
entre le service et l’application cliente est :
☐ IDL ☐ WSDL ☐ SOAP ☐ AJAX ☐ JSON
c. L’application cliente et le serveur partagent nécessairement la même base de
données
☐ VRAI ☐ FAUX
d. Il est recommandé de développer l’application cliente et le service dans le même
langage et sur la même plateforme
☐ VRAI ☐ FAUX
e. Les appels de l’application cliente vers le service sont de type :
☐ synchrones (bloquants) ☐ asynchrones (non bloquants)
f. La couche de transport utilisée pour les échanges est :
☐ HTTP ☐ SFTP ☐ RTSP ☐ WSP
g. Un service est décrit à l’aide du langage
☐ IDL ☐ UML ☐ WSDL ☐ BPML
h. En java, quel type de méta-données est utilisé pour déclarer un service et ses
opérations directement au sein du code ?
☐ les Exceptions ☐ les Annotations ☐ les Data-Sets

2. A partir du fichier donné en annexe, caractériser le Web Service décrit :


a. Nom du service
b. Fonctions proposées, paramètres d’entrée et types de données renvoyées
c. Déduire le rôle du service

1
3. Dans le projet réalisé, le Service fait appel à un service externe de géolocalisation , qui
détermine la position d’une mesure à partir des informations saisies à la création du
compte.
a. Quel sont le ou les inconvénients de l’architecture choisie ici ?
b. Proposez une autre solution

FICHIER DE DEFINITION
<definitions xmlns:wsu="http://docs.oasis-
open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:wsp="http://www.w3.org/ns/ws-policy"
xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://emiage.org/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.xmlsoap.org/wsdl/"
targetNamespace="http://emiage.org/" name="SampleWebService">
<types>
<xsd:schema>
<xsd:import namespace="http://emiage.org/"
schemaLocation="http://localhost:8080/ExampleService/SampleWebServic
e?xsd=1"/>
</xsd:schema>
</types>
<message name="getState">
<part name="parameters" element="tns:getState"/>
</message>
<message name="getStateResponse">
<part name="parameters" element="tns:getStateResponse"/>
</message>
<message name="setState">
<part name="parameters" element="tns:setState"/>
</message>
<message name="setStateResponse">
<part name="parameters" element="tns:setStateResponse"/>
</message>
<message name="listDevices">
<part name="parameters" element="tns:listDevices"/>
</message>
<message name="listDevicesResponse">
<part name="parameters" element="tns:listDevicesResponse"/>
</message>
<portType name="SampleWebService">
<operation name="getState">
<input
wsam:Action="http://emiage.org/SampleWebService/getStateRequest"
message="tns:getState"/>
<output
wsam:Action="http://emiage.org/SampleWebService/getStateResponse"
message="tns:getStateResponse"/>
</operation>
<operation name="setState">
<input
wsam:Action="http://emiage.org/SampleWebService/setStateRequest"
message="tns:setState"/>
<output
wsam:Action="http://emiage.org/SampleWebService/setStateResponse"
message="tns:setStateResponse"/>
</operation>
<operation name="listDevices">

2
<input
wsam:Action="http://emiage.org/SampleWebService/listDevicesRequest"
message="tns:listDevices"/>
<output
wsam:Action="http://emiage.org/SampleWebService/listDevicesResponse"
message="tns:listDevicesResponse"/>
</operation>
</portType>
<binding name="SampleWebServicePortBinding"
type="tns:SampleWebService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>
<operation name="getState">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="setState">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="listDevices">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="SampleWebService">
<port name="SampleWebServicePort"
binding="tns:SampleWebServicePortBinding">
<soap:address
location="http://localhost:8080/ExampleService/SampleWebService"/>
</port>
</service>
</definitions>

SCHEMAS DE DONNEES
<xs:schema xmlns:tns="http://emiage.org/" xmlns:xs="http://www.w3.or
g/2001/XMLSchema" version="1.0" targetNamespace="http://emiage.org/"
>
<xs:element name="getState" type="tns:getState"/>
<xs:element name="getStateResponse" type="tns:getStateResponse"/>
<xs:element name="listDevices" type="tns:listDevices"/>
<xs:element name="listDevicesResponse" type="tns:listDevicesResponse
"/>
<xs:element name="setState" type="tns:setState"/>
<xs:element name="setStateResponse" type="tns:setStateResponse"/>

3
<xs:complexType name="getState">
<xs:sequence>
<xs:element name="itemId" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="getStateResponse">
<xs:sequence>
<xs:element name="return" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="listDevices">
<xs:sequence/>
</xs:complexType>
<xs:complexType name="listDevicesResponse">
<xs:sequence>
<xs:element name="return" type="xs:string" nillable="true" minOccurs
="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="setState">
<xs:sequence>
<xs:element name="pId" type="xs:string" minOccurs="0"/>
<xs:element name="arg1" type="xs:string" nillable="true" minOccurs="
0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="setStateResponse">
<xs:sequence>
<xs:element name="return" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:schema>

Vous aimerez peut-être aussi