Découverte et description de services distribués Oussama KASSEM ZEIN.

Slides:



Advertisements
Présentations similaires
Module 5 : Implémentation de l'impression
Advertisements

Le struts validator – framework de validation
Transformation de documents XML
Architecture CORBA réseau Objet Corba Application Serveur
Object Management Architecture (OMA)
Cours 5 : Les Web Services et WSDL Mars Version 1.0 -
le langage les éléments
Localisation de services techniques dans un modèle à composants H. GRINE, C. Hérault, S. Lecomte, T. Delot Journées Composants, le Croisic 7 avril 2005.
! 1 CREATION D'UNE MAQUETTE EXPORT / IMPORT
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Initiation au système d’information et aux bases de données
Principes de programmation (suite)
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Etude des Technologies du Web services
Structures de données linéaires
Programmation orientée objet
XML-Family Web Services Description Language W.S.D.L.
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Struts 1 & 2 Tlohi ibtissam Tabit boutaina Ilias bouras
Microsoft® Lync™ 2010 Formation sur l’application Response Group
Algorithmique et Programmation
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Chap 4 Les bases de données et le modèle relationnel
28 novembre 2012 Grégory Petit
RDF(S)
CAT 2000 LES MIDDLEWARES Présenté par : Tagmouti Siham Smires Ali
Complément Le diagramme des classes
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Xpath XML Path language par Yves Bekkers
Manipulation de formulaires en Javascript
Présentation Structures de Données et TDA
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
1 1 Corba avec Java et C Jean-Marc Vanel Transiciel - Sogeti.
IFT 6800 Atelier en Technologies d’information
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
COURS DE PROGRAMMATION ORIENTEE OBJET :
COURS DE PROGRAMMATION ORIENTEE OBJET :
Séminaire Service Interoperability on Context Level in Ubiquitous Computing Environments Davide Bazzi IIUF Etude de larticle: Service Interoperability.
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
SGBD orientés Objet Standards : OMG et ODMG.
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II PRO-1024.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Programmation objet La base.
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
Créer des packages.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Tables de compilation pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Tutorat en bio-informatique
Nouvelles Technologies Internet & Mobile
CSI 3525, Implémentation des sous-programmes, page 1 Implémentation des sous-programmes L’environnement dans les langages structurés en bloc La structure.
Sélection de colonnes (la projection)
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
PHP 6° PARTIE : LES SESSIONS 1.Introduction 2.Identificateur de session 3.Variables de session 4.Client / Serveur 5.Principe 6.Ouverture de session 7.Enregistrement.
 Formulaires HTML : traiter les entrées utilisateur
Master 1 SIGLIS Intégration des données dans l’entreprise Stéphane Tallard JDBC: Java Database Connectivity Master 1 SIGLIS1JDBC.
France Télécom R&D Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Architecture Client/Serveur
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Initiation aux bases de données et à la programmation événementielle
Initiation aux bases de données et à la programmation événementielle
INTRODUCTION AUX BASES DE DONNEES Base et métabase
Philippe Gandy - 15 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Java Remote Method Invocation
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
ARIANE : Interopérabilité sémantique et accès aux sources d'information sur Internet Sylvain Aymard, Michel Joubert, Dominique Fieschi, Marius Fieschi.
Transcription de la présentation:

Découverte et description de services distribués Oussama KASSEM ZEIN

Y Kermarrec Introduction Les besoins dun objet de découvrir un autre objet dans les systèmes distribués. Plusieurs possibilités : Pages blanches : comme le serveur de nom de CORBA. Pages jaunes : comme le Trader de CORBA.

Y Kermarrec Le service de nommage Il définit un espace de désignation pour retrouver les objets ou les services à partir dun nom symbolique. Cet espace peut être structuré par un graphe de répertoires contenant des références sur les objets.

Y Kermarrec Le service de nommage Service de nommage de CORBA (Naming service). Lespace de désignation est organisé en graphes de contextes de nommage concaténés (NameComponent, Name, NamingContext). Chaque contexte maintient une liste dassociations entre les noms symboliques et des références dobjet. Graphe : nœuds = contextes, feuilles = objets.

Y Kermarrec Le service de nommage

