12.07.2015 Views

correction

correction

correction

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Master 2 MIAGE NTDP Nom : Le Prof !UE « Web Services et SOA », PrénomEpreuve écrite individuelle8 Décembre 2008, durée 45 mnsAucun document autorisé => Finalement, autorisés et semble-t-il utiles !!...Exercice 1 – (barème approximatif : 10 points) traitant essentiellement des Web ServicesSous l’apparence de QCMs ces différentes questions devront néanmoins être accompagnées dequelques mots d’explication. Les questions ne sont pas forcément à réponse unique (mais il y en atoujours au moins une de possible !).1. Un fichier WSDL (ex. toto.wsdl), c’est :a) une classe Javab) un fichier XMLc) une page JSPb) uniquement2. « google Search » ou « Amazon web services electronic commerce » requièrent une clé quisert à :a) Identifier le web service invoquéb) Identifier l’utilisateur qui accède au web servicec) Identifier la machine Internet qui émet l’invocation du web serviceb) uniquement3. L’outil Axis d’Apache est :a) Un moteur d’orchestration de processus métierb) Une recommandation du W3C, liée à la technologie des Web Servicesc) Un moteur (encodeur, décodeur) de messages écrits selon le protocole HTTPd) Un moteur (encodeur, décodeur) de messages écrits selon le protocole SOAPAxis sait recevoir et envoyer aussi bien des demandes d’appels de web servicesformulées en paquets http, que formulées selon le protocole SOAP (enveloppe SOAP)4. REST veut dire:a) Une norme du W3Cb) Une manière de dialoguer avec un service web au dessus de IPc) Une manière de dialoguer avec un service web via JMS (Java Messaging System)d) Une façon de représenter une adresse d’un service webC’est le b), et plus précisément, c’est le protocole http au dessus de IP5. Un service web c’est:a) Un processus BPELb) Un ensemble de paquetages et classes Javac) Une page HTMLPage 1 / 7


d) Une page JSPe) Un fichier WSDLb) L’implémentation d’un web service peut effectivement prendre la forme de classesde paquetages Java. Mais aussi peut prendre la forme d’un code écrit en langage BPEL(mais de manière stricte, un web service n’est pas forcément un processus BPEL)Un service web est par contre obligatoirement associé avec un fichier WSDL quispécifie en fait précisément les informations nécessaires pour pouvoir se servir duservice web.6. Pour publier un service web:a) On doit résoudre ses dépendances vis-à-vis d’autres servicesb) On doit utiliser le protocole Internet DNSc) On utilise un registre de services web, qui s’appelle d’ailleurs ?? (répondre dessous)??= UDDIc)uniquement, et plus précisément, les web services (les WSDLs) peuvent êtreenregistrés dans des registres UDDI (pas des DNS qui sont aussi des registres maispour d’autre type d’information)7. Pour utiliser / appeler / être client d’un service web:a) On doit écrire un programme Javab) On doit écrire une page JSPc) On peut utiliser son navigateur webd) On n’a pas besoin de connaître d’URL associéea) on peut écrire un programme java, code java qu’on peut éventuellement insérer dansune page JSP entre les balises (donc b))On peut aussi utiliser simplement son navigateur web.Dans tous les cas, on a bien besoin de connaître l’URL (soit on la tape explicitementdans la barre de navigation, soit, on a l’adresse incluse dans le fichier wsdl utilisé par lecode Java)8. Un fichier décrivant un service web:a) Est obligatoirement un fichier xmlb) Peut se comparer à une interface Java (au sens « interface Java versus classe Java »)c) Doit contenir une balise xml d) Doit contenir une unique balise a) certainementb) Oui en quelque sorte, le service web joue un peu l’équivalent d’une interface Javaparce qu’il montre explicitement quelles méthodes (opérations) avec quels paramètresd’entrée et de sortie il faut leur passer.d) aussi (voir exercice 3 par exemple)9. Un fichier de déploiement d’un service web en utilisant Axis:a) Permet de déployer un code source Java sur le serveur webb) Permet de déployer les classes Java compilées sur le serveur webc) Permet d’exposer tout ou partie de méthodes Java que l’on veut rendre accessiblesc) uniquement. Car pour faire le déploiement du code source ou compilé, il fautmanuellement copier les fichiers correspondants dans les répertoires adéquats duserveur web.Effectivement, on peut dans allowmethods préciser quelles méthodes publiques del’implémentation Java l’on veut exposer (* permet de toutes les exposer)Page 2 / 7


10. Un fichier WSDL associé à un service web:a) Expose au plus une opérationb) Expose autant de types de port (portType) que d’opérationsc) Expose au plus une façon de se binder (binding) à chaque type de porta) non car plusieurs opérations par port sont autorisées.b) oui et non ! car en fait un portType peut contenir plus d’une opération.c) faux, car on a pu voir qu’un porttype peut être associé à plusieurs bindings (http ousoap)Page 3 / 7


