SlideShare uma empresa Scribd logo
1 de 47
Baixar para ler offline
Simulations et applications
   réparties sous LINUX


       AHMED TOUMANARI
        Université Ibn zohr


         TOUMANARI- LINUX DAYS-2008
PLAN
- Algorithme distribué
- RPC
- RMI
- CORBA
- Service web
- Clustring
     TOUMANARI- LINUX DAYS-2008
Introduction

                          Déviation :
                          synchronisation
                          exacte impossible




                    Solutions :
                     Synchronisation approximative
                      des horloges physiques
                     Utilisation d’horloges logiques

 TOUMANARI- LINUX DAYS-2008
NTP: Network Time Protocol




  TOUMANARI- LINUX DAYS-2008
Temps & Horloges Logiques

  1       2

                   ,2

                        3           4


                                           ,4
      1                                         5




              TOUMANARI- LINUX DAYS-2008
Ordonnancement
  Total des Événements
1, 0, 0      2, 0, 0

                           ,(2, 0, 0)
                                 2, 1, 0     2, 2, 0

                                                       ,(2, 2, 0)

          0, 0, 1                                          2, 2, 2




                       TOUMANARI- LINUX DAYS-2008
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
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
LIB,0,1 – 0                   LIB,0,1 – 0         LIB,0,1 – 0
  LIB,0,2 – 0                   LIB,0,2 – 0    1    LIB,0,2 – 0   1
                 1
                                               2
  LIB,0,3 – 0    2              LIB,0,3 – 0         LIB,0,3 – 0   2

                 3                                                3
                                                                  4
                            REQ,2,1 – 3        3
                            REQ,2,2– 2                            5
                                          5
REQ,2,1 – 2                 ACK,4,3 – 5                           6
REQ,2,2– 3
                 7                             6
ACK,6,3 – 7
                 8
                 9             LIB,10,1 – 11
                                               10
                               REQ,2,2– 2
                10                             11
                               ACK,4,3 – 5
                                               12                 11
                13                                                13



                             LAMPORT
                     TOUMANARI- LINUX DAYS-2008
A1=φ               A2=φ                          A3=φ

 F1=φ               F2=φ                          F3=φ
        1                   1             1
                            2
        2                                 2
A1=φ
         3                                3 A3=φ
F1=S2                                             F3=S2
                            3                     A3=φ
                                          4
                            4                     F3=S2,S1
         4
                             5
A1=S2 5                     6
                                          7
         6                                        A3=S2,S1
F1=S2
                                              8
                                                  F3=S2,S1
A1=S2,S3
        10                                    9
F1=S2                                         F3= φ
                  A2=S3     10
      11
 F1= φ                      12
               A2=S3,S1

                   RICART
             TOUMANARI- LINUX DAYS-2008
r11           r12                                Zid = RV1[1]

RV1=(1,0)      RV1=(2,0)



               m1, (2,0), 0                           m2, (2,2), 2


    r21                                  r22

   RV2=(0,1)                  (2,1)
                                       RV2=(2,2)
                  Zid # RV2[2]


                       TOUMANARI- LINUX DAYS-2008
RPC

TOUMANARI- LINUX DAYS-2008
Principe des RPC

       Requête Service
         Identification




                                Port-Mapper
            Version
        Sous-Version
                                              Serveur

           Protocole
           N° de port




   TOUMANARI- LINUX DAYS-2008
TOUMANARI- LINUX DAYS-2008
TOUMANARI- LINUX DAYS-2008
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
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
RMI

TOUMANARI- LINUX DAYS-2008
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
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
CORBA

TOUMANARI- LINUX DAYS-2008
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
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
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
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
Un canal d’évènements
             Flot des évènements              Consommateur
Producteur
                                              Consommateur
Producteur            Canal
                                              Consommateur


                                          Consommateur



                 TOUMANARI- LINUX DAYS-2008
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
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
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
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
Service Web

   TOUMANARI- LINUX DAYS-2008
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
CLUSTRING

  TOUMANARI- LINUX DAYS-2008
