Chantal Taconet, Erik Putrycz, Guy Bernard SDI (Smart Deployment Infrastructure) : Déploiement adaptatif d'applications réparties multi-composants pour usagers mobiles Chantal Taconet, Erik Putrycz, Guy Bernard {chantal.taconet, erik.putrycz, guy.bernard}@int-evry.fr Equipe MARGE http://picolibre.int-evry.fr/projects/sdi/
Déploiement dynamique Contexte : services : applications multi-composants réparties utilisateurs mobiles : étendre accès à leurs services depuis des terminaux d'accès multiples (téléphone mobile, PDA, PC personnel ou même PC banalisé) depuis des localisations géographiques variées Objectifs : solutions de déploiement actuelles interactives et par terminal automatiser les installations : l’utilisateur -ne souhaite pas-/-ne peut pas- faire une installation par service et par terminal d'accès adaptation dynamique au contexte d'utilisation (utilisateur, localisation géographique, état du système, capacités du terminal) Proposition : fournir une infrastructure de déploiement
Contexte multi-tiers Acteurs : l’utilisateur du service les fournisseurs de données fournisseur de traitement fournisseur d’infrastructure système, réseau et services (ASP: Application Service Provider)
Plan Description d'un service Les choix du déploiement Les ressources du déploiement Le service de recherche sur propriétés Le déploiement
Composants d'une application Interface utilisateur Traitements Accès données
Description d'un service Descripteur de l’assemblage de composants pour un service Agent de virement Interface Compte bancaire Utilisateur interface utilisée interface fournie
Descripteur de déploiement Interface utilisateur: nom du type de composant: sdidemo.bank.BankGUI localisation du composant: userTerminal cycle de vie:composant session téléchargeable Agent de virement: nom du type de composant: sdidemo.bank.BankAgent localisation du composant: proche du terminal, le moins chargé cycle de vie:composant processus téléchargeable Compte bancaire: nom du type de composant: sdidemo.bank.BankAccount localisation du composant: fixé cycle de vie: composant entité fixe
Plan Description d'un service Les choix du déploiement Les ressources du déploiement Le service de recherche sur propriétés Le déploiement
Les choix du déploiement Poste utilisateur Interface Utilisateur Interface adaptée au terminal Recherche d'un serveur de proximité Agent de virement Machine banalisée (la plus rapide) Comptes bancaires Machine fixe
Implémentation de l'interface pour iPAQ
Implémentation de l'interface pour PC
Plan Description d'un service Les choix du déploiement Les ressources du déploiement Le service de recherche sur propriétés Le déploiement
Les ressources du déploiement Les composants instances fixes ex : comptes bancaires Les serveurs de paquetages : pour les composants téléchargeables interfaces graphique de virement texte graphique minimum pour PDA graphique complet pour PC banalisé agent de virement cascade Les machines banalisées (gestionnaire d ’instances) : serveurs SDI compte paquetages
Plan Description d'un service Les choix du déploiement Les ressources du déploiement Le service de recherche sur propriétés Le déploiement
Adaptation avec un service de recherche : le courtier toutes les ressources sont inscrites dans le courtier : composant fixe paquetage serveur SDI lors du déploiement, des recherches adaptées au contexte d’utilisation sont effectuées : possibilités du terminal de l’utilisateur localisation géographique de l'utilisateur charge des différents serveurs SDI interrogation du courtier avec expression des contraintes et des préférences trader CORBA avec OCL (OMG Constraint Language) courtier
Définition des types de ressources avec une liste de propriétés typées la définition de type peut se faire par héritage identification composant environnement d'exécution localisation logique localisation géographique charge instantanée fournit a a a a a a besoin de sert paquetage composant fixe gestionnaire d’instances est hébergé par
Types et propriétés identification du composant componentTypeId componentImplementation environnement d'exécution langName, langRelease orbName,orbRelease osName, osRelease hostType processorType, processorSpeed logiciels périphériques
Types et propriétés (suite) localisation logique domaine logique nom de machine adresse réseau localisation géographique latitude, deltaLatitude longitude, deltaLongitude charge disponibilité du processeur disponibilité de la mémoire
Console du courtier
Plan Description d'un service Les choix du déploiement Les ressources du déploiement Le service de recherche sur propriétés Le déploiement
Informations du déploiement Informations liées service : description de l'application descripteur de déploiement Informations liées au contexte de déploiement : les préférences de l'utilisateur : contexte.préférencesUtilisateur le terminal de déploiement : contexte.terminal.environnementExécution contexte.terminal.localisationGéographique Informations du service de recherche
Contraintes de recherche Recherche d'un serveur de proximité (composant fixe) (contexte.terminal.localisationGéographique & contexte.préférencesUtilisateur & application.typeComposant ) liste de composants fixes (ordonnés par la charge des serveurs SDI qui les hébergent) Recherche d'un paquetage pour un terminal donné contexte.terminal.environnementExecution & contexte.préférencesUtilisateur & application.typeComposant liste de paquetages Recherche d'une machine pour un paquetage donné application.typeComposant paquetage.environnementExecution liste de serveurs SDI (ordonnés par leur charge)
Interactions lors du déploiement Serveur SDI Serveur SDI m.a.j. courtier serveur de monitoring serveur de monitoring recherche gestionnaire d’instances gestionnaire d’instances télécharge installe instance serveur de déploiement paquetages gestionnaire d’instances initiation (description appli, contexte de déploiement) Client de déploiement terminal
Le déploiement
Temps de déploiement Temps de déploiement sur PC et iPAQ Evaluation du surcoût de l’adaptation : adaptation = choix transparent des hôtes et des implémentations par le courtier SDI sans adaptation = hôtes et implémentation fixés
Adaptation et gain à l’exécution Terminal mobile : iPAQ (ressources limitées) Comparaison sur deux scénarios 1er: Agent installé sur terminal (iPAQ) 2ième : Choix de l’hôte de l’agent par SDI (choix = serveur SDI) Mesures Capacité batterie pendant l’exécution Mémoire utilisée sur l’iPAQ
Conclusions contexte lié aux applications mobiles 3G accès au même service sur tout type de terminal (mobile, pc fixe, pda) nombre de services mobiles croissant applications distribuées et complexes basées sur des composants (modularité, réduction des coûts de développements d'applications multi plate-formes) adaptation à l'environnement de l'utilisateur (localisation, préférences, terminal) passage à l'échelle (nombre d'utilisateurs, réseau étendu) infrastructure de déploiement réalisée et validée dans le cadre du projet CESURE pour le déploiement automatique et adaptatif d'application multi-composants
Bilan Infrastructure de déploiement réalisée et validée dans le cadre du projet CESURE pour le déploiement automatique et adaptatif d'application multi-composants Intégration du partage de charge DLBS avec SDI participation à l’OMG sur le RFP Load Balancing Implémentation et documentation disponibles en open source sur http://picolibre.int-evry.fr/projects/sdi
Conclusions (2) services de l'infrastructure réalisés dans l'environnement CORBA utilisation d'un service de recherche sur propriétés (définition des types de ressources, méthodes d'interrogation de déploiement) service de monitoring pour le passage à l'échelle définition du service de monitoring couplage avec le service de recherche pour la sélection des réplicas serveur de composants serveur de déploiement spécialisé validation de l'infrastructure sur une application simple
Conclusions (3) travaux en cours : serveur de déploiement générique intégration de l'infrastructure de déploiement dans l'environnement composant CCM (CORBA Component Model) décentralisation des informations de courtage par fédération de courtiers reconfigurations : monitoring et montée en charge, décision de réplication des serveurs