Déploiement sensible au contexte et reconfiguration des applications dans les sessions collaboratives

Déploiement sensible au contexte etreconfiguration des applications dans les sessions collaboratives

Modèles pour automatiser le déploiement 

Pour pouvoir fournir un support automatisé et générique, il est nécessaire de se baser sur une approche orientée modèle. Nous avons défini trois modèles : o Un modèle d’application qui donne les exigences des applications, c’est-à-dire les ressources requises pour le bon fonctionnement de l’application. o Un modèle de session qui décrit de façon abstraite la structure de la session ; o Un modèle du nœud du déploiement qui décrit le contexte local, c’est-à-dire les ressources offertes par le nœud de déploiement ; Ces modèles génériques permettent d’abstraire les informations de déploiement. Le terme générique se justifie par le fait que ces modèles sont indépendants des applications à déployer, du domaine de la session, et du nœud de déploiement. Les caractéristiques de chacun de ces modèles ont été décrites en utilisant le langage UML [37], universellement utilisé pour spécifier des systèmes. L’implantation de chaque modèle se fait en utilisant le langage XML [38]. Dans la suite, nous allons détailler chaque modèle. 

 Modèle d’application 

Le modèle d’application proposé permet à un service de déploiement de choisir une application plutôt qu’une autre. Trois contraintes influencent ce choix : o Le rôle d’un participant. Les applications doivent couvrir le rôle du participant. Par exemple, en utilisant un outil de partage de document, l’enseignant diffuse son cours vers les étudiants. En même temps, cet enseignant reçoit les commentaires sous forme textuelle en utilisant un autre outil de dialogue. o Compatibilité avec l’environnement d’exécution. Le nœud du déploiement doit offrir les ressources nécessaires pour que les applications puissent fonctionner correctement. o Interopérabilité avec les applications déjà déployées sur les nœuds des voisins. Les membres d’une session collaborative s’échangent des informations. Ainsi, les applications doivent être interopérables pour qu’elles puissent communiquer sans ambiguité et opérer ensemble. Afin de respecter toutes ces contraintes. Nous notons qu’une application peut avoir plusieurs implantations. Une implantation d’application est toujours complète, dans le sens où elle couvre tous les composants de l’application. A la différence du déploiement d’applications à base de composants qui se charge de trouver les implantations de chaque composant et les nœuds adéquats, nous déployons uniquement l’implantation qui représente l’application en totalité sur le nœud se connectant à la session. Nous avons mis l’accent sur une classification des applications par rapport au traitement des flux de données. Nous retrouvons donc les catégories suivantes : 

Application monolithique monomédia unidirectionnelle 

Cette catégorie implique que l’application est une seule entitée monolithique conçue pour produire ou pour consommer un seul type de données. La figure 3.2 illustre les différentes possibilités d’instanciation d’une application appartenant à cette catégorie. Figure 3.2. Possibilités d’instanciation (1ère catégorie) Une application productrice peut supporter ou non la diffusion vers plusieurs participants. Dans le cas où elle peut supporter la diffusion, on distingue deux situations : (1) Application Productrice ou Consommatrice Supporte la diffusion vers n utilisateurs Ne Supporte pas la diffusion Consomme uniquement un seul flux Consomme plusieurs flux de différentes sources Même flux Différents flux l’application envoie le même flux vers n participants. C’est le cas d’un enseignant qui diffuse son cours vers les étudiants. (2) l’application envoie différents flux vers n participants. C’est le cas d’un étudiant qui émet des flux textuels vers les autres étudiants. Si l’application ne supporte pas la diffusion, alors elle produit uniquement un seul flux de données vers un seul participant. Dans la deuxième sous-catégorie, on distingue deux situations : (1) l’application est capable de consommer un seul flux de données. Par exemple, un étudiant reçoit le cours diffusé par l’enseignant. (2) l’application est capable de consommer plusieurs flux de données provenant de différentes sources. Par exemple, un étudiant reçoit les messages textuels envoyés par les autres étudiants.

 Application composite monomédia 

Cette catégorie comprend des applications formées par une entité logicielle composites qui se déclinent en deux parties, une partie productrice et une partie consommatrice. Une telle application n’est capable de traiter qu’un seul type de données. L’application peut être instanciée en rôle producteur, consommateur ou les deux à la fois (figure 3.3). Figure 3.3. Possibilités d’instanciation d’une application (2ère catégorie) Par exemple, une application de dialogue qui produit et qui reçoit des flux textuels fait partie de cette catégorie. 

Application composite multimédia 