NOW


                     tâche 1
Workstation = Node
                                                               tâche 1, tâche2                            tâche(s)
                                   éléments d'interconnexion

                                                                            Workstation = Server Node

                       tâche 2


Workstation = Node


                                            CLUSTER
                               TOUMANARI- LINUX DAYS-2008
LES MOTIVATIONS D’UN CLUSTER


  Cluster scientifique (déchiffrement des clés de cryptage de plus 
 en plus longues, simulation nucléaire…)


  Cluster de stockage (stockage d’énormes fichiers…)


  Cluster haute disponibilité (architecture firewall…)


  Cluster à répartition de charge (architecture serveur web, 
 architecture système utilisateur…) 




                       TOUMANARI- LINUX DAYS-2008
OPENMOSIX ?

 Cluster à répartition de charge entre processus 

 Extension et enrichissement du noyau Linux (patchs + quelques 
binaires) afin de supporter le clustering 
 Chaque Nodes est équivalent et tourne sous un noyau MOSIX 

 Utilisation d’un algorithme dit de « fork and forget » 

 Optimisation constante de la répartition (load balancing)

 algorithme dissémination d’information probabiliste 

 algorithme de gestion mémoire         # S.E      # MPI/PVM 
                       TOUMANARI- LINUX DAYS-2008
Installation 
• Modifier les sources du noyau par le fichier de « patch » de openMosix
• le recompiler pour obtenir un nouveau noyau intégrant les fonctionnalités openMosix




                             TOUMANARI- LINUX DAYS-2008
• créer un fichier de conf. /etc/openMosix.map (ou lancer le démon de découverte 
 automatique)

Syntaxe :  MOSIX­node­number                  IP­address        range­size  
          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 openMosix­tools 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
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
•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
3                            3
    C11 C12 C13 C14         A11 A12 A13 A14              B11 B12 B13 B14
    C21 C22 C23 C24         A21 A22 A23 A24              B21 B22 B23 B24
    C31 C32 C33 C34    =    A31 A32 A33 A34
                                                  x      B31 B32 B33 B34
    C41 C42 C43 C44         A41 A42 A43 A44              B41 B42 B43 B44

          c                       A       Noeud initiateur       B

1              2                                             1                 2




Cluster 1          TOUMANARI- LINUX DAYS-2008                    Cluster 2
3                            3
    C11 C12 C13 C14         A11 A12 A13 A14              B11 B12 B13 B14
    C21 C22 C23 C24         A21 A22 A23 A24              B21 B22 B23 B24
    C31 C32 C33 C34    =    A31 A32 A33 A34
                                                  x      B31 B32 B33 B34
    C41 C42 C43 C44         A41 A42 A43 A44              B41 B42 B43 B44

          c                       A       Noeud initiateur       B

1              2                                             1                 2




Cluster 1          TOUMANARI- LINUX DAYS-2008                    Cluster 2
3                                3
                               C11 C12 C13 C14               A11 A12 A13 A14                   B11 B12 B13 B14
                               C21 C22 C23 C24               A21 A22 A23 A24                   B21 B22 B23 B24
                               C31 C32 C33 C34        =      A31 A32 A33 A34
                                                                                    x          B31 B32 B33 B34
                               C41 C42 C43 C44               A41 A42 A43 A44                   B41 B42 B43 B44

                                     c                             A       Noeud initiateur            B

                        1                  2                                                       1                   2
                  A11 A12                          A13 A14                               A11 A12                               A13 A14
                  A21 A22                          A23 A24                               A21 A22                               A23 A24

A11 A12 A13 A14   A31 A32        A11 A12 A13 A14   A33 A34             A31 A32 A33 A34   A31 A32             A31 A32 A33 A34   A33 A34

A21 A22 A23 A24 x A41 A42        A21 A22 A23 A24 x A43 A44             A41 A42 A43 A44 x A41 A42             A41 A42 A43 A44 x A43 A44

                    =                                =                                     =                                     =
                                               TOUMANARI- LINUX DAYS-2008

                            Cluster 1                                                                  Cluster 2
