Vous êtes sur la page 1sur 48

Modes de structuration dapplications rparties

Roland Balter

Modes de structuration dapplications rparties - 1

Autrans - 99

Problmatique (1)
o application rpartie = traitements cooprants sur des donnes rparties
u traitements :
v description : programme v excution : flot d'excution (processus)

o coopration = communication + synchronisation


u modle d excution u interface de programmation (et/ou langage)
v modle de programmation

u outils de dveloppement u environnement d'excution : services systmes (pour diffrents types d'infrastructures)

Modes de structuration dapplications rparties - 2

Autrans - 99

Page 1

Problmatique (2)
Mthodes et outils de modlisation

Modle dexcution

outils de dveloppement

middleware Services applicatifs


fichiers rpartis, moniteur transactionnel, accs BD, ...

Services systmes
communication, RPC, dsignation, scurit, ...

outils d administration

Systme dexploitation Machines et Rseaux


Modes de structuration dapplications rparties - 3 Autrans - 99

Modles dexcution

o Modle client-serveur
u client-serveur "traditionnel" u client-serveur "de donnes" u client-serveur " objets" : Corba, Com/Dcom ( mardi)

o Modle o Modle o Modle o Modle o Modle

de communication par messages de communication par vnements composants ( mercredi ) base de code mobile (jeudi) mmoire "virtuelle" partage

Modes de structuration dapplications rparties - 4

Autrans - 99

Page 2

Modle client-serveur : principes directeurs


Client_a
Service_1 . Serveur . Service_n

Client_b Client
met des requtes (demandes de service) mode d'excution synchrone le client est l'initiateur du dialogue clientserveur

Serveur
ensemble de services excutables excute 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)
Autrans - 99

Modes de structuration dapplications rparties - 5

Modle client-serveur : principes (2)


Requte client Rponse

o Vu du client

Service distant

o Vu du serveur
u Gestion des requtes (priorit) u Excution du service (squentiel, concurrent) u Mmorisation ou non de l'tat du client Slection Excution du service

Requtes

Rponses

Modes de structuration dapplications rparties - 6

Autrans - 99

Page 3

Mise en uvre du modle client-serveur


o Appel de procdure distance (Remote Procedure Call)
u L'opration raliser est prsente sous la forme d'une procdure (le service), situe sur un site distant, dont le client demande l'excution u Objectif : forme et effet "identiques" ceux d'un appel local
v interface de programmation v smantique

u Oprations de base
v Client v Serveur
] doOp (IN Port serverId, Name opName, Msg *arg, OUT Msg *result) ] getRequest (OUT Port clientId, Message *callMessage) ] sendReply (IN Port clientId, Message *replyMessage)
Modes de structuration dapplications rparties - 7 Autrans - 99

RPC

[Birrel & Nelson 84]

: principe de ralisation

Service RPC

Appelant

(talon client) ( stub )

Protocole de communication

Protocole de communication

Service RPC
(talon serveur) ( skeleton)

appel C

A
appel rseau

B
appel

E
retour

retour

Modes de structuration dapplications rparties - 8

client

serveur

Autrans - 99

Page 4

RPC : rle des talons


Talon client - stub
o procdure dinterface sur le site client

Talon serveur - skeleton


o procdure d'interface sur le site serveur

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

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
Autrans - 99

Modes de structuration dapplications rparties - 9

Langages de description d'interfaces (IDL)


o Motivations
u Spcification commune au client et au serveur * contrat entre le client et le serveur u Dfinition du type et de la nature des paramtres (IN, OUT, IN-OUT) u Indpendance des langages de programmation

o Principes directeurs
u Langage dclaratif u Outils de gnration des talons (stub et skeleton)

Modes de structuration dapplications rparties - 10

Autrans - 99

Page 5

IDL : chane de compilation

Procdure Procdure du duclient client

compilateur compilateur
talon talon client client
Dfinitions communes

Programme Programme client client

Description d interface

Gnrateur de talons

bibliothque

Procdure Procdure du duserveur serveur


Modes de structuration dapplications rparties - 11

talon talon serveur serveur

compilateur compilateur

Programme Programme serveur serveur


Autrans - 99

Appel distant versus appel local


o Objectifs
u prserver la smantique habituelle de l appel de procdure u "transparence" de la distribution : programmation "identique" celle d'un appel local

o Objectifs difficiles atteindre


u ralisation peu conviviale (mme avec l'utilisation d'un IDL) u smantique diffrente de l appel de procdure mme en l absence de panne
v exemple : passage des paramtres par rfrence

