CADRE RESERVE A L ADMINISTRATION Numéro de copie Master 1 d Informatique UFR IMAG Université Grenoble I Intergiciels et Bases de Données Examen 2014/2015 Durée totale : 2 heures Documents autorisés : une feuille A4 recto-verso de notes personnelles L examen comporte 2 parties indépendantes. Vous devez répondre directement sur le sujet d examen dans les zones prévues à cet effet. Lire l ensemble des énoncés avant de commencer à répondre. La clarté, la précision et la concision des réponses, ainsi que leur présentation matérielle, seront des éléments importants d appréciation. Partie 1 - Intergiciel Question 1. Expliquer pourquoi les systèmes distribués sont plus difficiles à concevoir, à développer et à utiliser que les systèmes centralisés? Question 2. Quelles sont les principales fonctionnalités fournies par les intergiciels (middleware) distribués? IBD Master 1 Informatique 1 / 13 Examen, mai 2015
Question 3. Que veut dire RMI? Question 3. Expliquer le principe de fonctionnement de RMI. Question 4. Quelle est la différence entre une servlet et une JSP (en termes de fonctionnalités, de fonctionnement, de déploiement)? Question 5. Que veut dire HTTP? Quelle est son utilisation? Question 6. Que veut dire URL? Quelle est son utilisation? Question 7. Que veut dire HTML? Quelle est son utilisation? IBD Master 1 Informatique 2 / 13 Examen, mai 2015
Question 5. Conception et développement d un réseau social Dans ce problème, vous allez réaliser un réseau social (un système de contacts et de communication entre personnes) à l aide des technologies vues dans ce cours i.e. Java RMI et les Servlets. Un réseau social peut fonctionner de différentes manières. Parmi les fonctionnalités couramment proposées nous pouvons énumérer : - s inscrire dans un réseau, - éditer son profil utilisateur, - retrouver des personnes, - définir des groupes d amis/d intérêts, - de communiquer avec les amis (posts ou messages privés), - de suivre des personnes, - a) Définissez les fonctionnalités (que vous choisissez!) de votre futur réseau social MyWorld. En d autres termes, donnez la spécification non formelle du système que vous allez implémenter dans la suite. Ces fonctionnalités peuvent correspondre à celles énumérées précédemment (dans ce cas détailler), représenter une sous partie ou intégrer des fonctionnalités autres. IBD Master 1 Informatique 3 / 13 Examen, mai 2015
Implémentation de MyWorld en architecture client-serveur avec Java RMI Dans la suite, les différentes personnes utilisant le réseau social vont utiliser des programmes clients qui se connecteront au service hébergé sur un serveur (faisant tourner le programme serveur). Serveur b) Donner l interface serveur de votre réseau social (MyWorldS_itf.java). Cette interface doit-elle être Remote? IBD Master 1 Informatique 4 / 13 Examen, mai 2015
c) Donner l interface client pour votre réseau social (MyWorldC_itf.java). Cette interface doit-elle être Remote? d) Donner l implémentation Java du serveur (MyWorldS_impl.java). Bien commenter et expliciter les structures de données utilisées. IBD Master 1 Informatique 5 / 13 Examen, mai 2015
e) Les données gérées par votre serveur sont-elles persistantes? Si non, quelle solution proposeriez-vous? IBD Master 1 Informatique 6 / 13 Examen, mai 2015
Implémentation de MyWorld avec des servlets Dans cette version, les différentes personnes utilisant le réseau social vont utiliser des navigateurs web pour accéder au service qui est implémenté à l aide de servlets (toujours sur un seul serveur). f) Comment pourriez-vous implémenter l interface du réseau social en utilisant les servlets? En d autres termes, combien de servlets et avec quelles fonctionnalités proposeriez-vous? g) Donner le code de la servlet qui implémente l enregistrement d un utilisateur. IBD Master 1 Informatique 7 / 13 Examen, mai 2015
Question bonus : Répartition de charge de MyWorld Nous voulons distribuer la charge de gestion des utilisateurs et gérer le réseau social sur un anneau de serveurs. Ainsi, les interactions d un utilisateur passeront par un serveur attitré qui fera passer des informations vers les autres serveurs (ou depuis les autres serveurs) sur l anneau (voir la figure). MyWorld Server MyWorld Server MyWorld Server MyWorld Server MyWorld Server CLient IBD Master 1 Informatique 8 / 13 Examen, mai 2015
h) Quels changements devriez vous apporter au niveau des interfaces et des implémentations (clients et serveur) de vos programmes? IBD Master 1 Informatique 9 / 13 Examen, mai 2015
IBD Master 1 Informatique 10 / 13 Examen, mai 2015
CADRE RESERVE A L ADMINISTRATION Numéro de copie Partie 2 Bases de données Soit le schéma de base de données suivant : - LesStations(nomStation, capacité, lieu, région, prix) = { (n, c, l r, p) LesStations la station de nom n située au lieu l de la région r a la capacité c et le prix d un séjour est p (en euro).} - LesActivités(nomStation, libellé, prix) = { (n, l, p) LesActivités la station n propose l activité l au prix p (en euro). } - Less(id, nom, ville, solde) = { (i, n, v, s) Less le client de numéro i de nom n, habite dans la ville v et a un solde s (en euro) sur son compte.} - LesSéjours(id, nomstation, début, durée, nbplaces) = { (i, s, deb, dur, n) LesSéjours le client numéro i a séjourné dans la station s à partir de la date d en ayant réservé n places pour une durée dur. } Question 1. Donner le code SQL (Oracle) permettant de créer les tables LesActivités et LesSéjours en y intégrant des contraintes d intégrité qui vous semblent importantes. IBD Master 1 Informatique 11 / 13 Examen, mai 2015
Question 2. Pour assurer les deux contraintes d intégrités suivantes, indiquer pour chacune (en deux lignes), si elles sont du ressort du SGBD et quels types de mécanismes doivent être utilisés : Le nombre de clients dans une station à une date donnée est inférieur ou égal à sa capacité maximum. Un client ayant un solde négatif ne peut pas réserver de nouveau séjour. 1) 2) Question 3. On sait que les deux opérations suivantes sont fréquentes (en plus des modifications de la table séjour). Pour chacune d elles expliquer la nature des opérations à effectuer (en termes de lectures/écritures/agrégations sur les tables). Ces opérations peuvent-elles être en conflit? Si oui, quelle solution? - Mise à jour des prix des activités des stations d'une région donnée R. - Calculer le nombre de clients ayant un solde supérieur à X et ayant réservé dans une région donnée R. Nature des opérations pour 1) : Nature des opérations pour 2) : IBD Master 1 Informatique 12 / 13 Examen, mai 2015
Conflit? : Solution éventuelle? : IBD Master 1 Informatique 13 / 13 Examen, mai 2015