Examen Middleware orienté composant (MDOC) Partie J2EE

publicité
Université Pierre et Marie Curie
Master Informatique – M2
Cours : Middleware orienté composants (MDOC)
Janvier 2006
Examen
Middleware orienté composant (MDOC)
Partie J2EE
Les parties J2EE et Web Services sont à rédiger sur des copies séparées.
Documents autorisés. 2 heures.
Le barème est donné à titre indicatif.
Ce sujet comporte 4 pages.
1 Questions de cours (3 points)
Répondre aux questions en justifiant brièvement vos réponses.
1.1
1.2
1.3
Le terme session est employé à la fois pour les JSP et les EJB. Donner les deux définitions.
Expliquer la différence entre les valeurs retournées par les méthodes executeQuery et
executeUpdate de JDBC.
Donner, en une phrase, la différence entre les propriétés transactionnelles SUPPORTS et REQUIRED
des EJB.
2 JSP (5 points)
Le TP J2EE réalisé dans le cadre du module MDOC comporte une partie présentation graphique qui a été
réalisée à l’aide d’une ou de plusieurs JSP. Ces JSP sont capables de répondre à plusieurs commandes
(créer un compte, transférer de l’argent, etc.) dont le traitement est codé en dur dans la ou les JSP. Par
ailleurs, lorsque plusieurs JSP sont présentes, l’enchaînement des JSP est également codé en dur.
Proposer en 2 pages maximum une solution pour séparer les éléments de présentation graphique, de la
définition de l’enchaînement des pages et des actions à effectuer. Il s’agit donc de faire en sorte que la
définition des traitements à exécuter et des enchaînements de pages JSP ne soient plus codés en dur dans
la JSP.
Votre solution doit être aussi précise et compréhensible que possible sans rentrer dans tous les détails de
programmation. Il s’agit donc d’expliquer en français et avec des schémas et/ou avec des éléments de
programmation (classes, interfaces, servlet, fichiers texte, XML, JSP, etc.) comment mettre en œuvre la
solution.
1/4
3 EJB (6 points)
Cet exercice concerne la définition d’un site de commerce en ligne développé avec des EJB.
Le site propose un ensemble d’articles organisés par catégories (livres, DVD, etc.). Les clients peuvent
passer des commandes et on souhaite conserver leurs coordonnées et leurs commandes. Chaque commande peut concerner un ou plusieurs articles.
Le scenario type d’utilisation du site est le suivant :
- consultation des pages présentant les articles ou recherche d’un article
- choix d’un ou plusieurs articles
- saisie des coordonnées ou identification à l’aide d’un couple login/password attribué lors d’une
commande précédente
- acceptation de la commande et paiement
3.1
3.2
3.3
3.4
Proposer un ensemble d’EJB pour mettre en œuvre ce site. Pour chaque EJB, préciser, en français,
sa nature (session/entité) et les méthodes principales des interfaces Home et Remote. On ne demande pas le code.
Proposer, en français, une solution pour gérer le panier des clients, i.e. pour gérer le mécanisme qui
permet à un client de sélectionner plusieurs articles avant de saisir ses coordonnées et d’accepter la
commande.
En fonction des éléments mis en place précédemment, donner le code Java du mécanisme qui permet de calculer le montant d’une commande. Il ne s’agit pas de donner tout le code de l’application,
mais seulement la partie nécessaire à ce calcul.
On souhaite ajouter au site un mécanisme qui permet de déclencher automatiquement des réapprovisionnements lorsque la quantité d’un article en stock franchit un certain seuil. Décrire, en français,
les éléments à mettre en place pour réaliser cela.
Partie Web Services
À rédiger sur une copie séparée.
4 Questions de cours (3 points)
4.1
Certains Web Services possèdent des binding HTTP POST, HTTP GET, et HTTP SOAP. Quelles
sont les différences entre ces binding ? Quels sont les intérêts pour un service web de proposer simultanément plusieurs binding ?
4.2
Lorsqu’un client souhaite utiliser un Web Service, faut-il obligatoirement qu’il possède la description WSDL du service ? Si oui, pourquoi ? Si non, quelles sont les alternatives ?
2/4
5 Exercice (3 points)
Soit la description WSDL suivante :
La description suivante est donnée par le fournisseur du service :
« Uses ImageMagick (http://www.imagemagick.org/) convert program to convert from/to over 90 image
formats. »
« The image to be converted must be accessible by URL. The output image type is determined by the
convert program from the output filename. One option is provided, a boolean true or false that tells the
convert program whether to flatten multi-layer images into one file. The service returns the URL of the
converted image in zip format, to accommodate the generation of multiple files from multi-layer images.
Maximum input image size is 2 MB. »
5.1
Précisez le ou les Services Web décrits dans cette description (en expliquant très précisément les
paramètres et leur type).
WSDL2Java de Axis permet de générer des classes Java permettant d’invoquer des Web Service. Une de
ces classes correspond à la traduction du PortType (avec conversion des types XMLSchema en Java) :
3/4
public interface ICPortType extends java.rmi.Remote {
public String imageConvert(String imageInputURL,
boolean flatten) throws java.rmi.RemoteException;
}
5.2
5.3
5.4
String
imageOutputFilename,
Expliquez la relation entre cette interface Java et la description WSDL.
Qu’aurait-il fallu changer pour avoir dans l’interface Java des paramètres typés par la classe
java.net.URL (qui représente une URL) ?
Qu’aurait-il fallu changer pour avoir dans l’interface Java des paramètres typés par la classe
java.io.InputStream (qui représente un flux en lecture).
4/4
Téléchargement