3                                3
                               C11 C12 C13 C14               A11 A12 A13 A14                   B11 B12 B13 B14
                               C21 C22 C23 C24               A21 A22 A23 A24                   B21 B22 B23 B24
                               C31 C32 C33 C34        =      A31 A32 A33 A34
                                                                                    x          B31 B32 B33 B34
                               C41 C42 C43 C44               A41 A42 A43 A44                   B41 B42 B43 B44

                                     c                             A       Noeud initiateur            B

                        1                  2                                                       1                   2
                  A11 A12                          A13 A14                               A11 A12                               A13 A14
                  A21 A22                          A23 A24                               A21 A22                               A23 A24

A11 A12 A13 A14   A31 A32        A11 A12 A13 A14   A33 A34             A31 A32 A33 A34   A31 A32             A31 A32 A33 A34   A33 A34

A21 A22 A23 A24 x A41 A42        A21 A22 A23 A24 x A43 A44             A41 A42 A43 A44 x A41 A42             A41 A42 A43 A44 x A43 A44

                    =                                =                                     =                                     =
                  C11 C12                          C13 C14                               C31 C32                               C31 C32
                                               TOUMANARI- LINUX DAYS-2008
                  C21 C22                          C23 C24                               C41 C42                               C41 C42
                            Cluster 1                                                                  Cluster 2
3                                  3
                                   C11 C12 C13 C14                  A11 A12 A13 A14                     B11 B12 B13 B14
                                   C21 C22 C23 C24                  A21 A22 A23 A24                     B21 B22 B23 B24
                                   C31 C32 C33 C34         =        A31 A32 A33 A34
                                                                                            x           B31 B32 B33 B34
                                   C41 C42 C43 C44                  A41 A42 A43 A44                     B41 B42 B43 B44

                                         c                                A       Noeud initiateur               B

                            1                  2                                                             1                  2
                      A11 A12                            A13 A14                                  A11 A12                                 A13 A14
B311B312 A311A312                    B313B314 A313A314                        B331B332 A331A332                       B333B334 A333A333
                      A21 A22                            A23 A24                                  A21 A22                                 A23 A24
B321B322 A321A322                    B323B324 A323A324                        B341B342 A341A342                       B343B344 A344A344
                      A31 A32        C11 C12 C13 C14     A33 A34              C31 C32 C31 C32     A31 A32             C31 C32 C31 C32     A33 A34
C11 C12 C13 C14
                    x A41 A42        C21 C22 C23 C24 x A43 A44                C41 C42 C41 C42 x A41 A42               C41 C42 C41 C42 x A43 A44
C21 C22 C23 C24
                        =                                  =                                        =                                       =
                      A311A312                           A313A314                                 A331A332                                A331A332
                                                   TOUMANARI- LINUX DAYS-2008
                      A321A322                        3 3
                                                         A 23A 24                                 A341A342                                A341A342
                                Cluster 1                                                                        Cluster 2
3                                 3
                                 C11 C12 C13 C14                  A11 A12 A13 A14                     B11 B12 B13 B14
                                 C21 C22 C23 C24                  A21 A22 A23 A24                     B21 B22 B23 B24
                                 C31 C32 C33 C34         =        A31 A32 A33 A34
                                                                                          x           B31 B32 B33 B34
                                 C41 C42 C43 C44                  A41 A42 A43 A44                     B41 B42 B43 B44

                                        c                               A        Noeud initiateur              B

                          1                  2                                                             1                  2
                    A311A312                           A313A314                                 A311A312                                A313A314
                    A321A322                           A323A324                                 A321A322                                A323A324

B311B312 B313B314   A331A332       B311B312 B313B314   A333A334             B331B332 B333B334   A331A332            B331B332 B333B334   A333A334