Exercice 2 – (barème approximatif : 10 points) traitant essentiellement de SOA11. Les 3 acronymes SCA, BPEL et JBI signifient respectivementServiceComponentArchitectureBusiness Process Execution LanguageJava Business Integration12. La spécification SCA définit :a) Une manière d’enchainer des appels de servicesb) Une manière d’assembler des modules encore appelés composants logicielsc) Une alternative à l’implémentation de services webb) SCA est un modèle permettant d’exprimer les services nécessaires àl’accomplissement d’un service donné par le biais d’une approche type composantlogiciel.Ce n’est pas a) car, SCA n’aborde pas la logique d’orchestration (même si uncomposant SCA peut être implanté en utilisant un programme BPEL)13. Un bus à services permet de :a) D’assembler des services webb) Transformer des invocations de services émises dans une technologie donnée en uneautre technologiec) De publier des services métiers, accessibles via le busa) pas vraiment, le bus permet d’autres choses (ce n’est pas un moteur d’orchestration,ni un modèle de composants logiciels comme SCA).b) oui, c’est un rôle clé du busc) plutôt non, car, en soi, un bus à services n’est pas un registre de services (c’est bienplus, au sens où le bus héberge plusieurs choses, éventuellement parmi elles un registrede services internes). En général, ce registre interne peut permettre de retrouver lesservices à l’intérieur du bus, mais pas à l’extérieur du bus (ce que offre un registryUDDI). Donc, même si un service métier est publié dans le registre interne du bus, iln’est pas visible à l’exérieur. Donc pas publié, et donc pas appelable de l’extérieur.14. Un workflow (processus métier) est une sorte de programme :a) Dont l’unique rôle est d’invoquer des services webb) Dont la syntaxe est proche de celle de Javac) Dont la sémantique des invocations de services est basée sur des échanges demessages, ou bien sur des appels de méthodes à distance ?d) Qui permet de passer des paramètres en entrée et/ou en sortieRépondre à c), quels que soient vos choix pour a),b),d)La philosophie dans BPEL (et dans les web services d’ailleurs) est que tous leséchanges sont basés sur l’échange de messages (même si dans ces messages on peutmentionner des noms d’opérations, en quelque sorte des noms de méthodes que l’onveut déclencher à distance)a) pas seulement, car dans le BPEL, on peut faire des boucles, test, etc.d) oui, on peut passer des valeurs d’entrée et recevoir des valeurs en sortie15. Une architecture logicielle de type SOA signifie :a) Qu’elle est constituée de modules logiciels décrits dans une unique technologieb) Qu’elle peut faire référence à des applications externesc) Que l’usage d’un bus à services est obligatoireSurement pas a), c’est tout le contraire.Page 4 / 7


Plutôt le b) au sens où ces applications externes peuvent être emballées en tant queservice ( via par exemple un service web), et ainsi, rendues intégrables avec d’autresservicesc) pas du tout : une architecture SOA peut être composée uniquement de web servicess’invoquant directement les uns les autres (pensez au TP1 ensemble de fichiers axis-08.zip)16. Les notions d’architecture SOA et de processus métier sonta) complémentairesb) incompatiblesExpliquer/justifier clairement votre choix ici :a) car un module écrit en BPEL peut justement jouer le rôle de chef d’orchestre quidicte à quel moment les services utilisés dans la SOA sont invoqués.17. Un processus métier écrit en BPEL :a) N’a aucun lien particulier avec la technologie des web servicesb) S’expose en tant que web servicec) Expose ses dépendances vers des services extérieursb) OUIc) aussi, via les Partner Links (même si les opérations receive dans le BPEL se font surdes ports, eux-mêmes éléments à part entière des Partner Links)18. Un moteur d’orchestration de processus métiers écrits en BPEL :a) Se charge uniquement de l’interprétation du processusb) Sait invoquer lui-même des services web requis par le processusc) Peut être hébergé en tant qu’élément d’un bus à servicesa) OUIb) non, c’est justement pour cela qu’on a besoin avec d’un moteur de SOAP et WebServices tel Axis19. La notion de gouvernance dans le domaine du SOA :a) Relève uniquement de la politique politicienne!b) Aide à inclure la prise de décisions au cours du cycle de vie de servicesc) Se traduit par des contrats que les services doivent exposerb) Ouic) seulement en partie, cad que lorsqu’on spécifie un service, on détermine aussi lecontrat qu’il s’engage à respecter si on veut utiliser ce service en tant que client. Doncle contrat fait partie de la spécification. Et cette spécification est validée durant le cyclede vie du service (au moment où la gouvernance – le gouvernement --décide dedévelopper le service)20. L’objectif d’une approche SOA dans le monde de l’informatique d’entreprise est :a) De maximiser la réutilisation de codeb) De pouvoir intégrer des applications existantes non compatibles a priori entre ellesc) De pouvoir mieux surveiller les performances de chacun des services participants àla SOAa) oui avant toutb) oui aussiPage 5 / 7


encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>My first serviceCe service web offre une unique opération : sur envoi d’un message de type GetLastTradePrice,l’opération nommée GetLastTradePrice va s’exécuter. L’URL pour déclencher cette opérationdepuis un navigateur web devraithttp://example.com/stockquote/method=GetLastPrice?tickerSymbol=MonEntreprisePreferee.Le message sera véhiculé par une enveloppe SOAP (on a défini un soap binding). Le type dedonnée en entrée est un tickerSymbol prenant une valeur de type chaine de caractères. En réponse,on obtient un price que l’on peut interpréter comme un flottant.Page 7 / 7

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!