SlideShare ist ein Scribd-Unternehmen logo
1 von 30
CPPTeam




             PROJET
             BIBLIOTHEQUE
             DISTRIBUÉE
29/05/2009   LAPAUZE-NOIROT-TRONC-VEY
Introduction
2


       Mise en place d’une bibliothèque distribuée
         Gérer des documents électroniques
         Centraliser virtuellement les bases de données



       Mise en place d’un annuaire
         Répartir la charge de travail entre agences
         Répartir les documents électroniques
Sommaire
3



       Organisation
       Politiques
           Choix des technologies
           Accès aux documents
           Changement de topologie
       Algorithmes
           Algorithmes de référencement
           Mise en place de la topologie d’anneau virtuel
           Jeton d’élection
           Algorithme des transactions
           Répartition des documents
           Libération de documents
           Algorithme de déconnexion
       Tests & Validation
       Livrables
Organisation
4
5   Politiques
Choix des technologies
6




       Langage C/C++




       Communication par Socket TCP




    Technologies   Accès aux documents   Changement de topologie
Accès aux documents
7


       Lecteurs/Rédacteurs :
         Sémaphore     commune à toutes les transactions :
          FIFO
         Sémaphore de protection d’écriture

         Compteur du nombre de lecteur (consultation)
           Plusieurs
                   consultations en simultané sur les mêmes
           documents


         Retrait
                possible si aucune consultation
         Booléen de contrôle de retrait confirmé


    Technologies        Accès aux documents   Changement de topologie
Changement de topologie
8


       S’il y a des changements de topologie, les
        transactions en cours sont annulées

       Si une agence se déconnecte, alors tous les
        clients connectées à elles le sont également

       Si l’annuaire se déconnecte, alors toutes les
        agences sont déconnectées


    Technologies     Accès aux documents   Changement de topologie
9   Algorithmes
Algorithmes de référencement
10


        Référencement des agences
         1 : Connexion à la socket d’écoute de l’annuaire
          2 : Envoi de « Agence_Connexion »
            3 : L’annuaire vérifie si la connexion est possible
             4 : Dès que la connexion est autorisée, envoi de
             «5 : L’agence s’enregistre avec ses services auprès de
                Accept_Connexion »
               l’annuaire
                                              Agence_Connexion
                           Accept_Connexion
                                               Enregistrement a




                 6 : L’agence envoie périodiquement le nombre de clients
                 connectés ainsi que le nombre de documents possédés


Référ.     Anneau Virt.    Jeton        Transac.           Documents   Déconnexions
Algorithmes de référencement
11
     (2)
        Référencement des clients
         1 : Connexion à la socket d’écoute de l’annuaire
          2 : Envoi de « Client_Connexion »
            3 : L’annuaire vérifie si la connexion est possible
             4 : Dès que la connexion est autorisée, envoi de
             «5 : Le client demande une agence offrant les services
                Accept_Connexion »
                 6 : L’annuaire repond Ok_c si une agence correpond, No_c
               recherchés
                 sinon
                                                Client_Connexion
                          Accept_Connexion
                                                    Enregistrement_c
                          Ok_c (Adresse Agence) /
                          No_c




Référ.     Anneau Virt.      Jeton           Transac.              Documents   Déconnexions
Algorithmes de référencement
12
     (3)
        Avantages du référencement :

          Connaissance      des services de chaque agence



          Répartition    des clients sur l’ensemble des agences




Référ.     Anneau Virt.    Jeton   Transac.   Documents   Déconnexions
Calcul de l’anneau virtuel
13


        Anneau virtuel initialisé lors de la :
                  Connexion d’une nouvelle agence
                  Déconnexion d’une agence existante
                  Perte de connexion avec une agence existante
        Procédure :
                  L’annuaire calcule un anneau virtuel à partir de la liste des
                   agences connectées
                  Il envoie un message pour signifier aux agences de se mettre en
                   écoute de leur agence précédente sur un port spécifié
                  Il attend les acquittements
                  Si tous les acquittements sont reçus dans les délais
                       Alors envoi d’un message de connection au suivant sur une
                         adresse et un port donné
                       Sinon, envoi d’un message d’annulation de calcul d’anneau




Référ.        Anneau Virt.      Jeton      Transac.     Documents       Déconnexions
Calcul de l’anneau virtuel (vue globale)
 14


                                                                            …


1 : Envoi : Ecoute(Port              1
Ecoute)

