cours_apd.pdf
TRANSCRIPT
-
7/25/2019 Cours_APD.pdf
1/91
1
Lappel de procdure distante
RPC Remote Procedure Call
Grard Florin- CNAM -- Laboratoire CEDRIC -
-
7/25/2019 Cours_APD.pdf
2/91
2
PlanIntroduction
Mise en oeuvre de lappel de procdure distanteGestion du contrle
Gestion des donnes
Transmission des arguments (prsentation)Dsignation/liaison
Tolrance aux pannes
Conclusion
Bibliographie
-
7/25/2019 Cours_APD.pdf
3/91
3
Introduction
-
7/25/2019 Cours_APD.pdf
4/91
4
Lapproche client-serveur en appelLapproche client-serveur en appelLapproche client-serveur en appelLapproche client-serveur en appel
de procdure distantede procdure distantede procdure distantede procdure distante Mode de ralisation duneinteraction client serveur
ou l'opration raliser est prsente sous la forme d'une procdure
que le clientpeut faire excuter distance par le serveur.
Service basique (API dappel de procdure distante)
/* Cot client : invoque gnre lappel distant et rcupre le rsultat*/invoque (id_client, id_serveur, nom_procedure, paramtres);
/* Cot serveur : reoit, traite un appel et rpond */traite (id_client, id_serveur, nom_procedure, paramtres);
Service intgr objet/* Cot client : on invoque une procdure localise distance*/
ref_objet_serveur.nom_procedure (paramtres);
/* Cot serveur : on dploie lobjet qui implante la procdure*/method nom_procedure (paramtres);
-
7/25/2019 Cours_APD.pdf
5/91
5
Avantage majeur de lapproche client-Avantage majeur de lapproche client-Avantage majeur de lapproche client-Avantage majeur de lapproche client-
serveur en appel de procdure distanteserveur en appel de procdure distanteserveur en appel de procdure distanteserveur en appel de procdure distante Saffranchir du cot basique des communications en
mode message.
Ne pas avoir programmer des changes au niveau rseau en modemessage
Ne pas utiliser pour construire une application rpartie des schmas de
contrle trop simples (affectation dans cohrence, fork)
Utiliser une structure familire: lappel de procdure.
Problme: ne pas ignorer les diffrences centralis/rparti.
Disposer de mcanismes modernes de programmation.
Vision modulaire des applications rparties (en approche objets rpartis
ou par composants sur tagres). Rutilisation par dlgation en univers rparti.
-
7/25/2019 Cours_APD.pdf
6/91
6
Les implantations de lappel deLes implantations de lappel deLes implantations de lappel deLes implantations de lappel de
procdure distante (1)procdure distante (1)procdure distante (1)procdure distante (1)
Les approches RPC traditionnelles
SUN ONC/RPC Open Network Computing / Remote Procedure Call
OSF DCE
Open Software Foundation - Distributed Computing Environnment
Systmes de gestion de bases de donnes: procduresstockes.
-
7/25/2019 Cours_APD.pdf
7/91
7
Les implantations de lappel deLes implantations de lappel deLes implantations de lappel deLes implantations de lappel de
procdure distante (2)procdure distante (2)procdure distante (2)procdure distante (2)Approches RPC intgres dans les
systmes dobjets rpartis
OMG CORBA Object Management Group - Common Object Request Broker
Architecture
SUN Java RMI
Remote Method Invocation Microsoft - DCOM
Distributed Component Object Model
-
7/25/2019 Cours_APD.pdf
8/91
8
Les implantations de lappel deLes implantations de lappel deLes implantations de lappel deLes implantations de lappel de
procdure distante (3)procdure distante (3)procdure distante (3)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
-
7/25/2019 Cours_APD.pdf
9/91
9
Mise en oeuvre delappel de procdure
distante
A) Par migration.B) Par mmoire partage.
C) Par messages.
D) Par appel lger.
-
7/25/2019 Cours_APD.pdf
10/91
10
A) RalisationA) RalisationA) RalisationA) Ralisation de lappel dede lappel dede lappel dede lappel de
procdure distante par migrationprocdure distante par migrationprocdure distante par migrationprocdure distante par migration
Stratgie de migration:Le code et les donnes de la
procdure distante sont amens sur le site appelant pour ytre excuts par un appel local habituel.
Analogie : stratgie de pr-chargementen mmoire.
Avantages
Trs efficace pour de nombreux appels.
Inconvnients
Univers dexcutions homognes (ex machine virtuelle).
Performances selon le volume de codes et de donnes.
Problmes de partage des objets (fermeture dobjets, ).
-
7/25/2019 Cours_APD.pdf
11/91
11
B) RalisationB) RalisationB) RalisationB) Ralisation de lappel de procdurede lappel de procdurede lappel de procdurede lappel de procdure
distante en mmoire partage rpartiedistante en mmoire partage rpartiedistante en mmoire partage rpartiedistante en mmoire partage rpartie
L'appel distant est ralis en utilisant une mmoire virtuelle
partage rpartie. La procdure est installe pour le client comme pour le
serveur dans la mmoire partage rpartie.
Elle est en fait dans lespace rel du serveur. L'appel du client se fait comme si la procdure tait locale,
provoquant un premier dfaut de pagesur le dbut du code
de la procdure. Le code et les donnes de la procdure distante sont amens
page par page sur le site appelant selon le parcours ducode et des donnes.
Analogie avec une stratgie page la demande.
-
7/25/2019 Cours_APD.pdf
12/91
12
RalisationRalisationRalisationRalisation de lappel de procdurede lappel de procdurede lappel de procdurede lappel de procdure
distante en mmoire partage rpartiedistante en mmoire partage rpartiedistante en mmoire partage rpartiedistante en mmoire partage rpartie
Avantages
Efficace en cas de nombreux appels. Efficace si tout le code et les donnes ne sont pas visits.
Rsout le problme de lutilisation des pointeurs (rfrencesdadresses en mmoire).
Inconvnients
Univers de systmes homognes.
Volume de codes et de donnes changer pages par pages.
Problmes de partage selon cohrence de la mmoire rpartie.
-
7/25/2019 Cours_APD.pdf
13/91
13
C) RalisationC) RalisationC) RalisationC) Ralisation de lappel de procdurede lappel de procdurede lappel de procdurede lappel de procdure
distante par messages asynchronesdistante par messages asynchronesdistante par messages asynchronesdistante par messages asynchrones
Deux messages (au moins) changs: requte et rponse.
CLIENT SERVEUR
Debut
Fin
n_proc(p_in,p_out);
procedure n_proc(p_in,p_out)
Appel(p_in)
Retour(p_out)
Client
Requtes
File dattente requtes
Slection serveur
Serveur1
Rponses
Serveur2
Rponses
-
7/25/2019 Cours_APD.pdf
14/91
14
Notion deNotion deNotion deNotion de souchessouchessouchessouches
Un mode de ralisation par interception ( wrapping )
Une procdure intercepteur ( wrapper) intercepte lappel dun clientvers 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 appeldistant.
Objectif de gnration automatique des souchesconnaissant le profil d appel de la procdure distante.
Trs nombreuse terminologie dans ce cas :Souches("Stubs"), Talons, Squelettes ("Skeletons")...
-
7/25/2019 Cours_APD.pdf
15/91
15
LesLesLesLes souches: diagramme globalsouches: diagramme globalsouches: diagramme globalsouches: diagramme global
dinteractiondinteractiondinteractiondinteraction
Proc_1
Proc_2
tatSite serveurSite client
.
.appelSouche
serveur
Souche
client
rf
Rfrence distante + mthode + paramtres
Paramtres rsultats / exception
Client
-
7/25/2019 Cours_APD.pdf
16/91
16
Souches client et serveurSouches client et serveurSouches client et serveurSouches client et serveur
La souche client (client stub)
Procdure cot client qui reoit lappel en mode local
Le transforme en appel distant
En envoyant un message
Reoit le message contenant les rsultats aprs l'excution Retourne les rsultats comme dans un retour de procdure.
La souche serveur (server stub)
Procdure cot serveur qui reoit le message d appel,
Fait raliser lexcution sur le site serveur par la procdure serveur
Rcupre les rsultats et retransmet les rsultats par message.
-
7/25/2019 Cours_APD.pdf
17/91
17
LLLLes tapes dun appel de procdurees tapes dun appel de procdurees tapes dun appel de procdurees tapes dun appel de procdure
distante par messagesdistante par messagesdistante par messagesdistante par messages
transport client
souche client
client
transport serveur
souche serveur
serveur
1
2
10
9
3
8
6 5
7 4
-
7/25/2019 Cours_APD.pdf
18/91
18
Avantages/inconvnients de lappelAvantages/inconvnients de lappelAvantages/inconvnients de lappelAvantages/inconvnients de lappel
distant ralis par messagesdistant ralis par messagesdistant ralis par messagesdistant ralis par messages
Avantages
Volume de code ou de donnes serveur quelconque. Applicable en univers htrognes moyennant des
conversions.
Partage daccs sur le site serveur analogue autransactionnel.
Inconvnients Pas dusage des pointeurs dans les paramtres. change de donnes complexes/de grande taille dlicat.
Peu efficace pour de trs nombreux appels.
-
7/25/2019 Cours_APD.pdf
19/91
19
D) RalisationD) RalisationD) RalisationD) Ralisation de lappel de procdurede lappel de procdurede lappel de procdurede lappel de procdure
distante lger (distante lger (
distante lger (
distante lger (
lightweightlightweightlightweightlightweight RPC)RPC
)RPC
)RPC)
Problme de performances: quand on invoque un serveurqui se trouve sur la mme machine la traverse des couchesrseaux est inutile et coteuse.
Si le serveur se trouve dans le mme processus(mme
domaine de protection) pas de problme (appel local). Si le serveur se trouve dans un autre processus(autre
domaine de protection)
Solution propose: la communication rseau est ralise par unsegment de mmoire partage entre le client et le serveur qui contientun tas pour les paramtres d'appel et de rponse.
-
7/25/2019 Cours_APD.pdf
20/91
20
Schma gnralSchma gnralSchma gnralSchma gnral de lappel dede lappel dede lappel dede lappel de
procdure distante lgerprocdure distante lgerprocdure distante lgerprocdure distante lger
Domaine client
Souche client
Domaine serveur
Souche serveur
Segment
partag
call s
Noyau du systme
method s
Contrle Donne
-
7/25/2019 Cours_APD.pdf
21/91
21
Avantages Inconvnients: RPC lgerAvantages Inconvnients: RPC lgerAvantages Inconvnients: RPC lgerAvantages Inconvnients: RPC lger
Avantages
Transmission dappel trs performant comme modede RPC local.
Inconvnients
Uniquement applicable aux RPC du mme site.
C C
-
7/25/2019 Cours_APD.pdf
22/91
22
Conclusion ralisation de lappel deConclusion ralisation de lappel deConclusion ralisation de lappel deConclusion ralisation de lappel de
procdure distanteprocdure distanteprocdure distanteprocdure 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 obtenuespar l'usage opportun des autres solutions.
Exemple: Chorus a dvelopp les quatre solutions.
Exemple: DCOM RPC par messages + RPC lger(aussi prvu en CORBA).
-
7/25/2019 Cours_APD.pdf
23/91
23
Gestion du contrle
I) Paralllisme chez le client
II) Paralllisme chez le serveur
III) Structures de contrle rparti parcomposition dappels distants
I) P llli h l li t A l d
-
7/25/2019 Cours_APD.pdf
24/91
24
I) Paralllisme chez le client :Appel deprocdure distante en mode synchrone
L'excution du client est suspendue tant que la rponse du
serveur n'est pas revenue ou qu'une condition d'exceptionn'a pas entran un traitement spcifique.
Avantage: le flot de contrle est le mme que dansl'appel en mode centralis
Inconvnient: le client reste inactif.
CLIENT SERVEUR
Appel
Retour
Debut
Fin
proc(...)procedure proc
client
bloqu
serveur
actif
Une solution au problme de linactivitUne solution au problme de linactivitUne solution au problme de linactivitUne solution au problme de linactivit
-
7/25/2019 Cours_APD.pdf
25/91
25
Une solution au problme de linactivitUne solution au problme de linactivitUne solution au problme de linactivitUne solution au problme de linactivit
du client: utilisation des activitsdu client: utilisation des activitsdu client: utilisation des activitsdu client: utilisation des activits
Cration de (au moins) deux activits ( threads ) surle site client
L'une occupe le site appelantpar un travail faire. L'autre gre lappel en mode synchroneen restant
bloque: Le fonctionnement est exactement celui d'unappel habituel.
CLIENT SERVEUR
Appel
Retour
Debut
Fin
proc(...)
procedure proc
Activit 2
bloque
serveur actif
Activit 2Activit 1
A l d d di t t dA l d d di t t dA l d d di t t dA l d d di t t d
-
7/25/2019 Cours_APD.pdf
26/91
26
Appel de procdure distante en modeAppel de procdure distante en modeAppel de procdure distante en modeAppel de procdure distante en mode
asynchroneasynchroneasynchroneasynchrone
Le client poursuit son excution immdiatement aprsl'mission du message porteur de l'appel.
La procdure distante s'excute en parallleavec lapoursuite du client.
Le client doit rcuprer les rsultats quand il en abesoin (primitive spciale).
CLIENT SERVEUR
Appel
Retour
Debut
Fin
proc(...)
procedure proc
client
actif
serveur
actif
Rcupration
des rsultats
Rcupration des rsultats en modeRc pration des rs ltats en modeRc pration des rs ltats en modeRcupration des rsultats en mode
-
7/25/2019 Cours_APD.pdf
27/91
27
Rcupration des rsultats en modeRcupration des rsultats en modeRcupration des rsultats en modeRcupration des rsultats en mode
asynchrone: notion de futurs explicitesasynchrone: notion de futurs explicitesasynchrone: notion de futurs explicitesasynchrone: notion de futurs explicites
Un futur : une structure de donne (un objet) permettant dercuprer des rsultats.
Notion de futur explicite
Les structures de donnes sont dfinies par le client avant
lappel (le serveur les connat et y dpose les rsultats). Exemple: En ACT++ une boite lettre dfinie par le client sert
de moyen de communication pour les paramtres rsultats.
BAL := factorielle.calculfact(n) resultat := BAL.prlever()
Rcupration des rsultats en modeRcupration des rsultats en modeRcupration des rsultats en modeRcupration des rsultats en mode
-
7/25/2019 Cours_APD.pdf
28/91
28
Rcupration des rsultats en modeRcupration des rsultats en modeRcupration des rsultats en modeRcupration des rsultats en mode
asynchrone: notion de futurs implicitesasynchrone: notion de futurs implicitesasynchrone: notion de futurs implicitesasynchrone: notion de futurs implicites
Invocation asynchrone futur implicite
Les structures de donnes de communication pour lesrponses (ex boite lettre) sont implicitement crspar leprestataire du service d'APD asynchrone.
Approche gnrale: dfaut d'information (analogie dfautde page en mmoire virtuelle).
La lecture de la structure de donne rsultat bloque le
client s'il accde la rponse et que celle-ci n'est pasparvenue.
Lusager ne saperoit de rien (si le rsultat est parvenu ou
s il nest pas parvenu).
Cas particulier du mode asynchrone:Cas particulier du mode asynchrone:Cas particulier du mode asynchrone:Cas particulier du mode asynchrone:
-
7/25/2019 Cours_APD.pdf
29/91
29
Cas particulier du mode asynchrone:Cas particulier du mode asynchrone:Cas particulier du mode asynchrone:Cas particulier du mode asynchrone:
invocation asynchrone sens uniqueinvocation asynchrone sens uniqueinvocation asynchrone sens uniqueinvocation asynchrone sens unique
Invocation asynchrone sans rponse (autreterminologie, "peut-tre", "oneway" , "maybe")
Invocation asynchrone utilis pour dclencher une procdurequi ne retourne pas de rsultats. Pour obtenir un dialogue il
faut prvoir dautres procdures en sens inverse. Avantage: Utilisation d'un mode appel de procdure pour
des communications sont en fait de mode message.
Inconvnients : Uniquement possible en l'absence de retourde rsultat, pas d'informations sur la terminaison du travaildemand.
Exemples: CORBA oneway.
II) Paralllisme chez le serveur :II) Paralllisme chez le serveur :II) Paralllisme chez le serveur :II) Paralllisme chez le serveur :
-
7/25/2019 Cours_APD.pdf
30/91
30
II) Paralllisme chez le serveur :II) Paralllisme chez le serveur :II) Paralllisme chez le serveur :II) Paralllisme chez le serveur :
Excution squentielle des appelsExcution squentielle des appelsExcution squentielle des appelsExcution squentielle des appels
Les requtes dexcution sont traites lune aprs lautre par leserveur: exclusion mutuelle entre les traitements.
Si la couche transport assure la livraison en squence et quelon gre une file dattente premier arriv premier servi, on aun traitement ordonndes suites dappels.
Exemple RPC SUN: traitement squentiel des requtes maisutilisation de UDP => requtes non ordonnes (mais mode
synchrone le client attend la fin du traitement). Autres exem les: les RPC ont un mode s uentiel ex CORBA
Client
Requtes
File dattente requtes
Serveur
Rponses
File dattente rponses
-
7/25/2019 Cours_APD.pdf
31/91
31
Excution parallle des appelsExcution parallle des appelsExcution parallle des appelsExcution parallle des appels
Dans ce mode le serveur cr un processusou uneactivit(un processus lger ou thread) par appel
(gestion possible de pool de processus ou d activits). Les appels sont excuts concurremment.
Si les procdures manipulent des donnes globalesrmanentes sur le site serveur, le contrle deconcurrence doit tre gr.
Exemple : Corba Notion dadaptateur dobjets.Client
Requtes
Gestion des serveurs
Serveur1
Serveur2
Rponses
Client
III) Schmas de contrle: compositionIII) Schmas de contrle: compositionIII) Schmas de contrle: compositionIII) Schmas de contrle: composition
-
7/25/2019 Cours_APD.pdf
32/91
32
III) Schmas de contrle: compositionIII) Schmas de contrle: compositionIII) Schmas de contrle: compositionIII) Schmas de contrle: composition
dappels distants en squencedappels distants en squencedappels distants en squencedappels distants en squence
A) Schma appel en cascade synchroneA) Schma appel en cascade synchroneA) Schma appel en cascade synchroneA) Schma appel en cascade synchrone
Dduit immdiatement de lappel de procdure distante synchrone
Code appel1
Client Site1 Site 2
Appel
synchrone du
destinataire etasynchrone des
intermdiaires
Code appel 2
B) Schma de continuation asynchrone:B) Schma de continuation asynchrone:B) Schma de continuation asynchrone:B) Schma de continuation asynchrone:
-
7/25/2019 Cours_APD.pdf
33/91
33
B) Schma de continuation asynchrone:B) Schma de continuation asynchrone:B) Schma de continuation asynchrone:B) Schma de continuation asynchrone:
appels en cascade asynchroneappels en cascade asynchroneappels en cascade asynchroneappels en cascade asynchrone
Codedestinataire1
Client Destinataire1 Destinataire2
Appel
asynchrone
destinataire1
puis
destinataire n
Code
destinataire n
Baptis schma continuation en mode asynchrone. Lmetteur prpare uneliste de procdures destinataires invoquer en mode asynchrone. Lemessage dappel visite successivement les destinataires.
Analogie avec le routage par la source en mode messageImplantation: protocole SOAP en mode message.
C) Schma de continuation asynchroneC) Schma de continuation asynchroneC) Schma de continuation asynchroneC) Schma de continuation asynchrone
-
7/25/2019 Cours_APD.pdf
34/91
34
C) Schma de continuation asynchroneC) Schma de continuation asynchroneC) Schma de continuation asynchroneC) Schma de continuation asynchrone
avec appel synchrone pour le clientavec appel synchrone pour le clientavec appel synchrone pour le clientavec appel synchrone pour le client
Codeintermdiaire1
Client Intermdiaire1 Destinataire
Appelsynchrone du
destinataire et
asynchrone desintermdiaires
Code
destinataire
Le premier schma continuation propos. Une liste dintermdiaires enmode asynchrone et un destinataire final : le tout en mode synchrone
pour le client.Implantation: protocole SOAP en mode RPC.
D) Schma de continuation asynchroneD) Schma de continuation asynchroneD) Schma de continuation asynchroneD) Schma de continuation asynchrone
-
7/25/2019 Cours_APD.pdf
35/91
35
D) Schma de continuation asynchroneD) Schma de continuation asynchroneD) Schma de continuation asynchroneD) Schma de continuation asynchrone
en appel et en rponseen appel et en rponseen appel et en rponseen appel et en rponse
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.
Codeintermdiaire
appel
Client
Destinataire
Appelsynchrone du
destinataire et
asynchrone desintermdiaires
Codedestinataire
Code
intermdiaire
Retour
Schmas de contrle par compositionSchmas de contrle par compositionSchmas de contrle par compositionSchmas de contrle par composition
-
7/25/2019 Cours_APD.pdf
36/91
36
Schmas de contrle par compositionSchmas de contrle par compositionSchmas de contrle par compositionSchmas de contrle par composition
parallle dappels distants (1)parallle dappels distants (1)parallle dappels distants (1)parallle dappels distants (1)
Notion de RPC asynchrone sur groupe
Code
destinataire 2
Client Destinataire N
Appel
asynchrone
en parallle
de n
destinataires
Code
destinataire N
Destinataire 1
Code
destinataire 1
Destinataire 2
Schmas de contrle par compositionSchmas de contrle par compositionSchmas de contrle par compositionSchmas de contrle par composition
-
7/25/2019 Cours_APD.pdf
37/91
37
Schmas de contrle par compositionSchmas de contrle par compositionSchmas de contrle par compositionSchmas de contrle par composition
parallle dappels distants (2)parallle dappels distants (2)parallle dappels distants (2)parallle dappels distants (2)
Notion de RPC synchrone sur groupe
(autre nom RPC diffus, RPC parallle)
Codedestinataire 2
Client Destinataire N
Appel
synchrone en
parallle de ndestinataires
Code
destinataire N
Destinataire 1
Code
destinataire 1
Destinataire 2
Proprits dordre dans lesProprits dordre dans lesProprits dordre dans lesProprits dordre dans les
-
7/25/2019 Cours_APD.pdf
38/91
38
Proprits d ordre dans lesProprits d ordre dans lesProprits d ordre dans lesProprits d ordre dans les
communications par RPCcommunications par RPCcommunications par RPCcommunications par RPC
L'appel de procdure distante peut comporter desspcifications de proprits d'ordre.
Le respect d'une proprit d'ordre peut porter:
sur le lancement de la procdure (peut utilisable)
sur la totalit de son excution. Ordre local: Les excutions pour un client sont ralises dans
l'ordre d'mission.
Ordre global: Les excutions pour un client sont ralisesdans le mme ordre sur tous les destinataires (cas descommunications de groupe).
Ordre causal: Les excutions sont effectues en respectant larelation de causalit qui existe entre les requtes.
-
7/25/2019 Cours_APD.pdf
39/91
39
Gestion des donnesGestion des donnesGestion des donnesGestion des donnes
I) Gestion des donnes applicativespersistantes.
II) Gestion des donnes protocolairespersistantes.
Gestion des donnesGestion des donnesGestion des donnesGestion des donnes applicativesapplicativesapplicativesapplicatives
-
7/25/2019 Cours_APD.pdf
40/91
40
pppppppp
sans donnes partages persistantessans donnes partages persistantessans donnes partages persistantessans donnes partages persistantes
Donnes locales la procdure : pas de problme.
Donnes applicatives partages (variables dinstance, fichiers,bases de donnes) : problme de persistance.
Sans donnes partages persistantes
Situation idale du cas ou lappel de procdure s'excute enfonction uniquement des paramtres dentre: en produisantuniquement des paramtres rsultats.
Exemple: fonction scientifique (EJB session stateless). Il ny a pas de modification de donnes rmanentessur
le site serveur.
Pas de problmepour la tolrance aux pannes etpour lecontrle de concurrence
Gestion des donnesGestion des donnesGestion des donnesGestion des donnes applicativesapplicativesapplicativesapplicatives
-
7/25/2019 Cours_APD.pdf
41/91
41
pppppppp
partages persistantes
Les excutions successivesmanipulent des donnespersistantessur le site serveur.
Une excution modifie le contexte sur le site distant(un serveur de fichier rparti, de bases de donnes.Oprations d'criture de donnes persistantes, la structure
de donne manipule par les mthodes d'un objet).=> Problme de contrle de concurrence.
=> Problme des pannes en cours d'excution. Solution: le couplage d'une gestion transactionnelle avec
une approche RPC (ou systme d'objets rpartis).
Exemple: EJB Session stateful (un seul client), EJBEntity (plusieurs clients)
Gestion des donnes protocolaires:Gestion des donnes protocolaires:Gestion des donnes protocolaires:Gestion des donnes protocolaires:
-
7/25/2019 Cours_APD.pdf
42/91
42
pppp
notion de mode avec ou sans tatnotion de mode avec ou sans tatnotion de mode avec ou sans tatnotion de mode avec ou sans tat
Autre aspect de larmanencedes donnes sur le serveur.
La terminologie avec ou sans tat porte sur l'existence ounon dun descriptifpour chaque relation client serveur auniveau du serveur.
Notion dtat: un ensemble de donnes rmanentes auniveau du protocole pour chaque relation client serveur.
Permettrait de traiter les requtes dans lordre dmission.
Permettrait de traiter une requte en fonction des caractristiques dela relation client serveur (qualit de service).
En fait une notion identique celle du descriptif de
connexionchez le serveur dans une communication enmode connect.
-
7/25/2019 Cours_APD.pdf
43/91
43
Mode sans tatMode sans tatMode sans tatMode sans tat
Les appels successifs dune mme procdure s'excutentsans liensentre eux.
Il peut y avoir modification de donnes globalesrmanentes sur le site serveur mais chaque oprationdupoint de vue du protocole seffectue sans rfrence aupass (indpendamment de toutes celles qui ont prcd).
Ex:NFS Network File System de SUN systme de fichierrparti bas sur RPC sans tat. Lecture/criture du nimearticle dun fichier dont toutes les caractristiques utiles(nom, droit daccs) sont passes au moment de lappel.
Ex: HTTP HyperText Transfer Protocol protocoledexcution de mthodes distantes sans tat.
-
7/25/2019 Cours_APD.pdf
44/91
44
Mode avec tatMode avec tatMode avec tatMode avec tat
Les appels successifs s'excutent en fonction dun tat dela relation client serveurlaiss par les appels antrieurs.
Exemple dutilisation : la gestion de l'ordre de traitementdes requtes, la gestion de caractristiques du client.
Exemple systme de fichier en RPC: Lecture darticle defichier sur le pointeur courant.
-
7/25/2019 Cours_APD.pdf
45/91
45
Mode avec ou sans connexionMode avec ou sans connexionMode avec ou sans connexionMode avec ou sans connexion
Rappel gestion des connexions:
Dlimitation temporelle des requtes et desexcutions de procdure entre des oprationsdouverture et de fermeture.
Maintien dun descriptif de connexion sur le clientet sur le serveur pour la gestion de paramtrescaractristiques de la connexion : qualit de
service, traitement des pannes, proprits d'ordre,... )
Dfinition dune rfrence (dune dsignation) de
connexion
Appel de procdure distante sansAppel de procdure distante sansAppel de procdure distante sansAppel de procdure distante sans
-
7/25/2019 Cours_APD.pdf
46/91
46
connexionconnexionconnexionconnexion
Dans ce mode le client peut envoyer des appels au serveur nimporte quel moment.
Le client comme le serveur ne grent pas de descriptif de larelation client serveur : absence de mmoireentre appelssuccessifs.
Le mode sans connexion est donc un mode orient Vers un traitement sans gestion de qualit de service des
appel.
Vers le traitement dun grand nombre de clients: la gestion deconnexions est juge trop coteuse.
Exemple : tous les RPC
Appel de procdure distante avecAppel de procdure distante avecAppel de procdure distante avecAppel de procdure distante avec
-
7/25/2019 Cours_APD.pdf
47/91
47
connexionconnexionconnexionconnexion
Dans ce mode le client doit ouvrir une connexion avec leserveurpour effectuer des appels puis il doit fermer.
Exemple : prototypes recherche, pas dexemple industriel
connu. Si lon souhaite grer des RPC en mode connect il faut
construire cette gestion dans le cadre dune application
donne.
-
7/25/2019 Cours_APD.pdf
48/91
48
Transmission desTransmission desTransmission desTransmission des
argumentsargumentsargumentsarguments
I) La transmission par valeurII) Les autres modes de passage
-
7/25/2019 Cours_APD.pdf
49/91
49
Transmission par valeur: rappels (1)Transmission par valeur: rappels (1)Transmission par valeur: rappels (1)Transmission par valeur: rappels (1)
Le seul mode de transmission des donnes dans les messagesen rseau.
Si le site client et le site serveur utilisent des formatsde donnes diffrents: problme syntaxique => uneconversion est ncessaire.
La solution: notion de prsentation des donnes aumoyen dune syntaxe de transfert => une reprsentationlexicaledes donnes simples et une convention
dalignementdes donnes commune au client et au serveur. Dans le domaine des communications en mode message:
norme de reprsentation lexicale des donnes simples
BER ( Basic Encoding Rules ).
-
7/25/2019 Cours_APD.pdf
50/91
50
Transmission par valeur: rappels (2)Transmission par valeur: rappels (2)Transmission par valeur: rappels (2)Transmission par valeur: rappels (2)
Dfinir une syntaxe abstraite de donnes pivot:analogue des langages de description de donnes deslangages volus, facile gnrer pour un dveloppeurdapplication (en mode message ASN1 Abstract SyntaxNotation 1).
A partir de la syntaxe abstraite: codage/dcodagede lasyntaxe de transfert (technique de compilation, notionde compilateur de protocole).
Transmission par valeur dans lappel deTransmission par valeur dans lappel deTransmission par valeur dans lappel deTransmission par valeur dans lappel de
d di t td di t td di t td di t t
-
7/25/2019 Cours_APD.pdf
51/91
51
procdure distanteprocdure distanteprocdure distanteprocdure distante
En appel de procdure distante : gnration automatiquedu code des souches partir de la syntaxe abstraite,
les souches fabriquent la syntaxe de transferten ralisantlalignement des paramtres dans les messages( marshalling ).
Insuffisance des normes de syntaxe abstraite et desyntaxe de transfert en mode message asynchrone: ASN1/BER
Dfinition de nouveaux langages de syntaxe abstraite
adapts aux appels de procdure distante:IDL Interface Dfinition Language
Pour chaque IDL en gnral redfinitiondune syntaxe detransfert .
Motivation pour une classe de langagesMotivation pour une classe de langagesMotivation pour une classe de langagesMotivation pour une classe de langages
d t b t it IDLd t b t it IDLd t b t it IDLd t b t it IDL
-
7/25/2019 Cours_APD.pdf
52/91
52
de syntaxes abstraites : IDLde syntaxes abstraites : IDLde syntaxes abstraites : IDLde syntaxes abstraites : IDL
tre indpendant des langages volus utilisant le RPC
Permettre linvocation distante avec tout langage volu
Dfinition dun langage pivot de description de donnes ayant desfonctionnalits assez riches pour les langages les plus rcents.
Dfinition d un langage pivot qui permette de corriger les ambiguts
et les insuffisances des langages anciens (comme par exemple C). Notion de correspondance entre les types retenus dans l'IDL et les
types des diffrents langages existants ("mappings")
Motivation pour une classe de langagesMotivation pour une classe de langagesMotivation pour une classe de langagesMotivation pour une classe de langages
d t b t it IDLd t b t it IDLd t b t it IDLd t b t it IDL
-
7/25/2019 Cours_APD.pdf
53/91
53
de syntaxes abstraites : IDLde syntaxes abstraites : IDLde syntaxes abstraites : IDLde syntaxes abstraites : IDL
Permettre aux utilisateurs de dfinir un identifiant unique pourchaque interface afin de l'utiliser .
Supporter les caractristiques particulires des langages objets Exemple : permettre de dfinir des relations d'hritage entre dfinitions
d'interfaces.
ventuellement structurer les interfaces en modules.
U l IDL DCEU l IDL DCEU l IDL DCEU l IDL DCE
-
7/25/2019 Cours_APD.pdf
54/91
54
Un exemple en IDL DCEUn exemple en IDL DCEUn exemple en IDL DCEUn exemple en IDL DCE
/* Exemple documentation OSF Open Software Foundation */
[uuid (f9f8be80-2ba7-11c9-89fd-08002b13d58d), version(0),
endpoint("ncadg_ip_udp:[6677]", "dds:[19] )]interface bin_op
{
[idempotent] void bin_add{ [in] handle_t h,
[in] long a,
[in] long b,
[out] long *c
};
}
Un e emple en IDLU l IDLU l IDLUn e emple en IDL CorbaC bC bCorba
-
7/25/2019 Cours_APD.pdf
55/91
55
Un exemple en IDLUn exemple en IDLUn exemple en IDLUn exemple en IDL CorbaCorbaCorbaCorba
module StockObjects { struct Quote {
string symbol; long at_time; double price; long volume;}; exception Unknown{}; interface Stock { Quote get_quote() raises(Unknown); // lit la cotation. void set_quote(in Quote stock_quote); // crit la cotation};
interface StockFactory { Stock create_stock( in string symbol, in string description
);};};
G ti d h
-
7/25/2019 Cours_APD.pdf
56/91
56
Gnration des souches
Source code
client
Source code
serveur
Dfinition de
linterface en IDL
Compilateur IDL
Souche client Entte Souche serveur
Compilateur(C, java, ..)
Compilateur(C, java,..)
Compilateur(C, java, ..)
Binaireclient
Binairesouche client
Binaireserveur
Binaire soucheserveur
Compilateur(C, java, ..)
Quelques exemples dIDL et deQuelques exemples dIDL et deQuelques exemples dIDL et deQuelques exemples dIDL et de
format de prsentation en RPCformat de prsentation en RPCformat de prsentation en RPCformat de prsentation en RPC
-
7/25/2019 Cours_APD.pdf
57/91
57
format de prsentation en RPCformat de prsentation en RPCformat de prsentation en RPCformat de prsentation en RPC
SUN ONC/RPC XDR eXternal Data Representation
OSF DCE
IDL DCE - Format NDR Network Data Representation
OMG CORBA IDL Corba - Format CDR Common Data Representation, Protocole IIOP
SUN Java RMI
Langage Java - Protocole JRMP Java Remote Method Protocol Microsoft - DCOM
MIDL Microsoft IDL - DCOM Protocole ORPC Object RPC Format NDR
WS-SOAP WSDL Web Services Definition Language - XML
II) Autres modes de transmission :le passage par adresse (pointeurs)
-
7/25/2019 Cours_APD.pdf
58/91
58
le passage par adresse (pointeurs)
Le passage par adresse (par pointeur) utilise uneadresse mmoire centrale du site de l'appelant qui n'a
aucun sens sur l'appel (sauf cas particulier). Indispensable de traiter ce problme.
A) Interdiction totale des pointeurs
Dans la plupart des RPC, pas de passage desparamtres par adresse ou de structures de donnescontenant des pointeurs.
Introduit une diffrence dans le dveloppement deprocdures locales et celles destines un usage distant.
B) Simulation du passage par adresseB) Simulation du passage par adresseB) Simulation du passage par adresseB) Simulation du passage par adresse
en utilisant une copie restaurationcopie restaurationcopie restaurationcopie restauration
-
7/25/2019 Cours_APD.pdf
59/91
59
en utilisant une copie restauration.copie restauration.copie restauration.copie restauration.
Marche bien dans beaucoup de cas mais violation asseinacceptable dans certains cas de la smantique du passage.
Exemplede problme procduredouble_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
C) Passage par adresseC) Passage par adresseC) Passage par adresseC) Passage par adresse en mmoire
virtuelle partage rpartie
-
7/25/2019 Cours_APD.pdf
60/91
60
virtuelle partage rpartie
Faire raliser des accs mmoire inter-sites : mmoirevirtuelle partage rpartie
Solution trs satisfaisante mais galement trscoteuse.
Appel: Dfauts d'information mmoire serveur -> mmoire client
Retour: Dfauts d'information mmoire client -> mmoire serveur
Ncessit d'un systme rparti autorisant la mmoirevirtuelle rpartie (Chorus, Mach).
Ne se conoit que dans un systme rparti decalculateursde mme type.
Passage par nom (rfrences ouPassage par nom (rfrences ouPassage par nom (rfrences ouPassage par nom (rfrences ou
pointeurs d'objets)pointeurs d'objets)pointeurs d'objets)pointeurs d'objets)
-
7/25/2019 Cours_APD.pdf
61/91
61
pointeurs d objets)pointeurs d objets)pointeurs d objets)pointeurs d objets)
En approche objets rpartis utilisation des rfrencesd'objets.
Le passage d'un argument se fait en transmettant unerfrencesur l'objet en univers rparti (en CORBA IOR).
L'accs s'effectue au moyen des mthodes implantespar l'objet. Par exemple accs un attribut en lecture ouen criture.
Avantages inconvnients
Mcanisme universel.
Coteux pour des accs frquents.
-
7/25/2019 Cours_APD.pdf
62/91
62
Dsignation et liaisonDsignation et liaisonDsignation et liaisonDsignation et liaison
Dsignation
-
7/25/2019 Cours_APD.pdf
63/91
63
Dsignation
Comment sont structurs les noms et rfrences permettantde dsigner les services distants: Non symbolique : utilisable au moyen dun serveur dannuaire. Rfrence : une structure de donnes permettant de raliser
linvocation.
Rfrence : selon limplantation considre. Dsignation du protocole permettant laccs distant (TCP) Dsignation de lhte ou se trouve le serveur (adresse IP). Dsignation du point d accs de service transport (numro de port) Dsignation locale de lobjet ou se trouve la procdure. Dsignation de la procdure.
Liaison
-
7/25/2019 Cours_APD.pdf
64/91
64
Liaison
Comment localiser une procdure distante? Au moyen dun service de gestion de noms (serveur dannuaire)
A quel moment effectuer la liaison Le plus tard plus possible -> plus souple, moins performant Le plus tt possible -> plus performant
Ralisation de la liaison la compilation Vision trs statique, le serveur ne doit pas bouger.
Ralisation de la liaison en excution Au chargement du client Au moment de la premire invocation Localiser la procdure (rfrence), mettre en cache
Relocaliser chaque fois quil est ncessaire
Problmes de la Liaison
-
7/25/2019 Cours_APD.pdf
65/91
65
Problmes de la Liaison
Le serveur est-il disponible? Solution - fabrique de serveurs
Est ce que la version de linterface utilise est consistante? Solution - gestion d identificateurs uniques dinterface
(comportant des numros de version).
Existence de serveurs multiples Gestion d une technique dquilibrage de charge. Gestion de redondances (temporelles, massives).
Enregistrement dun serveur
-
7/25/2019 Cours_APD.pdf
66/91
66
Enregistrement d un serveur
Serveur
Souche
serveur
Adaptateu
(gestion
locale des
noms)
Export(nom)
Export(nom)
Enregistrer_local (nom)
Enregistrer_global (nom)
Site Serveur de nom
Ajouter_service(nom)
Retour
Retour
Site Serveur
Service de nom
(dannuaire)
Liaison client serveur
-
7/25/2019 Cours_APD.pdf
67/91
67
Liaison client serveur
Ref=import(nom)
Ref=import(nom)
Requte_annuaire (nom)
Vrifier (nom)
Recherche (nom)
Retour ref
Retour ref
Site Client
Service de nom
(dannuaire)
Site Serveur
Recherche
(nom)
Retour ref
Code
Souche
Adaptateur client
-
7/25/2019 Cours_APD.pdf
68/91
68
Tolrance auxTolrance auxTolrance auxTolrance aux
pannespannespannespannes
Comparaison appel local appel
distant
-
7/25/2019 Cours_APD.pdf
69/91
69
distant
En appel local
L'appelant et l'appel s'excutent sur la mme machine: mme
excutant => mmes performances et modes de pannes. L'appel et le retour de procdure sont des mcanismes internes
considrs comme fiables (sauf systmes scuritaires).
Problme abord les erreurs => exceptions chez l'appelant. En appel distant Appelant et appel peuvent tomber en panne
indpendamment. Le message d'appel ou celui de retour peuvent tre perdus(sauf si l'on emploie un protocole de transport fiable).
Le temps de rponse peut-tre trs long en raison desurcharges diverses (rseau, site appel).
Les diffrents modes de pannes :
les pannes franches du serveur
-
7/25/2019 Cours_APD.pdf
70/91
70
les pannes franches du serveur
1 - Attente indfinie par le client d'une rponse qui ne viendrajamais => Abandon du programme sur temps limite
2 - Utilisation d'un dlai de garde par le site appelant
=> Signalement de l'absence de rponse au client qui dcide de
la stratgie de reprise.=> Reprise arrire automatique (si possible)
soit tentative d'excution sur un autre site
soit reprise sur le mme site (si relance)
=> Plusieurs excutions successives de la mme
procdure pour une seule demande.
Les diffrents modes de pannes :
les pannes franches du client
-
7/25/2019 Cours_APD.pdf
71/91
71
les pannes franches du client
Le serveur est dit orphelin (orphan).
Ralisation de travaux inutiles, utilisation de ressources
qui ne sont plus accessibles pour des tches utiles. Confusion aprs relance du client entre les nouvelles
rponses attendues et les rponses d'anciennes requtes.
=> Ncessit de dtruire les tches serveurs orphelines et dedistinguer les requtes utiles des vieilles requtes.
Problmedes pannes franches Ltat du client ou du serveur peuvent devenir inconsistants
=> Analyse des modifications de ltat du client et duserveur.
Les diffrents modes de pannes :
les pertes de messages
-
7/25/2019 Cours_APD.pdf
72/91
72
es pe tes de essages
Cas facile: pertes traites par une couche transport fiable.
Cas difficile: il existe des RPC implants pour des raisons
d'efficacit au dessus dune communication non fiable(couche rseau sans connexion type UDP) => Mcanisme detraitement des pertes de message prvoir dans la
conception du RPC Ex : La rponse acquitte la demande
La prochaine requte acquitte la rponse.
Pour tolrer les pertes de messages on peut lancerplusieurs excutions de la mme requte.
Les diffrents modes de pannes :
les pannes temporelles
-
7/25/2019 Cours_APD.pdf
73/91
73
p p
Cas dun appel de procdure utilis sous contraintes dequalit de service temporelle
contraintes dune application temps rel (contrle de procd industriel) contraintes dune application multimdia.
Temps de rponse: La rponse doit parvenir avant une datelimite dfinie par une chance.
Variation du temps de rponse: La variation du temps detraitement doit tre borne.
Notion dORB ( Object request Broker ) temps rel en coursdtude. Gestion de priorits au niveau rparti, gestion
dchances intgrant les dlais rseaux.
Les diffrents modes de pannes :
les pannes quelconques
-
7/25/2019 Cours_APD.pdf
74/91
74
p q q
Cas dun appel de procdure utilis sous contraintes decriticit (systme critique)
Pas de spcificit particulire des protocoles de RPC
Application des techniques habituelles de redondances
massives: pour tolrer les dfaillances dun (ou de plusieurs)des serveurs redondants.
Formalisation des techniques de
reprise sur panne franche
-
7/25/2019 Cours_APD.pdf
75/91
75
p p
Procdure F appele distance: F
(C_avant, S_avant) ----> (C_aprs, S_aprs)tat des donnes tat des donnesclient serveur avant client serveur aprs
F dans son traitement modifie ltat du serveur.
(S_avant) -----> (S_aprs)
Les rsultats de lexcution de F en retour modifientaussi ltat du client.
(C_avant) -----> (C_aprs)
Techniques de reprise sur erreur : en cas de problmesrxcution: F(0), F(1),...., F(n)les tentatives successives
A) Reprise arrire complte
-
7/25/2019 Cours_APD.pdf
76/91
76
) p p
Les excutions successives du serveur peuvent laisser ltat duserveur indtermin (panne en cours d'excution).
Le client peut tre dans un tat incertain (panne au moment dela modification en retour des variables persistantes du client).
Solution maximale => Pour chaque tentative ltat du clientet celui du serveur doivent tre restaurs aux valeursavant le premier appel:
F(n)
(C_avant, S_avant) --> (C_aprs(n), S_aprs(n))
Validit de la reprise arrireValidit de la reprise arrireValidit de la reprise arrireValidit de la reprise arrire
compltecompltecompltecomplte
-
7/25/2019 Cours_APD.pdf
77/91
77
Cas d'une procdure dterministe
La reprise complte est correcte quelles que soient les pannes. Les tats aprs sont identiques puisque les excutions rptes
du code du serveur sur la mme donne produisent desrsultats identiques (la procdure produit un rsultat
dterministe).Cas d'une procdure indterministe
Les tats aprs sont potentiellement diffrentspuisque lesexcutions rptes donnent des rsultats qui dpendent ducontexte d'excution.
La reprise est correcte si les alas conduisant l'indterminisme du fonctionnement sont accepts.
B) Reprise arrire du serveur seulB) Reprise arrire du serveur seulB) Reprise arrire du serveur seulB) Reprise arrire du serveur seul
-
7/25/2019 Cours_APD.pdf
78/91
78
Hypothse: Les rxcutions du serveur sont toujourscompltesou quivalent une excution complte correcte.
Par exemple retransmission dappel sur dlai de garde pour un moded'excution squentiel des appels distants
Il n'y a pas de perte de cohrence de l'tat du serveur(pas d'excutions partielles interrompues avec des variablesglobales rmanentes laisses incohrentes).
Fonctionnement de la reprise
Pas de sauvegarde de l'tat client: on peut s'en passer leclient 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 rsultede la dernire tentative n-1.
Reprise arrire du serveur seul:Reprise arrire du serveur seul:Reprise arrire du serveur seul:Reprise arrire du serveur seul:
condition lidempotencecondition lidempotencecondition lidempotencecondition lidempotence
-
7/25/2019 Cours_APD.pdf
79/91
79
Condition respecter
Les tats aprs sont conservs si des excutions rptes du
code du serveur sur les donnes rsultant de l'excutionprcdente produisent des rsultats identiques: F estidempotente F (F (x) )=F (x).
Exemples relatifs l'idempotence
F est idempotente si l'excution de la procdure ne modifiepas ltat du serveur (Ex :lecture du kime article dun fichier)
F est idempotente si ltat du serveur est modifi seulement la premire excution de F (Ex l'criture du kime article).
Lcriture en fin de fichier est une opration non idempotente. L'incrmentation d'une variable est non idem otente.
Rsum des techniques deRsum des techniques deRsum des techniques deRsum des techniques de
reprise arrirereprise arrirereprise arrirereprise arrire
-
7/25/2019 Cours_APD.pdf
80/91
80
Les trois attitudes concernant les reprises en RPC
A) Reprise arrire complte: mise uvre de techniques detype gestion transactionnelle.
B) Reprise arrire du serveur seul: uniquement valable sile serveur est une fonction idempotente sur son tat.
C) Tentatives de reprise hors des deux cas prcdents:interdiction totale.
Smantique du RPC du point de vue desSmantique du RPC du point de vue desSmantique du RPC du point de vue desSmantique du RPC du point de vue des
pannes serveurspannes serveurspannes serveurspannes serveurs
-
7/25/2019 Cours_APD.pdf
81/91
81
Smantique exactement une foisSmantique exactement une foisSmantique exactement une foisSmantique exactement une fois
Dfinition thorique:Une seule excution est effectue etcelle-ci russit toujours.
Impossible au sens strict: des lors quune hypothse depanne est formule.
Comportement souhait:le plus voisin possible de celui del'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
Smantique : Au plus une foisSmantique : Au plus une foisSmantique : Au plus une foisSmantique : Au plus une fois
-
7/25/2019 Cours_APD.pdf
82/91
82
Cas d'une fonction quelconque (non idempotente): onne doit pas l'excuter deux fois.
Solution trs rpandue: garantir quon n excute pas deuxfois une mme procdure.
Identification des requtes + excution effectue une seule fois. . Si tout va bienle rsultat est retourn lutilisateur.
La requte ne sera plus excute (modulo le dlai de garde de
l'historique). . Si un problme est dtectIl est signal lutilisateur pour qu il
puisse ventuellement statuer).
Aucune tentative de reprise nest effectue automatiquement.Elle est laisse entirement la charge du client.
Smantique : Au moins une foisSmantique : Au moins une foisSmantique : Au moins une foisSmantique : Au moins une fois
-
7/25/2019 Cours_APD.pdf
83/91
83
On se place dans le cas ou chaque excution du serveur estralise sans sauvegarde de l'tat du serveur.
L'excution est lance plusieurs fois si ncessaire (dans unecertaine limite) pour obtenir une rponse correcte .
=> La procdure doit tre idempotente.
Variante: La dernire de toutes
On fait de plus l'hypothse que les appels sont numrotset traits squentiellement.
On est capable d'attribuer la russite de l'excution ladernire de toutes les tentatives.
Smantique du RPC du point de vueSmantique du RPC du point de vueSmantique du RPC du point de vueSmantique du RPC du point de vue
des pannes client (1)des pannes client (1)des pannes client (1)des pannes client (1)
-
7/25/2019 Cours_APD.pdf
84/91
84
Problme des serveurs en cas de panne du client
Abandonner le plus vite possible lexcution en cours. En laissant un tat cohrent sur le site serveur.
Extermination
Une approche de journalisation: La souche client note enmmoire stable tous les appels en cours.
Lorsqu'un site client est relanc: il doit examinerl'historique des appels en cours non termins et demande ladestruction de tous les serveurs orphelins encore actifs.
Smantique du RPC du point de vueSmantique du RPC du point de vueSmantique du RPC du point de vueSmantique du RPC du point de vue
des pannes client (2)des pannes client (2)des pannes client (2)des pannes client (2)
-
7/25/2019 Cours_APD.pdf
85/91
85
Rincarnation
Une technique de numros de squence:en fait unnumro d'poque correspondant aux priodes d'activitsuccessives du client.
Il doit tre enregistr en mmoire stable et doit marquertoutes les requtes.
Lorsqu'un client est relanc il change d'poque et diffuse sa
nouvelle poque ses serveurs qui dtruisent les appelsanciens.
Smantique du RPC du point de vueSmantique du RPC du point de vueSmantique du RPC du point de vueSmantique du RPC du point de vue
des pannes client (3)des pannes client (3)des pannes client (3)des pannes client (3)
-
7/25/2019 Cours_APD.pdf
86/91
86
Expiration
Une technique de dlais de garde : L'excution d'unserveur est toujours associe une surveillancepriodiquedu client : le serveur arme des dlais de garde.
Si le quantum s'achve, le serveur demande a sonclient s'il est encore oprationnel:
si le client rpond: armement d'un nouveau dlai et poursuite.
si le client est en panne: abandon cohrent d'excution.
Remarque : Cette technique permet la fois la surveillance duclient par le serveur et celle du serveur par le client.
-
7/25/2019 Cours_APD.pdf
87/91
87
Conclusion
Les avantages de lappel de procdureLes avantages de lappel de procdureLes avantages de lappel de procdureLes avantages de lappel de procdure
distantedistantedistantedistante
-
7/25/2019 Cours_APD.pdf
88/91
88
De plus haut niveau que les communications en mode
message. Une structure de contrle bien connue, lappel de
procdure (mode de communication support naturel de
lapproche client-serveur). Qui sintgre lunivers rparti des concepts
modernes de gnie logiciel: approche objets,
approches composants Modularit, encapsulation, rutilisation par dlgation.
Les impressions trompeuses de lappelLes impressions trompeuses de lappelLes impressions trompeuses de lappelLes impressions trompeuses de lappel
de procdure distantede procdure distantede procdure distantede procdure distante
-
7/25/2019 Cours_APD.pdf
89/91
89
Une application en appel distant est une application
rpartie qui risque de prsenter un moment ou un autrepratiquement toutes les difficults systmes/rseaux: de conception.
de dsignationet de liaison.
de prsentationdes donnes changes. de synchronisation.
de contrle de concurrence. de tolrance aux pannes et de scurit.
de performances.
de disponibilit d'outils conviviaux.
Lappel de procdure distanteLappel de procdure distanteLappel de procdure distanteLappel de procdure distante
-
7/25/2019 Cours_APD.pdf
90/91
90
Pour:Le mode appel de procdure distante est en
dveloppement important pour la conception et laralisation de tous les types dapplicationsrparties.
Restriction:Le dveloppement de protocoles RPCintgrs aux approches langages, objets oucomposants devrait encore mobiliser longtemps lesnergies des chercheurs et des dveloppeurs.
BibliographieBibliographieBibliographieBibliographie
-
7/25/2019 Cours_APD.pdf
91/91
91
- A.D. Birell and B.J. Nelson, Implementing remote procedure calls ACMTrans 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 distributedenvironment 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