Vous êtes sur la page 1sur 7

Master 2 MIAGE NTDP UE Web Services et SOA ,

Nom : Le Prof ! Prnom

Epreuve crite individuelle 8 Dcembre 2008, dure 45 mns Aucun document autoris => Finalement, autoriss et semble-t-il utiles !!...

Exercice 1 (barme approximatif : 10 points) traitant essentiellement des Web Services


Sous lapparence de QCMs ces diffrentes questions devront nanmoins tre accompagnes de quelques mots dexplication. Les questions ne sont pas forcment rponse unique (mais il y en a toujours au moins une de possible !). 1. Un fichier WSDL (ex. toto.wsdl), cest : a) une classe Java b) un fichier XML c) une page JSP b) uniquement

2. google Search ou Amazon web services electronic commerce requirent une cl qui sert : a) Identifier le web service invoqu b) Identifier lutilisateur qui accde au web service c) Identifier la machine Internet qui met linvocation du web service b) uniquement

3. Loutil Axis dApache est : a) Un moteur dorchestration de processus mtier b) Une recommandation du W3C, lie la technologie des Web Services c) Un moteur (encodeur, dcodeur) de messages crits selon le protocole HTTP d) Un moteur (encodeur, dcodeur) de messages crits selon le protocole SOAP Axis sait recevoir et envoyer aussi bien des demandes dappels de web services formules en paquets http, que formules selon le protocole SOAP (enveloppe SOAP)

4. REST veut dire: a) Une norme du W3C b) Une manire de dialoguer avec un service web au dessus de IP c) Une manire de dialoguer avec un service web via JMS (Java Messaging System) d) Une faon de reprsenter une adresse dun service web Cest le b), et plus prcisment, cest le protocole http au dessus de IP

5. Un service web cest: a) Un processus BPEL b) Un ensemble de paquetages et classes Java c) Une page HTML Page 1 / 7

d) Une page JSP e) Un fichier WSDL b) Limplmentation dun web service peut effectivement prendre la forme de classes de paquetages Java. Mais aussi peut prendre la forme dun code crit en langage BPEL (mais de manire stricte, un web service nest pas forcment un processus BPEL) Un service web est par contre obligatoirement associ avec un fichier WSDL qui spcifie en fait prcisment les informations ncessaires pour pouvoir se servir du service web. 6. Pour publier un service web: a) On doit rsoudre ses dpendances vis--vis dautres services b) On doit utiliser le protocole Internet DNS c) On utilise un registre de services web, qui sappelle dailleurs ?? (rpondre dessous) ??= UDDI c)uniquement, et plus prcisment, les web services (les WSDLs) peuvent tre enregistrs dans des registres UDDI (pas des DNS qui sont aussi des registres mais pour dautre type dinformation) 7. Pour utiliser / appeler / tre client dun service web: a) On doit crire un programme Java b) On doit crire une page JSP c) On peut utiliser son navigateur web d) On na pas besoin de connatre dURL associe a) on peut crire un programme java, code java quon peut ventuellement insrer dans une page JSP entre les balises <% %> (donc b)) On peut aussi utiliser simplement son navigateur web. Dans tous les cas, on a bien besoin de connatre lURL (soit on la tape explicitement dans la barre de navigation, soit, on a ladresse incluse dans le fichier wsdl utilis par le code Java) 8. Un fichier dcrivant un service web: a) Est obligatoirement un fichier xml b) Peut se comparer une interface Java (au sens interface Java versus classe Java ) c) Doit contenir une balise xml <deployment> d) Doit contenir une unique balise <service> a) certainement b) Oui en quelque sorte, le service web joue un peu lquivalent dune interface Java parce quil montre explicitement quelles mthodes (oprations) avec quels paramtres dentre et de sortie il faut leur passer. d) aussi (voir exercice 3 par exemple) 9. Un fichier de dploiement dun service web en utilisant Axis: a) Permet de dployer un code source Java sur le serveur web b) Permet de dployer les classes Java compiles sur le serveur web c) Permet dexposer tout ou partie de mthodes Java que lon veut rendre accessibles c) uniquement. Car pour faire le dploiement du code source ou compil, il faut manuellement copier les fichiers correspondants dans les rpertoires adquats du serveur web. Effectivement, on peut dans allowmethods prciser quelles mthodes publiques de limplmentation Java lon veut exposer (* permet de toutes les exposer)