2 : Acquittement de mise en écoute                 2
                                                             2

                                                                       2

3 : Envoi : ConnexionAuSuivant(Addr:Port)
                                 3




Référ.        Anneau Virt.       Jeton      Transac.   Documents   Déconnexions
Calcul de l’anneau virtuel (3)
15




        Le calcul d’un anneau est précédé dans tous
         les cas par :

          une  réservation de tous les documents par
          l’annuaire

          un   arrêt des transactions en cours



Référ.     Anneau Virt.   Jeton   Transac.   Documents   Déconnexions
Jeton d’élection
16


        Afin de faciliter les transactions
          Un jeton est initié après un calcul d’anneau, il
           contient :
                   Le prochain numéro de transaction à attribuer
                   Le prochain numéro de document à attribuer
          Lorsqu’une  agence souhaite effectuer une
           transaction :
                   Elle attend le jeton
                   Elle récupère le numéro de transaction dans le jeton
                   Elle l’incrémente de 1 avant de le renvoyer
          De   même pour un numéro de document

Référ.     Anneau Virt.       Jeton     Transac.     Documents      Déconnexions
Jeton d’élection (exemple)
 17
        Demande de n° de document
           n° document 2 attribué
                                    3
                                    3
                                                  Initialisation du
                                                  jeton
                                                   1
                                                   1




n° transaction 2
Demande de n°           3
attribué
de transaction          2

n° document n°
Demande de 1
attribué
de document
                                        2
                                        1


                                            n° transaction 1 de
                                            Demande de n° attribué
                                            transaction
Transactions
18


    Mise en place d’un algorithme pour les
     transactions
          Sans famine
          Sans interblocage
          Optimal



    Chaque transaction est identifiée par un numéro
     unique
          Ordre FIFO des transactions
          Entrelacement des transactions qui ne sont pas en conflits



Référ.      Anneau Virt.   Jeton   Transac.   Documents     Déconnexions
Transactions (détail de
19
         l’algorithme)

    Lorsque le message revient à la son agence
     Le client envoie la transaction à source, celle-ci fait les
     mêmes tests localement.
    L’agence acquitte la demande de transaction
    Une fois que la transaction a été autorisée, l’agence
    L’agence récupère un numéro de transaction (unique)
     émet la réponse au client
    Elle ajoute la transaction à sa liste FIFO de transactions
     connues et se déclare comme source de celle-ci
    Elle démarre le parcours d’un message afin que chaque
     agence prenne connaissance de la transaction et des
     documents concernés par cette transaction (documents
     locaux)
    Lorsque ce message lui est retourné, elle prend elle-
     même connaissance de ses documents concernés par la                        OkFindConsult
                                                                                AskFindConsul
                                                                                er
                                                                                ter
     recherche
    L’agence initie un message de récupération des                            RepFind
     documents et l’envoie à l’agence suivante                                           AskFindConsulter
                                                                               AckFind
        Dans le cas où une transaction inférieure n’est pas encore
         connue, on met en attente passive.
        Si toutes les transactions inférieures sont connues et traitées, on
         l’autorise
        Si toutes les transactions inférieures sont connues et non traitées
Répartition de documents
20


    Un thread sur l’annuaire vérifie périodiquement le nombre de
     documents possédés par chaque agence (à partir des données
     collectées par les mises à jour des agences)


    Si pour une agence, le nombre de documents est supérieur à la
     moyenne des documents plus un seuil
                                     OU
    Si pour une agence, le nombre de documents est inférieur à la
     moyenne des documents moins un seuil


    Alors une répartition de documents est initiée




