-
Page 1
1Modes de structuration dapplications rparties - Autrans - 99
Modes de structurationdapplications rparties
Roland Balter
2Modes de structuration dapplications rparties - Autrans - 99
Problmatique (1)
o application rpartie = traitements cooprants sur des donnes rparties
utraitements :v description : programmev excution : flot d'excution (processus)
o coopration = communication + synchronisationumodle d excutionu interface de programmation (et/ou langage)
v modle de programmationuoutils de dveloppementuenvironnement d'excution : services systmes
(pour diffrents types d'infrastructures)
-
Page 2
3Modes de structuration dapplications rparties - Autrans - 99
Problmatique (2)
Services applicatifsfichiers rpartis, moniteur transactionnel, accs BD, ...
Services systmescommunication, RPC, dsignation, scurit, ...
Systme dexploitation
Machines et Rseaux
outilsde
dveloppement
outilsd
administration
middleware
Modle dexcutionMthodes et outils
demodlisation
4Modes de structuration dapplications rparties - Autrans - 99
Modles dexcution
oModle client-serveuruclient-serveur "traditionnel"uclient-serveur "de donnes"uclient-serveur " objets" : Corba, Com/Dcom (mardi)
oModle de communication par messages oModle de communication par vnementsoModle composants (mercredi )oModle base de code mobile (jeudi)oModle mmoire "virtuelle" partage
-
Page 3
5Modes de structuration dapplications rparties - Autrans - 99
Modle client-serveur : principes directeurs
Service_1
Service_n
.
.Serveur
Client_a
Client_b
Clientmet des requtes (demandes de service)mode d'excution synchrone
le client est l'initiateur du dialogue client-serveur
Serveurensemble de services excutablesexcute des requtes mises par des clients --> excution des services (excution squentielle ou parallle)
Exemples : serveur de fichiers, serveur de base de donnes,serveur d'impression, serveur de noms (annuaire des services)
6Modes de structuration dapplications rparties - Autrans - 99
oVu du client
oVu du serveuruGestion des requtes (priorit)uExcution du service (squentiel, concurrent)uMmorisation ou non de l'tat du client
Modle client-serveur : principes (2)
Servicedistant
Requte
Rponseclient
Excutiondu
service
SlectionRponsesRequtes
-
Page 4
7Modes de structuration dapplications rparties - Autrans - 99
Mise en uvre du modle client-serveur
oAppel de procdure distance (Remote Procedure Call)uL'opration raliser est prsente sous la forme d'une procdure
(le service), situe sur un site distant, dont le client demande l'excution
uObjectif : forme et effet "identiques" ceux d'un appel localv interface de programmationv smantique
uOprations de basev Client
]doOp (IN Port serverId, Name opName, Msg *arg, OUT Msg *result)v Serveur
]getRequest (OUT Port clientId, Message *callMessage)]sendReply (IN Port clientId, Message *replyMessage)
8Modes de structuration dapplications rparties - Autrans - 99client serveur
RPC [Birrel & Nelson 84] : principe de ralisation
Service RPC(talon serveur)
(skeleton)
appel
rseau
Appelant
appel
Service RPC(talon client)
(stub)
retour
Protocole decommunication
Protocole decommunication
appel
retour
A
E
B
D
C
-
Page 5
9Modes de structuration dapplications rparties - Autrans - 99
RPC : rle des talons
Talon client - stub
o procdure dinterface sur le site client
u reoit lappel en mode local,u "emballe" les paramtres et le
transforme en appel distant en envoyant un message,
u attend les rsultats en provenance du serveur,
u "dballe" les paramtres rsultats, et les retourne au programme client "comme" dans un retour de procdure local.
u Liaison initiale
Talon serveur - skeleton
o procdure d'interface sur le site serveur
u reoit lappel sous forme de message,
u "dballe" les paramtres d'appel,
u fait raliser lexcution sur le site serveur par la procdure de service invoque,
u "emballe" les paramtres rsultats et les retransmet par message.
u Enregistrement initial
10Modes de structuration dapplications rparties - Autrans - 99
oMotivationsuSpcification commune au client et au serveur
*contrat entre le client et le serveuruDfinition du type et de la nature des paramtres (IN, OUT,
IN-OUT)uIndpendance des langages de programmation
o Principes directeursuLangage dclaratifuOutils de gnration des talons (stub et skeleton)
Langages de description d'interfaces (IDL)
-
Page 6
11Modes de structuration dapplications rparties - Autrans - 99
IDL : chane de compilation
Procduredu client
Procduredu client
Descriptiond interface
bibliothque
Programmeclient
Programmeclient
compilateurcompilateur
Procduredu serveurProcduredu serveur
Programmeserveur
Programmeserveur
compilateurcompilateur
Gnrateurde talons
talonclient
talonclient
Dfinitionscommunes
talonserveur
talonserveur
12Modes de structuration dapplications rparties - Autrans - 99
Appel distant versus appel local
oObjectifs uprserver la smantique habituelle de l appel de procdureu "transparence" de la distribution : programmation "identique" celle
d'un appel localoObjectifs difficiles atteindre
uralisation peu conviviale (mme avec l'utilisation d'un IDL)usmantique diffrente de l appel de procdure mme en l absence de
pannev exemple : passage des paramtres par rfrence
* smantique prcise fonction de l'implmentation du RPC
-
Page 7
13Modes de structuration dapplications rparties - Autrans - 99
RPC : quelques problmes de mise en uvre
4Traitement des dfaillancesu panne et/ou congestion du rseau,u panne du client pendant le traitement de la requte,u panne du serveur avant ou pendant le traitement de la requte,
4Gestion de l'Htrognit4Dsignation et liaison
o Problmes de scuritu authentification du client et du serveuru confidentialit des changes
o Aspects pratiquesu adaptation des environnements d'utilisation variables
(protocoles, langages, matriels)u performance
14Modes de structuration dapplications rparties - Autrans - 99
RPC : traitement des dfaillances
oEn cas d'erreur : smantique variable(selon la nature du mcanisme de reprise mis en uvre)
uIndfiniuAu plus une fois
v si expiration du dlai A alors erreurv pas de mcanisme de reprise
uAu moins une foisv si expiration du dlai A alors r-mission de la requte,v plusieurs excutions possibles du service,v acceptable si opration idempotente
uExactement une fois (idal...)v r-mission de la requte et/ou de la rponse si ncessaire,v limination des "doublons"
-
Page 8
15Modes de structuration dapplications rparties - Autrans - 99
RPC : traitement de l'htrognit
o Problme : reprsentation des donnesuConversion ncessaire si le site client et le site serveur
v n utilisent pas le mme systme de codage (big endian versus little endian)
v utilisent des formats internes diffrents (pour les types de base : caractre, entier, flottant, )
oSolutionsuSyntaxe abstraite de transfert ASN 1 uReprsentation externe commune : XDR Sun (non optimal si
mme reprsentation)uReprsentation locale pour le client et conversion par le serveuruChoix d'une reprsentation parmi n (standard), conversion par
le serveuruNgociation client serveur
16Modes de structuration dapplications rparties - Autrans - 99
RPC : dsignation et liaison (1)
o Problmesuobjets dsigner : le site d excution, le serveur, la procdureudsignation globale indpendante de la localisation
v possibilit de reconfiguration des services (pannes, rgulation de charge, )
oMise en uvre : statique ou dynamiqueustatique : localisation du serveur connue la compilationudynamique : localisation dtermine l'excution (au premier
appel)v sparer connaissance du nom du service de la slection de la
procdure qui va l excuterv permettre l implmentation retarde
-
Page 9
17Modes de structuration dapplications rparties - Autrans - 99
RPC : dsignation et liaison (2)
o Liaison : mise en uvre
Programmeclient
Talonclient
Communicationclient
Programmeserveur
Talonserveur
Communicationserveur
Servicede
dsignationconsultation enregistrement
communicationlogique
communicationphysique
12
Appel 3
18Modes de structuration dapplications rparties - Autrans - 99
Les limites du modle client-serveur
omodle de structurationupermet de dcrire linteraction entre deux composants logiciels
* absence de vision globale de lapplicationuschma d'excution rpartie lmentaire (appel synchrone)
* absence de proprits portant sur la synchronisation, la protection, la tolrance aux pannes, . .
o services pour la construction dapplications rpartiesu le RPC est un mcanisme de bas niveauudes services additionnels sont ncessaires pour la construction
dapplications rparties (dsignation, fichiers rpartis, scuri t, etc.)o outils de dveloppement
u limits la gnration automatique des talonsupeu (ou pas) doutils pour le dploiement et la mise au point
d'applications rparties
-
Page 10
19Modes de structuration dapplications rparties - Autrans - 99
Environnements client-serveur
4environnement client-serveur "traditionnel"uDCE (Distributed Computing Environment) :
v un exemple denvironnement intgr dapplications rparties, fond sur le modle client-serveur
o environnement client-serveur " objet"
o environnement client-serveur "de donnes"
o environnement client-serveur " composant"
20Modes de structuration dapplications rparties - Autrans - 99
DCE : architecture gnrale
appel de procdure distance
authentificationgestion
du temps dsignation
service defichiers rpartis
support de stationssans disque
autresservices
processus lgers (threads)
Ou
tils
de
dv
elo
pp
emen
t
adm
inis
trat
ion
-
Page 11
21Modes de structuration dapplications rparties - Autrans - 99
Atouts et limites de DCE
+ architecture de type bote outilsuchaque fonction est utilisable via une interface normaliseuaccs direct des fonctions volues
---> intgration gros grain
+ standard de fait (diffusion dans la communaut industrielle)
uex. : RPC, Service de noms, service dauthentification---> portabilit et interoprabilit
dveloppement dapplications grain fin laborieuxuex. : utilisation des services de thread et du RPC
(limitations quivalentes celles du client-serveur)upeu doutils de dveloppement disponibles aujourdhui
22Modes de structuration dapplications rparties - Autrans - 99
Environnements client-serveur
o environnement client-serveur "traditionnel"
4environnement client-serveur " objet"
o environnement client-serveur "de donnes"
o environnement client-serveur " composant"
-
Page 12
23Modes de structuration dapplications rparties - Autrans - 99
Client-serveur " objet"
oMotivationsuproprits de lobjet (encapsulation, modularit, rutilisation,
polymorphisme, composition)uobjet : unit de dsignation et de distribution
o Principe de fonctionnement
Methode _1
Methode _n
tat
objet serveurobjet client
.
.
appel
Systme de communication
Talonserveur
Talonclient
24Modes de structuration dapplications rparties - Autrans - 99
Appel de mthode distanceRemote Method Invocation (RMI)
o lments d'une "invocation"urfrence d'objet ("pointeur" universel)u identification d'une mthodeuparamtres d'appel et de retour (y compris signal d'exception)
v passage par valeur : types lmentaires et types construitsv passage par rfrence
o objets "langage"ureprsentation propre au langage : instance d'une classeuexemple : Java RMI
o objets "systme"ureprsentation "arbitraire" dfinie par l'environnement d'excutionuexemple : CORBA (--> mardi)
-
Page 13
25Modes de structuration dapplications rparties - Autrans - 99
Client-serveur " objet" : mise en uvre
tat
Mthode_i
Talon serveur
Objet
Rfrence d'objet + mthode + arguments
Rsultat ou exception
talon client
Interface
rfrence
dsignationenvoi de requtesexcution de requteretour de rsultat
26Modes de structuration dapplications rparties - Autrans - 99
Environnements client-serveur
o environnement client-serveur "traditionnel"
o environnement client-serveur " objet"
4environnement client-serveur "de donnes"
o environnement client-serveur " composant"
-
Page 14
27Modes de structuration dapplications rparties - Autrans - 99
le client-serveur de donnesprincipes directeurs (1)
programmeclient programme
serveur
requte SQL
rsultats (tuples)
Site client Site Serveur
Mdiateur
28Modes de structuration dapplications rparties - Autrans - 99
Le client-serveur de donnesprincipes directeurs (2)
o fonction du clientucode de l'application non li aux donnesudialogue avec l'utilisateur
o fonction du serveurustockage des donnes, gestion de la disponibilit et de la
scuritu interprtation/optimisation des requtes
o fonctions du mdiateuruprocdures de connexion/dconnexionuprparation/communication de requtesugestion de caches (requtes et rsultats)
-
Page 15
29Modes de structuration dapplications rparties - Autrans - 99
Le client-serveur de donnesenvironnement applicatif
oEnvironnement Applicatif Commun (CAE) de lX/OPENuobjectif : portabilit des applicationsu interface applicative CLI (Call Level Interface)
v standardisation des appels SQL depuis un programme (C, Cobol, . .)v connexion/dconnexion, prparation/excution des requtes, . . .
uprotocole d'change standardis RDA (Remote Data Access)v partie gnrique (dialogue et contrle transactionnel)v partie spcifique SQL (codage commandes et rsultats)
oOutils de dveloppement uL4G : intgre accs aux tables, contrle, affichage, saisie, ...
indpendants des langages de programmationlangage cible : C (ou Cobol)
uAGL : fonctions des L4G + gestion dun rfrentiel des objets (schmas de donnes, code des oprations, enchanement, . . .)
30Modes de structuration dapplications rparties - Autrans - 99
Client-serveur de donnes : la solution ODBC
Application
Bibliothque (DLL)
Pilote ODBC Local
Pilote ODBC global
FAPFichiersDbase
SGBD
FAP
Adaptateur
Client Serveur
-
Page 16
31Modes de structuration dapplications rparties - Autrans - 99
Client-serveur de donnes " objet" :la solution ODMG
oObjectifsuPortabilit des sources dune application sur divers moteurs
de bases de donnes objet
o Principes directeursu modle objet = sur-ensemble du modle OMGu un langage de Dfinition de Donnes : ODL (bas sur lIDL
OMG) u un langage de Requtes : OQL, volution de SQL u intgration complte des mcanismes dans le langage hte :
C++ (avec propositions dvolution de la norme) et Smalltalk
32Modes de structuration dapplications rparties - Autrans - 99
Environnements client-serveur
o environnement client-serveur "traditionnel"
o environnement client-serveur " objet"
o environnement client-serveur "de donnes"
4environnement client-serveur " composant"
-
Page 17
33Modes de structuration dapplications rparties - Autrans - 99
Client-serveur "composants" (1)
oMotivationsu l'origine, environnements pour la gestion de documents
compositesuautomatisation du processus de cration dun document
partir dinformations htrognes fournies par des utilitaires diffrents
uexemples : OLE/COM, OpenDoc/SOMoApproche
u interoprabilit entre composants logiciels binairesv environnements homognesv interaction de type client-serveurv format de donnes "pivot" et procdures de conversion
34Modes de structuration dapplications rparties - Autrans - 99
Exemple : gestion de documents composites
oOLE (Object Linking and Embedding)
Lien vers texte_1
Lien vers tableau_2
tableau_1
texte-1
Tableau_2
copie detableau_1
Incorporation
Lien
Lien
(Linking)
(Linking)
(Embedding)
-
Page 18
35Modes de structuration dapplications rparties - Autrans - 99
oEnvironnement d'intgrationumodle et mcanismes pour raliser l'interoprabilit entre
"composants" logiciels autonomesvcomposant : unit de rutilisation et de construction
d'applications rparties
umodle et mcanismes pour associer des proprits non-fonctionnelles des objets (ou groupes d'objets)
vproprits : persistance, excution transactionnelle, qualit de service, . . .
vcomposant : unit d'administration
mercredi
Client-serveur "composants" (2)
36Modes de structuration dapplications rparties - Autrans - 99
Modles dexcution
oModle client-serveuruclient-serveur "traditionnel"uclient-serveur "de donnes"uclient-serveur " objets" : Corba, Com/Dcom (mardi)
4Modle de communication par messagesoModle de communication par vnementsoModle composants (mercredi )oModle base de code mobile (jeudi)oModle mmoire "virtuelle" partage
-
Page 19
37Modes de structuration dapplications rparties - Autrans - 99
Communication par messages :un peu d'histoire . . .
od'un mode de communication "ancien" . . .uLe courrier lectronique
v communication de type asynchronev listes de diffusion (communication de groupe)
uLes forums (News)v communication filtre par "sujet"v abonnement avant rception
o . . l'mergence de paradigmes de programmationuAnnes 70: Message Queuing (IBM MQ Series, etc. )umodles vnements/raction, publish/subscribeumodles d'acteursuprogrammation par agents (vendredi)
38Modes de structuration dapplications rparties - Autrans - 99
Communication par messages : modle de programmation
oMode de synchronisationuCommunication asynchrone
v mission non bloquantev rception bloquante (attente jusqu' rception d'un message)
oMode de communicationucommunication directe entre processus (acteurs, agents, . . .)ucommunication indirecte entre processus via des "portes"
(botes aux lettres)
oMode de transmissionumessages possiblement typs
-
Page 20
39Modes de structuration dapplications rparties - Autrans - 99
Communication par messages : exemple 1
oRalisation d'un change asynchrone
Processusmetteur
Processusrcepteur
.Send (Id_bal, message)Msg = Receive (Id_bal)
40Modes de structuration dapplications rparties - Autrans - 99
Communication par messages : exemple 2
oRalisation dune interaction de type client-serveur
Client Serveur
bal_S
bal_C
(nom_de_service, paramtres, bal_C)
(rsultat)
.
.
Send(bal-S, nom-de-service, paramtres)Msg = Receive(bal_S)
exec (nom_de_service, paramtres)
.
.
Send (bal-C, rsultat)
-
Page 21
41Modes de structuration dapplications rparties - Autrans - 99
Communication par messages : API et mise en uvre
oEnvironnement de type "micro-noyau"umcanisme et primitives de baseuexemples : Chorus, Mach/OSF-1
oEnvironnement " la unix"u "sockets"
oEnvironnement de programmation parallleuPVM et/ou MPI
oEnvironnement "industriel" d'intgration d'applicationsumiddleware messages: MOMu interface de programmation ad hoc
v tentative de normalisation via Java JMS
42Modes de structuration dapplications rparties - Autrans - 99
"Middleware" messages : MOM
o Principes directeursucouche de logiciel sur le systme hte
oModle de programmationumessagesuqueues de messages
o Proprits utransactions
v messages vus comme des ressources "transactionnelles"uscurit
v encodage des messagesv contrle d'accs aux messages
Systmehte
MOM
Systmehte
MOM
Application
-
Page 22
43Modes de structuration dapplications rparties - Autrans - 99
MOM : messages
o Identification uniqueoStructure
uEntte :v Information permettant l'identification et l'acheminement du
messageuAttributs :
v Couples (nom, valeur) utilisables par le systme ou l'application pour slectionner les messages
uDonnes :v Dfinies par l'application
o Paramtres udure de vieupriorituscurit
44Modes de structuration dapplications rparties - Autrans - 99
MOM : queues de messages
o identification uniqueo persistantes (rsistance aux dfaillances)o partages par les applicationsomodes de rception variable
sendrecv
Client Serveur
-
Page 23
45Modes de structuration dapplications rparties - Autrans - 99
MOM : API
oMsgQ.attach(name, type) msgQoSendQ.sendMsg(msg)oRecvQ.recvMsg(wait) msgoRecvQ.confirmMsg(msg)oMsgQ.detach()
46Modes de structuration dapplications rparties - Autrans - 99
Communication par messages extensions au modle de base
oCommunication de groupeugroupe : ensemble de rcepteurs identifis par un nom uniqueugestion dynamique du groupe : arrive/dpart de membresudiffrentes politiques de service dans le groupe : 1/N, N/Numise en uvre : utilisation possible de IP multicastuexemple : Isis, Horus, Ensemble (Cornell university)uapplications : tolrance aux fautes (gestion de la rplication),
travail coopratif
oCommunication anonymeudsignation associative : les rcipiendaires d'un message sont
identifis par leurs proprits et pas par leur nomuproprit : attribut du message ou identificateur externe indpendance entre metteur et rcepteurs
-
Page 24
47Modes de structuration dapplications rparties - Autrans - 99
Modles d'excution
oModle client-serveuruclient-serveur "traditionnel"uclient-serveur "de donnes"uclient-serveur " objets" : Corba, Com/Dcom (mardi)
oModle de communication par messages 4Modle de communication par vnementsoModle composants (mercredi )oModle base de code mobile (jeudi)oModle mmoire "virtuelle" partage
48Modes de structuration dapplications rparties - Autrans - 99
Communication vnementielle :principes de fonctionnement
o concepts de base : vnements, ractionsuraction : traitement associ loccurrence dun vnement
o principe dattachementuassociation dynamique entre un nom dvnement et une raction
o communication anonymeu indpendance entre lmetteur et les consommateurs dun
vnementcanaux de
communication
vnements ractionsProcessus
metteurs
Processus
destinataires
Nom (type) d'vnement
-
Page 25
49Modes de structuration dapplications rparties - Autrans - 99
Processus_a Processus_b
.
.
Communication vnementielle (publish/subscribe)principes de ralisation
reaction
Subscribe (event, reaction)
Publish (event) 12
3
Gestion des
vnements et des
abonnements
serveur centralis ("Hub and Spoke")serveur rparti ("Snowflake")service rparti (bus logiciel)
50Modes de structuration dapplications rparties - Autrans - 99
Gestion des vnements
oMode "Pull"uLes clients viennent "prendre" priodiquement leurs messages
sur le serveur.
oMode "Push"uUne mthode prdfinie (raction) est attache chaque type
de message (vnement) ;u l'occurrence d'un vnement entrane l'excution de la
raction associe.
-
Page 26
51Modes de structuration dapplications rparties - Autrans - 99
Architecture - "Hub and Spoke"
Client
ClientClient
Broker
ClientClient
Client
o Serveur centralis de gestion d'vnementsprotocole de communication point--point
52Modes de structuration dapplications rparties - Autrans - 99
Architecture - "Snowflake"
Client
Client
Broker
Client
Client
BrokerClient
Broker
Client
protocole de communication point--point
o Serveur rparti de gestion d'vnements
-
Page 27
53Modes de structuration dapplications rparties - Autrans - 99
HubHub
Architecture - bus de message
S.E.
Machine A
Bus Bus Bus
Client Client Client Client
Machine B Machine C
S.E. S.E.S.E.
Machine B
S.E.
Machine B
protocole de communication multicast
o Service rparti de gestion d'vnements
54Modes de structuration dapplications rparties - Autrans - 99
Java Message Service (JMS)
oObjectif : API Java d'accs uniforme aux systmes de messagerie
uIBM MQSeriesuNovell, Oracle, SybaseuTibcou . . .
o PropritsuPoint--PointuPublish/Subscribe
-
Page 28
55Modes de structuration dapplications rparties - Autrans - 99
JMS : principe de fonctionnement
Provider X
JVM
Client
Client
Client
MQ X MQ XMQ X MQ X
JMSClientProvider X
JVM
Client
JMS
56Modes de structuration dapplications rparties - Autrans - 99
JMS - Architecture
JNDI
ConnectionFactory
Connection
Session
MessageProducer
MessageConsummer
Destination
JMS Client
+
+
-
Page 29
57Modes de structuration dapplications rparties - Autrans - 99
Communication vnementielle : conclusion
oDomaines d'applicationugnie logiciel (coopration entre outils de dveloppement) :
SoftBench, ToolTalk , DecFuse, . . uworkflow : KoalaBus, . . uIntgration/extension d'applications existantes : AAA, . . 4diffusion de logiciels et d'information sur le Web :
iBus, Castanet, Ambrosia, Smartsockets, TIB/Rendezvous, Active Web,
o Infrastructures propritairesu interface applicative et protocoles propres chaque systme
---> problmes de portabilit et dinteroprabilit
oOutils de dveloppementusommaires
58Modes de structuration dapplications rparties - Autrans - 99
Modles dexcution
oModle client-serveuruclient-serveur "traditionnel"uclient-serveur "de donnes"uclient-serveur " objets" : Corba, Com/Dcom (mardi)
oModle de communication par messages oModle de communication par vnementsoModle composants (mercredi )4Modle base de code mobile (jeudi)oModle mmoire "virtuelle" partage
-
Page 30
59Modes de structuration dapplications rparties - Autrans - 99
Code mobile
oDfinitionuprogrammes pouvant se dplacer d'un site un autreuexemples : requte SQL, "applet" Java
oMotivations urapprocher le traitement des donnes
v rduire le volume de donnes changes sur le rseauv partage de charge
4function shipping versus data shippingoCaractristiques
ucode interprtableuscurituschmas d'excution base de code mobile
60Modes de structuration dapplications rparties - Autrans - 99
Processus_a
Modles d'excution pour la mobilit
o code " la demande"umobilit "faible"
(code excutable, sans contexte)uexemple : "applet" Java
o agents mobiles umobilit "faible"
v code excutable + donnes modifies
v exemple : Agletsumobilit "forte"
v code excutable, + donnes+ contexte d'excution
v exemples : AgentTcl
Site A Site B
code
Processus
code
Site A Site B
code
Processus_b
codectx. ctx.
-
Page 31
61Modes de structuration dapplications rparties - Autrans - 99
Modles dexcution
oModle client-serveuruclient-serveur "traditionnel"uclient-serveur "de donnes"uclient-serveur " objets" : Corba, Com/Dcom (mardi)
oModle de communication par messages oModle de communication par vnementsoModle composants (mercredi )oModle base de code mobile (jeudi)4Modle mmoire "virtuelle" partage
62Modes de structuration dapplications rparties - Autrans - 99
oMotivationsu (re)placer le programmeur d'application dans les conditions d'un
systme centralisv utiliser une mmoire commune comme espace de communicationv synchronisation par variables partages
uavantages attendus (pour le programmeur)v simplicit : distribution "transparente"v efficacit : utilisation des paradigmes usuels de la programmation
concurrente
* problmatiqueuutilisation des outils de dveloppement existants : langages,
compilateurs, metteurs au point, . . .umise en uvre "efficace" d'une mmoire partage distribue
Systmes mmoire partage (1)
-
Page 32
63Modes de structuration dapplications rparties - Autrans - 99
Objets partagsObjets partags
Systmes mmoire partage (2)
o Principe de ralisationu "simulation" d'une mmoire globale (d'objets) partage
Site A Site B Site C
64Modes de structuration dapplications rparties - Autrans - 99
oApprochesuModles espace de tuples
v base de donnes (de tuples) partagev modle de programmation " la Linda"
] dpt, retrait, et consultation d'objetsv exemple : JavaSpaces
uModles objets rpartis partagsv espace d'objets rpartis partagsv interface de programmation : langage objet "tendu"v plusieurs modes de ralisation
] objets rpliqus (exemple : Javanaise)] objets image unique (exemple : Guide)
Systmes mmoire partage (3)
-
Page 33
65Modes de structuration dapplications rparties - Autrans - 99
JavaSpaces : modle (1)
oUn JavaSpace : un espace de tuples (entres)oUne entre : un ensemble de champsoUn champ : une rfrence une instance Java
JavaSpace
entre
66Modes de structuration dapplications rparties - Autrans - 99
JavaSpaces : modle (2)
oOprations de baseucriture dans un JavaSpace (dpt)u lecture dans un JavaSpace (avec conformit)uretrait dans un JavaSpace (avec conformit)unotification de l'criture d'une entre conformeutransaction groupant plusieurs oprations
(sur potentiellement plusieurs JavaSpaces)upersistance
v par srialisation des objets d'une entre
-
Page 34
67Modes de structuration dapplications rparties - Autrans - 99
Positionnement de JavaSpaces
oDiffrence avec bases de donnesupas de langage de requteuslection de donnes par "conformit" (vis--vis d'un modle)upas de modification sur les donnes de la base (ajouts et
retraits seulement)uutilisation : espace de travail partag pour applications
coopratives
oDiffrence avec Lindau les entres et les objets sont typsugestion possible de plusieurs espacesutransactions
68Modes de structuration dapplications rparties - Autrans - 99
JavaSpaces : interface de programmation
o Les primitivesuwrite : dept d'une nouvelle entreuread : lit une entre conforme un templateutake : lit et retire une entre conforme un templateunotify : enregistre une notification envoyer lorsqu'une
nouvelle entre conforme un template est critev la mthode notify du gestionnaire d'vnement (listener) est
appeleutemplate : modle pour la recherche d'entres dans un
JavaSpace
-
Page 35
69Modes de structuration dapplications rparties - Autrans - 99
JavaSpaces : transactions (1)
o Les transactionsuavec write
v criture visible ssi la transaction valide (commit)v si write suivi de take dans une transaction : pas visible de
l'extrieuruavec read
v recherche dans les JavaSpaces et dans les dpts de la transaction en cours (sans ordre)
v une entre lue (read) ne peut pas tre retire (taken) par une autre transaction
70Modes de structuration dapplications rparties - Autrans - 99
JavaSpaces : transactions (2)
o Les transactions (suite)uavec take
v une entre retire (taken) ne peut tre lue (read) ou retire (taken) par une autre transaction
uavec notifyv hors transaction, les notifications de voient que les critures
validesv dans une transaction, les notifications voient en plus les critures
internes la transactionv la fin d'une transaction annule les dfinitions de notification dans
la transactionuLes proprits ACID sont respectes
-
Page 36
71Modes de structuration dapplications rparties - Autrans - 99
Modle espace de tuples : conclusion
oUtilisationucoordination entre applications rpartiesudcouplage entre le client et le serveururemarque : ncessite toujours au moins le partage d'une
interface (comme RMI) ...o Implantations possibles
uclient/serveur : requtes distantes depuis tous les clientsuobjets dupliqus : localit des accs la base
otat des lieuxuUne version fournie dans l'environnement Jini
v liaison dynamique des ressources dans un rseau
72Modes de structuration dapplications rparties - Autrans - 99
Modles objets rpartis partags
oModle de programmationumodle objetsumodle d'excution
v objets "actifs" versus objets "passifs"u langage de programmation d'applications rparties intgrant
distribution, paralllisme, synchronisation, persistance, etc.v extension d'un langage existant (pre-processeur) ou langage ad-hoc
o Principes de mise en uvreudsignation : rfrences universelles d'objetsugestion de la persistanceugestion du partage : synchronisation, cohrence
v image unique d'un objet versus copies (cohrentes) d'un objet
-
Page 37
73Modes de structuration dapplications rparties - Autrans - 99
Modle objets dupliqus : principe directeur
oExtension un systme objets des mthodes de partage :
ude la mmoire commune dans un SMPudun systme de fichiers (NFS)ude mmoire virtuelle dans Unix
74Modes de structuration dapplications rparties - Autrans - 99
Modle objets dupliqus : exemple (1)
o Partage de la mmoire commune dans un SMPucache associ chaque processeuruMise jour immdiate (write -through) ou retarde (write -
back)
mmoirecommune
processeur processeur
cache cache
-
Page 38
75Modes de structuration dapplications rparties - Autrans - 99
Modle objets dupliqus : exemple (2)
o Partage dun systme de fichier (NFS)ucache NFS sur les sites clientsu invalidations priodiques
partition exporte
partition monte
76Modes de structuration dapplications rparties - Autrans - 99
Modle objets dupliqus : exemple (3)
o Partage de mmoire virtuelle (Unix)upartage de segments (suite de pages)upartage de la mmoire centrale par couplage
mmoirecentrale
processusUnix
segment
-
Page 39
77Modes de structuration dapplications rparties - Autrans - 99
Modle objets dupliqusPrincipe de fonctionnement
o Principe ufournir des objets partags par couplage d'objets (distants)
dans les espaces dadressage locauxo Partage par copie locale
uefficacit des accs locauxo Programmation simple
utransparence de la distributiono Le systme prend en charge
u le chargement " la demande" des copies des donnes (lunit de transfert nest pas forcment lobjet)
u la gestion de la cohrence des donnes partages rpliques
78Modes de structuration dapplications rparties - Autrans - 99
Modle objets dupliqusGestion de la cohrence
oModle de cohrence urelation entre les diffrentes copies des donnes
oCohrence squentielleusrialisation des accs aux donnes partages
oCohrences relchesuassocie cohrence et points de synchronisation dfinis
explicitement par l'applicationv cohrence faible (weak consistency)v cohrence la sortie (release consistency)v cohrence l'entre (entry consistency)
oCohrences non-squentiellesucohrence causale
-
Page 40
79Modes de structuration dapplications rparties - Autrans - 99
Modle objets dupliqusDsignation et liaison
oNommage : gestion des noms des objetsuGestion des noms en espace de stockage (rfrences)uGestion des noms en espace d'excution (adresses)
o Liaison : opration de traduction des nomsuespace de noms "unique"
v les noms d'objets sont des adresses dans cet espaceuespaces de noms distincts
v traduction des noms ] lors de l'accs initial,] chaque accs
80Modes de structuration dapplications rparties - Autrans - 99
Modle objets dupliqusApplication Java
oJavanaise : systme de gestion d'objets Java partags et rpartis
JVM machine 1 JVM machine 2
mmoire dobjets rpartie
application Copie_1Copie_2
Imagepersistante
-
Page 41
81Modes de structuration dapplications rparties - Autrans - 99
Javanaise : applications (1)
oUn diteur coopratif
document partag
82Modes de structuration dapplications rparties - Autrans - 99
Javanaise : applications (2)
o Partage de lenvironnement de courrier
Rlogin THERE
setenv DISPLAY HERE
Netscape
Browser
edit preferences
("leave on server")
Browser
Objets partags (folders)
Station de travail
"Folders"
Partage des "folders" (avec cache)
Serveurde
messagerie
Pas de gestiondes "folders"
-
Page 42
83Modes de structuration dapplications rparties - Autrans - 99
Javanaise : principes directeurs
o "Conserver" le modle de programmation de Java
o "Laisser" au systme :u le chargement des copies d'objets la demande sur les sites
d'excutionu la gestion de la cohrence des copies d'objets
* le systme est ralis par un ensemble de classes Java pr-dfinies (et tlchargeables la demande)
84Modes de structuration dapplications rparties - Autrans - 99
Javanaise : modle de programmation (1)
oUnit de duplication : objet globaluun graphe dobjets Java (objets locaux)u la racine du graphe est le seul point dentre de lobjet globaluun objet local ne peut pas tre partag entre des objets globauxuune rfrence externe ne peut rfrencer quun objet global
objet global
rfrence externe
-
Page 43
85Modes de structuration dapplications rparties - Autrans - 99
Javanaise : modle de programmation (2)
o Le programmeur dfinit les classes globalesuapproche similaire aux classes "Remote" de RMIu les signatures des mthodes ne peuvent inclure que des
rfrences des classes globales
oUn compilateur ugnre du code appelant les mcanismes systmes grant les
objets ( partir des interfaces des classes globales)* code des talons
86Modes de structuration dapplications rparties - Autrans - 99
Javanaise : chargement
oUnit de chargement uobjet global usrialisation du graphe d'objets locaux
o Liaison dynamique des rfrences externesuun reprsentant (proxy out) pour chaque rfrence externe
dans un objet globalu inclut un identifiant unique et une rfrence Java l'objet
global s'il est prsent
-
Page 44
87Modes de structuration dapplications rparties - Autrans - 99
Javanaise : cohrence
o Invalidation / mise jour des objets globauxuun reprsentant (proxy in) dans l'objet global rfrncumme structure que proxy out
88Modes de structuration dapplications rparties - Autrans - 99
Javanaise : passage de paramtres
o Paramtres des mthodes des classes globalesuseulement des rfrences des objets globauxu les proxies sont responsables de l'installation des proxies associs
aux paramtres changs
ref X
passe ref X comme paramtre
ref X
-
Page 45
89Modes de structuration dapplications rparties - Autrans - 99
Modle objets dupliqus : conclusion
oConclusionu intrts du modle objets dupliqus
v dveloppement simplifi (distribution transparente)v favorise les accs locaux (efficacit)
o Limites et perspectivesuquel protocole de cohrence ?
v spcialisation de protocoles existantsuapproche mono-langageucot du maintien de la cohrence des donnes dupliques
v adapter la stratgie de mise en uvre du partage aux besoins des applications et aux conditions de l'environnement d'excution
90Modes de structuration dapplications rparties - Autrans - 99
Modes de structuration d'applications rparties : Synthse
TCP/IP
Communication par messages (exemple : interface "sockets ")
Appel de procdure/mthode distance
Bus logiciel
Http Dcom Corba
Agentsmobiles
M.V. Java
* Hirarchie de modles
GuideOodeJavaSpaces composantsJavanaise
-
Page 46
91Modes de structuration dapplications rparties - Autrans - 99
Quel modle ? Pour quelle application ?
oDveloppement de nouvelles applications versus intgration/extension d'applications existantes
oMode de synchronisation usynchrone versus asynchrone
oGestion des informations partagesu image unique versus copies locales
(migration du contrle, migration des donnes, migration du code)
oApproche "langage" versus approche "systme"ueffort de programmation versus complexit du systme
oGnralisation des technologies base d'objets/composantsuprogrammation "in the small" : objetsuprogrammation "in the large" : composants
92Modes de structuration dapplications rparties - Autrans - 99
Rfrences bibliographiques (1)
Rfrences gnrales
S. Mullender, Distributed Systems, Addison-Wesley, 1989
G. Coulouris, J. Dollimore, T. Kindberg, Distributed Systems : Concepts and Design, 2nd Edition, Addison-Wesley, 1994
A. Tanenbaum, "Systmes d'exploitation : systmes centraliss, systmes distribus", InterEditions, 1994
R. Balter, J.-P. Bantre, S. Krakowiak, Construction des systmes dexploitation rpartis, Collection Didactique de l'INRIA, 1991
-
Page 47
93Modes de structuration dapplications rparties - Autrans - 99
Rfrences bibliographiques (2)
Modle client-serveur et RPC
A. Birrell, B. Nelson, "Implementing Remote Procedure Calls", ACM Trans. on Computer Systems, Vol. 2, 1984
W. Rosenberg, D. Kenney, G. Fisher, Comprendre DCE, Addison-Wesley, 1993
http://www.osf.org/dce
http://www.omg.orghttp://www.omg.org/corba.htm
J.-M. Geib, C. Gransart, P. Merle, "Corba : des concepts la pratique", InterEditions, 1997
http://www.odmg.org
R. Cattell, Object Databases : The ODMG-93 Standard, Morgan & Kaufman Ed., 1993
G. Gardarin, O. gardarin, "Le client-serveur", Eyrolles, 1996
94Modes de structuration dapplications rparties - Autrans - 99
Rfrences bibliographiques (3)
Modles message et modles vnements
S. Reiss, "Connecting Tools using message passing in the FIELD environment", IEEE Software, juillet 1990
J. Arnold, G. Memmi, "Intgration par le contrle et son rle dans l'intgration de logiciels", Proc. of ICSE'92, Toulouse, Dcembre 1992
http://www.software.ibm.com/ts/mqseries
G. Agha, "Actors: A model of concurrent computation in distributed systems", Series in Artificial Intelligence, 1986
http://www.openhorizon.com
http://www.rv.tibco.com
http://www.softwired.ch/ ibus
M. Rozier et al., "Chorus Distributed Operating System", Computing Systems, Vol 1, N 4, octobre 1988
-
Page 48
95Modes de structuration dapplications rparties - Autrans - 99
Rfrences bibliographiques (4)
Modles mmoire partage
D. Gelernter, Generative Communication in Linda, ACM Transactions on Programming Languages and Systems , Vol. 7, No. 1, pp. 80-112, Janvier 1985.
The JavaSpaces Specification, Sun Microsystems Inc ., 1998.
J. S. Chase, H. M. Levy, E. J. Feeley, E. D. Lazowska, "Sharing and Protection in a Single-Address-Space Operating System", ACM Transactions on Computer Systems , 12 (4), pp. 271-307, Novembre 1994.
D. Mosberger, Memory Consistency Models, Operating Systems Review, 27(1), pp. 18-26, Janvier 1993.
D. Hagimont, D. Louvegnies, Javanaise: Distributed Shared Objects for InternetCooperative Applications, IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing (Middleware98), Septembre 1998.
D. Hagimont, J. Mossire , Problmes de dsignation, de localisation et daccs dans les systmes rpartis objets, Technique et Science Informatiques (TSI), 15(1), 1996.
R. Balter, S. Krakowiak, "Retrospective sur le projet Guide : un environnement base d'objets pour applications rparties, L'Objet, Vol. 3 (2), juin 1997
96Modes de structuration dapplications rparties - Autrans - 99
Annexes
o Modle client-serveur et RPCu mise en uvre d'un serveuru RPC - principes de fonctionnementu RPC - traitement des dfaillancesu RPC - passage des paramtresu DCE - description des services
o Modle message/vnementu micro-noyauu publish-subscribeu JMS
o Modle mmoire partageu JavaSpacesu modles de cohrenceu dsignation et liaisonu Javanaiseu Guide/Oode