Professional Documents
Culture Documents
I I
client
rponse
serveur
Vu du serveur
N Gestion des requtes (priorit) N Excution du service (squentiel, concurrent) N Mmorisation ou non de ltat du client
traitement
rponses
10 - 1
veilleur
veilleur excutant
S. Krakowiak
10 - 2
slection
requtes
traitement
rponse
S. Krakowiak
10 - 3
Pool dexcutants
while (true) { work_to_do.get (client_id, service_id, params) ; do_service{service_id] (params, results) send (client_id, results) };
traitement
rponse
S. Krakowiak 10 - 4
rponse
S. Krakowiak 10 - 5
Solutions possibles
N Dsignation du serveur par le client O le client connat (par convention gnrale ou par accord direct) le site et le numro du porte du serveur - le problme est rsolu O le client ne connat quun nom symbolique du service L dans ce cas, on passe par un service de dsignation, qui fournit le couple (site, numro de porte) corrspondant au nom symbolique du service L il faut connatre directement le site et le numro de porte du service de dsignation N Dsignation du client par le serveur O dans la requte, le client indique un site et un numro de porte vers lesquels renvoyer la rponse
Dans la pratique
N On utilise des noms symboliques, et les oprations de dsignation sont invisibles aux utilisateurs
S. Krakowiak 10 - 6
Introduction T cl-DP
N Tcl-DP est un logiciel (middleware) qui ralise une extension rpartie de DP N Services fournis aux utilisateurs : appel de procdure distance et objets rpartis O galement : utilisation directe du protocole TCP (nous nen parlons pas)
N Une fois ces deux oprations ralises, le client peut appeler le serveur en utilisant lidentification mise en place L dp_RPC descripteur_de_serveur commande
S. Krakowiak 10 - 7
Lancement du veilleur
N dp_MakeRPCServer numro_de_porte # excut chez le serveur N Le numro de porte doit tre choisi (>1024) ; si 0, c'est le systme qui alloue un numro
Motivations
N Amliorer la structuration et la rutilisabilit des programmes O facilit de comprhension et de modification, constructions gnriques rutilisables
Notions de base
N Encapsulation O Un objet encapsule un tat (ensemble de donnes), accessibles uniquement au moyen dun ensemble de fonctions (mthodes) qui constituent linterface de lobjet O Linterface dfinit tout ce qui est ncessaire lutilisation de lobjet ; on peut remplacer une ralisation par une autre, condition de respecter linterface N Classes et instances O O Un objet est un exemplaire (instance) dune classe ; les instances dune classe ont la mme interface mais diffrent par la valeur de ltat Les instances sont cres et dtruites dynamiquement
N Hritage O Dans beaucoup de cas, on peut dfinir une classe partir dune autre, par spcialisation, enrichissement, surcharge. La nouvelle classe hrite de lancienne. Intrt : rutilisation de leffort de conception et de la ralisation, meilleure organisation du logiciel N Polymorphisme O Dans certains cas, des mthodes acceptent des paramtres de plusieurs types et ont un comportement diffrent selon le type
S. Krakowiak 10 - 9
Objets rpartis
I
Motivations
N Fournir un mode dorganisation dapplications rparties privilgiant le partage dinformations rparties sur plusieurs sites entre des utilisateurs eux-mmes rpartis
Principes
N On dfinit un ensemble dobjets rpartis, utilisables via leurs mthodes, avec les conditions daccs suivantes O transparence de localisation : un objet est dsign par un nom logique indpendant de sa localisation physique (la localisation peut changer sans que le nom change) O transparence daccs : on accde un objet distant exactement de la mme manire qu un objet local
Utilisations possibles
N Applications mettant en uvre des donnes partages rparties que lon veut rendre globalement accessibles O dition cooprative O ingnierie cooprative (conception assiste par ordinateur avec partage de donnes) O autres formes de travail coopratif (tl-enseignement, tl-mdecine) O documentation
S. Krakowiak
10 - 10
Principe
N Schma idal (organisation symtrique)
processus site A
interface objet
processus
site C
site B
site A
interface objet
serveur
10 - 11
Organisation gnrale
N Pour chaque objet rpartir, on choisit un serveur responsable de cet objet, et on dfinit lorganisation de la classe de lobjet (composants de ltat, mthodes) N Sur chaque serveur : on cre le ou le objet(s) et on les initialise (on fixe la valeur initiale de ltat) N Sur chaque client (utilisateur) dun objet : on fait appel au serveur de lobjet pour le distribuer au client. Cette opration cre un reprsentant local de lobjet sur le site du client. Pour le client, tout se passe comme si le reprsentant tait lobjet N (facultativement) Chez le serveur et chez les clients : mise en place de dclencheurs : mcanisme qui associe une action chaque modification de ltat dun objet. Utile par exemple pour rafficher un objet chaque modification
Primitives
N dp_objectCreateProc class object N dp_objectSlots object
N dp_objectConfigure class object ?args?
N dp_objectSlotSet object slot value -- dfinit un champ dans un objet et linitialise -- configure un objet pour pouvoir y accder en particulier dfinit quels sont les champs de lobjet et fixe leur valeur initiale
N dp_distributeObject object processes makeObject distribue un objet (cr au pralable dans un serveur) un ensemble de processus processes = liste des descripteurs des processus makeObject = la procdure de cration associe la classe de lobjet cette procdure est excute par le serveur, la demande des clients N dp_setf object slot value N dp_getf objet slot N encore quelques autres primitives -- affecte une valeur un champ dun objet (et la distribue automatiquement) -- renvoie la valeur dun champ dun objet
-- met en place un dclencheur
S. Krakowiak
10 - 13
veilleur
Crer instances 1 avec valeurs initiales
4 demander distribution de 4 6
A1 lobjet A aux clients (on suppose que client 1 connat client 2)
reprsentant local de A
porte
client 1
distribution
A2
reprsentant local de A
client 2
S. Krakowiak
10 - 15
Rsum de la sance 10
Applications client-serveur
N applications client-serveur utilisant lappel de procdure distance; principe, mise en uvre dans Tcl, exemples N introduction aux applications client-serveur base dobjets partags ; principe, mise en uvre dans Tcl, exemples
Plan de la suite
N applications client-serveur sur lInternet O Service de noms : DNS (sance 11) O World Wide Web : fonctionnnement et utilisations (sances 11 et 12)
S. Krakowiak
10 - 16