Référ.      Anneau Virt.    Jeton      Transac.       Documents   Déconnexions
Répartition de documents (2)
21


    L’annuaire calcule une répartitionreçoit un message
     Lorsqu’une agence (non source)
     Repartir entière de (nb Documents/nb Agences)
      Partie
                                                                                                          6
                                                                           6 docs
                                                                           2                             15 docs
         Envoie à l’agence cette répartition
          Si nombre de documents >= répartition
         Recalculeretire les documents en trop et suivante en au
              On cette répartition pour l’agence on les ajoute              6                            6
          décrémentant nb Documents de la valeur que l’on
                 message                                                Ok_Repartitio
                                                                          Repartir[true]       Repartir[true;9doc
      
          vient d’émettredocuments < répartition
           Si nombre de et nb Agences de 1.                             n                      s]
        Ceci jusqu’à la dernière agence dans le message jusqu’à
            On récupère les documents

    L’annuaire envoie un message « Repartir » ai plus de
                ce que la répartition soit bonne ou qu’il n’y à la
                documents
     première agence (arbitraire)                                                      Repartir
                                                                                      Repartition(7)
                                                                                      Repartition(6)
               Alors, si la répartition n’est toujours pas bonne, on
    Sur   l’agencele booléen du on crée un message
                met désignée, message à faux
     vide envoie le message au suivant
      On
         Si nombre de documents >= répartition
    Lorsqu’une agence (source) reçoit un message
    Repartir On retire les documents en trop et on les ajoute au
         
             message
      Elle vérifie debooléen dans le message
      Si nombre le documents < répartition
      
                                                                                           7
   Si le booléen rien à false, l’agence se comporte comme les
        On ne fait est
                                                                                    Repartir[true;4dco
      autres et réémet le message avec vrai en paramètre                            s]
   Ensuite on envoie le message.
   Si le booléen est à vrai, elle vérifie sa propre répartion, si
                                                                                       7
                                                                                       2 docs
        On met un booléen à vrai dans le message . (Ce
      elle est bonne, la répartition est alors terminée, l’agence
          booléen sert à vérifier si la répartition est faite sur
      envoie un message « Ok_Repartition » sur l’anneau et
          chaque agence)
Référ.libère les Anneau Virt.
                 documents                  Jeton            Transac.         Documents            Déconnexions
Déconnexions par l’utilisateur
22


          Sur   l’annuaire :
            On avertit les agences qui préviennent leurs clients
            On coupe toutes les transactions

          Sur   l’agence :
            On avertit l’annuaire
            On arrête les transactions en cours
            On prévient les clients connectés sur l’agence

          Sur   un client:
            On   avertit l’agence



Référ.     Anneau Virt.    Jeton     Transac.   Documents     Déconnexions
Déconnexions brutales
23

            D’un annuaire:
                L’agence détecte la coupure et prévient ses clients
                Chaque agence libère également tous ces documents

            D’une agence :
                L’annuaire détecte la coupure
                Les clients connectés détectent également la coupure
                Annulation de toutes les transactions en cours
                Nouveau calcul d’anneau

            D’un client :
                Son agence détecte la coupure de la connexion
                On libère les documents que détenait ce client



Référ.       Anneau Virt.      Jeton     Transac.    Documents      Déconnexions
Libération de documents
24


        Implémenté par un TIMER sur le client :
          Lors   d’un timeout:
            Fermeture  des fenêtres liées à cette transaction
            Envoi d’un message de libération de document à
             l’agence


        Lors de la déconnexion d’un client :
          L’agence   garde en mémoire les documents
          réservés par ce client, et se charge elle-même
          d’initier le message de libération

Référ.     Anneau Virt.   Jeton   Transac.    Documents    Déconnexions
25   Gestion de projet
Tests & Validations
26


        Tests en déroulement normal

        Tests de scalabilité

        Tests des exceptions

        Correction de bugs
Livrables
27


        Documentation utilisateur pour :
          L’annuaire
          Les agences
          Les clients



        Documentation sur la mise en œuvre des
         algorithmes

        Documentation technique avec Doxygen pour
         chaque application
Difficultés & Problèmes
28


        Langage C/C++

        Graphisme

        Netbeans avec SVN

        Montées en charge
          Mauvaise   implémentation des Sockets
29   Démonstrations
30   Questions …

Weitere ähnliche Inhalte

Andere mochten auch

Quoi de neuf en bibliothèque universitaire ? Trame d'animation
Quoi de neuf en bibliothèque universitaire ? Trame d'animationQuoi de neuf en bibliothèque universitaire ? Trame d'animation
Quoi de neuf en bibliothèque universitaire ? Trame d'animationNathalie Clot
 
Bibliothèque nationale d’algérie
Bibliothèque nationale d’algérieBibliothèque nationale d’algérie
Bibliothèque nationale d’algérieHiba Architecte
 
Les bibliothèques et les métiers : Essai de rétroprospective
Les bibliothèques et les métiers : Essai de rétroprospectiveLes bibliothèques et les métiers : Essai de rétroprospective
Les bibliothèques et les métiers : Essai de rétroprospectiveDominique Lahary
 