Y Kermarrec Le service de nommage Un exemple dun nom dobjet : Les contextes sont équivalents à la notion de répertoire/sous-répertoire.

Y Kermarrec Le service de nommage Il fournit des opérations comme : bind et rebind : ajouter une association entre un nom et une référence. Bind_context et rebind_context : ajouter une contexte existante. resolve :retourne la référence de lobjet qui correspond à un contexte.

Y Kermarrec Le service de nommage Les fonctionnements :

Y Kermarrec Le service de nommage Comment savoir où est le serveur de nom ? Enregistrer ladresse du serveur de nom dans un fichier. Indiquer ladresse du serveur de nom dans une variable denvironnement. Indiquer ladresse dans un paramètres de service de nommage (ORBNaming) à lexécution.

Y Kermarrec Le service de nommage (Exemple ORBACUS) Nous lançons le serveur de nom par : java com.ooc.CosNaming.Server –i –OAport > nameservice.ior Côté Serveur : // on cherche la r é f é rence du serveur de nom org.omg.CORBA.Object objRef= orb.resolve_initial_references("NamingService"); NamingContextncRef=NamingContextHelper.narrow(objRef); //on d é finit un contexte à ajouter NameComponent[] mm=new NameComponent[1]; mm[0]=new NameComponent(); mm[0].id= « nom » ; mm[0].kind="";

Y Kermarrec Le service de nommage (Exemple ORBACUS) // pour ajouter un contexte ou un objet NamingContext ncc1 = ncRef.bind_new_context(mm); ncRef.rebind(mm,manRef) ou manRef est lobjet associé au contexte mm

Y Kermarrec Le service de nommage (Exemple ORBACUS) Côté Client : // on cherche la r é f é rence du serveur de nom org.omg.CORBA.Object objRef= orb.resolve_initial_references("NamingService"); NamingContextncRef=NamingContextHelper.narrow(objRef); //on d é finit un contexte à chercher NameComponent[] mm=new NameComponent[1]; nm[0]=new NameComponent(); nm[0].id= « nom » ; nm[0].kind=""; //pour chercher lobjet du serveur de nom org.omg.CORBA.Object ob=ncRef.resolve(nm);

Y Kermarrec Le service de courtage (exemple : Trader de CORBA) Il étend les possibilités du serveur de nom. Un annuaire de type pages jaunes qui permet à un service ou un objet dêtre découvert via une description basée sur des propriétés. Un serveur enregistre les services quil désire rendre disponibles au niveau du trader en les caractérisant par un ensemble de propriétés

Y Kermarrec Le service de courtage (exemple : Trader de CORBA) Un client qui désire un service offert interroge le trader en donnant les caractéristiques attendues. Le trader enregistre les services offerts dans ses bases de données. Les clients utilisent SQL ou bien un langage booléen pour interroger le trader.

Y Kermarrec Trader de CORBA (Type de Service) Type de service : chaque service est défini par un type. construisent les bases de données du trader. Chaque propriétés a un nom et un type. Lensemble de ces propriétés définissent les attributs des bases de données du trader.

Y Kermarrec Trader de CORBA (Type de Service) Un type de service est constitué de : Un nom : identifie dune façon unique le type de service. Un type dinterface : une interface IDL. Elle fournit lensemble dopérations quun client peut invoquer sur le service. Une collection de propriétés : définit les caractéristiques du type de service. Chaque propriété est constituée dun nom, dun type et dun mode.

Y Kermarrec Trader de CORBA (Service Offert) Service offert : est une instance dun type de service. Par exemple, il peut être un n-uplets dans les bases du trader. Un service offert a les caractéristiques suivantes: Nom du type de service. Un référence dobjet : fournit un pointeur qui permet à un client daccéder au service.

Y Kermarrec Trader de CORBA (Service Offert) Un ensemble de propriétés : qui sont des valeurs affectées à celles définies dans le type de service.

Y Kermarrec Trader de CORBA (Opération dImportation) Importation dun service : est une fonction utilisée par les clients pour interroger les services via le trader. Cette fonction prend plusieurs paramètres comme: Type de service : informe le trader par le type de service par lequel le client est intéressé.

