Home
RPC - I3S
Contents
1. 37 Liaison et fonctionnement i Liaison d termination de l adresse du serveur 1 Liaison statique pas d appel un serveur de nom ou appel lors de la compilation 1 Liaison au premier appel appel du serveur de nom lors du premier appel 1 Liaison chaque appel appel du serveur de nom chaque appel Programme Programme client serveur Talon Talon client serveur Communication Communication client serveur communication logique Service de d signation physique 38 Liaison solution classique DNS Internet Client Serveur 4 J Souche Souche client serveur Appel 4 7 8 Serveur d annuaire E Enregistrement 1 2 3 39 Liaison solution classique DNS Internet i Etape 1 2 et 3 enregistrement dans une base de donn es des noms de serveurs tape 2 transmission du nom du service adresse r seau du service tous attributs compl mentaires n cessaire si plusieurs serveurs rendent le m me service tape 3 enregistrement confirm pas d homonymie etc y Etape 5 et 6 liaison entre un client et un serveur I Etape 4 7 8 r alisation de appel de proc dure souhait 40 RPC Performance utilisation de cache Pas de cache um Cache dans le noyau Serveur Pas de d faut Toute requ te provoque un change avec le serveur noyau d faut Serveur Validation du contenu
2. 25 Diff rents types de pannes 8 Panne du client risque de r alisation de travaux inutiles risque de confusion apr s relance du client entre les nouvelles r ponses attendues et les r ponses de l ancienne requ te le serveur est dit orphelin n cessit de d truire les t ches serveurs orphelines et de distinguer les requ tes utiles des vieilles requ tes 1 Pbs l tat du client et du serveur peuvent devenir inconsistants 26 RPC S mantique en cas d erreur 8 En cas d erreur la s mantique est d finie par le m canisme de reprise Ind fini Au moins une fois Plusieurs appels possibles si perte de la r ponse Acceptable si op ration idempotente f o f f I Au plus une fois si expiration du d lai A alors code d erreur sinon r sultat correct pas de m canisme de reprise Exactement une fois id al Si expiration du d lai A alors re mission de appel si expiration du d lai D alors re mission du r sultat 27 RPC Traitement des d faillances i Congestion du r seau ou du serveur I Panne transitoire ne n cessite pas d intervention D tection expiration du d lai de garde A ou D Recouvrement le service de RPC point A re met appel m me id sans intervention de application Le service de RPC point C d tecte qu il s agit d une re mission e si appel est en cours d ex cution aucun effet si le retou
3. D signation gt URL i Des ouvertures 1 Serveurs multiplex s 1 S mantique en cas de panne 1 Utilisation d autres protocoles r seaux 91 RPC Autres mises en oeuvre 8 Migration de code 1 code et donn es de la proc dure distante sont amen s sur le site appelant pour y tre ex cut s en appel normal Avantages Inconv nients univers de syst mes homog nes faible volume de codes et de donn es globales exclusion mutuelle entre les ex cutions 92 RPC Autres mises en uvre M moire virtuelle r partie Appel distant r alis au dessus d une couche de m moire virtuelle r partie L appel se fait en m moire comme si la proc dure tait locale Analogie avec une strat gie de chargement de pages la demande d faut de page sur le d but du code de la proc dure Avantages Inconv nients univers de syst mes homog nes Permet les gros volume de codes ou donn es peu visit usage important de pointeurs peu de probl mes d entrelacement sur les donn es globales 93 Performances des RPCs Schroeder amp Burrows 90 I Client appel Programme appelant boucle pour appel r p titif Talon client appel amp retour Initialisation de la connexion Envoie du paquet d appel 3 Serveur R ception du message Talon serveur appel amp retour I Ex cution d un service nul appel amp retour Envoie des r sultats 3 Client r cepti
4. Mod le client serveur Michel RIVEILL nveill unice fr Polytech Nice Sophia Modele client serveur Plan Principe 7 Traitement des d faillances D signation localisation et liaison Int gration aux langages de programmation Exemple de mise en uvre sockets rpcgen Java RMI 1 Travaux actuels I Conclusion l Bibliographie Mod le client serveur d finition application client serveur application qui fait appel des services distants au travers d un change de messages les requ tes plut t que par un partage de donn es m moire ou fichiers serveur programme offrant un service sur un r seau par extension machine offrant un service client programme qui met des requ tes ou demandes de service 1l est toujours l initiateur du dialogue Modele client serveur communication par messages H Deux messages au moins chang s Le premier message correspondant la requ te est celui de l appel de proc dure porteur des param tres d appel Le second message correspondant la r ponse est celui du retour de proc dure porteur des param tres r sultats Proc dure n proc p in p out Appel p in begin appeln proc p in p out Hetour p out Serveur Mod le client serveur principe E Vu du client Requ te client Service H ponse EE 8 Vu du serveur Gestion des requ tes priorit Ex cution du service s quentiel
5. l aide des sockets 8 Point d acc s a diff rents services de communication avec ou sans connexion l diff rentes familles de protocoles ISO Internet Xerox NS etc E Socket cr e dynamiquement par un processus 1 s socket PF UNIX PF INET SOCK STREAM SOCK DGRAM O A la cr ation on pr cise la famille de protocoles par exemple Unix net le type de service par exemple stream ou datagram ventuellement l identification du protocole choisi 3 Une fois cr une socket doit tre li e un point d acc s ret bind s monAdresse longueurDe monAdresse 45 Algorithme d un serveur it ratif en mode non connect I Dans ce mode le client peut envoyer des appel au serveur n importe quel moment mode assez l ger orient traitement non ordonn des appels absence de m moire entre appels successifs serveur sans donn es r manentes et sans tat exemple calcul de fonction num rique DNS NFS 46 Utilisation du mode non connect f caract ristiques 1 pas d tablissement pr alable d une connexion adapt aux applications pour lesquelles les r ponses aux requ tes des clients sont courtes un message protocole de transport utilis UDP mode d change par messages le r cepteur re oit les donn es suivant le m me d coupage que celui effectu par l metteur E contraintes I le client doit avoir acc s l adresse du serveur adresse IP et n
6. CLIENT client SERVER serveur i make produit deux binaires client et serveur 65 Sun RPC limitations Avec d UDP taille d un message lt 8 K octets i Un seul param tre d appel et un seul de retour si plusieurs param tres construire une structure formatage des param tres complexes aide de XDR i S mantique en cas de panne au moins un r mission jusqu la r ponse ou erreur E Aucune facilit pour crire un serveur multiplex 66 85 Motivations Client serveur objet I objets langage I i t s de l objet lation pope cue Ie capsa repr sentation propre au modularit r utilisation l polymorphisme composition langage instance d une l objet unit de d signation et de classe distribution exemple Java RMI h r f rence d objet pointeur d obj ets systeme universel repr sentation l identification d une m thode arbitraire d finie par 1 param tres d appel et de retour y me compris signal d exception s i passage par valeur types d ex cution l mentaires et types construits exempl e CORBA 8 l ments d une invocation passage par r f rence 67 Appel de m thode distance Remote Method Invocation RMI Objet client objet serveur Methode 1 Methode n Talon client Talon serveur Syst me de communication d signation envo
7. HelloServeur obj new HelloServeur HelloServeur du Enregistre l objet cr er aupr s du serveur de noms Naming rebind suldrun mon _ serveur obj serveur System out printin HelloServer bound in registry suite catch Exception exc ATTENTION dans cet exemple le serveur de nom doit tre activ avant la cr ation du serveur R alisation 81 J ava RMI Activation du serveur de nom par le serveur fichier HelloServeur java public static void main String args 1 int port String URL try transformation d une cha ne de caract res en entier Integer new Integer args 0 port l intValue R ali catch Exception ex i System out printin Please enter Server lt port gt return sation du try serveur Cr ation du serveur de nom rmiregistry autre Registry registry LocateRegistry createRegistry port approc Cr ation d une instance de objet serveur HelloServeur obj new HelloServeur Coucou je suis le serveur de port port Calcul de URL du serveur URL I netAddress getLocalHost getHostName port mon serveur Naming rebind URL obj catch Exception exc J ava RMI Exemple Client fichier HelloClient java import java rmi public class HelloClient public static void main String args 1 n try R alisation R cup ration d un stub sur l objet serveur d u H
8. Passage en param tre d un objet distarit Pos Pd Client R_objeti m R O2 S Stub R_objet1 Objet O2 oer ore s of s Java VM Objet objet1 m R objet Skeleton RH objet 88 Java RMI Objet O2 Passage en param tre d un objet distant oer oer oer s Java VM Objet eoe Client E EE R_objeti m R O2 Stub R_objeti Skeleton R_objeti 89 Chargement dynamique et L L Pd securite 3 Si le code du stub n est pas pr sent sur le site local le protocole RMI pr voit le chargement dynamique du stub en utilisant un serveur web et le protocole HTTP java Djava rmi server codebase http suldrun i Si chargement dynamique 1 le chargeur dynamique utilis par RMI RMI ClassLoader regarde si la classe demand e correspond au niveau de s curit requis utilisation d un SecurityManager cr er et installer le gestionnaire de s curit System setSecurityManager new RMI SecurityManager 90 J ava RMI bilan 8 Tr s bon exemple de RPC 1 facilit d utilisation l int gration au langage J ava et internet utilisation de apport de Java H t rog nit des plateformes gt machine virtuelle Passage par valeur gt s rialisation Persistance gt s rialisation Absence de talon gt chargement dynamique l
9. rpcgen Sc interface x gt client c This is sample code generated by rpcgen int argc These are only templates and you can use them char argv as a guideline for developing your own functions char host include interface h if argc lt 2 printf usage 96s server_host n argv 0 exit 1 void distr_agenda_1 host char host host argv 1 distr agenda 1 host CLIENT cInt Agenda result 1 Name lookup 1 arg status result 2 Entry insert 1 arg page suivante i 63 Rpcgen programmation du client ifndef DEBUG cint clnt_create host DISTR AGENDA VERSION NUMBER netpath if cint CLIENT NULL 1 cint pcreateerror host exit 1 insert 1 arg name Name lenzstrlen Michel 1 insert 1 arg name Name val Michel insert 1 arg agenda z12 result 2 insert_1 amp insert_1_arg cint j fendf DEBUG if result 2 status NULL 1 cint_perror cint call failed lookup 1 arg Name len strlen Michel 1 lookup_1_arg Name_val Michel printf retour insert status d n result 2 result_1 lookup 1 amp lookup 1 arg clint if result_1 Agenda NULL cint_perror dint call failed printf retour lookup agenda d n result 1 64 Rpcgen construction du makefile i rpcgen Sm interface x gt Makefile i Modifier les lignes 1 SOURCES CLNT c client c 1 SOURCES SVC c serveur c
10. au serveur par appel objet Stub 74 J ava RMI Manuel d utilisation I D finition de l interface de l objet r parti interface extends java rmi Remote 1 methodes throws java rmi RemoteException param tres s rializable implements Serializable Ecrire une impl mentation de l objet serveur classe extends java rmi server UnicastRemoteObj ect 75 J ava RMI Mode op ratoire f codage 1 description de interface du service 1 criture du code du serveur qui implante interface 1 criture du client qui appelle le serveur i compilation compilation des sources javac g n ration des stub et skeleton rmic E activation lancement du serveur de noms rmiregistry lancement du serveur lancement du client 76 RPC J ava RMI criture de interface I M mes principes de base que pour interface d un objet local i Principales diff rences interface distante doit tre publique l interface distante doit tendre interface java rmi Remote chaque m thode doit d clarer au moins exception java rmi RemoteException tout objet distant pass en param tre doit tre d clar comme une interface passage de la r f rence de objet tout objet local pass en param tre doit tre s rialisable 77 J ava RMI Exemple Interface fichier Hello java m Description public interface Hello exten
11. concurrent M morisation ou non de l tat du client in S lection B NEN NEN NN equ tesG am Traitement R ponses Mod le client serveur exemple E Serveur de fichiers aufs nfsd 8 Serveur d impressions lpd E Serveur de calcul 8 Serveur base de donn es I Serveur de noms annuaire des services Mod le client serveur gestion des processus 8 Client et serveur sont dans des processus distincts Le client est suspendu lors de l ex cution de la requ te I Eventuellement ex cution concurrente de plusieurs requ tes chez le serveur Plusieurs processus une m moire virtuelle associ e chaque processus Plusieurs processus l gers thread dans le m me espace virtuel contexte restreint pile mot d tat registres Mise en ceuvre serveur unique il Processus serveur unique while true receive client_id message extract message service_id param tres do_service service_id parametres r sultats send client_id r sultats S lection Mise en uvre l processus par service i Pool d ex cutant while true 8 Processus veilleur while true 1 receive client id message work to do get client id extract message service id service id param tres param tres do service service id param tres r sultats work to do put client id service id param tres send client id r sultats Activati
12. du cache client E Ala charge du client I le client interroge le serveur pour savoir si sa copie est toujours valide v rification par comparaison 3 Ala charge du serveur la copie sur le serveur est la copie de r f rence le serveur poss de la liste des clients qui poss dent une d une date associ e la copie Cache dans le processus Cache dans un serveur sp cialis gt finti a p p derniere modification des le serveur previent chaque donn es client de la modification de la comparaison p riodique copie maitre m canisme de chaque acc s chaque call back Pas de d faut Pas de d faut ouverture I TRES LOURD d faut Serveur Remarque extension du mod le client serveur puisque le serveur d faut prend l initiative de l change 41 42 RPC Mod le client serveur Mise en uvre Mise en uvre envoi de message Directement 5 Mise en uvre aide d un m canisme d envoi de Le programmeur se charge de tout message Socket Unix par exemple socket UNI X E Utilisation d un langage de description d interface Le programmeur sp cifie interface des services accessibles distance Rpcgen Java RMI RPC Objet 8 Int gration dans un langage de programmation Approche totalement transparente tous les objets peuvent ventuellement tre acc d distance langage Guide RPC Objet 43 44 Mise en uvre du client serveur
13. le r cepteur n a pas connaissance du d coupage des donn es effectu par l metteur possibilit d mettre et de recevoir des caract res urgents OOB Out Of Band l apr s initialisation le serveur est passif il est activ lors de l arriv e d une demande de connexion d un client un serveur peut r pondre aux demandes de services de plusieurs clients les requ tes arriv es et non trait es sont stock es dans une file d attente 50 Utilisation du mode connect contrainte le client doit avoir acc s l adresse du serveur adresse P et num ro de port i modes de gestion des requ tes it ratif le processus serveur traite les requ tes les unes apres les autres concurrent par cr ation de processus fils pour les changes de chaque requ te 51 Enchainement des op rations en mode connect Serveurs t socket un Mann eee socket t socket bind conneci z accept listen write close t W close s read read s accept read close traitement traitement write LIEN write shutdown close s exit 52 Mise en uvre directe i Permet de comprendre les m canismes qui sont utilis s par les autres approches I A proscrire car pour chaque application le programmeur traite les m mes probl mes G n ration la main des talons squelette empaquettag
14. r sultat nul si le r sultat n est pas disponible la lecture bloque le client si le r sultat n est pas disponible 100 Appel de proc dure Sch ma d ex cution pouvant tre d duit 3 Appels de proc dure imbriqu s f Sch ma continuation Les limites du modele client serveur mod le de structuration permet de d crire l interaction entre deux composants logiciels absence de vision globale de l application sch ma d ex cution r partie l mentaire appel synchrone absence de propri t s portant sur la synchronisation la protection la tol rance aux pannes 102 Les limites du modele client serveur 8 services pour la construction d applications r parties le RPC est un m canisme de bas niveau des services additionnels sont n cessaires pour la construction d applications r parties d signation fichiers r partis s curit etc CORBA EJB outils de d veloppement limit s la g n ration automatique des talons peu ou pas d outils pour le d ploiement et la mise au point d applications r parties 103 Construction d applications r parties aide des RPC 8 ATTENTION client serveur et objets r partis masquent la diff rence entre appel de proc dure et appel de proc dure distance une telle application pr sente toutes le caract ristiques d une application r partie conception et int gration de lo
15. ale s mantique diff rente de appel de proc dure m me en absence de panne RPC les pi ges E Appel de proc dure 3 Appel de proc dure a distance Appelant et appel sont dans 2 espaces virtuels diff rents appel et retour de proc dure sont pannes du client et du serveur des m canismes internes sont ind pendantes consid r s comme fiables pannes du r seau de sauf aspect li s la liaison dynamique de la proc dure et la v rification de la protection 3 appelant et appel sont dans me m me espace virtuel i 1 m me mode de pannes communication perte du message d appel ou de r ponse temps de r ponse du serveur dans certains langages na long m canisme d exception pour F charge du r seau ou du site transmettre les erreurs de serveur l appel l appelant 17 Appelant RPC Birrel amp Nelson 84 Principe de realisation A r seau EN I l v E mm a e e I Teturn l Y client Serveur RPC A Principe de fonctionnement E C t de appelant Le client r alise un appel proc dural vers la proc dure talon client transmission de ensemble des arguments au point A le talon collecte les arguments et les assembles dans un message empaquetage parameter marshalling un identificateur est g n r pour le RPC Un d lai de garde est arm Pb d termination de adr
16. communes biblioth que 7 skeleton Proc dure Programme du serveur serveur bibliotheque d interface compilateur 56 RPC Compilation des interfaces I Produire les talons client et 8 Cot client serveur l Remplacer les appels de proc dure distants par des appels au talon client l diff rents langages cibles 1 Talons client et serveur g n r s avec la m me version Cot serveur du compilateur et de la l Au d marrage le serveur se sp cification fait connaitre enregistrement dans un service de 8 Proc dure g n r e d signation empaquetage des param tres recevoir appel et affectue appel sur la proc dure v rification par estampille l identification de la proc dure a appeler proc dure de reprise apr s expiration des d lais de garde 57 RPC Avantage d un IDL i Traitement de l h t rog n it 3 Types de donn es diff rents selon les langages Repr sentations internes diff rentes selon les syst mes D finition des types ind pendante de la repr sentation E Description d une interface Description des types l mentaires arguments r sultats exceptions 1 Noms des proc dures de conversion pour types complexes avec pointeurs 58 IDL exemple de mise en uvre Interface x RPCGEN langage C Unix rpcgen Talon client c Talon_serveur c Code client c Code serveur c CC Programme client CC rogramm
17. ds java rmi Remote 1 de String sayHello throws java rmi RemoteException l interface 78 J ava RMI criture du serveur Exemple Serveur 8 Serveur la classe qui impl mente interface fichier HelloServeur Jaya sp cifier les interfaces distantes qui doivent tre impl ment es import java rmi p a import java rmi server UnicastRemoteObject objets locaux pass s par copie il doivent impl menter interface java io serialisable public class HelloServeur extends UnicastRemoteObject implements Hello objets distants pass s par r f rence actuellement r f rence un stub private String msg c estun objet java standard R alisation d finir le constructeur de objet fournir la mise en uvre des m thodes pouvant tre appel e a distance ainsi que celle des m thodes n apparaissant dans aucune interface impl ment e cr er au moins une instance du serveur enregistrer au moins une instance dans le serveur de nom rmiregistry 79 Constructeur public HelloServeur String msg throws java rmi RemoteException du super Serveur this msg msg Impl mentation de la m thode distante public String sayHello throws java rmi RemoteException return Hello world msg 80 J ava RMI Exemple Serveur fichier HelloServeur java public static void main String args 1 try Cr e une instance de objet serveur
18. e d paquettage des param tres d signation et liaison du serveur traitement de h t rog n it traitement des d faillances 53 RPC Int gration dans un langage i Objectifs faciliter criture du client et du serveur l Approche non transparente l appel distant est syntaxiquement diff rente d un appel local e a type call a remote proc args one maybe gt timeout N Approche transparente d tection automatique de appel distant comment liste de norms ou lors de la liaison du cot du client appel la proc dure est remplac par un appel au talon client stub g n r par le compilateur du cot du serveur le compilateur produit un talon serveur skeleton capable de recevoir appel et de le rediriger vers la proc dure l Un outil les langages de d finition d interface IDL RPC IDL sp cification des interfaces E Utilisation d un langage 1 Sp cification commune au client et au serveur adapt e des langages multiples analogie avec les modules d Ada Modula 2 D finition des types et natures des param tres IN OUT IN OUT I Utilisation de ces d finitions pour g n rer automatiquement 1 le talon client ou proxy stub le talon serveur ou squelette skeleton 55 IDL Mode op ratoire compilateur Programme client Proc dure du client stub G n rateur de talons communes G n rateur de talons
19. e serveu RPCGEN exemple d utilisation Interface Insert IN Nom IN Agenda Lookup IN Nom OUT Agenda 60 Rpcgen interface x description de l interface const MAX NAME 255 typedef char Name MAX NAME typedef Agenda typedef long status struct entry Name name Agenda agenda typedef struct entry Entry program DISTR AGENDA version VERSION NUMBER 1 Agenda Lookup Name 1 status Insert Entry 2 1 num ro de version 76 num ro de programme I rpcgen interface x 1 produit les fichiers interface h interface xdr c interface svc c et interface clnt c num ro de la proc dure num ro de la proc dure 61 Rpcgen programmation du serveur rpcgen Ss interface x gt serveur c This is sample code generated by rpcgen These are only templates and you can use them as a guideline for developing your own functions include interface h status insert l argp rqstp Entry argp struct svc reg rqstp static status result Agenda lookup 1 argp rqstp Name argp struct svc req rqstp 1 insert server code here printf serveur insert S d n argp name Name val argp gt agenda static Agenda result insert server code here printf serveur lookup s n argp gt Name_val return amp result return amp result 62 Rpcgen programmation du client main argc argv
20. ello obj Hello Naming lookup suldrun mon serveur Appel d une m thode sur l objet distant cl lent String msg obj sayHello Impression du message System out printin msg catch Exception exc 83 J ava RMI Compilation E Compilation de interface du serveur et du client javac Hello java HelloServeur java HelloClient java 8 G n ration des talons rmic HelloServeur skeleton dans HelloServeur Skel class e stub dans HelloServeur Stub class 84 J ava RMI D ploiement E 1 Activation du serveur de nom start rmiregistry W95 ou rmiregistry amp Unix E 2 Activation du serveur java Hellol mpl java Djava rmi server codebase http suldrun path indiquant quelle endroit la machine virtuelle cliente va pouvoir chercher le code du stub N cessaire si le client et le serveur ne sont pas sur la m me station M 3 Activation du client java HelloClient 85 J ava RMI Principe de appel de proc dure Java VM Client RH objet1 m Stub R_objeti Java VM R_objeti m yi Skeleton R_objeti 86 J ava RMI Passage en param tre d un objet local Java VM Objet objet1 02 Pa a MN SL MNT LE E a an LES a aa Client R_objet1 m O2 Stub R_objeti Skeleton R_objeti 87 J ava RMI
21. esse du serveur le talon transmet les donn es au protocole de transport pour emission sur le r seau 19 RPC B et C Principe de fonctionnement Cot de appel le protocole de transport d livre le message au service de RPC talon serveur skeleton au point B le talon d sassemble les arguments d paquetage unmarshalling identificateur de RPC est enregistr appel est ensuite transmis la proc dure distante requise pour tre ex cut point C Le retour de la proc dure redonne la main au service de RPC et lui transmet les param tres r sultats point D 20 RPC D Principe de fonctionnement E Cot de appel au point D les arguments de retour sont empaquet s dans un message un autre d lai de garde est arm le talon transmet les donn es au protocole de transport pour mission sur le r seau 21 RPC E Principe de fonctionnement i Cot de appelant appel est transmis au service de RPC point E les arguments de retour sont d paquet s le d lai de garde arm au point A est d sarm un message d acquittement avec l identificateur du RPC est envoy au talon serveur le d lai de garde arm au point D peut tre d sarm les r sultats sont transmis appelant lors du retour de proc dure 22 RPC R le des talons Talon client stub Talon serveur skeleton 3 C est la proc du
22. giciel existant d signation et protection synchronisation et contr le de la concurrence tol rance aux pannes et disponibilit des services performances et quilibrage de charge disponibilit d outils conviviaux pour la conception le d ploiement et la mise au point 104 Mod le client serveur Bibliographie A D Birrell and B J Nelson Papier de r f rence l Implementing remote procedure calls ACM Trans on Comp Syst vol 2 1 pp 39 59 February 1984 M D Schroeder and M Burrows Mesures Performance of Firefly RPC ACM Trans on Comp Sys vol 8 1 pp 1 17 January 1990 B Liskov and L Shrira RPC asynchrone Promises Linguistic Support for Efficient Asynchronous Procedure Calls in Distributed Systems Proc of SIGPLAN pp 260 267 1988 B N Bershad T E Anderson E D Lazowska and H M Levy RPC l ger Leightweight remote procedure call ACM Trans on Comp Sys vol 8 1 pp 37 55 January 1990 Satyanarayanan amp Siegel Appels parall les l Parallel Communication in a Large Distributed Environment ACM Trans on Comp vol 39 3 pp 328 348 March 1990 105
23. i de requ tes ex cution de requ te retour de r sultat Hl R f rence d objet m thode arguments E BEB BBB BRR BRR RRP R sultat ou exception 68 RPC Java RMI 8 Un RPC objet int gr J ava 3 Interaction d objets situ s dans des espaces d adressage diff rents sur des machines distinctes 8 Simple mettre en uvre un objet distribu se manipule comme tout autre objet J ava 69 J ava RMI Architecture Objet Client Remote Reference Layer Skeleton 70 J ava RMI Architecture imme gisuy J VM Client J VM Serveur 71 J ava RMI Mode op ratoire cot serveur E 1 L objet serveur s enregistre aupr s du Naming de sa J VM m thode reb no E 2 L objet skeleton est cr celui ci cr e le port de communication et maintient une r f rence vers l objet serveur E 3 Le Naming enregistre l objet serveur et le port de communication utilis aupr s du serveur de noms 8 L objet serveur est pr t r pondre des requ tes 72 J ava RMI Architecture AMINegISEY VM Client J de J VM Serveur 73 J ava RMI Mode op ratoire cot client 8 4 L objet client fait appel au Naming pour localiser l objet serveur m thode lookup 8 5 Le Naming r cup re les r f rences vers l objet serveur E 6 cr e objet Stub et 5 7 rend sa r f rence au client E 8 Le client effectue l appel
24. on N S lection r ponses Mise en uvre l processus par service 3 Processus veilleur 3 Cr ation dynamique des while true ex cutants receive client_id message do service service id param tres extract message service id r sultats param tres send client_id r sultats p create thread client id exit service id param tres S lection Cr ation r ponses Diff rents types de service pas de donn e r manente ou persistante 8 situation id ale ou le service s ex cute uniquement en fonction des param tres d entr e pas de modification de donn es r manente sur le serveur E solution tr s favorable pour la tol rance aux pannes pour le contr le de la concurrence i exemple calcul d une fonction scientifique Diff rents types de service avec donn e r manente ou persistante E Les ex cutions successives manipulent des donn es persistantes 1 modification du contexte d ex cution sur le site distant probl mes de contr le de la concurrence difficult s en cas de panne en cours d ex cution i Exemples 1 Etat d un objet manipul par ses m thodes Serveur de fichier r parti Pose de verrou pour les op rations d criture Diff rents types de service mode sans tat 8 Les appels de proc dure s ex cutent sans lien entre eux il peut y avoir modification de donn es globales mais
25. on des r sultats R ception des r sultats Terminaison i Total Microseconde 16 90 128 27 158 68 10 27 49 33 606 94 Performances des RPCs Schroeder amp Burrows 90 Null Microsecondes Appel serveur stub et RPC runtime 606 Envoi r ception du paquet d appel 74 octets 954 l Envoi r ception du paquet retour 74 octets 954 Total 2514 I MaxResult b Appel serveur stub et RPC runtime 606 Marshall 1440 octets pour le r sultat 550 Envoi r ception du paquet d appel 74 octets 954 l Envoi r ception du paquet retour 1514 octets 4414 I Total 6524 95 Facteurs d am lioration Schroeder amp Burrows 90 O octets 1440 octets Vitesse processeurs X 3 52 36 90 Attente active 17 9o 7 Contr leur am lior 11 96 28 96 Protocole transport en assembleur 10 4 Protocole am lior 8 96 3 96 Pas de contr ler d erreur 7 16 96 Vitesse r seau X 10 4 18 96 Suppression des couches P UDP 4 1 96 Quelques travaux compl mentaires 3 Appels parall les 1 Satyanarayanan amp Siegel 90 3 Tendances l Parall lisation flots Tol rance aux d faillances I Flots Int gration dans les langages I Mercury Liskov amp Shrira 88 de haut niveau I RPC l ger Bershad amp al 90 l Am lioration des performances brutes Usage local appel entre contexte 97 RPC sens unique 8 Envoie d un message asynchr
26. one pour d clencher une proc dure la proc dure ne doit pas avoir retourner des r sultats r cup ration d une r ponse par un m canisme similaire invocation d actions du client par le serveur le client doit avoir pr vu les actions correspondant aux diff rents types de r ponses pas d information sur la terminaison du travail demand mais envoie d un message sous la forme syntaxique d un appel de proc dure qui ne doit pas avoir de r sultat rendre c est le mod le des langages acteurs ABCL ACTALK HYBRID 98 RPC asynchrone E Le client poursuit son ex cution apr s mission du message d appel la proc dure distante s ex cute en parall le avec la poursuite du client et retourne les param tres r sultats en fin de son ex cution le client r cup re les r sultats quand il en a besoin primitive sp ciale avantage parall lisme plus important critique le client ne retrouve pas la s mantique de appel de proc dure contr le de la r cup ration des r sultats pb de synchronisation risque d erreur 99 Appel asynchrone avec futur E Futur 1 objet particulier pour la r cup ration des r sultats futur explicite construction avant appel de objet dans lequel les r sultats seront d pos futur implicite c est le m canisme d appel qui construit les objets r sultats mode d utilisation la lecture rend un
27. op ration s effectue sans lien avec celles qui ont pr c d i exemple serveur de fichiers r partis acc s al atoire criture du n article d un fichier NFS Network File System de SUN SGF r parti Diff rents types de service mode avec tat 8 Les appels successifs s ex cutent en fonction d un tat laiss par les appels ant rieurs gestion de ordre des requ tes est indispensable i exemple serveur de fichiers r partis acc s s quentiel appel de m thode sur un objet Appel de proc dure distance RPC 8 Outils de base pour r aliser le mode client serveur L op ration r aliser est pr sent e sous la forme d une proc dure que le client peut faire ex cuter distance par un autre site le serveur Forme et effet identique ceux d un appel local Simplicit en l absence de pannes S mantique identique celle de l appel local Op rations de base Client e doOp IN Port serverl d Name opName Msg arg OUT Msg result Serveur getRequest OUT Port clientl d Message callMessage e sendReply IN Port clientl d Message replyMessage opName Msg arg OUT Msg result 15 RPC Objectifs 8 Retrouver la s mantique habituelle de appel de proc dure sans se pr occuper de la localisation de la proc dure sans se pr occuper du traitement des d faillances I Objectifs tr s difficiles atteindre r alisation peu convivi
28. r a d j t effectu re mission du r sultat S mantique Exactement UN enl absence de panne permanente du client du serveur ou du r seau 28 RPC Traitement des d faillances 8 Panne du client apr s mission de appel L appel est correctement trait changement d tat du serveur l appel de proc dure est d clar orphelin D tection expiration du d lai de garde D Recouvrement L application cliente re met appel avec id diff rent s mantique Au moins UN le serveur ne peut pas d tect qu il s agit d une r p tition service idempotent pas d incidence service non idempotent service transactionnel annulation par le client des effets de appel orphelin 29 RPC Traitement des d faillances H Panne du serveur apr s mission de appel L appel peut tre correctement ou partiellement trait avant point B durant C ou avant point D D tection expiration du d lai de garde A Recouvrement le client doit re mettre appel d s que le serveur red marre s mantique Au moins UN le client ne connait pas endroit de la panne si avant point B pas d incidence si entre B et D changement d tat du serveur Service transactionnel pour m moriser id et tat avant ex cution 30 RPC Repr sentation des donn es 8 Probl me classique dans les r seaux Conversion est n cessaire si le
29. re 3 C est la proc dure sur le site d interface du site client Serveur qui re oit l appel en mode qui re oit l appel sous forme local de message le transforme en appel distant fait r aliser l ex cution sur le en envoyant un message site serveur par la proc dure recoit les r sultats apr s serveur choix de la l ex cution proc dure retourne les param tres retransrmet les r sultats par r sultats comme dans un message retour de proc dure 23 RPC Probl mes i Traitement des d faillances Probl mes de s curit I Congestion du r seau ou du I authentification du client serveur authentification du serveur BM io POR eS PANIERS Pas avait I confidentialit des changes une date fixee par le client systeme temps critique Performance Panne du client pendant le i D signation et liaison traitement de la requ te 8 Aspects pratiques Panne du serveur avant ou E me Adaptation des conditions pendant le traitement de la multiples requ te mE protocoles langages Erreur de communication matene 1 Gestion de l h t rog n it 24 Diff rents types de pannes 8 Panne du serveur I attente ind finie par le client d une r ponse qui ne viendra peut tre jamais utilisation d une horloge de garde le cient d cide de la strat gie de reprise abandon re essaie choix d un autre serveur risque d ex cuter plusieurs fois la m me proc dure
30. site client et le site serveur n utilise pas le m me codage big endian little endian utilisent des formats internes diff rents type caract re entier flottant solution plac e classiquement dans la couche 6 du mod le OSI pr sentation dans r seau passage de param tres par valeur mulation des autres modes 31 RPC Repr sentation des donn es 8 solution normalis e syntaxe abstraite de transfert ASN 1 autres solutions Repr sentation externe commune XDR Sun non optimal si m me repr sentation I Repr sentation locale pour le client conversion par le serveur 1 Choix d une repr sentation parmi n standard conversion par le serveur N gociation client serveur 32 RPC Passage des param tres N Format du paquet d appel Appel local Appel distant 33 Passage des parametres s mantiques de transmission vari es Valeur pas de probl me particulier 1 copie restauration valeurs des param tres sont recopi es pas de difficult s majeures mais red finition des solutions d finies pour les r seaux optimisation des solutions pour le RPC bonne adaptation au langage C faiblement typ 34 Passage des parametres s mantiques de transmission vari es r f rence utilise une adresse m moire centrale du site de appelant aucun sens pour appel solutions interdiction totale introd
31. uit une diff rence entre proc dures locales et proc dures distantes simulation en utilisation une copie de restauration marche dans de tr s nombreux cas mais violation dans certains cas de la s mantique du passage par r f rence exemple de pb proc dure double incr x y X X 1 y y 1 a 0 double incr a a r sultat a 2oua 1 35 Passage des parametres s mantiques de transmission vari es R f rence solutions suite e reconstruire tat de la m moire du client sur le site serveur solutions tr s co teuse utilisation d une m moire virtuelle r partie n cessite un syst me r parti avec m moire virtuelle E Solutions g n ralement prises IN passage par valeur aller OUT passage par valeur retour IN OUT interdit ou passage par copie restauration ATTENTION n est pas quivalent au passage par r f rence 36 RPC D signation E Objets d signer Le site d ex cution le serveur la proc dure D signation globale ind pendante de la localisation possibilit de reconfiguration des services pannes r gulation de charge i D signation statique ou dynamique statique localisation du serveur est connue la compilation dynamique non connue la compilation objectifs S parer connaissance du nom du service de la s lection de la proc dure qui va ex cuter permettre impl mentation retard e
32. um ro de port pour r pondre chaque client le serveur doit en r cup rer l adresse il faut pour cela utiliser les primitives sendto et recvfrom 3 mode de gestion des requ tes it ratif le processus serveur traite les requ tes les unes apr s les autres 47 Enchainement des op rations en mode non connect Serveur DIU J socket Client socket socket bind bind recvfrom sendto sendto recvfrom recvfrom close suite du programme sendto IL exit 48 Algorithme d un serveur it ratif en mode connect 5 Le client ouvre une connexion avec le serveur avant de pouvoir lui adresser des appels puis ferme la connexion a la fin de la suite d operation d limitation temporelle des changes maintien de tat de connexion pour la gestion des param tres de qualit de service traitement des pannes propri t d ordre orient vers traitement ordonn d une suite d appel ordre local requ te d un client trait e dans leur ordre d mission global ou causal la gestion de donn es persistantes ou de protocole avec tat 49 Utilisation du mode connect f caract ristiques tablissement pr alable d une connexion circuit virtuel le client demande au serveur s il accepte la connexion 1 fiabilit assur e par le protocole de transport utilis TCP 1 mode d change par flots d octets
Download Pdf Manuals
Related Search
Related Contents
GE gei-m1031 Installation and Maintenance Manual LR450 2013-06-14-Vorstudie-Smarthome-V1 Samsung 520DX Käyttöopas DisplayPort Splitter User`s Manual INSTRUCTION MANUAL MANUAL DE INSTRUCCIONES Rooster GX 開発環境説明書 Modo de empleo del fichero EXCEL "Presupuesto" NOTE Copyright © All rights reserved.
Failed to retrieve file