Signalétique Biblliothèque Universitaire d'Angers BUA
Signalétique Biblliothèque Universitaire d'Angers BUASignalétique Biblliothèque Universitaire d'Angers BUA
Signalétique Biblliothèque Universitaire d'Angers BUANathalie Clot
 
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliothequeEcole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliothequeMehdi Hamime
 
L'innovation en bibliothèque universitaire
L'innovation en bibliothèque universitaireL'innovation en bibliothèque universitaire
L'innovation en bibliothèque universitaireOlivier Tacheau
 
BAC Library Building Program
BAC Library Building ProgramBAC Library Building Program
BAC Library Building Programjeffreyestes
 
Draft 5-10-10 No blank pages
Draft 5-10-10  No blank pagesDraft 5-10-10  No blank pages
Draft 5-10-10 No blank pagesjeffreyestes
 
La bibliothèque, un espace de participation - v.2
La bibliothèque, un espace de participation - v.2La bibliothèque, un espace de participation - v.2
La bibliothèque, un espace de participation - v.2Dujol Lionel
 
Atelier 3 la bibliothèque du rève à la réalité part2
Atelier 3 la bibliothèque du rève à la réalité part2Atelier 3 la bibliothèque du rève à la réalité part2
Atelier 3 la bibliothèque du rève à la réalité part2mediathequepasdecalais
 
Atelier 3 la bibliothèque du rève à la réalité part1
Atelier 3 la bibliothèque du rève à la réalité part1Atelier 3 la bibliothèque du rève à la réalité part1
Atelier 3 la bibliothèque du rève à la réalité part1mediathequepasdecalais
 

Andere mochten auch (20)

Quoi de neuf en bibliothèque universitaire ? Trame d'animation
Quoi de neuf en bibliothèque universitaire ? Trame d'animationQuoi de neuf en bibliothèque universitaire ? Trame d'animation
Quoi de neuf en bibliothèque universitaire ? Trame d'animation
 
Bibliothèque nationale d’algérie
Bibliothèque nationale d’algérieBibliothèque nationale d’algérie
Bibliothèque nationale d’algérie
 
Les bibliothèques et les métiers : Essai de rétroprospective
Les bibliothèques et les métiers : Essai de rétroprospectiveLes bibliothèques et les métiers : Essai de rétroprospective
Les bibliothèques et les métiers : Essai de rétroprospective
 
Signalétique Biblliothèque Universitaire d'Angers BUA
Signalétique Biblliothèque Universitaire d'Angers BUASignalétique Biblliothèque Universitaire d'Angers BUA
Signalétique Biblliothèque Universitaire d'Angers BUA
 
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliothequeEcole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
 
L'innovation en bibliothèque universitaire
L'innovation en bibliothèque universitaireL'innovation en bibliothèque universitaire
L'innovation en bibliothèque universitaire
 
Bibliotheque
BibliothequeBibliotheque
Bibliotheque
 
2009plan de travail
2009plan de travail2009plan de travail
2009plan de travail
 
Analyse urbaine
Analyse urbaineAnalyse urbaine
Analyse urbaine
 
These
TheseThese
These
 
Louis i kahan
Louis i kahanLouis i kahan
Louis i kahan
 
Présentation de Silvère Mercier sur le nouveau projet Eurêkoi
Présentation de Silvère Mercier sur le nouveau projet EurêkoiPrésentation de Silvère Mercier sur le nouveau projet Eurêkoi
Présentation de Silvère Mercier sur le nouveau projet Eurêkoi
 
Presentation2
Presentation2Presentation2
Presentation2
 
BAC Library Building Program
BAC Library Building ProgramBAC Library Building Program
BAC Library Building Program
 
Draft 5-10-10 No blank pages
Draft 5-10-10  No blank pagesDraft 5-10-10  No blank pages
Draft 5-10-10 No blank pages
 
La bibliothèque, un espace de participation - v.2
La bibliothèque, un espace de participation - v.2La bibliothèque, un espace de participation - v.2
La bibliothèque, un espace de participation - v.2
 
Analyse contextuelle
Analyse contextuelleAnalyse contextuelle
Analyse contextuelle
 
Atelier 3 la bibliothèque du rève à la réalité part2
Atelier 3 la bibliothèque du rève à la réalité part2Atelier 3 la bibliothèque du rève à la réalité part2
Atelier 3 la bibliothèque du rève à la réalité part2
 