* smantique prcise fonction de l'implmentation du RPC

Modes de structuration dapplications rparties - 12

Autrans - 99

Page 6

RPC : quelques problmes de mise en uvre


4Traitement des dfaillances

u 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'Htrognit 4Dsignation et liaison


o Problmes de scurit
u authentification du client et du serveur u confidentialit des changes u adaptation des environnements d'utilisation variables (protocoles, langages, matriels) u performance
Autrans - 99

o Aspects pratiques

Modes de structuration dapplications rparties - 13

RPC : traitement des dfaillances


o En cas d'erreur : smantique variable (selon la nature du mcanisme de reprise mis en uvre)
u Indfini u Au plus une fois
v si expiration du dlai A alors erreur v pas de mcanisme de reprise

u Au moins une fois


v si expiration du dlai A alors r-mission de la requte, v plusieurs excutions possibles du service, v acceptable si opration idempotente

u Exactement une fois (idal...)

v r-mission de la requte et/ou de la rponse si ncessaire, v limination des "doublons"

Modes de structuration dapplications rparties - 14

Autrans - 99

Page 7

RPC : traitement de l'htrognit


o Problme : reprsentation des donnes
u Conversion 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, )

o Solutions
u Syntaxe abstraite de transfert ASN 1 u Reprsentation externe commune : XDR Sun (non optimal si mme reprsentation) u Reprsentation locale pour le client et conversion par le serveur u Choix d'une reprsentation parmi n (standard), conversion par le serveur u Ngociation client serveur
Modes de structuration dapplications rparties - 15 Autrans - 99

RPC : dsignation et liaison (1)


o Problmes
u objets dsigner : le site d excution, le serveur, la procdure u dsignation globale indpendante de la localisation
v possibilit de reconfiguration des services (pannes, rgulation de charge, )

o Mise en uvre : statique ou dynamique


u statique : localisation du serveur connue la compilation u dynamique : localisation dtermine l'excution (au premier appel)
v sparer connaissance du nom du service de la slection de la procdure qui va l excuter v permettre l implmentation retarde

Modes de structuration dapplications rparties - 16

Autrans - 99

Page 8

RPC : dsignation et liaison (2)

o Liaison : mise en uvre


Programme client Talon client
Appel 3 2 consultation

communication logique Service de dsignation

Programme serveur Talon

1 serveur enregistrement

Communication client

communication physique

Communication serveur

Modes de structuration dapplications rparties - 17

Autrans - 99

Les limites du modle client-serveur


o modle de structuration
u permet de dcrire linteraction entre deux composants logiciels
* absence de vision globale de lapplication

u schma 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 rparties


u le RPC est un mcanisme de bas niveau u des 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 talons u peu (ou pas) doutils pour le dploiement et la mise au point d'applications rparties
Modes de structuration dapplications rparties - 18 Autrans - 99

Page 9

Environnements client-serveur 4environnement


client-serveur "traditionnel"

u DCE (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"

Modes de structuration dapplications rparties - 19

Autrans - 99

DCE : architecture gnrale

Outils de dveloppement

support de stations sans disque service de fichiers rpartis gestion du temps

autres services administration

authentification

dsignation

appel de procdure distance

processus lgers (threads)

Modes de structuration dapplications rparties - 20

Autrans - 99

Page 10

Atouts et limites de DCE + architecture


de type bote outils

u chaque fonction est utilisable via une interface normalise u accs direct des fonctions volues ---> intgration gros grain

+ standard

de fait (diffusion dans la communaut industrielle) u ex. : RPC, Service de noms, service dauthentification
---> portabilit et interoprabilit

dveloppement

dapplications grain fin laborieux

u ex. : utilisation des services de thread et du RPC (limitations quivalentes celles du client-serveur) u peu doutils de dveloppement disponibles aujourdhui
Autrans - 99

Modes de structuration dapplications rparties - 21

Environnements client-serveur
o environnement client-serveur "traditionnel"

4environnement

client-serveur " objet"

o environnement client-serveur "de donnes" o environnement client-serveur " composant"

Modes de structuration dapplications rparties - 22

Autrans - 99

Page 11

Client-serveur " objet"


o Motivations
u proprits de lobjet (encapsulation, modularit, rutilisation, polymorphisme, composition) u objet : unit de dsignation et de distribution

o Principe de fonctionnement
objet client objet serveur
tat appel Talon client Talon serveur Methode _1 . . Methode _n

Systme de communication
Modes de structuration dapplications rparties - 23 Autrans - 99

Appel de mthode distance

Remote Method Invocation (RMI)

o lments d'une "invocation"


u rfrence d'objet ("pointeur" universel) u identification d'une mthode u paramtres d'appel et de retour (y compris signal d'exception)
v passage par valeur : types lmentaires et types construits v passage par rfrence