B321B322 B323B324 x A 41A 42       B321B322 B323B324 x A 43A 44             B341B342 B343B344 x A 41A 42            B341B342 B343B344 x A 43A 44
                     3   3                              3   3                                    3   3                                   3   3



                      =                                  =                                        =                                       =
                    C11 C12                            C13 C14                                  C31 C32                                 C31 C32
                                                  TOUMANARI- LINUX DAYS-2008
                    C21 C22                            C23 C24                                  C41 C42                                 C41 C42
                              Cluster 1                                                                        Cluster 2
Merci de votre attention



        TOUMANARI- LINUX DAYS-2008

Mais conteúdo relacionado

Destaque

De la Securité Informatique a l’Identite Numerique 2.0
De la Securité Informatique a l’Identite Numerique 2.0De la Securité Informatique a l’Identite Numerique 2.0
De la Securité Informatique a l’Identite Numerique 2.0Eric Herschkorn
 
Cas cliniques module 4 2008
Cas cliniques module 4 2008Cas cliniques module 4 2008
Cas cliniques module 4 2008Idris Ahmed
 
Utilisation des réseaux informatiques dans l’enseignement
Utilisation des réseaux informatiques  dans l’enseignementUtilisation des réseaux informatiques  dans l’enseignement
Utilisation des réseaux informatiques dans l’enseignementKaouther Skiken
 
Cours ifas le handicap 2014- 2015
Cours ifas le handicap  2014- 2015Cours ifas le handicap  2014- 2015
Cours ifas le handicap 2014- 2015Laurent MAUTRE
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linuxKhalid ALLILI
 
Sports and Games Vocabulary
Sports and Games VocabularySports and Games Vocabulary
Sports and Games Vocabularytsneighbors
 
Comparatif Windows/Linux
Comparatif Windows/LinuxComparatif Windows/Linux
Comparatif Windows/LinuxJibril Touzi
 
Cursus adulte débutant chess & strategy
Cursus adulte débutant chess & strategyCursus adulte débutant chess & strategy
Cursus adulte débutant chess & strategyEchecs & Stratégie
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOpsMicrosoft
 
LinPKI EJBCA : une PKI open source en route vers la certification Critères Co...
LinPKI EJBCA : une PKI open source en route vers la certification Critères Co...LinPKI EJBCA : une PKI open source en route vers la certification Critères Co...
LinPKI EJBCA : une PKI open source en route vers la certification Critères Co...LINAGORA
 
Apprendre à jouer aux échecs en 2 heures chrono
Apprendre à jouer aux échecs en 2 heures chronoApprendre à jouer aux échecs en 2 heures chrono
Apprendre à jouer aux échecs en 2 heures chronoEchecs & Stratégie
 
LinSign : la signature électronique en Open Source
LinSign : la signature électronique en Open Source LinSign : la signature électronique en Open Source
LinSign : la signature électronique en Open Source LINAGORA
 
Ingénieur Réseaux & Sécurité
Ingénieur Réseaux & Sécurité Ingénieur Réseaux & Sécurité
Ingénieur Réseaux & Sécurité Khaled Mezaache
 
Introduction à La Sécurité Informatique 2/2
Introduction à La Sécurité Informatique 2/2Introduction à La Sécurité Informatique 2/2
Introduction à La Sécurité Informatique 2/2Sylvain Maret
 

Destaque (20)

De la Securité Informatique a l’Identite Numerique 2.0
De la Securité Informatique a l’Identite Numerique 2.0De la Securité Informatique a l’Identite Numerique 2.0
De la Securité Informatique a l’Identite Numerique 2.0
 
Cas cliniques module 4 2008
Cas cliniques module 4 2008Cas cliniques module 4 2008
Cas cliniques module 4 2008
 
Utilisation des réseaux informatiques dans l’enseignement
Utilisation des réseaux informatiques  dans l’enseignementUtilisation des réseaux informatiques  dans l’enseignement
Utilisation des réseaux informatiques dans l’enseignement
 
