Vous êtes sur la page 1sur 4

Epreuve finale / CAGL - 2015

(Niveau : Master 2 IL - Durée 1h:30 mn).

− Documents Interdits.
− L'utilisation des téléphones portables et les échanges de stylos,...etc. sont strictement interdit.
− L'ensemble des EJB implémentés devront respecter la norme 3.0.

Exercice 1 (02 points) :

1. Expliquer la différence entre EJB3Entity et Hibernate.


2. Donner les inconvénients de l'utilisation des API de la plateforme J2EE.

Exercice 2 (08 points) :

Nous nous proposons d'étudier quelques éléments relatifs au système d'information global d'une entreprise. Une
entreprise emploie au moins une personne. Une personne travaille pour une et une seule entreprise pour une
certaine durée. On considère qu'une entreprise est identifiée par : un code, un nom et une description. Une
personne est identifiée par : un numéro, un nom, une date de naissance et une adresse.

1. Donner l’implémentation de l’entité Personne et Entreprise en utilisant les EJB3 Entity.


2. Ecrire une classe cliente qui permet de :
a) Insérer une personne.
b) Rechercher une personne donnée et une entreprise donnée.
c) Afficher la liste des personnes qui habitent à "Alger", qui sont nés avant une date donnée et qui
travaillent dans une entreprise donnée.
3. Donner l’implémentation de l'entité Personne en utilisant Hibernate.

Exercice 3 (10 points) :

1. Ecrire un EJB3 (EJB3_A) qui permet de réaliser les opérations suivantes :


− Ajouter un élément dans un tableau (T1) d’entiers de taille 100, de telle façon à maintenir le tri (le
tableau est trié dans l'ordre décroissant).
− Retourner la position i dans le tableau T1 telle que T1[i] est le début de la plus longue suite consécutive
d’une valeur (val) donnée.
2. Ecrire un EJB3 (EJB3_B) qui permet de réaliser les opérations suivantes :
− Déterminer si deux entiers naturels sont jumeaux, c.à.d. composés par les mêmes chiffres et ayant le
même nombre de chiffres ( exemple : 935, 359, 593, 395).
− Déterminer si deux entiers naturels sont frères, c.à.d. ont la même somme des chiffres qui les
composent (exemple : 195, 16044, 69).
− Calculer et sauvegarder la somme et le produit de deux entiers dans une base des données.
3. Ecrire une classe (client1.java) qui permet de tester l'EJB_A.
4. Ecrire une classe (client2.java) qui permet d'invoquer les méthodes de l'EJB_B via l'EJB_A (pas de lien
direct entre client2.java et EJB_B).

Bon courage.
Epreuve finale 2014

Module : Concepts Avancés du Génie Logiciel et des Systèmes d'Informations.


(Niveau : Master 2 IL - Durée 1h:30 mn).

− Documents Interdits.
− L'utilisation des téléphones portables et les échanges de stylos,...etc. sont strictement interdit.
− L'ensemble des EJB implémentés devront respecter la norme 3.0.

Exercice 1 :

Nous nous proposons d'étudier quelques éléments relatifs au système d'information global d'un
laboratoire de recherche. Un laboratoire de recherche accueille différents membres, qui peuvent être
des chercheurs, des personnels administratifs ou des personnels techniques. Le laboratoire a un
directeur qui doit être membre du laboratoire et ne peut diriger qu'un laboratoire. Tout membre est
décrit par un nom, prénom, date de naissance et adresse. Le laboratoire regroupe plusieurs projets de
recherche. Un projet de recherche est défini comme une activité spécifique de recherche, disposant
de buts, d'objectifs, durée, budget et de résultats précis. Le laboratoire offre un certain nombre de
ressources matérielles et logicielles.

4. Identifier les entités présentes.


5. Donner l’implémentation de l’entité Membre en utilisant les EJB3 Entity.
6. Ecrire une classe cliente qui permet de :
− Insérer un membre.
− Rechercher un membre donné.
− Afficher tous les chercheurs qui habitent a "Alger" et qui sont nés avant une date donnée.
7. Donner l’implémentation d’une entité de cette application en utilisant Hibernate.

Exercice 2 :

A. Compléter le tableau suivant :

Concept Explication
Hibernate
NNTP
JPA
DriverManager
Statement
ResultSet

B. Sélectionner la (ou les) Bonne(s) réponse(s) :

1. L'architecture d'une application J2EE se découpe en au moins trois tiers :