o objets "langage"
u reprsentation propre au langage : instance d'une classe u exemple : Java RMI

o objets "systme"
u reprsentation "arbitraire" dfinie par l'environnement d'excution u exemple : CORBA (--> mardi)
Modes de structuration dapplications rparties - 24 Autrans - 99

Page 12

Client-serveur " objet" : mise en uvre


Interface tat

rfrence

Mthode_i

talon client

Talon serveur

Rfrence d'objet + mthode + arguments

Objet
Rsultat ou exception

Modes de structuration dapplications rparties - 25

dsignation envoi de requtes excution de requte retour de rsultat 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"

Modes de structuration dapplications rparties - 26

Autrans - 99

Page 13

le client-serveur de donnes
principes directeurs (1)

Site client
programme client

Site Serveur

Mdiateur
requte SQL

programme serveur

rsultats (tuples)

Modes de structuration dapplications rparties - 27

Autrans - 99

Le client-serveur de donnes
principes directeurs (2)

o fonction du client
u code de l'application non li aux donnes u dialogue avec l'utilisateur

o fonction du serveur
u stockage des donnes, gestion de la disponibilit et de la scurit u interprtation/optimisation des requtes

o fonctions du mdiateur
u procdures de connexion/dconnexion u prparation/communication de requtes u gestion de caches (requtes et rsultats)

Modes de structuration dapplications rparties - 28

Autrans - 99

Page 14

Le client-serveur de donnes
environnement applicatif

o Environnement Applicatif Commun (CAE) de lX/OPEN


u objectif : portabilit des applications u interface applicative CLI (Call Level Interface)
v standardisation des appels SQL depuis un programme (C, Cobol, . .) v connexion/dconnexion, prparation/excution des requtes, . . . v partie gnrique (dialogue et contrle transactionnel) v partie spcifique SQL (codage commandes et rsultats)

u protocole d'change standardis RDA (Remote Data Access)

o Outils de dveloppement
u L4G : intgre accs aux tables, contrle, affichage, saisie, ...
indpendants des langages de programmation langage cible : C (ou Cobol)

u AGL : fonctions des L4G + gestion dun rfrentiel des objets


(schmas de donnes, code des oprations, enchanement, . . .)

Modes de structuration dapplications rparties - 29

Autrans - 99

Client-serveur de donnes :
la solution ODBC
Client

Serveur

Application Bibliothque (DLL)

SGBD

Pilote ODBC Local

Pilote ODBC global

Adaptateur

Fichiers Dbase

FAP

FAP

Modes de structuration dapplications rparties - 30

Autrans - 99

Page 15

Client-serveur de donnes " objet" :


la solution ODMG
o Objectifs
u Portabilit des sources dune application sur divers moteurs de bases de donnes objet

o Principes directeurs u modle objet = sur-ensemble du modle OMG


u 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

Modes de structuration dapplications rparties - 31

Autrans - 99

Environnements client-serveur

o environnement client-serveur "traditionnel" o environnement client-serveur " objet" o environnement client-serveur "de donnes"

4 environnement client-serveur " composant"

Modes de structuration dapplications rparties - 32

Autrans - 99

Page 16

Client-serveur "composants" (1)


o Motivations
u l'origine, environnements pour la gestion de documents composites u automatisation du processus de cration dun document partir dinformations htrognes fournies par des utilitaires diffrents u exemples : OLE/COM, OpenDoc/SOM

o Approche
u interoprabilit entre composants logiciels binaires
v environnements homognes v interaction de type client-serveur v format de donnes "pivot" et procdures de conversion

Modes de structuration dapplications rparties - 33

Autrans - 99

Exemple : gestion de documents composites


o OLE
(Object Linking and Embedding)

Lien vers texte_1

Lien (Linking)

texte-1

Incorporation

tableau_1
(Embedding)

copie de tableau_1

Lien vers tableau_2

Lien (Linking)

Tableau_2

Modes de structuration dapplications rparties - 34

Autrans - 99

Page 17

Client-serveur "composants" (2)