Cours ifas le handicap 2014- 2015
Cours ifas le handicap  2014- 2015Cours ifas le handicap  2014- 2015
Cours ifas le handicap 2014- 2015
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linux
 
Ccna2
Ccna2Ccna2
Ccna2
 
Sports and Games Vocabulary
Sports and Games VocabularySports and Games Vocabulary
Sports and Games Vocabulary
 
Comparatif Windows/Linux
Comparatif Windows/LinuxComparatif Windows/Linux
Comparatif Windows/Linux
 
Cursus adulte débutant chess & strategy
Cursus adulte débutant chess & strategyCursus adulte débutant chess & strategy
Cursus adulte débutant chess & strategy
 
Initiation aux echecs
Initiation aux echecsInitiation aux echecs
Initiation aux echecs
 
Cours de tactique aux echecs
Cours de tactique aux echecsCours de tactique aux echecs
Cours de tactique aux echecs
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
 
cours Lunix
cours Lunixcours Lunix
cours Lunix
 
LinPKI EJBCA : une PKI open source en route vers la certification Critères Co...
LinPKI EJBCA : une PKI open source en route vers la certification Critères Co...LinPKI EJBCA : une PKI open source en route vers la certification Critères Co...
LinPKI EJBCA : une PKI open source en route vers la certification Critères Co...
 
Apprendre à jouer aux échecs en 2 heures chrono
Apprendre à jouer aux échecs en 2 heures chronoApprendre à jouer aux échecs en 2 heures chrono
Apprendre à jouer aux échecs en 2 heures chrono
 
LinSign : la signature électronique en Open Source
LinSign : la signature électronique en Open Source LinSign : la signature électronique en Open Source
LinSign : la signature électronique en Open Source
 
Ingénieur Réseaux & Sécurité
Ingénieur Réseaux & Sécurité Ingénieur Réseaux & Sécurité
Ingénieur Réseaux & Sécurité
 
Introduction à La Sécurité Informatique 2/2
Introduction à La Sécurité Informatique 2/2Introduction à La Sécurité Informatique 2/2
Introduction à La Sécurité Informatique 2/2
 
Examen neurologique
Examen neurologiqueExamen neurologique
Examen neurologique
 
Les systèmes intelligents
Les systèmes intelligentsLes systèmes intelligents
Les systèmes intelligents
 

