Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Plan
Introduction Mise en oeuvre de lappel de procdure distante Gestion du contrle Gestion des donnes Transmission des arguments (prsentation) Dsignation/liaison Tolrance aux pannes Conclusion Bibliographie
Introduction
Les implantations de lappel de procdure distante (1) Les approches RPC traditionnelles
SUN ONC/RPC
Open Network Computing / Remote Procedure Call
OSF DCE
Open Software Foundation - Distributed Computing Environnment
Les implantations de lappel de procdure distante (2) Approches RPC intgres dans les systmes dobjets rpartis
OMG CORBA
Object Management Group - Common Object Request Broker Architecture
Microsoft - DCOM
Distributed Component Object Model
Les implantations de lappel de procdure distante (3) Approches RPC intgres dans les systmes de composants
SUN J2EE EJB
Java 2 (Platform) Enterprise Edition - Enterprise Java Beans
OMG CCM
Object Management Group - Corba Component Model
WS-SOAP
Web Services - Simple Object Access Protocol
Inconvnients
Univers de systmes homognes. Volume de codes et de donnes changer pages par pages. Problmes de partage selon cohrence de la mmoire rpartie.
12
CLIENT
SERVEUR
Notion de souches
Un mode de ralisation par interception ( wrapping )
Une procdure intercepteur ( wrapper) intercepte lappel dun client vers un serveur et modifie le traitement serveur sa guise. Dcomposition en intercepteur cot client et intercepteur cot serveur. Dcomposition en traitements avant et aprs le traitement serveur.
Souches: transformation dun appel local en appel distant. Objectif de gnration automatique des souches connaissant le profil d appel de la procdure distante. Trs nombreuse terminologie dans ce cas : Souches ("Stubs"), Talons, Squelettes ("Skeletons")...
14
Site client
rf
Site serveur
tat Proc_1
appel
Souche client
Client
Souche serveur
. Proc_2 .
15
client 1 10 6
serveur 5
souche serveur 7 4
transport serveur
17
19
21
Conclusion ralisation de lappel de procdure distante Lappel est dabord dvelopp en invocation distante par messages.
Supporte l'htrognit Finalement le plus simple raliser. RPC, DCE, CORBA, RMI, DCOM, SOAP
Des optimisations peuvent tre obtenues par l'usage opportun des autres solutions.
Exemple: Chorus a dvelopp les quatre solutions. Exemple: DCOM RPC par messages + RPC lger (aussi prvu en CORBA).
22
Gestion du contrle
I) Paralllisme chez le client II) Paralllisme chez le serveur III) Structures de contrle rparti par composition dappels distants
23
CLIENT
Avantage: le flot de contrle est le mme que dans l'appel en mode centralis Inconvnient: le client reste inactif.
24
SERVEUR
procedure proc Debut serveur actif Fin
Retour
25
Appel Retour
27
Exemple RPC SUN : traitement squentiel des requtes mais utilisation de UDP => requtes non ordonnes (mais mode synchrone le client attend la fin du traitement). Autres exemples: les RPC ont un mode squentiel (ex CORBA)
30
III) Schmas de contrle: composition dappels distants en squence A) Schma appel en cascade synchrone
Appel synchrone du destinataire et asynchrone des intermdiaires Code appel1 Code appel 2
Client
Site1
Site 2
Code destinataire1
Code destinataire n
Baptis schma continuation en mode asynchrone. Lmetteur prpare une liste de procdures destinataires invoquer en mode asynchrone. Le message dappel visite successivement les destinataires. Analogie avec le routage par la source en mode message Implantation: protocole SOAP en mode message. 33
Code intermdiaire1
Code destinataire
Intermdiaire1
Destinataire
Le premier schma continuation propos. Une liste dintermdiaires en mode asynchrone et un destinataire final : le tout en mode synchrone pour le client. Implantation: protocole SOAP en mode RPC. 34
Appel synchrone du destinataire et Code asynchrone des intermdiaire intermdiaires Retour Client
Code destinataire
Destinataire
Une liste dintermdiaires en mode asynchrone est possible lappel comme la rponse : le tout en mode synchrone pour le client. Implantation: protocole SOAP en mode RPC.
35
Code destinataire 1
Code destinataire 2
Code destinataire N
Client
Destinataire 1 Destinataire 2
Destinataire N 36
Code destinataire 2
Code destinataire N
Client
Destinataire 1 Destinataire 2
Destinataire N 37
Ordre local: Les excutions pour un client sont ralises dans l'ordre d'mission. Ordre global: Les excutions pour un client sont ralises dans le mme ordre sur tous les destinataires (cas des communications de groupe). Ordre causal: Les excutions sont effectues en respectant la 38 relation de causalit qui existe entre les requtes.
39
En fait une notion identique celle du descriptif de connexion chez le serveur dans une communication en mode connect. 42
44
47
48
50
52
53
55
OSF DCE
IDL DCE - Format NDR Network Data Representation
OMG CORBA
IDL Corba - Format CDR Common Data Representation, Protocole IIOP
Microsoft - DCOM
MIDL Microsoft IDL - DCOM Protocole ORPC Object RPC Format NDR
WS-SOAP
WSDL Web Services Definition Language - XML
57
Marche bien dans beaucoup de cas mais violation assez inacceptable dans certains cas de la smantique du passage. Exemple de problme
procdure double_incr ( x , y ) ; x , y : entier ; dbut x := x + 1 ; y := y + 1 ; fin ; Squence d'appel: passage par adresse a := 0 ; double_incr ( a , a ) ; Rsultat attendu : a = 2 Utilisation d'une copie restauration Rsultat obtenu : a = 1
59
Appel: Dfauts d'information mmoire serveur -> mmoire client Retour: Dfauts d'information mmoire client -> mmoire serveur
Ncessit d'un systme rparti autorisant la mmoire virtuelle rpartie (Chorus, Mach). Ne se conoit que dans un systme rparti de calculateurs de mme type.
60
Dsignation et liaison
62
Dsignation
Comment sont structurs les noms et rfrences permettant de dsigner les services distants:
Non symbolique : utilisable au moyen dun serveur dannuaire. Rfrence : une structure de donnes permettant de raliser linvocation.
63
Liaison
Comment localiser une procdure distante?
Au moyen dun service de gestion de noms (serveur dannuaire)
Problmes de la Liaison
Le serveur est-il disponible?
Solution - fabrique de serveurs
65
Ajouter_service(nom)
Site Serveur
68
Pour tolrer les pertes de messages on peut lancer plusieurs excutions de la mme requte.
72
Temps de rponse: La rponse doit parvenir avant une date limite dfinie par une chance. Variation du temps de rponse: La variation du temps de traitement doit tre borne. Notion dORB ( Object request Broker ) temps rel en cours dtude. Gestion de priorits au niveau rparti, gestion dchances intgrant les dlais rseaux.
73
74
Il n'y a pas de perte de cohrence de l'tat du serveur (pas d'excutions partielles interrompues avec des variables globales rmanentes laisses incohrentes). Fonctionnement de la reprise Pas de sauvegarde de l'tat client: on peut s'en passer le client ralise seulement l'criture des paramtres rsultats. Pas de sauvegarde de l'tat du serveur: Au moment d'une tentative n l'tat du serveur est donc celui qui rsulte de la dernire tentative n-1.
78
80
Smantique du RPC du point de vue des pannes serveurs Smantique exactement une fois
Dfinition thorique: Une seule excution est effectue et celle-ci russit toujours. Impossible au sens strict: des lors quune hypothse de panne est formule. Comportement souhait: le plus voisin possible de celui de l'appel de procdure en mode centralis.
Une suite de n tentatives est effectue Avec sauvegarde tat du client et du serveur avant chaque tentative. Pour une procdure dterministe
81
Aucune tentative de reprise nest effectue automatiquement. 82 Elle est laisse entirement la charge du client.
Variante: La dernire de toutes On fait de plus l'hypothse que les appels sont numrots et traits squentiellement. On est capable d'attribuer la russite de l'excution la 83 dernire de toutes les tentatives.
85
Remarque : Cette technique permet la fois la surveillance du client par le serveur et celle du serveur par le client.
86
Conclusion
87
88
90
Bibliographie
- A.D. Birell and B.J. Nelson, Implementing remote procedure calls ACM Trans on Comp Syst, vol. 2(1), pp 39-59, feb 84 - M. D. Schroeder and M. Burrows Performance of Firelly RPC ACM Trans. On Comp. Syst., vol. 8(1), pp 1-17, jan 90 - B. Liskov and L. Shira Promises: linguistic Support for efficient Asynchronous Procedure Calls in Distributed Systems Proc of SIGPLAN, pp 260-267, 88 - B.N. Bershad, T.E. Anderson, E.D. Lazowska and H.M. Levy Lightweight remote procedure call ACM Trans. On Comp. Syst., vol. 8(1) pp 37-55, jan 90 - Satyanarayanan, H. Siegel Parallel communication in a large distributed environment ACM Trans. On Comp, vol 39(3), pp 328-348, mar 90 - A.S. Tannenbaum "Distributed Operating Systems" Prentice Hall - W Rosenberry, D Kenney, G Fisher, Comprendre DCE, Addison Wesley
91