C’est le cas le plus général. Une application de cette classe est composée d’une collection d’entités logicielles qui manipulent différents types de données et qui se déclinent chacune en une partie productrice et une partie consommatrice. Une application de dialogue sophistiquée qui permet d’échanger du texte et de la parole, fait partie de cette catégorie. Une représentation formelle de ce modèle est donnée par la figure suivante : Figure 3.5. Représentation UML du modèle d’application D’après le modèle, une application peut avoir plusieurs implantations. Une implantation d’application est toujours complète, dans le sens où elle couvre tous les composants de l’application. A la différence du déploiement d’applications à base de composants qui se charge de trouver les implantations de chaque composant et les nœuds adéquats, nous déployons uniquement l’implantation qui représente l’application en totalité sur le nœud se connectant à la session. Pour qu’une implantation d’application fonctionne correctement, il est nécessaire que le nœud qui va l’accueillir possède les ressources et les services requis pour son bon fonctionnement. Un descripteur ImplantationID est associé à chaque implantation d’application. Comme décrit dans l’état de l’art, nous trouvons dans la littérature des langages comme OSD, JNLP et DSD, permettant de décrire les applications et leurs implantations. Ils contiennent essentiellement les caractéristiques de l’application. Dans notre cas, les attributs et les propriétés encapsulés dans le descripteur ImplantationID se divisent en deux familles : o Qualité de service requise. Si une implantation d’application utilise un service non fonctionnel tel que la gestion des transactions, et qu’elle possède le code spécifique réalisant ce service, alors elle peut être déployée sur n’importe quel nœud. Par contre si l’implantation d’application ne possède pas le code réalisant ce service mais qu’elle a absolument besoin de ce service, alors elle ne doit être déployée que sur un nœud offrant le service en question. + TypeDonnée + FormatsSupportés + Sens + Diffusion + EnvoiMêmeFlux DonnéeEchangée CompositeMonomédia MonolithiqueUnidirectionel CompositeMultimédia + Chemin + ImplantationID QdSRequise Implantation + Nom 1 * RessourceRequise + Optionnelle + Opérateur + Poids + Nom + Valeur Application + ApplicationID + Description + Version + Nom 39 o Ressources requises. Une implantation d’application nécessite des ressources pour s’exécuter comme la puissance de traitement, la taille minimale sur le disque dur, le type du système d’exploitation. Certaines ressources présentent des contraintes fortes, d’autres non (attribut optionnel). Lors de la sélection d’une implantation d’application, le nombre d’instanciations varie de 1 à N selon le nombre de flux manipulés par l’application associée, et requis par la session. Ce nombre d’instances sera ainsi déterminé par la classe d’application que l’on déploie et par la capacité de l’application à traiter plusieurs flux de données (champ Diffusion). La figure 3.6 montre la représentation XML d’une application monolithique monomédia unidirectionnelle de dialogue textuel. Cette application produit et consomme un flux textuel supportant les formats ascii et unicode. Une seule implantation compose l’application. Le service de persistance est nécessaire pour le fonctionnement de cette implantation. Les ressources requises sont : une fréquence de microprocesseur supérieur à 1.00 GHz et une mémoire vive d’au moins 64 Mo. Ces deux ressources sont obligatoires. Par contre la connexion Internet de 56 ko est optionnelle.

Table des matières

Remerciements
Plan
Figures
Tableaux
Chapitre 1 Introduction
1.1 Motivation et problématique
1.2 Position de notre travail et contributions
1.3 Organisation de la thèse
Chapitre 2 Etat de l’art et synthèse
2.1 Introduction
2.2 Définitions
2.2.1 Session collaborative
2.2.2 Stratégies de déploiement
2.2.3 Catégories de déploiement
2.2.4 Types de déploiement
2.2.5 Contrôle du déploiement
2.2.6 Performance du déploiement
2.2.7 Sensibilité au contexte
2.2.8 Catégorie de reconfiguration
2.3 Systèmes de déploiement
2.3.1 Déploiement automatique indépendant du contexte
2.3.2 Déploiement automatique sensible au contexte
2.4 Eléments descriptifs pour automatiser le déploiement
2.4.1 Description des application
2.4.2 Description des ressources
2.5 Conclusion
Chapitre 3 Spécification de l’algorithme de déploiement
3.1 Introduction
3.2 Phases du déploiement sensible au contexte
3.3 Modèles pour automatiser le déploiement
3.3.1 Modèle d’application
3.3.2 Modèle de session
3.3.3 Modèle de nœud de déploiement
3.4 Algorithme de déploiement et de reconfiguration
3.4.1 Vue générale
3.4.2 Déploiement initial
3.4.3 Déploiement ultérieur (ou reconfiguration)
3.5 Conclusion
Chapitre 4 Conception de la plate-forme de déploiement et de reconfiguration
4.1 Introduction
4.2 Fonctionnalités requises pour le déploiement
4.2.1 Accès au réseau P2P
4.2.2 Interaction locale
4.2.3 Interaction distribuée
4.2.4 Contrôle du déploiement
4.3 Architecture
4.3.1 Couche Pair-à-Pair
4.3.2 Couche noyau générique
4.3.3 Couche déploiement
4.4 Conclusion
Chapitre 5 Expérimentations
5.1 Introduction
5.2 Utilisation de l’API de déploiement
5.2.1 Simulateur de déploiement
5.2.2 Sessions collaboratives synchrones
5.3 Evaluation de l’algorithme de déploiement
5.3.1 Configuration de l’expérimentation
5.3.2 Vérification de la compatibilité
5.3.3 Vérification de l’interopérabilité
5.3.4 Génération des configurations de déploiement
5.3.5 Validation des configurations de déploiement
5.3.6 Bilan de l’évaluation de déploiement
5.4 Evaluation de la couche noyau générique
5.4.1 Evaluation de la découverte des contenus
5.4.2 Evaluation des capacités de rapatriement des contenus
5.5 Conclusion
Chapitre 6 Conclusion et perspectives
6.1 Déploiement et reconfiguration dans les sessions collaboratives
6.2 Perspectives
6.2.1 Modèle de session
6.2.2 Variation de l’environnement d’exécution
6.2.3 Etude de performance
6.2.4 Implantation réelle de la reconfiguration
Publications
Bibliographie

projet fin d'etudeTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *