Middleware et Construction d’Applications Répartis
Ce sujet porte sur le Middleware et la Construction d’Applications Répartis. Il s'agit d'un examen qui évalue les connaissances théoriques et pratiques sur les concepts fondamentaux des architectures distribuées, les services d’annuaires, les web services, ainsi que les composants et EJB (Enterprise JavaBeans).
D'après le document Middleware et Construction d’Applications Répartis
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.
Document source
Programming, Computer Science, Distributed Systems · DOCX · 3 pages · 2012
Ce sujet porte sur le Middleware et la Construction d’Applications Répartis. Il s'agit d'un examen qui évalue les connaissances théoriques et pratiques sur les concepts fondamentaux des architectures distribuées, les services d’annuaires, les web services, ainsi que les composants et EJB (Enterprise JavaBeans).
Exercice 1 : Questions diverses
Cette première série de questions demande de définir des acronymes, de citer des exemples, puis d'expliquer des différences conceptuelles entre plusieurs termes clés du domaine.
1. Que signifient les acronymes suivants ?
- ADL : Architecture Description Language (Langage de Description d’Architecture)
- EJB : Enterprise JavaBeans
- JNDI : Java Naming and Directory Interface
- LDAP : Lightweight Directory Access Protocol
- SOAP : Simple Object Access Protocol
- WSDL : Web Services Description Language
2. Citez quatre exemples de services d’annuaires répartis.
- LDAP (Lightweight Directory Access Protocol)
- DNS (Domain Name System)
- X.500
- Active Directory
3. Différences fondamentales entre les paires ou triplets de termes suivants :
- ADL et IDL : ADL est un langage de description d’architecture qui décrit la structure globale d’un système logiciel, tandis que IDL (Interface Definition Language) décrit les interfaces des composants ou objets pour permettre leur interopérabilité.
- Framework et Middleware : Un framework est un ensemble d’outils et de bibliothèques facilitant le développement d’applications, tandis que le middleware est une couche logicielle intermédiaire qui assure la communication et la gestion des interactions entre composants distribués.
- Binding et handle : Le binding est le processus d’association dynamique entre un client et un service ou objet, tandis qu’un handle est une référence ou un identifiant utilisé pour accéder à un objet ou ressource.
- Référence et Referral : Une référence est un pointeur direct vers une ressource ou un objet, alors qu’un referral est une redirection vers un autre annuaire ou serveur qui peut répondre à la requête.
- DIT, RDN et DN : DIT (Directory Information Tree) est la structure arborescente de l’annuaire, RDN (Relative Distinguished Name) est le nom relatif d’une entrée dans l’arbre, et DN (Distinguished Name) est le nom complet unique d’une entrée dans l’annuaire.
- Proxy et wrapper (ou adapter) : Un proxy agit comme un intermédiaire qui contrôle l’accès à un objet, tandis qu’un wrapper ou adapter adapte une interface pour rendre compatible un composant avec un autre.
- Objet et composant : Un objet est une instance d’une classe avec état et comportement, tandis qu’un composant est une unité logicielle autonome, souvent plus grande, pouvant être déployée et réutilisée indépendamment.
- SOA et SOAP : SOA (Service-Oriented Architecture) est un style d’architecture basé sur des services indépendants, alors que SOAP est un protocole de communication utilisé pour échanger des messages dans les web services.
Exercice 2 : LDAP
On étudie ici la structure et les requêtes LDAP à partir d’une DIT donnée.
1. Quels sont les trois niveaux de scope ?
Les trois niveaux de scope dans une requête LDAP sont :
- base : recherche uniquement à l’entrée spécifiée (niveau 0)
- one : recherche uniquement au niveau immédiatement inférieur (les enfants directs)
- sub : recherche dans toute la sous-arborescence à partir de l’entrée spécifiée
2. Déterminez le dn de l’entrée "Zoe Lange".
Le DN (Distinguished Name) est le nom complet unique dans l’annuaire. En partant de l’entrée "Zoe Lange" dans la DIT, on remonte l’arbre en concaténant les RDN.
Supposons que "Zoe Lange" est sous "ou=Recherche", qui est sous "o=Microtech", alors :
dn = cn=Zoe Lange, ou=Recherche, o=Microtech
cn=Zoe Lange, ou=Recherche, o=Microtech.
3. Que détermine la requête suivante : ? sub ? objectclass=person ?
Cette requête LDAP, avec scope "sub" et filtre "objectclass=person", recherche dans toute la sous-arborescence à partir de la base spécifiée toutes les entrées dont la classe d’objet est "person".
Réponse : Elle retourne toutes les personnes dans la sous-arborescence de la base.4. Quelle est la requête LDAP qui donne toutes les personnes des départements de recherche de l’organisation Microtech ?
Pour cibler les départements de recherche, on suppose que leur DN est sous ou=Recherche, o=Microtech.
La requête est donc :
base object dn = ou=Recherche, o=Microtech
scope = sub
filter = (objectclass=person)
ou=Recherche, o=Microtech ? sub ? (objectclass=person)
5. Quelle est la requête LDAP qui donne toutes les personnes de l’annuaire sauf celles qui commencent par "Jo" ?
Le filtre doit exclure les personnes dont le nom commence par "Jo". En LDAP, on utilise le filtre négatif avec "!" et un filtre d’égalité partielle.
Le filtre est :
(& (objectclass=person) (!(cn=Jo*)))
La requête complète, avec base racine (par exemple o=Microtech) et scope "sub", est :
o=Microtech ? sub ? (&(objectclass=person)(!(cn=Jo*)))
Exercice 4 : Web services
Ce volet porte sur les technologies de base des web services, leurs descriptions, et les concepts liés à SOA.
1. Complétez la figure suivante par les technologies de base des web services :
| Protocole réseau | TCP/IP |
| Protocole de transport | HTTP, SMTP, FTP, … |
| Protocole de transmission de messages | SOAP |
| Description | WSDL |
| Basée sur | XML |
| Annuaire/Publication | UDDI |
| Basé sur | XML |
2. QCM : Justifiez vos réponses
a) Un fichier WSDL (ex. toto.wsdl), c’est :
- 1. une classe Java : Faux
- 2. un fichier XML : Vrai
- 3. une page JSP : Faux
b) Pour publier un service web :
- 1. On doit résoudre ses dépendances vis-à-vis d’autres services : Vrai
- 2. On doit utiliser le protocole Internet DNS : Faux
- 3. On utilise un registre de services web, qui s’appelle d’ailleurs ?? (répondre dessous) : UDDI
c) « google Search » ou « Amazon web services electronic commerce » requièrent une clé qui sert à :
- 1. Identifier le web service invoqué : Faux
- 2. Identifier l’utilisateur qui accède au web service : Vrai
- 3. Identifier la machine Internet qui émet l’invocation du web service : Faux
3. Une architecture logicielle de type SOA signifie :
- 1. Qu’elle est constituée de modules logiciels décrits dans une unique technologie : Faux
- 2. Qu’elle peut faire référence à des applications externes : Vrai
- 3. Que l’usage d’un bus à services est obligatoire : Faux
4. L’objectif d’une approche SOA dans le monde de l’informatique d’entreprise est :
- 1. De maximiser la réutilisation de code : Vrai
- 2. De pouvoir intégrer des applications existantes non compatibles a priori entre elles : Vrai
- 3. De pouvoir mieux surveiller les performances de chacun des services participants à la SOA : Non explicitement demandé, mais pertinent
Exercice 5 : Composants et EJB
Cette dernière partie interroge sur les composants logiciels, les objets persistants, et les interfaces spécifiques aux EJB ainsi que sur le serveur JBoss.
1. Quels sont les rôles des interfaces fournies et requises d’un composant ?
Les interfaces fournies définissent les services que le composant offre aux autres composants ou clients. Les interfaces requises spécifient les services dont le composant a besoin pour fonctionner, c’est-à-dire les dépendances externes.
2. Qu’est-ce qu’un objet persistant ? Comment les EJB en profitent-ils ?
Un objet persistant est un objet dont l’état est conservé au-delà de la durée d’exécution du programme, généralement stocké dans une base de données.
Les EJB profitent de la persistance en permettant la gestion automatique de l’état des objets, notamment via les Entity Beans, qui facilitent la manipulation d’objets persistants sans que le développeur ait à gérer explicitement la persistance.
Réponse : Un objet persistant conserve son état sur le long terme, et les EJB facilitent sa gestion automatique via des mécanismes intégrés.3. Quelle est la différence entre la "home interface" et la "remote interface" ? Sont-elles toutes les deux nécessaires ? Quel objet chacune interface ?
La "home interface" permet de créer, trouver ou supprimer des instances d’EJB. Elle gère le cycle de vie des objets EJB.
La "remote interface" définit les méthodes métier accessibles à distance par les clients, c’est-à-dire les opérations que le composant expose.
Les deux interfaces sont nécessaires dans un EJB classique : la home interface pour la gestion des instances, la remote interface pour l’accès aux services.
Réponse : La home interface gère le cycle de vie des EJB, la remote interface expose les méthodes métier ; les deux sont nécessaires.4. Qu’est-ce que JBoss ? Quels sont les différents acteurs du processus JBoss ?
JBoss est un serveur d’applications Java EE qui fournit un environnement d’exécution pour les EJB et autres composants distribués.
Les différents acteurs du processus JBoss comprennent :
- Le conteneur EJB qui gère le cycle de vie et les services des EJB
- Le serveur d’applications qui fournit les ressources et la gestion des transactions
- Le client qui invoque les services des EJB
Méthode
Ce sujet récompense une bonne connaissance des concepts fondamentaux des architectures distribuées et des technologies associées. Il faut :
- Respecter scrupuleusement les notations et définitions données dans l’énoncé.
- Répondre précisément aux questions, en donnant des définitions claires et concises.
- Montrer le raisonnement, notamment pour les requêtes LDAP, en expliquant la structure et la logique des filtres.
- Pour les QCM, justifier chaque réponse par un raisonnement ou une définition.
- Ne pas confondre les termes proches (ex. SOA vs SOAP, proxy vs adapter).
- Éviter les erreurs d’interprétation sur les interfaces EJB en respectant la terminologie exacte.
Les erreurs fréquentes punies sont :
- Confusion entre concepts proches ou acronymes.
- Omissions de parties essentielles dans les réponses.
- Réponses trop vagues ou hors sujet.
- Absence de justification dans les QCM.
- Erreurs dans la construction des filtres LDAP.
Une bonne méthodologie consiste à structurer les réponses, à expliciter les termes techniques, et à vérifier la cohérence des formules ou requêtes fournies.
Commentaires
Aucun commentaire pour le moment. Posez la première question.