Y Kermarrec Trader de CORBA (Opération dImportation) Contrainte : est une expression décrite dans un langage de contraintes. Elle permet e spécifier les critères de recherche. Par exemple, cette expression peut être une expression booléenne. Le trader évalue chaque service offert avec la contrainte. Si lexpression est vrai, alors loffre est considérée comme appropriée.

Y Kermarrec Trader de CORBA (Opération dImportation) Préférence : est une expression qui indique lordre par lequel le trader doit retourner les services offerts aux clients. Par exemple, le trader dORBACUS définit : Max expression : les services offerts doivent être retournés par ordre décroissant selon la valeur de lexpression (une propriété). Min expression : les offres sont triées par ordre croissant. With expression, random, first.

Y Kermarrec Trader de CORBA (Opération dExportation) Exportation dun service : est une fonction utilisée par les serveurs pour enregistrer des services offerts via le trader. Le serveur doit savoir le type de service, avoir une référence dobjet et des valeurs des propriétés définies dans le type de service.

Y Kermarrec Trader de CORBA (Opération de Modification) Modification et suppression dun service offert : un serveur peut modifier, supprimer et ajouter des propriétés dun service offert selon le mode et les droits daccès à ses propriétés. La référence dobjet associé à un service ne peut pas être modifiée.

Y Kermarrec Trader de CORBA (architecture) Architecture et interactions :

Y Kermarrec Trader de CORBA (quelques appels) addtype pour ajouter un nouveau type de service au trader. query pour interroger des services offerts via le trader. registre_if et exports pour enregistrer des services offerts dans le trader.

Y Kermarrec Trader de CORBA (Exemple) Exemple : une banque. Une banque peut être caractérisée par son nom, sa localisation, le nombre de guichets, etc. Nous lançons le serveur du trader en enregistrant sa référence par exemple dans le serveur de nom.

Y Kermarrec Trader de CORBA (Exemple) Nous déclarons le type de service « une banque » : nom (string). localisation (string). n_guichets (short). ouvre_dimanche (boolean). Nous ajoutons ce type au trader. Cette étape configure le schéma de base de données qui décrit les services de type « une banque ».

Y Kermarrec Trader de CORBA (Exemple) Le serveur peut créer un objet qui implémente linterface définie dans le type de service. Il peut définir un service qui inclut la référence de lobjet et des valeurs des propriétés définies dans le type de service. nom ==société générale, localisation==Brest,Ouvre_dimache=FALSE

Y Kermarrec Trader de CORBA (Exemple) Il ajoute ce service au trader qui lajoute dans la base de données associée au type de service « une banque ». Le client de son côté appelle le trader pour demander des services qui ont des propriétés précises.

Y Kermarrec Trader de CORBA (Exemple) Il indique ses contraintes et ses préférences. Par exemple : Contrainte : localisation ==Brest. Préférence : max(nom). Le trader retourne les services désirés au clients avec leurs références.

Y Kermarrec Trader de CORBA (ORBACUS) Classe Trader qui contient la configuration des bases de données du trader. Nous définissons les propriétés de chaque attribut dune base de données associée à un type de service. Les attributs sont définis par leurs noms, types, et mode. Nous utilisons le type PropStruct[] pour définir les attributs de bases de données

Y Kermarrec Trader de CORBA (ORBACUS) Exemple : PropStruct[] props = new PropStruct[4] Props[0].name=« nom »; Props[0].value_type=orb.get_primitive_tc(org.omg.CORBA. TCKind.tk_short); Props[0].mode=org.omg.CosTradingRepos.ServiceTypeRepositoryPa ckage.PRopertyMode.PROP_NORMAL; add_type(SERVICE_TYPE,..,Props,..)

Y Kermarrec Trader de CORBA (ORBACUS) Le serveur recherche la référence du trader via par exemple serveur de nom. Il déclare un objet et il ajoute la référence et les propriétés de cet objet au trader. Il utilise linterface register_if du trader et puis linterface export pour exporter les propriétés. Puis, il se met en attente pour répondre aux demandes des clients.

Y Kermarrec Trader de CORBA (ORBACUS) Le client recherche la référence du trader. Il initialise ses préférences et sa requête. Par exemple : Préférence : max(nom). constraint : ouv_dimanche==TRUE and localisation==Paris

