Examen 2ième session 2008-2009 page 1 IPST-CNAM Systèmes répartis NFP 214 Jeudi 12 Février 2009 NFP 214 - Systèmes répartis Sans document Durée : 2 heures Enseignants : LAFORGUE Jacques 1ère Session NFP 214 (COURS) 1. QCM (60 points) Mode d'emploi : Ce sujet est un QCM dont les questions sont de 3 natures : • les questions à 2 propositions: dans ce cas une seule des 2 propositions est bonne. +1 pour la réponse bonne –1 pour la réponse fausse • les questions à 3 propositions dont 1 seule proposition est bonne + 1 pour la réponse bonne –½ pour chaque réponse fausse • les questions à 3 propositions dont 1 seule proposition est fausse + ½ pour chaque réponse bonne –1 pour la réponse fausse Il s'agit de faire une croix dans les cases de droite en face des propositions. On peut remarquer que cocher toutes les propositions d'une question revient à ne rien cocher du tout (égal à 0). Si vous devez raturer une croix, faites-le correctement afin qu'il n'y ait aucune ambiguïté. N'oubliez pas d'inscrire en en-tête du QCM, votre nom et prénom. Vous avez droit à 10% de points négatifs sans pénalité. page 1 Examen 2ième session 2008-2009 NOM: page 2 NFP 214 - Systèmes répartis PRENOM: Un Middleware est : 1 un bus logiciel de communication 2 une architecture physique de définition d’un réseau informatique 3 constitué au moins d’une API qui prend notamment en charge les connexions réseaux avec les serveurs 1. Exemples de Middleware : 1 SOA (Services Oriented Architectur) 2 RMI (Remote Method Invocation) 3 OS Windows 2. Le schéma ci-dessous est une représentation d'une architecture client / serveur utilisant un middleware: 3. 1 2 3 Ce type d’architecture montre un accès direct par le client à la base de données afin d’optimiser les accès Ce type d’architecture nécessite que les clients soient sur le même réseau (VLAN) que les serveurs Ce type d’architecture permet de répartir les serveurs sur le réseau afin de favoriser l’indépendance des composants de l’application Une architecture réseau distribuée est : 1 une architecture dans laquelle toutes les ressources sont centralisées dans un "chef d'orchestre" (élément central indispensable) 2 une architecture dans laquelle les ressources sont réparties sur le réseau 4. Une architecture réseau distribuée est la mise à disposition d'un ensemble de ressources et services connectés via un réseau pour tous les usagers qui possèdent un droit d'accès en un point quelconque 1 OUI 2 NON 5. page 2 Examen 2ième session 2008-2009 page 3 NFP 214 - Systèmes répartis Les avantages d’un système réparti sont (entre autre) : 1 La centralisation des services informatiques sur une machine serveur dimensionnée en conséquence utilisés par les clients de manière distante 2 La sécurité des accès 3 La robustesse aux pannes 6. Les avantages d’un système réparti sont notamment : 1 de continuer un service globalement même dégradé 2 performance de la bande passante du réseau 3 adaptabilité à une forte croissance des besoins informatiques d'une entreprise 7. En RMI (Remote Method Invocation) de Java, les requêtes des appels des méthodes distantes échangées entre un client et un objet distribué passent par l'adaptateur dans lequel s'est enregistré l'objet distribué. 1 OUI 2 NON 8. CORBA (Common Object Request Broker Architecture) est 1 un Framework Java et C++ de développement de solution informatique orientée serveur/client 2 une norme de Middleware dédié à la communication de données à travers un réseau 3 une API exclusivement Java permettant la communication de données à travers un réseau 9. La communication logique entre les clients et le serveur 1 permet l'échange d'informations logiques (au sens de la compréhension mutuelle des échanges) 2 d'abstraire au maximum les mécanismes d'échange des informations 10. Dans un ORB (RMI, CORBA), un Factory est un objet distribué (ou servant) qui permet de créer d'autres objets distribués sur un serveur, à partir d'un client distant 1 OUI 2 NON 11. Un objet distribué doit toujours être nommé (nom enregistré dans le service de nommage) 1 OUI 2 NON 12. Un objet distribué est un objet dont ses attributs son répartis sur le réseau 1 OUI 2 NON 13. Sur une même machine, dans deux JVM différentes, on peut créer deux objets distribués qui acceptent les requêtes sur un même numéro de port 1 OUI 2 NON 14. Sur une même machine, dans une même JVM, on peut créer deux objets distribués qui acceptent les requêtes sur un même numéro de port 1 OUI 2 NON 15. Sur deux machines distinctes, les objets distribués peuvent accepter les requêtes sur le même port 1 OUI 2 NON 16. page 3 Examen 2ième session 2008-2009 page 4 NFP 214 - Systèmes répartis L’architecture type suivante est une architecture Web-service : 1 2 3 17. Dans ce type d’architecture, les clients ont accès au bus logiciel des serveurs Dans ce type d’architecture le « serveur d’application » a accès au bus logiciel des serveurs Dans ce type d’architecture, RMI de Java peut être une solution pour implémenter le bus logiciel L'indépendance de la situation géographique d'un objet distribué passe par la mise en place d'un "chef d'orchestre" qui mémorise les paramètres de connexion de cet objet distribué. 1 Dans un ORB on appelle ce chef d'orchestre : un Factory 2 En RMI, on appelle ce chef d'orchestre : l'adaptateur ( ou RmiRegistry) 3 En CORBA, on appelle ce chef d'orchestre : le Naming Services 18. La tolérance aux pannes d'un servant dans une architecture répartie passe, notamment, par 1 la mise en place du doublement du réseau 2 la mise en place de l'indépendance géographique du servant pour les utilisateurs 3 la mise en place de liens de réplication des ressources critiques du servant sur un autre servant 19. page 4 Examen 2ième session 2008-2009 page 5 NFP 214 - Systèmes répartis 20. Cette représentation UML est celle de l'atelier 16 dans le cas d'une solution RMI. Elle décrit la dépendance des classes et des interfaces entre un client IHM et un serveur RMI. 1 La communication réseau se fait entre AppXXX et IhmXXX via l'interface AppXXXInt 2 La communication réseau se fait entre IhmXX et IhmXXXRmiImp via l'interface AppXXXODInt 3 La communication réseau se fait entre AppXXXOD et IhmXXXRmiImp via l'interface AppXXXODInt Les rôles d'un ORB sont notamment : 1 de rendre transparente la localisation des objets distribués 2 de faciliter le passage des paramètres dans les appels de méthodes distantes 3 de développer plus facilement les interfaces graphiques des IHM utilisées dans une architecture client-serveur 21. Pour utiliser les méthodes distantes d'un objet distribué : 1 on demande à un factory le proxy de connexion de l'objet distribué 2 on demande à un adaptateur le proxy de connexion de l'objet distribué 3 on demande à un IDL le proxy de connexion de l'objet distribué 22. Pour faire connaître ses méthodes distantes aux clients, un objet distribué leurs envoie les méthodes sous forme d'autant d'objets sérialisés appelées les signatures AMD (Accès aux Méthodes Distantes) 1 OUI 2 NON 23. Un proxy de connexion (ou référence d'un objet distribué) est un pointeur sur un objet distribué 1 OUI 2 NON 24. Deux clients peuvent utiliser en même temps une méthode distante d'un objet distribué 1 OUI 2 NON 25. On peut interdire que deux clients puisent utiliser en même temps une méthode distante d'un objet distribué 1 OUI 2 NON 26. page 5 Examen 2ième session 2008-2009 page 6 NFP 214 - Systèmes répartis Pour créer un objet distribué, on réalise les étapes suivantes : 1/ créer un objet quelconque du langage (Java, C++, ...) : classe + instanciation 2/ envoyer cet objet à un client via la communication de sérialisation 3/ le client reçoit cet objet et utilise les méthodes de l'objet 1 OUI 2 NON 27. Architecture générale d'un Objet Dstribué : 28. 1 2 3 Les objets distribués OD1, OD2, et OD3 sont créés par le factory SOCKET FACTORY Le SOCKET FACTORY distribue les requêtes vers les objets distribués OD1, OD2, et OD3 Les requêtes échangées entre les clients et le socket factory correspondent à des appels de méthodes distantes. Pour pouvoir communiquer avec un objet distribué, le client établit une communication socket entre le serveur de socket de l'objet distribué et lui-même 1 OUI 2 NON 29. En RMI, le Socket Factory est géré par la classe UnicastRemoteObject 1 OUI 2 NON 30. page 6 Examen 2ième session 2008-2009 page 7 NFP 214 - Systèmes répartis 31. bin n bi d bi nd d Ce schéma représente le fonctionnement des "Sockets factorys" des classes UnicastRemoteObject utilisées dans des programmes Java RMI. Comme le montre le schéma, 4 objets distribués sont en cours d'exécution. 1 Dans la JVM1 du schéma, on pourrait créer un nouvel objet distribué RMI sur le port 9102 2 Les ports des Sockets Factorys sont ici imposés par le développeur 3 Dans la JVM2 du schéma, on pourrait créer un nouvel objet distribué RMI sur le port 9102 Une communication de l'appel d'une méthode distante, entre un client et un objet distribué RMI se fait toujours en passant par l'adaptateur: 1 OUI 2 NON 32. En CORBA, le service de nommage est créé sur chaque machine du réseau 1 OUI 2 NON 33. Client Souche Contrat IDL BUS CORBA Fournisseur Squelette En CORBA, le contrat IDL d'un bus CORBA : 1 est un programme IDL contenant la description des interfaces qui précisent les méthodes distantes du Fournisseur, utilisées par le Client 2 est un programme d'interface entre le Client et le Fournisseur, enregistré dans le service de nommage 3 est l'ensemble de classes Java, C++, ... générées par les pré-compilateurs Idl vers Java, Idl vers C++, ....qui contiennent notamment la souche et le squelette page 7 34. Examen 2ième session 2008-2009 page 8 NFP 214 - Systèmes répartis En Java RMI, l’instruction lookup retourne un objet (appelé "stub" ou proxy) qui implémente les méthodes de l'interface de l'objet distribué 1 OUI 2 NON 35. En Java RMI, l’instruction lookup réalise les étapes suivantes : 1/ connexion à l'adaptateur 2/ récupération du stub de connexion à l'objet distribué 1 OUI 2 NON 36. En Java RMI, l’instruction bind : 1 permet de créer physiquement (au sens du langage) un objet distribué 2 alloue un nouveau port ou utilise le port existant pour l'objet distribué via la classe UnicastRemoteObject 3 enregistrer l'objet distribué dans un adaptateur 37. En Java RMI, l’instruction bind accepte 4 paramètres : l'adresse IP de l'adaptateur, le port de l'adaptateur, le nom de l'objet distribué et un objet dont la classe d'appartenance hérite de UnicastRemoteObject 1 OUI 2 NON 38. On peut passer en paramètre d'une méthode distante, un objet distribué afin que le client puisse le recevoir et l'utiliser pour appeler les méthodes de cet objet distribué 1 OUI 2 NON 39. Le Domain Name System (DNS) n'est pas un système réparti mais un système à plat de l'ensemble des adresses des domaines et centralisé sur un serveur unique appelée DNSS (Domain Name System Server) 1 OUI 2 NON 40. En CORBA avec Java, dans l'appel d'une méthode distante, il est possible de faire passer en paramètre n'importe quel objet Java 1 OUI 2 NON 41. Au sujet de l’utilisation d’un objet distribué (OD) sur Internet : 1 Il est impossible qu’un OD puisse être utilisé par des clients connectés sur Internet. 2 Pour utiliser un OD sur Internet, il vaut mieux sécuriser les ports gérés par l’OD et l’adaptateur 3 Rien n’interdit qu’un OD puisse être utilisé par des clients connectés sur Internet. 42. Pour utiliser un OD sur Internet, il vaut mieux les intégrer dans une architecture 4-Tiers (exemple : Internet Explorer / Tomcat / EJB RMI / BD) 1 OUI 2 NON 43. En RMI, pour mette en place une redondance d'un objet distribué, on peut : 1 En cas de panne d'une machine, déplacer l'objet distribué sur une autre machine. A la charge du client de se connecter sur la machine redondante en cas de défaut de connexion 2 Enregistrer deux fois l'objet distribué dans l'adaptateur 44. page 8 Examen 2ième session 2008-2009 page 9 NFP 214 - Systèmes répartis En CORBA, pour mette en place une redondance d'un objet distribué il suffit de le recréer sur une autre machine et le réenregistré dans le service de nommage. 1 OUI 2 NON 45. En RMI, le code suivant est un exemple valide de création d'un objet distribué : Naming.rebind("rmi://localhost:9999/HELLO", new HelloOD("Pierre","DUPONT")); 1 OUI 2 NON 46. Dans le protocole RMI la communication entre deux objets distribués se fait en utilisant la technologie des sockets : 1 Le client reçoit de l'adaptateur un RMIClientSockeFactory lui permettant de se connecter à l'objet distribué 2 L'objet distribué utilise un RMIServerSocketFactory lui permettant d'attendre et traiter les requêtes du client 3 Le client crée un ServerSocket et le serveur ouvre un socket sur ce serveur de socket pour traiter les requêtes. 47. Un objet passé en paramètre d'une méthode distante est reçu par l'appelant : 1 sous la forme d'une référence d’un objet distant 2 sous la forme d'un nouvel objet qui est une copie du paramètre 48. En architecture réparti, un programme "client" qui utilise un objet distribué ne peut pas créer d'objet distribué et devenir un serveur à son tour 1 OUI 2 NON 49. La persistance consiste à maintenir un lien distant entre un objet et une copie en temps réel ailleurs sur le réseau 1 OUI 2 NON 50. page 9 Examen 2ième session 2008-2009 page 10 NFP 214 - Systèmes répartis La réplication consiste à maintenir une copie d'un objet en temps réel en base de données 1 OUI 2 NON 51. Un client qui appelle une méthode distante synchronisée, interdit à tout autre client d'utiliser l'objet distribué tant qu'il n'a pas fini d'exécuter la méthode 1 OUI 2 NON 52. Les attributs d'un objet distribué doivent être sérialisables 1 OUI 2 NON 53. Les attributs d'une méthode distante d'un objet distribué doivent être sérialisables 1 OUI 2 NON 54. Une méthode distante d'un objet distribué RMI doit appartenir à une interface 1 OUI 2 NON 55. La sérialisation est utilisée, notamment, pour : 1 structurer les données de l'interface IDL qui définie les données échangées entre le client et le serveur 2 faire la sauvegarde de données sur disque 3 transporter les données entre un client et un serveur 56. En CORBA, l'IDL est un langage informatique permettant de décrire le contrat d'échange (données et traitements) entre les clients et leur serveur 1 OUI 2 NON 57. En RMI de Java, l'IDL est un fichier contenant du code Java qui décrit la signature de toutes les méthodes distantes d'un objet distribué. 1 OUI 2 NON 58. Un adaptateur ou service de nommage utilise un port de la machine sur lequel il se met en attente des demandes de connexion des clients des objets distribués qui s'y sont enregistrés. 1 OUI 2 NON 59. Un adaptateur ou service de nommage est utilisé par les objets distribués pour envoyer des messages aux clients 1 OUI 2 NON 60. page 10 Examen 2ième session 2008-2009 page 11 NFP 214 - Systèmes répartis 2. Questions libres (20 points) Chaque question est notée sur 4 points. Vous répondez à ces questions sur une copie vierge en mettant bien le numéro de la question, sans oublier votre nom et prénom. Q1 Décrire les différentes étapes de développement qu'il est nécessaire de faire pour créer un objet distribué, en RMI de Java, utilisable par un client quelconque. Q2 Ce schéma représente les différentes étapes de l'exécution du fonctionnement d'un objet distribué utilisé par un client. Indiquez ce que chaque lettre signifie. Les mettre dans l'ordre temporel de l'exécution. (Tourner la page) page 11 Examen 2ième session 2008-2009 page 12 NFP 214 - Systèmes répartis Q3 Ce schéma est la description statique UML des classes et interfaces mise en œuvre pour la conception d'un client avec son serveur RMI composé d’un objet distribué. Indiquez le rôle de chacune de ces classes et/ou interfaces Java. (Précisez bien quand c'est une classe ou une Interface). (Tourner la page) page 12 Examen 2ième session 2008-2009 page 13 NFP 214 - Systèmes répartis Q4 Citez des avantages de l'utilisation des objets distribués dans une architecture serveur/client.. Q5 page 13 d (Fin du sujet) bin Commentez ce schéma. nd bi nd bi bi nd