Atelier 3 la bibliothèque du rève à la réalité part1
Atelier 3 la bibliothèque du rève à la réalité part1Atelier 3 la bibliothèque du rève à la réalité part1
Atelier 3 la bibliothèque du rève à la réalité part1
 
Présentation de Mathilde Servet : le partenariat Bpi - Cité des métiers
Présentation de Mathilde Servet : le partenariat Bpi - Cité des métiers Présentation de Mathilde Servet : le partenariat Bpi - Cité des métiers
Présentation de Mathilde Servet : le partenariat Bpi - Cité des métiers
 

Ähnlich wie Bibliothèque distribuée

Spee Demo Heo
Spee Demo HeoSpee Demo Heo
Spee Demo Heohmeilhac
 
L'avénement de la signature électronique en 2014
L'avénement de la signature électronique    en 2014L'avénement de la signature électronique    en 2014
L'avénement de la signature électronique en 2014Alice and Bob
 
Cours Transactions distribuées
Cours Transactions distribuéesCours Transactions distribuées
Cours Transactions distribuéesVincent Englebert
 
La Duck Conf - Qui maîtrise le mieux le chaos de votre SI ? Mozart ou Béjart ?
La Duck Conf - Qui maîtrise le mieux le chaos de votre SI ? Mozart ou Béjart ? La Duck Conf - Qui maîtrise le mieux le chaos de votre SI ? Mozart ou Béjart ?
La Duck Conf - Qui maîtrise le mieux le chaos de votre SI ? Mozart ou Béjart ? OCTO Technology
 
Bitcoin: A Peer-to-Peer Electronic Cash System (traduction fr)
Bitcoin: A Peer-to-Peer Electronic Cash System (traduction fr)Bitcoin: A Peer-to-Peer Electronic Cash System (traduction fr)
Bitcoin: A Peer-to-Peer Electronic Cash System (traduction fr)Nabil Bouzerna
 
Decouvrez le SSL
Decouvrez le SSLDecouvrez le SSL
Decouvrez le SSLKeynectis
 
Les mécanismes de base du procotole IP
Les mécanismes de base du procotole IPLes mécanismes de base du procotole IP
Les mécanismes de base du procotole IPPascal GUENOT
 
L\'authentification forte : Concept et Technologies
L\'authentification forte : Concept et TechnologiesL\'authentification forte : Concept et Technologies
L\'authentification forte : Concept et TechnologiesIbrahima FALL
 
E-commerce Use case NFE102
E-commerce Use case NFE102E-commerce Use case NFE102
E-commerce Use case NFE102MRamo2s
 
Electronic TradeGate Funds ® | ETF Tunis
Electronic TradeGate Funds ® | ETF TunisElectronic TradeGate Funds ® | ETF Tunis
Electronic TradeGate Funds ® | ETF TunisHatem Chanoufi
 
La signature numérique
La signature numériqueLa signature numérique
La signature numériqueBruno Bonfils
 
Lancement Sage100 Scanfact
Lancement Sage100 ScanfactLancement Sage100 Scanfact
Lancement Sage100 ScanfactF S
 
Comité fonctionnel et technique présententation publique xft démat des factur...
Comité fonctionnel et technique présententation publique xft démat des factur...Comité fonctionnel et technique présententation publique xft démat des factur...
Comité fonctionnel et technique présententation publique xft démat des factur...eXchange For Travel (XFT)
 
Présentation Universign Documation 2011
Présentation Universign Documation 2011Présentation Universign Documation 2011
Présentation Universign Documation 2011Universign
 

Ähnlich wie Bibliothèque distribuée (16)

Spee Demo Heo
Spee Demo HeoSpee Demo Heo
Spee Demo Heo
 
L'avénement de la signature électronique en 2014
L'avénement de la signature électronique    en 2014L'avénement de la signature électronique    en 2014
L'avénement de la signature électronique en 2014
 
Cours Transactions distribuées
Cours Transactions distribuéesCours Transactions distribuées
Cours Transactions distribuées
 
La Duck Conf - Qui maîtrise le mieux le chaos de votre SI ? Mozart ou Béjart ?
La Duck Conf - Qui maîtrise le mieux le chaos de votre SI ? Mozart ou Béjart ? La Duck Conf - Qui maîtrise le mieux le chaos de votre SI ? Mozart ou Béjart ?
La Duck Conf - Qui maîtrise le mieux le chaos de votre SI ? Mozart ou Béjart ?
 
