7. Coupes
P1
P2
P3
• La coupe est représentée sous forme de courbe
pointillée
– L’intersection avec le trait d’un processus indique le point de
sauvegarde de l’état local
• Tout message noté comme reçu dans la coupe a
aussi été noté comme envoyé
• Cette coupe est dite cohérente
TOUMANARI- LINUX DAYS-2008
8. Coupes
P1
P2
P3
• Un message a été noté comme reçu mais non envoyé
• Cette coupe est dite non cohérente
• En cas de reprise après une panne, P3 considèrera
avoir reçu un message de P2 mais celui-ci ne l’aura
pas encore envoyé
TOUMANARI- LINUX DAYS-2008
16. Exemple de montage
Client Serveur
/ /
users bin users bin local
root equipes old new test
root
A B C D optim compat
travail archive
mount –t nfs Serveur:/users/equipes/A /users/A
TOUMANARI- LINUX DAYS-2008
17. Exemple de montage
Client Serveur
/ /
users bin users bin local
root equipes old new test
root A
A B C D optim compat
travail archive
TOUMANARI- LINUX DAYS-2008
19. Le rêve de tout système distribué
1) d’invoquer une méthode d’un objet se trouvant
sur une autre machine exactement de la même
manière que s’il étais locale
2) d’utiliser un objet distant (OD), sans savoir où il
se trouve, en demandant à un service « dédié »
de renvoyer son adresse
3) de pouvoir passer un OD en paramètre d’appel
à une méthode locale ou distante
4) de pouvoir récupérer le résultat d’un appel
distant sous forme d’un nouvel objet qui aurait
été créé sur la TOUMANARI- LINUX DAYS-2008
machine distante
20. Processus de développement
d’une application RMI
1) définir une interface Java pour un OD
2) créer et compiler une classe implémentant
cette interface
3) créer et compiler une application serveur RMI
4) créer les classes Stub et Skeleton (rmic)
5) démarrer rmiregister et lancer l’application
serveur RMI
6) créer, compiler et lancer un programme client
accédant à des OD du serveur
TOUMANARI- LINUX DAYS-2008
22. Vue du modèle O.M.A.
Services Objets de domaines
Annuaire Transaction Médecine Electronique
Le bus C.O.R.B.A.
Client Serveur Administration Impression
Applications utilisateurs Utilitaires communs
TOUMANARI- LINUX DAYS-2008
23. Architecture générale
fichier
IDL
Client Implémentation d’objet
précompilateur
SSI DSI
DII SII Stub Interface
Interface de
client ORB l ’adaptateur
Adaptateur d’Objet
noyau de l ’Object Request Broker (ORB)
Référentiel Référentiel
des interfaces des implémentations
Rint Rimp
TOUMANARI- LINUX DAYS-2008
24. POAManager & POA
SERVEUR Servan
Servan
Requête tt
s client
ORB POA
POAManager POA Servan
(orb) POA* t
Servan
Servan
t Servan
t Servan
t Servan
tt
*RootPOA
(rootpoa)
TOUMANARI- LINUX DAYS-2008
25. Serveur
service de nommage Client
ORB
resolve_initial_references (quot;NameServicequot;)
objet
resolve_initial_references (quot;NameServicequot;);
CosNaming:: Conversion
NamingContext
conversion Invocation
conversion
Bind()
resolve()
TOUMANARI- LINUX DAYS-2008
26. Un canal d’évènements
Flot des évènements Consommateur
Producteur
Consommateur
Producteur Canal
Consommateur
Consommateur
TOUMANARI- LINUX DAYS-2008
27. Un canal d’évènements :
notification PushConsumer
PushSupplier Consommateur
Producteur Push void push(in any data) raises(Disconnected);
Consommateur
Producteur Canal
Push Consommateur
Consommateur
Producteur actif / Consommateur réactif
Le canal diffuse les évènements
TOUMANARI- LINUX DAYS-2008
28. Un canal d’évènements
demande
Consommateur
Producteur Pull()
Consommateur
Producteur Canal
Pull() Consommateur
PullSupplier { demande
//demande de production d’un événement
any pull() raises(Disconnected); Consommateur
// présence d’un événement
any try_pull(out boolean has_event) raises(Disconnected);
Producteur réactif / Consommateur actif
TOUMANARI- LINUX DAYS-2008
Le canal procure les évènements
29. Un canal d’évènements : file
d’évènements
Consommateur
Producteur Pull()
Consommateur
Producteur Canal
Push() Consommateur
Consommateur
Producteur actif / Consommateur actif
Le canal gère des files d’évènements
TOUMANARI- LINUX DAYS-2008
30. Un canal d’évènements
collecte d’évènements
Consommateur
Producteur Push()
Consommateur
Producteur Canal
Pull() Consommateur
Consommateur
Producteur réactif / Consommateur réactif
Le canal est une entité active voire intelligente
TOUMANARI- LINUX DAYS-2008
32. Cycle de vie d’utilisation
2 : J’ai trouvé! Voici le serveur
hébergeant ce service web
Annuaire
UDDI
3 : Quel est le format d’appel du
service que tu proposes?
1 : Je recherche
un service WEB
Contrat
SOAP
4 : Voici mon contrat (WSDL)
XML
Client Serveur
XML
5 : J’ai compris comment invoquer
ton service et je t’envoie un document
XML représentant ma requête
XML
TOUMANARI- LINUX DAYS-2008
6 : J’ai exécuté ta requête et je te retourne le résultat
38. • créer un fichier de conf. /etc/openMosix.map (ou lancer le démon de découverte
automatique)
Syntaxe : MOSIXnodenumber IPaddress rangesize
Exemple :
#fichier /etc/mosix.map
1 192.168.0.1 6
7 192.168.0.100 1
7 192.168.1.100 1
8 192.168.1.1 6
• installer les outils d’administration openMosixtools et l’interface graphique
openMosixview
• modifier le secteur de démarrage (grub ou lilo) et démarrer la machine sur le
nouveau noyau
• Possibilité d’utiliser des assistants de distribution, comme LTSP (www.LTSP.org)
dans une architecture homogène
TOUMANARI- LINUX DAYS-2008
39. Exemple produit Matriciel
• Calcul de produit C= A1p* A2p*… Amp*, tel que Ai est
une matrice carrée de taille n*n, sur une Grille de X
nœuds regroupés en Y clusters
P P P
n c =
n A1 x A2 x … Am
n n n n
TOUMANARI- LINUX DAYS-2008
40. •La matrice C est partagée horizontalement
Cluster 1 1 2 3 … X en Y paquets de lignes et verticalement en
X paquets de colonnes
… •Chaque cluster s’occupe de calculer un
Cluster 2 1 2 3 X
.
.
.
.
.
.
.
.
paquet de lignes
. . . . •A l’intérieur d’un cluster, les nœuds
Cluster Y 1 2 3 … X calculent le produit matriciel
La matrice résultat C Réseau à haute vitesse
Noeud
initiateur
… … …
1 2 3 X 1 2 3 X 1 2 3 X
TOUMANARI- LINUX DAYS-2008
Cluster 1 Cluster 2 Cluster Y