500 likes | 631 Views
Adaptabilité des Services Techniques dans le Modèle à Composants. Colombe Hérault LAMIH / ROI / SID Jeudi 23 juin 2005 Soutenance de thèse. Pr A. Freville, directeur N. Bennani, encadrant S. Lecomte, encadrant. Set Top Box. Cartes à puce. Contexte. Fournisseur de contenu. VOIE
E N D
Adaptabilité des Services Techniques dans le Modèle à Composants. Colombe Hérault LAMIH / ROI / SID Jeudi 23 juin 2005 Soutenance de thèse Pr A. Freville, directeur N. Bennani, encadrant S. Lecomte, encadrant
Set Top Box Cartes à puce Contexte Fournisseur de contenu VOIE DESCENDANTE Voie descendante • haut débit, constant • partagée par tous les usagers (STB) opérateur Equipements de diffusion Serveurs de communication téléspectateur Serveurs Back Office
Set Top Box Cartes à puce Contexte Fournisseur de contenu VOIE DESCENDANTE Voie descendante • haut débit, constant • partagée par tous les usagers (STB) opérateur Equipements de diffusion Serveurs de communication téléspectateur VOIE MONTANTE Serveurs Back Office Voie montante • Individuelle • Disponibilité non garantie • Débit limité
Plan • Contexte et problématique • Nouvelles applications distribuées • Environnement hétérogène • Modèle à composants – Services Techniques • Etat de l’art et positionnement • Principes de base de l’adaptation des intergiciels • Travaux autour de l’adaptabilité • Propositions • Nouveau modèle de conception et de développement • Mécanisme de gestion de l’adaptation • Conclusion et perspectives
adaptation aux besoins de l’application adaptation à l’environnement dynamique statique en déplacement serveur distant cotes? cotes préparation des paris cotes? cotes validité des paris paris paris ok Exemple de l’application PMU et service transactionnel serveur distant Web de Paris serveur distant PMU serveur distant Paris Turf au domicile begin plate commit plate cotes? cotes? cotes cotes begin ONT begin mobile santé chevaux + cotes + horaires cotes + horaires santé chevaux cotes + horaires santé chevaux commit ONT commit mobile santé chevaux + cotes + horaires
appel de méthode client services techniques bus logiciel bus logiciel transaction persistance sécurité transaction persistance sécurité Apport du modèle à composants Interface requise Interface fournie liaison conteneurs composant composant composant composant
limites de l’adaptabilité des services techniques • POO • objet notoire • code appel enfoui appel de méthode client services techniques bus logiciel bus logiciel transaction persistance sécurité transaction persistance sécurité transaction2 nommage Apport du modèle à composants Interface requise Interface fournie liaison conteneurs composant composant composant composant
plan • Contexte et problématique • Nouvelles applications distribuées • Environnement hétérogène • Modèle à composants – Services Techniques • Etat de l’art et positionnement • Principes de base de l’adaptation des intergiciels • Travaux autour de l’adaptabilité • Propositions • Nouveau modèle de conception et de développement • Mécanisme de gestion de l’adaptation • Conclusion et perspectives
séparation des préoccupations réflexivité conception à base de composants Principes de base de l’adaptationdes intergiciels adaptation intergiciel Figure tirée de [MCK 04] McKinley P. K. « A taxonomy of Compositional Adaptation », juillet 2004
Strategie InterfaceAlgorithme() Patron stratégie [GAMMA 95] strategie Contexte InterfaceContexte() StrategieConcreteA InterfaceAlgorithme() StrategieConcreteB InterfaceAlgorithme() StrategieConcreteC InterfaceAlgorithme() Séparation des préoccupations (SOP) • Principe • une préoccupation principale est dispersée et entrelacée avec plusieurs préoccupations transversales • Apport pour l’adaptabilité • Gestion indépendante des préoccupations transversales • Remplacement dynamique d’une préoccupation • Représentant principal • Programmation Orientée Aspect (AOP) • Technique utilisée en SOP • Patron de Gamma • Patron stratégie
Réflexivité méta-objet niveau méta introspection / réification intercession / réflexion objet application niveau de base
Classification des solutions adaptables • Adaptabilité au niveau de • ORB • Modèles à composants • Applications • Services Techniques Programmation par composants Séparation des Préoccupations (SOP) Solution adaptable Réflexivité Figure inspirée de [F.Duclos]
Classification des solutions adaptables • Adaptabilité au niveau de • ORB • Modèles à composants • Applications • Services Techniques personnalité et réflexivité Programmation par composants Séparation des Préoccupations (SOP) ORB • ORB adaptables • statiquement • TAO, ZEN, CIAO Jonathan CORBA • Par tissage d’aspect • dynamique • AscpectIX Réflexivité • ORB adaptables • Dynamiquement • dynamicTAO, • OpenORB
Classification des solutions adaptables • Adaptabilité au niveau de • ORB • Modèles à composants • Applications • Services Techniques conteneur ouvert Programmation par composants Séparation des Préoccupations (SOP) Modèles à composants • Modèles de composants • sans services techniques: • JavaBeans • COM • Modèles à composants • avec services techniques: • EJB • CCM Réflexivité • Modèle à composants • Avec Conteneurs ouverts: • IST-Coach • Fractal
Classification des solutions adaptables • Adaptabilité au niveau de • ORB • Modèles à composants • Applications • Services Techniques programmation par composants et patron stratégie Programmation par composants Séparation des Préoccupations (SOP) Application • Adaptation statique • CESURE • Adaptation dynamique • Qinna ARCAD Réflexivité ACEEL
Classification des solutions adaptables Patron stratégie Conteneur ouvert Personnalité • Adaptabilité au niveau de • ORB • Modèles à composants • Applications • Services Techniques Programmation par composants Séparation des Préoccupations (SOP) Services Techniques Services techniques des EJB et de CCM Jironde, GoTM Réflexivité • Spécifique à un • service technique: • ArcticBeans • Générique • Nos travaux
plan • Contexte et problématique • Nouvelles applications distribuées • Environnement hétérogène • Modèle à composants – Services Techniques • Etat de l’art et positionnement • Principes de base de l’adaptation des intergiciels • Travaux autour de l’adaptabilité • Propositions • Nouveau modèle de conception et de développement • Mécanisme de gestion de l’adaptation • Conclusion et perspectives
Nouveau modèle de conception et de développement des ST modèle de conception modèle pour services techniques PIM (Platform Independent Model) modèle de conception modèle à composants modèle de conception Fractal modèle à composants Fractal SM (Fractal Specific Model) modèle d’assemblage modèle pour l’assemblage des services techniques et des composants applicatifs Julia SM (Julia Specific Model)
Notion de « Personnalité d’un Service » P1S • un service à plusieurs personnalités • modèle, implantation, version • exemples • transaction : plate, ONT, CNT • annuaire : courtage et nommage • représentation de la qualité de service • pour faire un choix lors de l’adaptation • ensemble de qualités relatives au comportement collectif d’un ou plusieurs objets [ISO/IEC 9126] • fonctionnalité, fiabilité, convivialité, efficacité, facilité de maintenance, portabilité
Notion de « Personnalité d’un Service » P1S QoS P1S fonctionnalité 1 1 fonction 1 modèle fiabilité, efficacité, portabilité N fiabilité, efficacité triplet 1 N nom de variable 1 environnement d’exécution unité de mesure 1 1 ou valeur de variable et opérateur 1 valeur min et max triplet N nom de variable 1 unité de mesure 1 ou valeur de variable et opérateur 1 valeur min et max
Exemple de P1SService de Transactions plates QoS P1S fonctionnalité service transactionnel transaction plate fiabilité, efficacité, portabilité transaction par minute fiabilité, efficacité trans/min =XX environnement d’exécution type application = default utilisation_CPU % min: XX, max: XX fréquence CPU Mhz … = XX
Exemple de P1SService de Transactions ONT QoS P1S fonctionnalité service transactionnel transaction ONT fiabilité, efficacité, portabilité transaction par minute fiabilité, efficacité trans/min =XX environnement d’exécution type application = webservice utilisation_CPU % min: XX, max: XX fréquence CPU Mhz … = XX
Notion de « Lot de Services » L2S L2S N QoS P1S 1 environnement d’exécution N triplet nom de variable 1 unité de mesure 1 ou valeur de variable et opérateur 1 valeur min et max
Exemple de L2Spour application de Webservice L2S QoS P1S fonctionnalité service transactionnel transaction ONT fonctionnalité service de persistance JDO fonctionnalité service de courtage UDDI environnement d’exécution Type application = webservice …
projection sur le modèle Fractal • concepts nécessaires à la programmation par composants • particularités • composants composites et partagés • composants réflexifs → intercession et introspection • hiérarchie de concepts • conteneur ouvert • pas de spécification des services techniques Modèle de conception et de développement : modèle à composants • apport du modèle à composants • modularité • expression des tâches • réutilisation de composants élémentaires entre P1S • interface • expression des P1S • liaisons • assemblage et réutilisation de composants élémentaires
Exemple de conception de la P1S transactions plate interface associée à la P1S P1S trans. plates TM
interfaces associées aux P1S composant implantant une tâche élémentaire réutilisé liaisons TM Exemple de conception de la P1S transactions ONT Compensator СompensationManager CM CDOTable TechnicalService CDOtable P1S trans. plates TransactionManager interpr.flat CDOTableAdd P1S trans. ONT TechnicalService TransactionManagerONT TM ONT interpr.ONT
client Modèle d’assemblage: sous contrôleurs sous-contrôleurs Pre() Post() intercepteur CA Méthode() contrôleur contenu
2 personnalités du service technique 1 sous-contrôleur du service technique 1 liaison entre les deux sous-contrôleurs CF2 CF1 P1S11 CB1 ST2 CB2 ST1 P1S2 P1S12 interface de call-back du composant applicatif Modèle d’assemblage: sous contrôleurs • associe un ST à un sous-contrôleur • composant de Call-Back intercepteur CA contrôleur contenu
Service transactionnel Comp + comp_débit(s) compt_crédit(s) ONT plate Service transactionnel Comp simple comp_débit(s) compt_crédit(s) Exemple d’assemblage composant bancaire / service transaction CF Compte bancaire débit(s) crédit(s)
Gestion de l’adaptation service de gestion coordinateur <gère <notifie interroge> contrat moniteur annuaire représentation action représentation niveau méta niveau de base composant applicatif service technique environnement d’exécution
Gestion de l’adaptation service de gestion coordinateur • Caractéristiques physiques de la machine • Alimentation • Stockage • CPU • Réseau • Lecteur • Interface H/M • Ressources logicielles • Bus logiciel, JRE • Localisation de la machine • Pays, ville, localisation GPS <gère <notifie interroge> contrat moniteur annuaire représentation action représentation niveau méta niveau de base composant applicatif service technique environnement d’exécution
Profil requis par le composant applicatif Profil fourni par le service technique Profil requis par le service technique Profil fourni par l’environnement fourni par le développeur de composant applicatif =P1S fourni par le développeur de ST fourni dynamiquement par le moniteur Gestion de l’adaptation service de gestion coordinateur <gère <notifie interroge> contrat moniteur annuaire représentation action représentation niveau méta niveau de base composant applicatif service technique environnement d’exécution
Gestion de l’adaptation service de gestion coordinateur <gère <notifie interroge> contrat moniteur annuaire représentation action représentation niveau méta niveau de base composant applicatif service technique environnement d’exécution
contrat Gestion de l’adaptation coordinateur moniteur annuaire niveau méta niveau de base P1S plate environ nement CA service transactionnel environnement d’exécution Requête export Requête export besoin appli P1S ONT P1S plate P1S ONT service transactionnel
Requête import contrat besoin appli environ nement Gestion de l’adaptation coordinateur environ nement besoin appli moniteur annuaire P1S plate P1S ONT P1S ONT niveau méta niveau de base P1S plate CA service transactionnel environnement d’exécution P1S ONT service transactionnel
moniteur filtre synthèse filtre filtre capteurs Gestion de l’adaptation service de gestion coordinateur <gère <notifie interroge> contrat moniteur annuaire représentation action représentation niveau méta niveau de base composant applicatif service technique environnement d’exécution
Gestion de l’adaptation service de gestion coordinateur Coordinateur • cohérence entre les composants • usine de contrat • permet d’enregistrer les nouvelles applications • fournit une référence sur le moniteur et l’annuaire • diffusion des informations du moniteur aux contrats • filtre • aiguilleur <gère <notifie interroge> contrat moniteur annuaire action représentation niveau méta niveau de base composant applicatif service technique environnement d’exécution
Décomposeur de requêtes Annuaire générique de composants répartiteur analyseur syntaxique service de nommage service de courtage Processeur de requêtes service de requêtes service de décision Gestion de l’adaptation service de gestion • annuaire de courtage sémantique • expression des préférences coordinateur <gère <notifie interroge> contrat moniteur annuaire représentation action représentation niveau méta niveau de base composant applicatif service technique environnement d’exécution
Requête export P1S plate Décomposeur de requêtes Annuaire générique de composants répartiteur analyseur syntaxique service de nommage service de courtage Processeur de requêtes service de requêtes service de décision Gestion de l’adaptation service de gestion • annuaire de courtage sémantique • Expression des préférences coordinateur <gère <notifie interroge> contrat moniteur annuaire représentation action représentation niveau méta niveau de base P1S plate composant applicatif service technique environnement d’exécution
Requête import besoin appli environ nement Décomposeur de requêtes Annuaire générique de composants P1S plate P1S plate répartiteur analyseur syntaxique P1S ONT P1S ONT service de nommage sous-requête 1 besoin appli service de courtage Processeur de requêtes service de requêtes environ nement service de décision Gestion de l’adaptation service de gestion • annuaire de courtage sémantique • Expression des préférences coordinateur <gère <notifie interroge> contrat moniteur annuaire représentation action représentation niveau méta niveau de base P1S mobile composant applicatif service technique environnement d’exécution
Requête import besoin appli environ nement Décomposeur de requêtes Annuaire générique de composants P1S plate P1S plate répartiteur analyseur syntaxique P1S ONT P1S ONT service de nommage Sous-requête 2 service de courtage Processeur de requêtes service de requêtes service de décision Gestion de l’adaptation service de gestion • annuaire de courtage sémantique • Expression des préférences coordinateur <gère <notifie interroge> contrat moniteur annuaire représentation action représentation niveau méta niveau de base P1S mobile composant applicatif service technique environnement d’exécution
Requête import besoin appli environ nement Décomposeur de requêtes Annuaire générique de composants P1S plate répartiteur analyseur syntaxique P1S ONT service de nommage service de courtage Processeur de requêtes service de requêtes Sous-requête 2 service de décision P1S ONT Gestion de l’adaptation service de gestion • annuaire de courtage sémantique • Expression des préférences coordinateur <gère <notifie interroge> contrat moniteur annuaire représentation action représentation niveau méta niveau de base P1S mobile composant applicatif service technique environnement d’exécution P1S plate
Gestion de l’adaptation service de gestion coordinateur <gère <notifie interroge> contrat moniteur annuaire représentation action représentation niveau méta niveau de base composant applicatif service technique environnement d’exécution
Prototype • Faisabilité • service Transactionnel ONT • modèle à composants vs modèle objets → + 0,14% • appel au ST par conteneur → + 0,02% • service de gestion • adaptation d’un service = 96 msec + temps Moniteur • sous-contrôleur objet → ajout statique • annuaire avec 4 types, 2 patrons, 20 personnalités • coordinateur simple • PC Pentium 4 / 1,5 GHz / Win2000 • Implantation • contrat et service de gestion • composition • 17 composants composites, 54 composants primitifs • 97 + (2*nb de contrats) liaisons • code • 83 classes et 44 interfaces java, • 10 fichiers FractalADL • moniteur • Windows, PalmOS, WinCE • 7 fichiers C++
Plan • Contexte et problématique • Nouvelles applications distribuées • Environnement hétérogène • Modèle à composants – Services Techniques • Etat de l’art et positionnement • Principes de base de l’adaptation des intergiciels • Travaux autour de l’adaptabilité • Propositions • Nouveau modèle de conception et de développement • Mécanisme de gestion de l’adaptation • Conclusion et perspectives
Annuaire générique de composants nommage courtage Conclusion • Cadre de conception et de développement des ST • conception de ST à base de composants • Fractal • P1S et L2S • redéfinition de l’assemblage • Mécanisme de gestion dynamique de l’adaptation • prise en compte • de l’environnement d’exécution • des besoins de l’application • réflexivité • Contrat, Moniteur, Annuaire, Coordinateur • Prototype • conception et développement • service transactionnel • gros grain • service d’annuaire • fin grain • service de gestion de l’adaptation • faisabilité • étendre les tests
Perspectives à court terme • Assurer la continuité dans le changement de P1S • composant de « contexte » • Outils pour développeur • de l’application • déterminer les besoins applicatifs • des services techniques • préciser la P1S • aide au découpage du service
Perspectives à long terme • Définition QoS d’un assemblage de composants • prendre en compte • composition, interactions, distribution • portée du contrat • niveau de contrat • syntaxique, comportemental, synchronisation, QoS • Adaptation au sein d’un service technique • granularité de découpage d’un service technique • le niveau d’adaptabilité • les performances • représentation dynamique d’une application • ADL insuffisant • besoin de suivre l’évolution dynamique