Bitcoin: A Peer-to-Peer Electronic Cash System (traduction fr)
Bitcoin: A Peer-to-Peer Electronic Cash System (traduction fr)Bitcoin: A Peer-to-Peer Electronic Cash System (traduction fr)
Bitcoin: A Peer-to-Peer Electronic Cash System (traduction fr)
 
Decouvrez le SSL
Decouvrez le SSLDecouvrez le SSL
Decouvrez le SSL
 
Les mécanismes de base du procotole IP
Les mécanismes de base du procotole IPLes mécanismes de base du procotole IP
Les mécanismes de base du procotole IP
 
L\'authentification forte : Concept et Technologies
L\'authentification forte : Concept et TechnologiesL\'authentification forte : Concept et Technologies
L\'authentification forte : Concept et Technologies
 
E-commerce Use case NFE102
E-commerce Use case NFE102E-commerce Use case NFE102
E-commerce Use case NFE102
 
Daf magazine.ashx
Daf magazine.ashxDaf magazine.ashx
Daf magazine.ashx
 
Le connecteur Chorus Portail Pro / Alfresco
Le connecteur Chorus Portail Pro / AlfrescoLe connecteur Chorus Portail Pro / Alfresco
Le connecteur Chorus Portail Pro / Alfresco
 
Electronic TradeGate Funds ® | ETF Tunis
Electronic TradeGate Funds ® | ETF TunisElectronic TradeGate Funds ® | ETF Tunis
Electronic TradeGate Funds ® | ETF Tunis
 
La signature numérique
La signature numériqueLa signature numérique
La signature numérique
 
Lancement Sage100 Scanfact
Lancement Sage100 ScanfactLancement Sage100 Scanfact
Lancement Sage100 Scanfact
 
Comité fonctionnel et technique présententation publique xft démat des factur...
Comité fonctionnel et technique présententation publique xft démat des factur...Comité fonctionnel et technique présententation publique xft démat des factur...
Comité fonctionnel et technique présententation publique xft démat des factur...
 
Présentation Universign Documation 2011
Présentation Universign Documation 2011Présentation Universign Documation 2011
Présentation Universign Documation 2011
 