Y Kermarrec Trader de CORBA (ORBACUS) Il utilise linterface query du trader pour interroger le service en donnant comme paramètres : le type de service, les préférences, les contraintes, etc. Il affiche les résultats et les services retournés. Ils utilisent le type org.omg.CosTrading.Property pour afficher les propriétés des services.

Y Kermarrec Description de services Lidée est de bien décrire le service pour pouvoir linterroger. Beaucoup dapproches ont été proposées comme DAML-S, WSFL, etc. Nous pouvons décrire un service par trois niveaux.

Y Kermarrec Description par de services Propriétés statiques : ceux sont les propriétés que nous utilisons souvent avec le trader de CORBA pour interroger les services. Elles définissent les caractéristiques de services. Propriétés dynamiques ou le comportement : elles indiquent ce que le service peut faire. Linterface : elle définit les moyens dinteractions avec le service.

Y Kermarrec Description par des propriétés statiques Propriétés statiques: Localisation du service : détermine la localisation du service comme une adresse URL, une adresse de compagnie, etc. Ladresse physique dune compagnie peut être constituée de : nom de la ville, nom de la rue, le code postal, etc.

Y Kermarrec Description par des propriétés statiques Fournisseur de service : son nom, sa localisation, son numéro de téléphone, son , ladresse URL de sa page Web. Outils de demande et de livraison : indiquent les moyens par lesquels un client peut demander un service ou recevoir le résultat de l exécution dun service. Par exemple, un PDA, un téléphone portable, etc.

Y Kermarrec Description par des propriétés statiques Paiement : est le processus défini par le fournisseur pour recevoir le prix du service. Il peut être réalisé en utilisant différentes méthodes (carte bleue, chèque, virement bancaire, etc.). Il peut être fait avant la livraison, à la livraison, après la livraison, etc.

Y Kermarrec Description par interface La description de linterface signifie la description de ses opérations et leurs paramètres, ses attributs, etc. Elle permet aux clients de découvrir les opérations disponibles et de comprendre comment ils peuvent formuler et exécuter les requêtes dinvocation du service lors de lexécution.

Y Kermarrec Description par interface Linterface peut être décrite par : Un nom. Une liste dopérations. Une liste dexceptions. Une liste dattributs. etc.

Y Kermarrec Description par interface Une opération peut être décrite par : Un nom. Le type de retour. Le nombre de paramètres. Une liste de paramètres. Une liste dexceptions. etc.

Y Kermarrec Description par interface Un paramètre peut être décrit par : Un nom. Un type. Un mode : entrée (in), sortie (out), entrée/sortie (inout). Le nom de lopération à laquelle le paramètre est associé. Une position dans lopération : le premier paramètre, le deuxième paramètre, etc.

Y Kermarrec Description par interface Si un client découvre un service lors de lexécution et sil ne connaît pas son interface, alors cette description lui fournit les informations nécessaires pour quil puisse invoquer le service en utilisant par exemple linterface DII de CORBA. Un exemple sur cette description est linterface Repository de CORBA.

Y Kermarrec Description par comportement Le comportement du service indique ce que le service peut faire. Il détermine comment utiliser et invoquer le service. Il indique les ordres par lesquels les opérations du service peuvent être exécutées. Par exemple, un client ne peut pas appeler un service bancaire pour déposer un montant sans quil ait ouvert un compte.

Y Kermarrec Description par comportement La description du comportement inclut la description de fonctionnalités de chaque opération et la possibilité de la connecter à dautres opérations. Nous pouvons utiliser les automates pour décrire le comportement dun service.

Y Kermarrec Description par comportement Chaque opération peut être décrite par des entrées/sorties, c- à-d, ce que lopération peut prendre en entrée et ce quelle peut fournir en sortie. Les états de lautomate représentent les opérations du service. Deux états sont connectés sils ont une même entrée/sortie.

Y Kermarrec Description par comportement Une transition dun état S à un autre état T est faite en exécutant lopération représentée par létat S et en fournissant une sortie qui doit être une entrée à létat T.

Y Kermarrec Description par comportement Un exemple dun automate : Cet automate est composé de deux états : latex et dvips