o Environnement d'intgration
u modle et mcanismes pour raliser l'interoprabilit entre "composants" logiciels autonomes v composant : unit de rutilisation et de construction d'applications rparties u modle et mcanismes pour associer des proprits nonfonctionnelles des objets (ou groupes d'objets) v proprits : persistance, excution transactionnelle, qualit de service, . . . v composant : unit d'administration

mercredi

Modes de structuration dapplications rparties - 35

Autrans - 99

Modles dexcution

o Modle client-serveur
u client-serveur "traditionnel" u client-serveur "de donnes" u client-serveur " objets" : Corba, Com/Dcom ( mardi)

4Modle o Modle o Modle o Modle o Modle

de communication par messages de communication par vnements composants ( mercredi ) base de code mobile (jeudi) mmoire "virtuelle" partage

Modes de structuration dapplications rparties - 36

Autrans - 99

Page 18

Communication par messages : un peu d'histoire . . .


o d'un mode de communication "ancien" . . .
u Le courrier lectronique
v communication de type asynchrone v listes de diffusion (communication de groupe) v communication filtre par "sujet" v abonnement avant rception

u Les forums (News)

o . . l'mergence de paradigmes de programmation


u Annes 70: Message Queuing (IBM MQ Series, etc. ) u modles vnements/raction, publish/ subscribe u modles d'acteurs u programmation par agents (vendredi)

Modes de structuration dapplications rparties - 37

Autrans - 99

Communication par messages : modle de programmation


o Mode de synchronisation
u Communication asynchrone
v mission non bloquante v rception bloquante (attente jusqu' rception d'un message)

o Mode de communication
u communication directe entre processus (acteurs, agents, . . .) u communication indirecte entre processus via des "portes" (botes aux lettres)

o Mode de transmission
u messages possiblement typs

Modes de structuration dapplications rparties - 38

Autrans - 99

Page 19

Communication par messages : exemple 1


o Ralisation d'un change asynchrone

Processus metteur

Processus rcepteur
Msg = Receive (Id_bal)

Send (Id_bal, message)

Modes de structuration dapplications rparties - 39

Autrans - 99

Communication par messages : exemple 2


o Ralisation dune interaction de type clientserveur
Client
Send(bal-S, nom-de-service, paramtres) bal_S

Serveur
Msg = Receive (bal_S) exec (nom_de_service, paramtres) . . Send (bal-C, rsultat)

(nom_de_service, paramtres, bal_C)

bal_C

( rsultat)

Modes de structuration dapplications rparties - 40

Autrans - 99

Page 20

Communication par messages : API et mise en uvre


o Environnement de type "micro-noyau"
u mcanisme et primitives de base u exemples : Chorus, Mach/OSF-1

o Environnement " la unix"


u "sockets"

o Environnement de programmation parallle


u PVM et/ou MPI

o Environnement "industriel" d'intgration d'applications


u middleware messages: MOM u interface de programmation ad hoc
v tentative de normalisation via Java JMS

Modes de structuration dapplications rparties - 41

Autrans - 99

"Middleware" messages : MOM


o Principes directeurs
u couche de logiciel sur le systme hte Application
MOM Systme hte MOM Systme hte

o Modle de programmation
u messages u queues de messages

o Proprits
u transactions u scurit
v encodage des messages v contrle d'accs aux messages v messages vus comme des ressources "transactionnelles"

Modes de structuration dapplications rparties - 42

Autrans - 99

Page 21

MOM : messages
o Identification unique o Structure
u Entte :
v Information permettant l'identification et l'acheminement du message v Couples (nom, valeur) utilisables par le systme ou l'application pour slectionner les messages

u Attributs : u Donnes :

v Dfinies par l'application

o Paramtres
u dure de vie u priorit u scurit
Modes de structuration dapplications rparties - 43 Autrans - 99

MOM : queues de messages


o identification unique o persistantes (rsistance aux dfaillances) o partages par les applications o modes de rception variable
Client Serveur

send

recv

Modes de structuration dapplications rparties - 44

Autrans - 99

Page 22

MOM : API

o MsgQ.attach(name, type) msgQ o SendQ.sendMsg(msg) o RecvQ.recvMsg(wait) msg o RecvQ.confirmMsg(msg) o MsgQ.detach()

Modes de structuration dapplications rparties - 45

Autrans - 99

Communication par messages


o Communication de groupe

extensions au modle de base

u groupe : ensemble de rcepteurs identifis par un nom unique u gestion dynamique du groupe : arrive/dpart de membres u diffrentes politiques de service dans le groupe : 1/N, N/N u mise en uvre : utilisation possible de IP multicast u exemple : Isis, Horus, Ensemble (Cornell university) u applications : tolrance aux fautes (gestion de la rplication), travail coopratif

o Communication anonyme
u dsignation associative : les rcipiendaires d'un message sont identifis par leurs proprits et pas par leur nom u proprit : attribut du message ou identificateur externe indpendance entre metteur et rcepteurs
Modes de structuration dapplications rparties - 46 Autrans - 99

Page 23

Modles d'excution
o Modle client-serveur
u client-serveur "traditionnel" u client-serveur "de donnes" u client-serveur " objets" : Corba, Com/Dcom ( mardi)

o Modle 4Modle o Modle o Modle o Modle

de communication par messages de communication par vnements composants ( mercredi ) base de code mobile (jeudi) mmoire "virtuelle" partage

Modes de structuration dapplications rparties - 47

Autrans - 99

Communication vnementielle : principes de fonctionnement


o concepts de base : vnements, ractions
u raction : traitement associ loccurrence dun vnement

o principe dattachement
u association dynamique entre un nom dvnement et une raction

o communication anonyme
u indpendance entre lmetteur et les consommateurs dun vnement
Nom (type) d'vnement

canaux de communication Processus

Processus metteurs
vnements ractions

destinataires

Modes de structuration dapplications rparties - 48

Autrans - 99

Page 24

Communication vnementielle (publish/subscribe) principes de ralisation


Processus_a
Publish (event )

Processus_b

1
Subscribe (event , reaction )

Gestion des vnements et des abonnements

. .

reaction

serveur centralis ("Hub and Spoke") serveur rparti ("Snowflake") service rparti (bus logiciel)
Modes de structuration dapplications rparties - 49 Autrans - 99

Gestion des vnements


o Mode "Pull"
u Les clients viennent "prendre" priodiquement leurs messages sur le serveur.

o Mode "Push"
u Une mthode prdfinie (raction) est attache chaque type de message (vnement) ; u l'occurrence d'un vnement entrane l'excution de la raction associe.

Modes de structuration dapplications rparties - 50

Autrans - 99

Page 25

Architecture - "Hub and Spoke"


o Serveur centralis de gestion d'vnements
protocole de communication point--point

Client Client

Client

Broker

Client

Client Client

Modes de structuration dapplications rparties - 51

Autrans - 99

Architecture - "Snowflake"
o Serveur rparti de gestion d'vnements
protocole de communication point--point

Client Broker Client Broker Client

Client Client Broker Client

Modes de structuration dapplications rparties - 52

Autrans - 99

Page 26

Architecture - bus de message


o Service rparti de gestion d'vnements
protocole de communication multicast

Client

Client

Client

Client

Bus S.E. Machine A

Bus S.E. Machine B

Hub S.E. Machine B

Hub S.E. Machine B

Bus S.E. Machine C

Modes de structuration dapplications rparties - 53

Autrans - 99

Java Message Service (JMS)


o Objectif : API Java d'accs uniforme aux systmes de messagerie
u IBM MQSeries u Novell, Oracle, Sybase u Tibco u. . .

o Proprits
u Point--Point u Publish/Subscribe

Modes de structuration dapplications rparties - 54

Autrans - 99

Page 27

JMS : principe de fonctionnement

Client

Client

Client

JMS Provider X JVM MQ X MQ X MQ X Client Client

JMS Provider X JVM MQ X

Modes de structuration dapplications rparties - 55

Autrans - 99

JMS - Architecture

JNDI
Destination

JMS Client
ConnectionFactory

+
Connection

MessageProducer MessageConsummer

+
Session
Modes de structuration dapplications rparties - 56

Autrans - 99

Page 28

Communication vnementielle : conclusion


o Domaines d'application
u gnie logiciel (coopration entre outils de dveloppement) : SoftBench, ToolTalk , DecFuse, . . u workflow : KoalaBus, . . u Intgration/extension d'applications existantes : AAA, . . 4diffusion de logiciels et d'information sur le Web : iBus, Castanet, Ambrosia, Smartsockets, TIB/Rendezvous, Active Web ,

o Infrastructures propritaires
u interface applicative et protocoles propres chaque systme ---> problmes de portabilit et dinteroprabilit

o Outils de dveloppement
u sommaires
Modes de structuration dapplications rparties - 57 Autrans - 99

Modles dexcution
o Modle client-serveur
u client-serveur "traditionnel" u client-serveur "de donnes" u client-serveur " objets" : Corba, Com/Dcom ( mardi)

o Modle o Modle o Modle 4Modle o Modle

de communication par messages de communication par vnements composants ( mercredi ) base de code mobile (jeudi) mmoire "virtuelle" partage

Modes de structuration dapplications rparties - 58

Autrans - 99

Page 29

Code mobile
o Dfinition
u programmes pouvant se dplacer d'un site un autre

: requte SQL, "applet" Java o Motivations


u exemples u rapprocher le traitement des donnes
v rduire le volume de donnes changes sur le rseau v partage de charge

4function shipping versus data shipping o Caractristiques


u code interprtable u scurit u schmas d'excution base de code mobile

Modes de structuration dapplications rparties - 59

Autrans - 99

Modles d'excution pour la mobilit


o code " la demande"
u mobilit "faible" (code excutable, sans contexte) u exemple : "applet" Java
Site A Site B Processus code code

o agents mobiles
u mobilit "faible"
v code excutable + donnes modifies v exemple : Aglets v code excutable, + donnes + contexte d'excution v exemples : AgentTcl

Site A Processus_a code ctx.

Site B Processus_b code ctx.

u mobilit "forte"

Modes de structuration dapplications rparties - 60

Autrans - 99

Page 30

Modles dexcution

o Modle client-serveur
u client-serveur "traditionnel" u client-serveur "de donnes" u client-serveur " objets" : Corba, Com/Dcom ( mardi)

o Modle o Modle o Modle o Modle 4Modle

de communication par messages de communication par vnements composants ( mercredi ) base de code mobile (jeudi) mmoire "virtuelle" partage

Modes de structuration dapplications rparties - 61

Autrans - 99

Systmes mmoire partage (1)


o Motivations
u (re)placer le programmeur d'application dans les conditions d'un systme centralis
v utiliser une mmoire commune comme espace de communication v synchronisation par variables partages

u avantages attendus (pour le programmeur)


v simplicit : distribution "transparente" v efficacit : utilisation des paradigmes usuels de la programmation concurrente

* problmatique
u utilisation des outils de dveloppement existants : langages, compilateurs, metteurs au point, . . . u mise en uvre "efficace" d'une mmoire partage distribue
Modes de structuration dapplications rparties - 62 Autrans - 99

Page 31

Systmes mmoire partage (2)


o Principe de ralisation
u " simulation" d'une mmoire globale (d'objets) partage
Site A Site B Site C