Simulations et applications réparties sous LINUX

  • 1. Simulations et applications réparties sous LINUX AHMED TOUMANARI Université Ibn zohr TOUMANARI- LINUX DAYS-2008
  • 2. PLAN - Algorithme distribué - RPC - RMI - CORBA - Service web - Clustring TOUMANARI- LINUX DAYS-2008
  • 3. Introduction Déviation : synchronisation exacte impossible Solutions :  Synchronisation approximative des horloges physiques  Utilisation d’horloges logiques TOUMANARI- LINUX DAYS-2008
  • 4. NTP: Network Time Protocol TOUMANARI- LINUX DAYS-2008
  • 5. Temps & Horloges Logiques 1 2 ,2 3 4 ,4 1 5 TOUMANARI- LINUX DAYS-2008
  • 6. Ordonnancement Total des Événements 1, 0, 0 2, 0, 0 ,(2, 0, 0) 2, 1, 0 2, 2, 0 ,(2, 2, 0) 0, 0, 1 2, 2, 2 TOUMANARI- LINUX DAYS-2008
  • 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
  • 9. LIB,0,1 – 0 LIB,0,1 – 0 LIB,0,1 – 0 LIB,0,2 – 0 LIB,0,2 – 0 1 LIB,0,2 – 0 1 1 2 LIB,0,3 – 0 2 LIB,0,3 – 0 LIB,0,3 – 0 2 3 3 4 REQ,2,1 – 3 3 REQ,2,2– 2 5 5 REQ,2,1 – 2 ACK,4,3 – 5 6 REQ,2,2– 3 7 6 ACK,6,3 – 7 8 9 LIB,10,1 – 11 10 REQ,2,2– 2 10 11 ACK,4,3 – 5 12 11 13 13 LAMPORT TOUMANARI- LINUX DAYS-2008
  • 10. A1=φ A2=φ A3=φ F1=φ F2=φ F3=φ 1 1 1 2 2 2 A1=φ 3 3 A3=φ F1=S2 F3=S2 3 A3=φ 4 4 F3=S2,S1 4 5 A1=S2 5 6 7 6 A3=S2,S1 F1=S2 8 F3=S2,S1 A1=S2,S3 10 9 F1=S2 F3= φ A2=S3 10 11 F1= φ 12 A2=S3,S1 RICART TOUMANARI- LINUX DAYS-2008
  • 11. r11 r12 Zid = RV1[1] RV1=(1,0) RV1=(2,0) m1, (2,0), 0 m2, (2,2), 2 r21 r22 RV2=(0,1) (2,1) RV2=(2,2) Zid # RV2[2] TOUMANARI- LINUX DAYS-2008
  • 13. Principe des RPC Requête Service Identification Port-Mapper Version Sous-Version Serveur Protocole N° de port 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
  • 31. Service Web 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
  • 33. CLUSTRING TOUMANARI- LINUX DAYS-2008
  • 34. NOW tâche 1 Workstation = Node tâche 1, tâche2 tâche(s) éléments d'interconnexion Workstation = Server Node tâche 2 Workstation = Node CLUSTER TOUMANARI- LINUX DAYS-2008
  • 35. LES MOTIVATIONS D’UN CLUSTER  Cluster scientifique (déchiffrement des clés de cryptage de plus  en plus longues, simulation nucléaire…)  Cluster de stockage (stockage d’énormes fichiers…)  Cluster haute disponibilité (architecture firewall…)  Cluster à répartition de charge (architecture serveur web,  architecture système utilisateur…)  TOUMANARI- LINUX DAYS-2008
  • 38. • créer un fichier de conf. /etc/openMosix.map (ou lancer le démon de découverte  automatique) Syntaxe :  MOSIX­node­number IP­address range­size   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 openMosix­tools 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
  • 41. 3 3 C11 C12 C13 C14 A11 A12 A13 A14 B11 B12 B13 B14 C21 C22 C23 C24 A21 A22 A23 A24 B21 B22 B23 B24 C31 C32 C33 C34 = A31 A32 A33 A34 x B31 B32 B33 B34 C41 C42 C43 C44 A41 A42 A43 A44 B41 B42 B43 B44 c A Noeud initiateur B 1 2 1 2 Cluster 1 TOUMANARI- LINUX DAYS-2008 Cluster 2
  • 42. 3 3 C11 C12 C13 C14 A11 A12 A13 A14 B11 B12 B13 B14 C21 C22 C23 C24 A21 A22 A23 A24 B21 B22 B23 B24 C31 C32 C33 C34 = A31 A32 A33 A34 x B31 B32 B33 B34 C41 C42 C43 C44 A41 A42 A43 A44 B41 B42 B43 B44 c A Noeud initiateur B 1 2 1 2 Cluster 1 TOUMANARI- LINUX DAYS-2008 Cluster 2
  • 43. 3 3 C11 C12 C13 C14 A11 A12 A13 A14 B11 B12 B13 B14 C21 C22 C23 C24 A21 A22 A23 A24 B21 B22 B23 B24 C31 C32 C33 C34 = A31 A32 A33 A34 x B31 B32 B33 B34 C41 C42 C43 C44 A41 A42 A43 A44 B41 B42 B43 B44 c A Noeud initiateur B 1 2 1 2 A11 A12 A13 A14 A11 A12 A13 A14 A21 A22 A23 A24 A21 A22 A23 A24 A11 A12 A13 A14 A31 A32 A11 A12 A13 A14 A33 A34 A31 A32 A33 A34 A31 A32 A31 A32 A33 A34 A33 A34 A21 A22 A23 A24 x A41 A42 A21 A22 A23 A24 x A43 A44 A41 A42 A43 A44 x A41 A42 A41 A42 A43 A44 x A43 A44 = = = = TOUMANARI- LINUX DAYS-2008 Cluster 1 Cluster 2
  • 44. 3 3 C11 C12 C13 C14 A11 A12 A13 A14 B11 B12 B13 B14 C21 C22 C23 C24 A21 A22 A23 A24 B21 B22 B23 B24 C31 C32 C33 C34 = A31 A32 A33 A34 x B31 B32 B33 B34 C41 C42 C43 C44 A41 A42 A43 A44 B41 B42 B43 B44 c A Noeud initiateur B 1 2 1 2 A11 A12 A13 A14 A11 A12 A13 A14 A21 A22 A23 A24 A21 A22 A23 A24 A11 A12 A13 A14 A31 A32 A11 A12 A13 A14 A33 A34 A31 A32 A33 A34 A31 A32 A31 A32 A33 A34 A33 A34 A21 A22 A23 A24 x A41 A42 A21 A22 A23 A24 x A43 A44 A41 A42 A43 A44 x A41 A42 A41 A42 A43 A44 x A43 A44 = = = = C11 C12 C13 C14 C31 C32 C31 C32 TOUMANARI- LINUX DAYS-2008 C21 C22 C23 C24 C41 C42 C41 C42 Cluster 1 Cluster 2
  • 45. 3 3 C11 C12 C13 C14 A11 A12 A13 A14 B11 B12 B13 B14 C21 C22 C23 C24 A21 A22 A23 A24 B21 B22 B23 B24 C31 C32 C33 C34 = A31 A32 A33 A34 x B31 B32 B33 B34 C41 C42 C43 C44 A41 A42 A43 A44 B41 B42 B43 B44 c A Noeud initiateur B 1 2 1 2 A11 A12 A13 A14 A11 A12 A13 A14 B311B312 A311A312 B313B314 A313A314 B331B332 A331A332 B333B334 A333A333 A21 A22 A23 A24 A21 A22 A23 A24 B321B322 A321A322 B323B324 A323A324 B341B342 A341A342 B343B344 A344A344 A31 A32 C11 C12 C13 C14 A33 A34 C31 C32 C31 C32 A31 A32 C31 C32 C31 C32 A33 A34 C11 C12 C13 C14 x A41 A42 C21 C22 C23 C24 x A43 A44 C41 C42 C41 C42 x A41 A42 C41 C42 C41 C42 x A43 A44 C21 C22 C23 C24 = = = = A311A312 A313A314 A331A332 A331A332 TOUMANARI- LINUX DAYS-2008 A321A322 3 3 A 23A 24 A341A342 A341A342 Cluster 1 Cluster 2
  • 46. 3 3 C11 C12 C13 C14 A11 A12 A13 A14 B11 B12 B13 B14 C21 C22 C23 C24 A21 A22 A23 A24 B21 B22 B23 B24 C31 C32 C33 C34 = A31 A32 A33 A34 x B31 B32 B33 B34 C41 C42 C43 C44 A41 A42 A43 A44 B41 B42 B43 B44 c A Noeud initiateur B 1 2 1 2 A311A312 A313A314 A311A312 A313A314 A321A322 A323A324 A321A322 A323A324 B311B312 B313B314 A331A332 B311B312 B313B314 A333A334 B331B332 B333B334 A331A332 B331B332 B333B334 A333A334 B321B322 B323B324 x A 41A 42 B321B322 B323B324 x A 43A 44 B341B342 B343B344 x A 41A 42 B341B342 B343B344 x A 43A 44 3 3 3 3 3 3 3 3 = = = = C11 C12 C13 C14 C31 C32 C31 C32 TOUMANARI- LINUX DAYS-2008 C21 C22 C23 C24 C41 C42 C41 C42 Cluster 1 Cluster 2
  • 47. Merci de votre attention TOUMANARI- LINUX DAYS-2008