Bibliothèque distribuée

  • 1. CPPTeam PROJET BIBLIOTHEQUE DISTRIBUÉE 29/05/2009 LAPAUZE-NOIROT-TRONC-VEY
  • 2. Introduction 2  Mise en place d’une bibliothèque distribuée  Gérer des documents électroniques  Centraliser virtuellement les bases de données  Mise en place d’un annuaire  Répartir la charge de travail entre agences  Répartir les documents électroniques
  • 3. Sommaire 3  Organisation  Politiques  Choix des technologies  Accès aux documents  Changement de topologie  Algorithmes  Algorithmes de référencement  Mise en place de la topologie d’anneau virtuel  Jeton d’élection  Algorithme des transactions  Répartition des documents  Libération de documents  Algorithme de déconnexion  Tests & Validation  Livrables
  • 5. 5 Politiques
  • 6. Choix des technologies 6  Langage C/C++  Communication par Socket TCP Technologies Accès aux documents Changement de topologie
  • 7. Accès aux documents 7  Lecteurs/Rédacteurs :  Sémaphore commune à toutes les transactions : FIFO  Sémaphore de protection d’écriture  Compteur du nombre de lecteur (consultation)  Plusieurs consultations en simultané sur les mêmes documents  Retrait possible si aucune consultation  Booléen de contrôle de retrait confirmé Technologies Accès aux documents Changement de topologie
  • 8. Changement de topologie 8  S’il y a des changements de topologie, les transactions en cours sont annulées  Si une agence se déconnecte, alors tous les clients connectées à elles le sont également  Si l’annuaire se déconnecte, alors toutes les agences sont déconnectées Technologies Accès aux documents Changement de topologie
  • 9. 9 Algorithmes
  • 10. Algorithmes de référencement 10  Référencement des agences 1 : Connexion à la socket d’écoute de l’annuaire 2 : Envoi de « Agence_Connexion » 3 : L’annuaire vérifie si la connexion est possible 4 : Dès que la connexion est autorisée, envoi de «5 : L’agence s’enregistre avec ses services auprès de Accept_Connexion » l’annuaire Agence_Connexion Accept_Connexion Enregistrement a 6 : L’agence envoie périodiquement le nombre de clients connectés ainsi que le nombre de documents possédés Référ. Anneau Virt. Jeton Transac. Documents Déconnexions
  • 11. Algorithmes de référencement 11 (2)  Référencement des clients 1 : Connexion à la socket d’écoute de l’annuaire 2 : Envoi de « Client_Connexion » 3 : L’annuaire vérifie si la connexion est possible 4 : Dès que la connexion est autorisée, envoi de «5 : Le client demande une agence offrant les services Accept_Connexion » 6 : L’annuaire repond Ok_c si une agence correpond, No_c recherchés sinon Client_Connexion Accept_Connexion Enregistrement_c Ok_c (Adresse Agence) / No_c Référ. Anneau Virt. Jeton Transac. Documents Déconnexions
  • 12. Algorithmes de référencement 12 (3)  Avantages du référencement :  Connaissance des services de chaque agence  Répartition des clients sur l’ensemble des agences Référ. Anneau Virt. Jeton Transac. Documents Déconnexions
  • 13. Calcul de l’anneau virtuel 13  Anneau virtuel initialisé lors de la :  Connexion d’une nouvelle agence  Déconnexion d’une agence existante  Perte de connexion avec une agence existante  Procédure :  L’annuaire calcule un anneau virtuel à partir de la liste des agences connectées  Il envoie un message pour signifier aux agences de se mettre en écoute de leur agence précédente sur un port spécifié  Il attend les acquittements  Si tous les acquittements sont reçus dans les délais  Alors envoi d’un message de connection au suivant sur une adresse et un port donné  Sinon, envoi d’un message d’annulation de calcul d’anneau Référ. Anneau Virt. Jeton Transac. Documents Déconnexions
  • 14. Calcul de l’anneau virtuel (vue globale) 14 … 1 : Envoi : Ecoute(Port 1 Ecoute) 2 : Acquittement de mise en écoute 2 2 2 3 : Envoi : ConnexionAuSuivant(Addr:Port) 3 Référ. Anneau Virt. Jeton Transac. Documents Déconnexions
  • 15. Calcul de l’anneau virtuel (3) 15  Le calcul d’un anneau est précédé dans tous les cas par :  une réservation de tous les documents par l’annuaire  un arrêt des transactions en cours Référ. Anneau Virt. Jeton Transac. Documents Déconnexions
  • 16. Jeton d’élection 16  Afin de faciliter les transactions  Un jeton est initié après un calcul d’anneau, il contient :  Le prochain numéro de transaction à attribuer  Le prochain numéro de document à attribuer  Lorsqu’une agence souhaite effectuer une transaction :  Elle attend le jeton  Elle récupère le numéro de transaction dans le jeton  Elle l’incrémente de 1 avant de le renvoyer  De même pour un numéro de document Référ. Anneau Virt. Jeton Transac. Documents Déconnexions
  • 17. Jeton d’élection (exemple) 17 Demande de n° de document n° document 2 attribué 3 3 Initialisation du jeton 1 1 n° transaction 2 Demande de n° 3 attribué de transaction 2 n° document n° Demande de 1 attribué de document 2 1 n° transaction 1 de Demande de n° attribué transaction
  • 18. Transactions 18  Mise en place d’un algorithme pour les transactions  Sans famine  Sans interblocage  Optimal  Chaque transaction est identifiée par un numéro unique  Ordre FIFO des transactions  Entrelacement des transactions qui ne sont pas en conflits Référ. Anneau Virt. Jeton Transac. Documents Déconnexions
  • 19. Transactions (détail de 19 l’algorithme)   Lorsque le message revient à la son agence Le client envoie la transaction à source, celle-ci fait les mêmes tests localement.  L’agence acquitte la demande de transaction  Une fois que la transaction a été autorisée, l’agence  L’agence récupère un numéro de transaction (unique) émet la réponse au client  Elle ajoute la transaction à sa liste FIFO de transactions connues et se déclare comme source de celle-ci  Elle démarre le parcours d’un message afin que chaque agence prenne connaissance de la transaction et des documents concernés par cette transaction (documents locaux)  Lorsque ce message lui est retourné, elle prend elle- même connaissance de ses documents concernés par la OkFindConsult AskFindConsul er ter recherche  L’agence initie un message de récupération des RepFind documents et l’envoie à l’agence suivante AskFindConsulter AckFind  Dans le cas où une transaction inférieure n’est pas encore connue, on met en attente passive.  Si toutes les transactions inférieures sont connues et traitées, on l’autorise  Si toutes les transactions inférieures sont connues et non traitées
  • 20. Répartition de documents 20  Un thread sur l’annuaire vérifie périodiquement le nombre de documents possédés par chaque agence (à partir des données collectées par les mises à jour des agences)  Si pour une agence, le nombre de documents est supérieur à la moyenne des documents plus un seuil OU  Si pour une agence, le nombre de documents est inférieur à la moyenne des documents moins un seuil  Alors une répartition de documents est initiée Référ. Anneau Virt. Jeton Transac. Documents Déconnexions
  • 21. Répartition de documents (2) 21   L’annuaire calcule une répartitionreçoit un message Lorsqu’une agence (non source) Repartir entière de (nb Documents/nb Agences)  Partie 6 6 docs 2 15 docs  Envoie à l’agence cette répartition Si nombre de documents >= répartition  Recalculeretire les documents en trop et suivante en au  On cette répartition pour l’agence on les ajoute 6 6 décrémentant nb Documents de la valeur que l’on message Ok_Repartitio Repartir[true] Repartir[true;9doc  vient d’émettredocuments < répartition Si nombre de et nb Agences de 1. n s]  Ceci jusqu’à la dernière agence dans le message jusqu’à  On récupère les documents  L’annuaire envoie un message « Repartir » ai plus de ce que la répartition soit bonne ou qu’il n’y à la documents première agence (arbitraire) Repartir Repartition(7) Repartition(6)  Alors, si la répartition n’est toujours pas bonne, on  Sur l’agencele booléen du on crée un message met désignée, message à faux vide envoie le message au suivant  On  Si nombre de documents >= répartition  Lorsqu’une agence (source) reçoit un message Repartir On retire les documents en trop et on les ajoute au  message Elle vérifie debooléen dans le message Si nombre le documents < répartition   7  Si le booléen rien à false, l’agence se comporte comme les  On ne fait est Repartir[true;4dco autres et réémet le message avec vrai en paramètre s]  Ensuite on envoie le message.  Si le booléen est à vrai, elle vérifie sa propre répartion, si 7 2 docs  On met un booléen à vrai dans le message . (Ce elle est bonne, la répartition est alors terminée, l’agence booléen sert à vérifier si la répartition est faite sur envoie un message « Ok_Repartition » sur l’anneau et chaque agence) Référ.libère les Anneau Virt. documents Jeton Transac. Documents Déconnexions
  • 22. Déconnexions par l’utilisateur 22  Sur l’annuaire :  On avertit les agences qui préviennent leurs clients  On coupe toutes les transactions  Sur l’agence :  On avertit l’annuaire  On arrête les transactions en cours  On prévient les clients connectés sur l’agence  Sur un client:  On avertit l’agence Référ. Anneau Virt. Jeton Transac. Documents Déconnexions
  • 23. Déconnexions brutales 23  D’un annuaire:  L’agence détecte la coupure et prévient ses clients  Chaque agence libère également tous ces documents  D’une agence :  L’annuaire détecte la coupure  Les clients connectés détectent également la coupure  Annulation de toutes les transactions en cours  Nouveau calcul d’anneau  D’un client :  Son agence détecte la coupure de la connexion  On libère les documents que détenait ce client Référ. Anneau Virt. Jeton Transac. Documents Déconnexions
  • 24. Libération de documents 24  Implémenté par un TIMER sur le client :  Lors d’un timeout:  Fermeture des fenêtres liées à cette transaction  Envoi d’un message de libération de document à l’agence  Lors de la déconnexion d’un client :  L’agence garde en mémoire les documents réservés par ce client, et se charge elle-même d’initier le message de libération Référ. Anneau Virt. Jeton Transac. Documents Déconnexions
  • 25. 25 Gestion de projet
  • 26. Tests & Validations 26  Tests en déroulement normal  Tests de scalabilité  Tests des exceptions  Correction de bugs
  • 27. Livrables 27  Documentation utilisateur pour :  L’annuaire  Les agences  Les clients  Documentation sur la mise en œuvre des algorithmes  Documentation technique avec Doxygen pour chaque application
  • 28. Difficultés & Problèmes 28  Langage C/C++  Graphisme  Netbeans avec SVN  Montées en charge  Mauvaise implémentation des Sockets
  • 29. 29 Démonstrations
  • 30. 30 Questions …