Objets Objetspartags partags


Modes de structuration dapplications rparties - 63 Autrans - 99

Systmes mmoire partage (3)


o Approches
u Modles espace de tuples
v base de donnes (de tuples) partage v modle de programmation " la Linda" v exemple : JavaSpaces
] dpt, retrait, et consultation d'objets

u Modles objets rpartis partags

v espace d'objets rpartis partags v interface de programmation : langage objet "tendu" v plusieurs modes de ralisation ] objets rpliqus (exemple : Javanaise) ] objets image unique (exemple : Guide)

Modes de structuration dapplications rparties - 64

Autrans - 99

Page 32

JavaSpaces : modle (1)


o Un JavaSpace : un espace de tuples (entres) o Une entre : un ensemble de champs o Un champ : une rfrence une instance Java
entre

JavaSpace

Modes de structuration dapplications rparties - 65

Autrans - 99

JavaSpaces : modle (2)


o Oprations de base
u criture dans un JavaSpace (dpt) u lecture dans un JavaSpace (avec conformit ) u retrait dans un JavaSpace (avec conformit) u notification de l'criture d'une entre conforme u transaction groupant plusieurs oprations (sur potentiellement plusieurs JavaSpaces) u persistance
v par srialisation des objets d'une entre

Modes de structuration dapplications rparties - 66