Y Kermarrec Description par comportement Implémentation de lautomate : current-state = initial-state; input = wait (message); while(!end or exit) { if (input=« tex » and current-state=initial-state) { call latex; input = output(latex); if (input=« error ») input=« tex »; else current_state=« dvips »; } if (input=« dvi » and current-state=« dvips ») { call dvips; input=« ps »; current_state=final;} }

Y Kermarrec Description par comportement Description : comment un client peut interroger un service par son comportement? Boîte noire qui indique ce que le service peut prendre en entrée et peut fournir en sortie. Dans lexemple précédent : entrée (tex), sortie (error, dvi, ps )

Y Kermarrec Description par comportement Boîte blanche qui indique les chemins dinteractions entre les opérations pour fournir une sortie à partir dune entrée donnée.

Y Kermarrec Composition de services Plusieurs services peuvent être assemblés en un seul service ayant comme fonctionnalité la composition de celles de services composants. Lidée est de créer de nouveaux services en combinant des services existants pour répondre aux demandes des clients.

Y Kermarrec Composition de services La composition permet denrichir le modèle de services existants en créant de nouveaux services. Si un client demande un service en interrogeant son comportement et si ce service nexiste pas alors une combinaison des comportements de deux ou plusieurs services répond peut être à sa demande.

Y Kermarrec Composition de services Deux services peuvent être composés sils ont aux moins une même entrée/sortie. Exemple : un client qui demande un service qui transforme un fichier « tex » en un fichier « pdf ».

Y Kermarrec Composition de services Le service composé :

Y Kermarrec Composition de services Trois types de composition : Composition statique : permet de créer de nouveaux services offerts à partir des services existants à la compilation Composition semi-dynamique : permet de créer de nouveaux types de services à partir des types de services existants à la compilation Composition dynamique : permet de générer des services composés à partir des services existants à lexécution

Y Kermarrec Composition statique Un service composé est considéré comme un service offert qui est constitué de deux ou plusieurs services offerts Ce type est limité puisquun service composé doit être défini à la compilation Si un service offert est mis à jour à lexécution, alors le service composé doit être mis à jour manuellement et recompilé Ce type est limité aux services offerts

Y Kermarrec Composition semi-dynamique (1/2) La composition est au niveau types de services Chaque service offert dun type de service composé est considéré comme service composé Les clients ne sont pas limités à des services offerts précis mais ils utilisent les types de services Spécification de services

Y Kermarrec Composition semi-dynamique (2/2) Ce modèle est plus élaboré que la composition statique puisque les clients peuvent préciser les propriétés attendues des services à composer Exemple : dans le contexte de mobilité, si un client compose un service de type « météo » avec un service de type « cinéma » et si la localisation change, alors la composition sadapte à ce changement Ce type est limité au types de services définis à la compilation

Y Kermarrec Composition dynamique (1/3) Le modèle le plus élaboré Les services à composer sont définis au fur et à mesure en se basant sur la demande du client Le Trader retourne au client toutes les combinaisons possibles qui peuvent répondre à la demande du client en connectant les entrées/sorties Le client peut interroger les services composants en indiquant les caractéristiques attendues

Y Kermarrec Composition dynamique (2/3) Un client a la possibilité de composer des services définis à lexécution Le client peut invoquer les services en interrogeant leurs interfaces et en utilisant linterface DII de CORBA Si une interface dun service est mise à jour à lexécution, alors le code client na pas besoin dêtre mis à jour ou recompilé Dans ce modèle de composition, le client peut interroger les services par ses trois niveaux de description

Y Kermarrec Composition dynamique (3/3) Étapes de la composition : Le client découvre les plans des services à composer et peut en choisir un (en interrogeant la Boîte_noire) Pour chaque type de service composants dans le plan, le client peut interroger les services offerts (en utilisant les propriétés statiques) et peut en choisir un Le client découvre les chemins dinteractions entre les opérations de service choisi (Boîte_blanche) Pour invoquer le service, le client peut découvrir son interface pour invoquer ses opérations en suivant le chemin dinteraction sélectionné dans létape précédente Le client réitère avec les autres types de services composants dans le plan