− La partie application, la partie web, la partie présentation.
− La partie cliente, la partie métier, la partie donnée.
− La partie modèle, la partie vue, la partie contrôleur.
2. Les 3 types d'EJB sont :
− EJB Service, EJB Composant, EJB Communication.
− EJB Traitement, EJB Présentation, EJB Communication.
− EJB Session, EJB Entité, EJB Message.
3. L'annotation @Table implémentée dans la classe javax.persistence.Table permet de :
− Préciser le type d’un champ de la table
− Préciser la clé primaire de la table.
− Préciser le nom de la table vers lequel le bean sera mappé.
− Mapper un champ de la table avec une propriété du bean.
4. J2EE est une plate-forme fortement orientée serveur pour le développement et l'exécution d'applications
distribuées. Elle est composée de :
− Un serveur d’application (ensemble de spécifications pour une infrastructure dans laquelle
s'exécutent les composants écrits en Java).
− Une machine virtuelle (JVM).
− Un ensemble d'API qui peut être obtenu et utilisé séparément.
5. @ Stateful est une annotation pour :
− Un EJB3 avec Etat.
− Un EJB3 sans Etat.
− Un EJB3 Entity.
6. @Stateless est une annotation pour :
− Un EJB3 avec Etat.
− Un EJB3 sans Etat.
− Un EJB3 Entity.
7. @Entity est une annotation pour :
− Un EJB3 avec Etat.
− Un EJB3 sans Etat.
− Un EJB3 Entity.
8. Un utilisateur peut avoir plusieurs comptes alors qu'un compte est détenu par un seul utilisateur :
− La relation entre Compte et Utilisateur est de type Many To One.
− La relation entre Utilisateur et Compte est de type One To Many.
− La relation entre Compte et Utilisateur est de type One To Many.
− La relation entre Utilisateur et Compte est de type Many To One.
9. SMTP est un protocole qui permet
− L'envoi de mails vers un serveur de mails qui supporte ce protocole.
− La réception de mail à partir d'un serveur de mail qui supporte ce protocole.
− L’envoi et la réception de mail à partir d'un serveur de mail qui supporte ce protocole.
10. POP est un protocole qui permet :
− L'envoi de mails vers un serveur de mails qui supporte ce protocole.
− La réception de mail à partir d'un serveur de mail qui supporte ce protocole.
− L’envoi et la réception de mail à partir d'un serveur de mail qui supporte ce protocole.
11. IMAP est un protocole qui permet :
− L'envoi de mails vers un serveur de mails qui supporte ce protocole.
− La réception de mail à partir d'un serveur de mail qui supporte ce protocole.
− L’envoi et la réception de mail à partir d'un serveur de mail qui supporte ce protocole.
12. Remote Method Invocation (RMI) permet
− L'utilisation d'objet Java distribué.
− L'utilisation des interfaces java remote.
− L'utilisation des procédures distribuées.
13. J2EE est basé sur :
− J2SE. (Java 2 Standard Edition).
− J2ME. (Java 2 Micro Edition).
14. Les Enterprise JavaBean sont des composants Java :
− Portables, réutilisables et non déployables.
− Portables, non réutilisables et déployables.
− Portables, réutilisables et déployables.
15. l'annotation @Id implémenté dans la classe javax.persistence.Id permet de :
− Préciser le type d’un champ de la table
− Préciser la clé primaire de la table.
− Mapper un champ de la table avec une propriété du bean
16. L'API JDBC permet :
− L'établissement d'une connexion avec le SGBD.
− L'envoi de requêtes SQL au SGBD, à partir de n’importe quel programme.
− Le traitement, au niveau du SGBD, des données retournées par le SGBD.
− Le traitement, au niveau du programme, des données retournées par le SGBD.
17. ODBC (Open DataBase Connectivity) :
− Interface permet la communication avec les EJB Entity.
− Interface permet la communication avec les bases de données.
− Interface permet la communication avec le système de messagerie.
18. JavaMail et RMI-IIOP sont des API qui peuvent être regroupées dans la catégorie :
− API de composants.
− API de services.
− API de communication.
19. L'annotation @ Column
− Permet de préciser le nom de la table vers lequel le bean sera mappé.
− Permet de mapper un champ de la table avec une propriété du bean.
− Permat de déterminer le champ qui encapsule cette information.
20. Dans un EJB Avec état, les attributs de l’EJB
− Sont sauvegardés durant toute la session.
− Ne sont pas sauvegardés durant toute la session.
− EJB Avec état n’a pas d’attributs.
21. Dans un EJB Sans état, les attributs de l’EJB
− Ne sont pas réinitialisés entre chaque appel même s’il s’agit du même client.
− Sont réinitialisés entre chaque appel même s’il s’agit du même client.
− EJB Sans état n’a pas d’attributs.
22. Les EJBs s'exécutent à l'intérieur d'un conteneur, ce conteneur assure :
− Les transactions
− La sécurité
− La gestion du cycle de vie
− La connexion vers la base de données.
23. Java Naming and Directory Interface (JNDI) est une API qui permet :
− Accès aux services de nommage.
− Accès aux annuaires d'entreprises tels que DNS, NIS, LDAP, etc
− Fournit des extensions permettant l’accès aux services web de supervision d'applications.

Exercice 3 :

1. Soient deux tableaux de caractères T1 et T2 de taille N <=20. Ecrire un EJB3 (EJB3Tab) qui
permet de réaliser les opérations suivantes :
− Affiche les caractères de T1 qui n’existent pas dans T2.
− Inverser un tableau de caractères.
− Vérifie si T2 est un sous mot de T1.
Exemple
T1 I E A L G E R I E T2 A L G E R

2. Ecrire un EJB3 (EJBPile) qui implémente le principe d’une pile d’objets Produit (Numéro,
désignation) avec priorité (Une pile avec priorité est une pile dans laquelle l'opération de
dépilement récupère l'élément le plus prioritaire).
3. Ecrire une classe cliente qui permet de:
− Envoyer T1 et T2 à EJB3Tab pour le test (test si T2 est un sous mot de T1, ensuite si T1 est
un sous mot de T2).
− Empiler et dépiler un élément de la pile.

Bon courage.

Vous aimerez peut-être aussi