Autrans - 99

Page 33

Positionnement de JavaSpaces

o Diffrence avec bases de donnes


u pas de langage de requte u slection de donnes par "conformit" (vis--vis d'un modle) u pas de modification sur les donnes de la base (ajouts et retraits seulement) u utilisation : espace de travail partag pour applications coopratives

o Diffrence avec Linda


u les entres et les objets sont typs u gestion possible de plusieurs espaces u transactions
Modes de structuration dapplications rparties - 67 Autrans - 99

JavaSpaces : interface de programmation

o Les primitives
u write : dept d'une nouvelle entre u read : lit une entre conforme un template u take : lit et retire une entre conforme un template u notify : enregistre une notification envoyer lorsqu'une nouvelle entre conforme un template est crite u template : modle pour la recherche d'entres dans un JavaSpace

v la mthode notify du gestionnaire d'vnement (listener ) est appele

Modes de structuration dapplications rparties - 68

Autrans - 99

Page 34

JavaSpaces : transactions (1)


o Les transactions
u avec write
v criture visible ssi la transaction valide (commit) v si write suivi de take dans une transaction : pas visible de l'extrieur 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

u avec read

Modes de structuration dapplications rparties - 69

Autrans - 99

JavaSpaces : transactions (2)


o Les transactions (suite)
u avec take
v une entre retire (taken ) ne peut tre lue (read) ou retire (taken) par une autre transaction v hors transaction, les notifications de voient que les critures valides v dans une transaction, les notifications voient en plus les critures internes la transaction v la fin d'une transaction annule les dfinitions de notification dans la transaction

u avec notify

u Les proprits ACID sont respectes

Modes de structuration dapplications rparties - 70

Autrans - 99

Page 35

Modle espace de tuples : conclusion


o Utilisation
u coordination entre applications rparties u dcouplage entre le client et le serveur u remarque : ncessite toujours au moins le partage d'une interface (comme RMI) ...

o Implantations possibles
u client/serveur : requtes distantes depuis tous les clients u objets dupliqus : localit des accs la base

o tat des lieux


u Une version fournie dans l'environnement Jini
v liaison dynamique des ressources dans un rseau

Modes de structuration dapplications rparties - 71

Autrans - 99

Modles objets rpartis partags


o Modle de programmation
u modle objets u modle 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 uvre


u dsignation : rfrences universelles d'objets u gestion de la persistance u gestion du partage : synchronisation, cohrence
v image unique d'un objet versus copies (cohrentes) d'un objet

Modes de structuration dapplications rparties - 72

Autrans - 99

Page 36

Modle objets dupliqus : principe directeur

o Extension un systme objets des mthodes de partage :


u de la mmoire commune dans un SMP u dun systme de fichiers (NFS) u de mmoire virtuelle dans Unix

Modes de structuration dapplications rparties - 73

Autrans - 99

Modle objets dupliqus : exemple (1)


o Partage de la mmoire commune dans un SMP
u cache associ chaque processeur u Mise jour immdiate (write -through) ou retarde (write back)

processeur

processeur

cache

cache

mmoire commune
Modes de structuration dapplications rparties - 74 Autrans - 99

Page 37

Modle objets dupliqus : exemple (2)


o Partage dun systme de fichier (NFS)
u cache NFS sur les sites clients u invalidations priodiques

partition monte

partition exporte

Modes de structuration dapplications rparties - 75

Autrans - 99

Modle objets dupliqus : exemple (3)


o Partage de mmoire virtuelle (Unix)
u partage de segments (suite de pages) u partage de la mmoire centrale par couplage

segment

processus Unix

mmoire centrale
Modes de structuration dapplications rparties - 76 Autrans - 99

Page 38

Modle objets dupliqus Principe de fonctionnement


o Principe
u fournir des objets partags par couplage d'objets (distants) dans les espaces dadressage locaux

o Partage par copie locale


u efficacit des accs locaux

o Programmation simple
u transparence de la distribution

o 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

Modes de structuration dapplications rparties - 77

Autrans - 99

Modle objets dupliqus Gestion de la cohrence


o Modle de cohrence
u relation entre les diffrentes copies des donnes

o Cohrence squentielle
u srialisation des accs aux donnes partages

o Cohrences relches
u associe cohrence et points de synchronisation dfinis explicitement par l'application
v cohrence faible (weak consistency ) v cohrence la sortie (release consistency) v cohrence l'entre (entry consistency)

o Cohrences non-squentielles
u cohrence causale

Modes de structuration dapplications rparties - 78

Autrans - 99

Page 39

Modle objets dupliqus Dsignation et liaison


o Nommage : gestion des noms des objets
u Gestion des noms en espace de stockage (rfrences) u Gestion des noms en espace d'excution (adresses)

o Liaison : opration de traduction des noms


u espace de noms "unique"
v les noms d'objets sont des adresses dans cet espace v traduction des noms
] lors de l'accs initial, ] chaque accs