Page 2 / 7

10. Un fichier WSDL associ un service web: a) Expose au plus une opration b) Expose autant de types de port (portType) que doprations c) Expose au plus une faon de se binder (binding) chaque type de port a) non car plusieurs oprations par port sont autorises. b) oui et non ! car en fait un portType peut contenir plus dune opration. c) faux, car on a pu voir quun porttype peut tre associ plusieurs bindings (http ou soap)

Page 3 / 7

Exercice 2 (barme approximatif : 10 points) traitant essentiellement de SOA


11. Les 3 acronymes SCA, BPEL et JBI signifient respectivement ServiceComponentArchitecture Business Process Execution Language Java Business Integration 12. La spcification SCA dfinit : a) Une manire denchainer des appels de services b) Une manire dassembler des modules encore appels composants logiciels c) Une alternative limplmentation de services web b) SCA est un modle permettant dexprimer les services ncessaires laccomplissement dun service donn par le biais dune approche type composant logiciel. Ce nest pas a) car, SCA naborde pas la logique dorchestration (mme si un composant SCA peut tre implant en utilisant un programme BPEL) 13. Un bus services permet de : a) Dassembler des services web b) Transformer des invocations de services mises dans une technologie donne en une autre technologie c) De publier des services mtiers, accessibles via le bus a) pas vraiment, le bus permet dautres choses (ce nest pas un moteur dorchestration, ni un modle de composants logiciels comme SCA). b) oui, cest un rle cl du bus c) plutt non, car, en soi, un bus services nest pas un registre de services (cest bien plus, au sens o le bus hberge plusieurs choses, ventuellement parmi elles un registre de services internes). En gnral, ce registre interne peut permettre de retrouver les services lintrieur du bus, mais pas lextrieur du bus (ce que offre un registry UDDI). Donc, mme si un service mtier est publi dans le registre interne du bus, il nest pas visible lexrieur. Donc pas publi, et donc pas appelable de lextrieur. 14. Un workflow (processus mtier) est une sorte de programme : a) Dont lunique rle est dinvoquer des services web b) Dont la syntaxe est proche de celle de Java c) Dont la smantique des invocations de services est base sur des changes de messages, ou bien sur des appels de mthodes distance ? d) Qui permet de passer des paramtres en entre et/ou en sortie Rpondre c), quels que soient vos choix pour a),b),d) La philosophie dans BPEL (et dans les web services dailleurs) est que tous les changes sont bass sur lchange de messages (mme si dans ces messages on peut mentionner des noms doprations, en quelque sorte des noms de mthodes que lon veut dclencher distance) a) pas seulement, car dans le BPEL, on peut faire des boucles, test, etc. d) oui, on peut passer des valeurs dentre et recevoir des valeurs en sortie 15. Une architecture logicielle de type SOA signifie : a) Quelle est constitue de modules logiciels dcrits dans une unique technologie b) Quelle peut faire rfrence des applications externes c) Que lusage dun bus services est obligatoire Surement pas a), cest tout le contraire.

Page 4 / 7

Plutt le b) au sens o ces applications externes peuvent tre emballes en tant que service ( via par exemple un service web), et ainsi, rendues intgrables avec dautres services c) pas du tout : une architecture SOA peut tre compose uniquement de web services sinvoquant directement les uns les autres (pensez au TP1 ensemble de fichiers axis08.zip) 16. Les notions darchitecture SOA et de processus mtier sont a) complmentaires b) incompatibles Expliquer/justifier clairement votre choix ici : a) car un module crit en BPEL peut justement jouer le rle de chef dorchestre qui dicte quel moment les services utiliss dans la SOA sont invoqus.

