Localisation de services Localisation de services techniques dans un modèle à techniques dans un modèle à
composantscomposants
H. GRINE, C. Hérault, S. Lecomte, T. Delot
Journées Composants, le Croisic 7 avril 2005Journées Composants, le Croisic 7 avril 2005
LAMIH – ROI – SIDLAMIH – ROI – SID
Université de ValenciennesUniversité de [email protected]@univ-valenciennes.fr
PlanPlan
Contexte Objectifs Notre solution
Principe de base Architecture Fonctionnement
Conclusion et perspectives
Contexte Environnement pervasif
Hétérogène (terminaux, OS, protocoles réseau …) Déconnexions fréquentes Ressources limitées Offres de services changent constamment
ExempleExemple
Environnement pervasif
Développeurs
Applications
Transaction
Transaction
Sécurité
Les services techniquesLes services techniques
« Une propriété non fonctionnelle peut être associée à une application sans modifier la nature du service rendu par cette application à ses utilisateurs »
Un service technique offre des propriétés non fonctionnelles Ex: persistance, transaction, nommage …
Classification Les services d’interaction : gestion de la distribution, transport
synchrone / asynchrone Les services de cycle de vie : nommage, courtage Les services d’informations : persistance, transaction,
sécurité Les services de gestion de qualité de service : tolérance aux
fautes
Services techniques à base de Services techniques à base de composantscomposants
TransactionManager
TransactionManager
Service transactionnel simple
Flat
Services techniques à base de Services techniques à base de composantscomposants
Compensation Data Object
Compensation Data Object
TransactionManager
TransactionManager
Compensation Manager
Compensation Manager
ONT
Service transactionnel avec modèle avancé
callback
Flat
Localiser les services techniques Pourquoi ?
Nommage 1Nommage 1 Nommage 2Nommage 2
Sécurité 1Sécurité 1 Sécurité 2Sécurité 2
TMTMinterpreterinterpreter
Transaction 1
CDO tableCDO tableTMTM
CMCM
interpreterinterpreter
interpreterinterpreter
callback
Transaction 2
????
Transaction
Sécurité
????
ObjectifsObjectifs
Développer un service de localisation qui permet: Ajout dynamique des services techniques Localisation des services techniques en tenant compte
de l’environnement d’exécution des critères qualitatifs du composant
Retourne le service technique le mieux adapté
Les services de localisation actuelsLes services de localisation actuels
Le service de nommage : « pages blanches » retrouver des objets à partir de noms symboliques
Problème: connaître à l’avance les noms des services offerts.
Le service de courtage : « pages jaunes » retrouver des objets à partir de leurs propriétés les fournisseurs de services sont appelés
exportateurs et les consommateurs sont appelés importateurs
Problème: comparaison basée sur les interfaces
Localisation de services techniquesLocalisation de services techniquesPrincipe de basePrincipe de base
La collecte et le stockage de l’information description des services techniques
fonction référence propriétés techniques et environnementales
stockage des services techniques
La recherche de services techniques description des besoins du composant applicatif
contraintes relatives aux services techniques et à l’environnement
préférences mise en correspondance et décision
décision multicritères
Localisation de services techniquesLocalisation de services techniques ArchitectureArchitecture
Analyseur syntaxiqueAnalyseur syntaxique
RépartiteurRépartiteur
Outils de rechercheOutils de recherche
Service de
courtage
Service de
courtage
Service de
nommage
Service de
nommageProcesseur de requêtesProcesseur de requêtes
Service de localisation
Gestionnaire de requêtes
Service de requêtes
Service de requêtes
Service de décisionService de décision
Espace de stockage
FonctionnementFonctionnementExportation d’un service techniqueExportation d’un service technique
Analyseur syntaxiqueAnalyseur syntaxique
RépartiteurRépartiteur
Outils de rechercheOutils de recherche
Service de
courtage
Service de
courtage
Service de
nommage
Service de
nommageProcesseur de requêtesProcesseur de requêtes
Service de localisation
Gestionnaire de requêtes
Service de requêtes
Service de requêtes
Service de décisionService de décision
XML
ExportEspace de stockage
<Type> <Name>Transaction_Service</Name> <ADL> <definition name="TransactionServiceType"> <interface signature=“org.objectweb.transaction.TransactionService“ role="server" name="TxSFlat"/> </definition> </ADL> <propertyType> <property value=“Flat"/> </propertyType></Type>
<Instance> <Function>Transaction_Service</Function> <URL>RMI://152.122.69.01</URL> <technicalProperties> <property name="version" relation="EQ“ value="Flat"/> </technicalProperties> <environmentProperties> <property name="memory" relation="EQ“ value="100" unit="MB"/> <property name="CPU" relation="EQ" value="100“ unit="MHz"/> </environmentProperties></Instance>
Exporter un type
Exporter une instance
Outils de rechercheOutils de recherche
FonctionnementFonctionnementExportation d’un service techniqueExportation d’un service technique
Analyseur syntaxiqueAnalyseur syntaxique
RépartiteurRépartiteur
Processeur de requêtesProcesseur de requêtes
Service de localisation
Gestionnaire de requêtes
Service de requêtes
Service de requêtes
Service de décisionService de décision
Service de
courtage
Service de
courtage
Service de
nommage
Service de
nommage
XML
Export
RépartiteurRépartiteur
Gestionnaire d’exportationGestionnaire d’exportation
Gestionnaire d’importationGestionnaire d’importation
Name= Transaction_ServiceADL = <definition>…</definition>Property=Flat
FonctionnementFonctionnementExportation d’un service techniqueExportation d’un service technique
Analyseur syntaxiqueAnalyseur syntaxique
RépartiteurRépartiteur
Processeur de requêtesProcesseur de requêtes
Service de localisation
Gestionnaire de requêtes
Service de requêtes
Service de requêtes
Service de décisionService de décision
Outils de rechercheOutils de recherche
Service de
courtage
Service de
courtage
Service de
nommage
Service de
nommage
XML
Export
Type_IDName
TypeInterface_IDNameRoleSignature
Interface
Template_IDNameContentControllerParent_ID
Template
TemplateProperty_IDName
Template Properties
Instance_IDNameLocalisation
Instance
InstanceProperty_IDNameRelationValueUnit
Instance Properties
Has
Extends
Has
Instantiate
Binding
Has
FonctionnementFonctionnementImportation d’un service techniqueImportation d’un service technique
Analyseur syntaxiqueAnalyseur syntaxique
RépartiteurRépartiteur
Processeur de requêtesProcesseur de requêtes
Service de localisation
Gestionnaire de requêtes
Service de requêtes
Service de requêtes
Service de décisionService de décision
XML
Import
Outils de rechercheOutils de recherche
Service de
courtage
Service de
courtage
Service de
nommage
Service de
nommage
<Function>Transaction_Service</Function><propertyMatching> <Constraints> <queryInstance> <queryTechnical> <property name="version" relation="EQ" value=“Flat"/> </queryTechnical> <queryEnvironment> <property name="memory" relation="GT" value="100" unit="MB“ composition="AND"/> <property name="CPU" relation=“LT" value=“300" unit="MHz"/> </queryEnvironment></queryInstance></Constraints> <Preferences> <preferenceTechnical priority=“10"> <property name=“version" relation="EQ" value=“Flat"/> </preferenceTechnical> <preferenceEnvironment priority=“7"> <property name="memory" relation="EQ" value="150" unit="MB"/> </preferenceEnvironment><preferenceEnvironment priority=“3"> <property name=“CPU" relation="EQ" value=“200" unit="MHz"/> </preferenceEnvironment></Preferences></propertyMatching>
FonctionnementFonctionnementImportation d’un service techniqueImportation d’un service technique
Analyseur syntaxiqueAnalyseur syntaxique
RépartiteurRépartiteur
Processeur de requêtesProcesseur de requêtes
Service de localisation
Gestionnaire de requêtes
Service de requêtes
Service de requêtes
Service de décisionService de décision
Outils de rechercheOutils de recherche
Service de
courtage
Service de
courtage
Service de
nommage
Service de
nommage
XML
Export
RépartiteurRépartiteur
Gestionnaire d’exportationGestionnaire d’exportation
Gestionnaire d’importationGestionnaire d’importation
•Contraintes (version= Flat and Memory>100 MB AndCPU < 300 MHz)•Préférences (version=Flat priority=10 And Memory=150 MB priority=7 And CPU=200 MHz priority=3)
Outils de rechercheOutils de recherche
FonctionnementFonctionnementImportation d’un service techniqueImportation d’un service technique
Analyseur syntaxiqueAnalyseur syntaxique
RépartiteurRépartiteur
Processeur de requêtesProcesseur de requêtes
Service de localisation
Gestionnaire de requêtes
Service de requêtes
Service de requêtes
Service de décisionService de décision
Service de
courtage
Service de
courtage
Service de
nommage
Service de
nommage
Réponse
XML
Export
Service de décisionService de décision
Satisfaite
Comparaison des contraintes
stop
Non
Comparaison despréférences
Oui
Satisfaite
stop
Non Oui
Classement
Resultat
ConclusionConclusion Un service pour localiser des services techniques
notion de QoS prenant en compte: les besoins du composant. l’environnement d’exécution.
Implémentation Java, Julia 2.0 description des services techniques et des requêtes en XML
Adaptabilité dynamique des services technique
Adaptabilité des services techniquesAdaptabilité des services techniques
MoniteurMoniteur
ServicetechniqueService
techniqueComposantapplicatif
Composantapplicatif
ContratContrat
CoordinateurCoordinateur
Service de
localisation
Service de
localisation
consulte
consulte
référence
consulte
écritXMLXML
PerspectivesPerspectives Politiques de recherches Structure de stockage en une Bd XML Adaptabilité des services de requêtes dans des
environnements mobiles
QuestionsQuestions
??????