u espaces de noms distincts

Modes de structuration dapplications rparties - 79

Autrans - 99

Modle objets dupliqus Application Java


o Javanaise : systme de gestion d'objets Java partags et rpartis
application
Copie_2

Copie_1

JVM machine 1

JVM machine 2
mmoire dobjets rpartie
Image persistante

Modes de structuration dapplications rparties - 80

Autrans - 99

Page 40

Javanaise : applications (1)


o Un diteur coopratif

document partag

Modes de structuration dapplications rparties - 81

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)

Pas de gestion des "folders" Serveur de messagerie Station de travail "Folders"


Modes de structuration dapplications rparties - 82 Autrans - 99

Partage des "folders" (avec cache)

Page 41

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'excution u la gestion de la cohrence des copies d'objets * le systme est ralis par un ensemble de classes Java prdfinies (et tlchargeables la demande)

Modes de structuration dapplications rparties - 83

Autrans - 99

Javanaise : modle de programmation (1)

o Unit de duplication : objet global


u un graphe dobjets Java (objets locaux) u la racine du graphe est le seul point dentre de lobjet global u un objet local ne peut pas tre partag entre des objets globaux u une rfrence externe ne peut rfrencer quun objet global

rfrence externe

objet global
Modes de structuration dapplications rparties - 84 Autrans - 99