17. Un processus mtier crit en BPEL : a) Na aucun lien particulier avec la technologie des web services b) Sexpose en tant que web service c) Expose ses dpendances vers des services extrieurs b) OUI c) aussi, via les Partner Links (mme si les oprations receive dans le BPEL se font sur des ports, eux-mmes lments part entire des Partner Links) 18. Un moteur dorchestration de processus mtiers crits en BPEL : a) Se charge uniquement de linterprtation du processus b) Sait invoquer lui-mme des services web requis par le processus c) Peut tre hberg en tant qulment dun bus services a) OUI b) non, cest justement pour cela quon a besoin avec dun moteur de SOAP et Web Services tel Axis 19. La notion de gouvernance dans le domaine du SOA : a) Relve uniquement de la politique politicienne! b) Aide inclure la prise de dcisions au cours du cycle de vie de services c) Se traduit par des contrats que les services doivent exposer b) Oui c) seulement en partie, cad que lorsquon spcifie un service, on dtermine aussi le contrat quil sengage respecter si on veut utiliser ce service en tant que client. Donc le contrat fait partie de la spcification. Et cette spcification est valide durant le cycle de vie du service (au moment o la gouvernance le gouvernement --dcide de dvelopper le service) 20. Lobjectif dune approche SOA dans le monde de linformatique dentreprise est : a) De maximiser la rutilisation de code b) De pouvoir intgrer des applications existantes non compatibles a priori entre elles c) De pouvoir mieux surveiller les performances de chacun des services participants la SOA a) oui avant tout b) oui aussi

Page 5 / 7

c) un peu aussi, car, chaque module logiciel est bien identifi en tant que service On peut donc facilement lui associer les informations de monitoring (de qualit de service comme on dit) et ainsi mesurer ses performances, et vrifier quil honore son contrat

Exercice 3 (5 points) Annoter ce WSDL de vos commentaires : quoi il sert, comment sen
servir dun point de vue client, quelles donnes vont circuler quand on lutilise, etc
<?xml version="1.0"?> <definitions name="StockQuote" targetNamespace="http://example.com/stockquote.wsdl" xmlns:tns="http://example.com/stockquote.wsdl" xmlns:xsd1="http://example.com/stockquote.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <schema targetNamespace="http://example.com/stockquote.xsd" xmlns="http://www.w3.org/1999/XMLSchema"> <element name="TradePriceRequest"> <complexType> <all> <element name="tickerSymbol" type="string"/> </all> </complexType> </element> <element name="TradePrice"> <complexType> <all> <element name="price" type="float"/> </all> </complexType> </element> </schema> </types> <message name="GetLastTradePriceInput"> <part name="body" element="xsd1:TradePrice"/> </message> <message name="GetLastTradePriceOutput"> <part name="body" element="xsd1:TradePriceResult"/> </message> <portType name="StockQuotePortType"> <operation name="GetLastTradePrice"> <input message="tns:GetLastTradePriceInput"/> <output message="tns:GetLastTradePriceOutput"/> </operation> </portType> <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="GetLastTradePrice"> <soap:operation soapAction="http://example.com/GetLastTradePrice"/> <input> <soap:body use="literal" namespace="http://example.com/stockquote.xsd" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> <output> <soap:body use="literal" namespace="http://example.com/stockquote.xsd"

Page 6 / 7

encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </output> </operation> </binding> <service name="StockQuoteService"> <documentation>My first service</documentation> <port name="StockQuotePort" binding="tns:StockQuoteBinding"> <soap:address location="http://example.com/stockquote"/> </port> </service> </definitions>

Ce service web offre une unique opration : sur envoi dun message de type GetLastTradePrice, lopration nomme GetLastTradePrice va sexcuter. LURL pour dclencher cette opration depuis un navigateur web devrait http://example.com/stockquote/method=GetLastPrice?tickerSymbol=MonEntreprisePreferee. Le message sera vhicul par une enveloppe SOAP (on a dfini un soap binding). Le type de donne en entre est un tickerSymbol prenant une valeur de type chaine de caractres. En rponse, on obtient un price que lon peut interprter comme un flottant.

Page 7 / 7