Page 42

Javanaise : modle de programmation (2)


o Le programmeur dfinit les classes globales
u approche similaire aux classes "Remote" de RMI u les signatures des mthodes ne peuvent inclure que des rfrences des classes globales

o Un compilateur
u gnre du code appelant les mcanismes systmes grant les objets ( partir des interfaces des classes globales) * code des talons

Modes de structuration dapplications rparties - 85

Autrans - 99

Javanaise : chargement
o Unit de chargement
u objet global u srialisation du graphe d'objets locaux

o Liaison dynamique des rfrences externes


u un reprsentant (proxy out) pour chaque rfrence externe dans un objet global u inclut un identifiant unique et une rfrence Java l'objet global s'il est prsent

Modes de structuration dapplications rparties - 86

Autrans - 99

Page 43

Javanaise : cohrence

o Invalidation / mise jour des objets globaux


u un reprsentant (proxy in) dans l'objet global rfrnc u mme structure que proxy out

Modes de structuration dapplications rparties - 87

Autrans - 99

Javanaise : passage de paramtres


o Paramtres des mthodes des classes globales
u seulement des rfrences des objets globaux u les proxies sont responsables de l'installation des proxies associs aux paramtres changs
passe ref X comme paramtre ref X

ref X

Modes de structuration dapplications rparties - 88

Autrans - 99

Page 44

Modle objets dupliqus : conclusion


o Conclusion
u intrts du modle objets dupliqus
v dveloppement simplifi (distribution transparente) v favorise les accs locaux (efficacit)

o Limites et perspectives
u quel protocole de cohrence ? u approche mono-langage u cot 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 v spcialisation de protocoles existants

Modes de structuration dapplications rparties - 89

Autrans - 99

Modes de structuration d'applications rparties : Synthse

Hirarchie de modles
Guide Oode

JavaSpaces

Javanaise

composants

M.V. Java

Http

Dcom

Corba

Appel de procdure/mthode distance

Bus logiciel

Agents mobiles

Communication par messages (exemple : interface "sockets ")

TCP/IP
Modes de structuration dapplications rparties - 90 Autrans - 99

Page 45

Quel modle ? Pour quelle application ?


o Dveloppement de nouvelles applications versus intgration/extension d'applications existantes o Mode de synchronisation
u synchrone versus asynchrone

o Gestion des informations partages


u image unique versus copies locales
(migration du contrle, migration des donnes, migration du code)

o Approche "langage" versus approche "systme"


u effort de programmation versus complexit du systme

o Gnralisation des technologies base d'objets/composants


u programmation "in the small" : objets u programmation "in the large" : composants

Modes de structuration dapplications rparties - 91

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, s ystmes distribus", InterEditions, 1994 R. Balter, J. -P. Bantre, S. Krakowiak, Construction des systmes dexploitation rpartis, Collection Didactique de l'INRIA, 1991

Modes de structuration dapplications rparties - 92

Autrans - 99

Page 46

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.org http://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

Modes de structuration dapplications rparties - 93

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

Modes de structuration dapplications rparties - 94

Autrans - 99

Page 47

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 Internet Cooperative 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

Modes de structuration dapplications rparties - 95

Autrans - 99

Annexes
o Modle client-serveur et RPC
u mise en uvre d'un serveur u RPC - principes de fonctionnement u RPC - traitement des dfaillances u RPC - passage des paramtres u DCE - description des services u micro-noyau u publish-subscribe u JMS

o Modle message/vnement

o Modle mmoire partage


u JavaSpaces u modles de cohrence u dsignation et liaison u Javanaise u Guide/Oode

Modes de structuration dapplications rparties - 96

Autrans - 99

Page 48