27
Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

Embed Size (px)

Citation preview

Page 1: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

Projet SystèmeGestion de bases de données réparties

LALUQUE FlorianPERS CyrilROSE AurélienSAUJOT Steeven

Page 2: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

PlanSujet

Choix techniques

Format des messages et donnée

Connexion des serveurs

Répartition

Client

Superviseur

Conclusion

Démo

Page 3: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesFormat des messages et donnéeConnexion des serveursRépartitionClientSuperviseurConclusionDémo

Sujet

Base de données répartie tolérante aux pannes

Page 4: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesFormat des messages et donnéeConnexion des serveursRépartitionClientSuperviseurConclusionDémo

Choix techniques• Utilisation des sockets

• Utilisation des sémaphores

• Election d’un serveur-maitre

• XMLHTTPRequest pour requêtes client et superviseur

• Utilisation de JSON pour les messages

Page 5: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesFormat des messages et donnéeConnexion des serveursRépartitionClientSuperviseurConclusionDémo

Donnée

Page 6: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesFormat des messages et donnéeConnexion des serveursRépartitionClientSuperviseurConclusionDémo

Les messages• Une classe message contenant une map de string,

object

• Une méthode statique pour envoyer les messages

Page 7: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesFormat des messages et donnéeConnexion des serveursRépartitionClientSuperviseurConclusionDémo

Format des messages• Envoie du message connect d’un serveurs à un

autre:

• Emission:Message nouveau_message=new Message(new

HashMap<String,Object>()

{{ put("connect",port);}});

Message message = null;

message=(Message)getP().jsonToJava(input);

• Reception:

Message.envoyer_message(outcli, nouveau_message);

String input = in.nextLine();

Page 8: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesFormat des messages et donnéeConnexion des serveursRépartitionClientSuperviseurConclusionDémo

Connexion des serveurs• Utilisation d’un serveurs.properties pour qu’un

nouveau serveur est connaissance des serveurs potentiels du réseau

S3 : Serveur

S3 : Client

S2 : Serveur

S2 : Client

S1 : Serveur

S1 : Client

Serveur hors-ligne

{‘’Connect’’ :S3

}{‘’Jesuis’’:

S1}

• Un serveur possède :• Un thread principal• Autant de threads ( ServeurAction ) qu’il y’a

d’autres serveurs sur le réseau

Page 9: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesFormat des messages et donnéeConnexion des serveursRépartitionClientSuperviseurConclusionDémo

Répartition

• Evènements déclencheurs

• Etapes de la répartition

Page 10: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesFormat des messages et donnéeConnexion des serveursRépartitionClientSuperviseurConclusionDémo

Répartition

Evènements déclencheurs :

• Ajout d’une donnée

• Nouveau serveur sur le réseau

• Crash d’un serveur

Page 11: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesFormat des messages et donnéeConnexion des serveursRépartitionClientSuperviseurConclusionDémo

RépartitionElection d’un serveur-maitre

Serveur 1BD.size()=15

Serveur 2BD.size()=16

Serveur 3BD.size()=4

Page 12: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesFormat des messages et donnéeConnexion des serveursRépartitionClientSuperviseurConclusionDémo

RépartitionElection d’un serveur-maitre

Serveur 1BD.size()=15

Serveur 2BD.size()=16

Serveur 3BD.size()=4

Page 13: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniques*Format des messages et donnéeConnexion des serveursRépartitionClientSuperviseurConclusionDémo

RépartitionEnvoi de la table d’ID

Serveur 2

Serveur 3

ArrayList<1,3,4>

Page 14: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesFormat des messages et donnéeConnexion des serveursRépartitionClientSuperviseurConclusionDémo

RépartitionCréation d’une table d’occurrence

ID Serveur possédant la donnée

1 S1,S2,S3

2 S1

3 S2,S3

Page 15: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesFormat des messages et donnéeConnexion des serveursRépartitionClientSuperviseurConclusionDémo

RépartitionLecture de la table et envoi des

instructions

TableEnvoi<Id,Serveur recepteur>Serveur 1 Serveur 2 Serveur 3

ID Recept

1 Serveur 2

3 Serveur 3

ID Recept

2 Serveur 1

ID Recept

1 Serveur 1

2 Serveur 1

Page 16: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesFormat des messages et donnéeConnexion des serveursRépartitionClientSuperviseurConclusionDémo

RépartitionEchange des données

Serveur 1

Serveur 2

Serveur 3

Page 17: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesConnexion des serveursRépartitionClientSuperviseurConclusionDémo

Client

Les actions du clients :

• Ajouter une donnée• Sélectionner une donnée• Supprimer une donnée

Page 18: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesConnexion des serveursRépartitionClientSuperviseurConclusionDémo

ClientAjouter une donnée : JavaScript

Serveur.java

ClientWebAction.java

xhr.open(url)

url.contains(HTTP)

serv.AjouterDonnee()

JavaScript

responText

url.contains(SELECT)

Page 19: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesConnexion des serveursRépartitionClientSuperviseurConclusionDémo

ClientSélectionner une donnée : JavaScript

Serveur.java

ClientWebAction.java

xhr.open(url)

url.contains(HTTP)

serv.GetDonnee(id)

JavaScript

responText

url.contains(SELECT)

Page 20: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesConnexion des serveursRépartitionClientSuperviseurConclusionDémo

ClientSupprimer une donnée : JavaScript

Serveur.java

ClientWebAction.java

xhr.open(url)

url.contains(HTTP)

serv.SupDonnee(id)

JavaScript

responText

url.contains(SELECT)

Page 21: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesFormat des messages et donnéeConnexion des serveursRépartitionClientSuperviseurConclusionDémo

Superviseur

• Connecter aux autres serveurs uniquement lorsqu’il y’a une requête

• Connaitre l’état des serveurs

• Voir la répartition sur les serveurs

Page 22: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesFormat des messages et donnéeConnexion des serveursRépartitionClientSuperviseurConclusionDémo

Superviseur

SUPERVISEUR

RECEPTION S2

INTERFACE

SERVEUR S1(donnée : id = 1)

ClientAction

SERVEUR S2(donnée : id = 2)

ClientAction

{rep_getID: donnée: id=1}

{rep_getID: not_exist}

{getIDFromSupervisor :1}

{getIDFromSupervisor :1}

Recherche de la donnée 1

RECEPTION S1

• Recherche de la donnée contenant l’id 1

Page 23: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesConnexion des serveursRépartitionClientSuperviseurConclusionDémo

Superviseur Web• Connaitre l’état des serveurs

JavaScriptxhr.open(url, true)

Pour tous les serveurs

Si xhr.status = 200Serveur OK

Sinon Serveur Hors-ligne

=asynchrone

Page 24: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesConnexion des serveursRépartitionClientSuperviseurConclusionDémo

Superviseur Web• Voir la répartition sur les serveurs

Pour tous les serveurs

xhr.open(url, true)

Serveur.java

SuperviseurWebAction.java

url.contains(HTTP)

serv.getBaseDonnee(id)url.contains(LISTE)

JavaScript

responText

Page 25: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesConnexion des serveursRépartitionClientSuperviseurConclusionDémo

Superviseur Web• Voir la répartition sur les serveurs

Pour tous les serveurs

xhr.open(url, true)

Serveur.java

SuperviseurWebAction.java

url.contains(HTTP)

serv.getBaseDonnee(id)url.contains(LISTE)

JavaScript

responText

Page 26: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

SujetChoix techniquesFormat des messages et donnéeConnexion des serveursRépartitionClientSuperviseurConclusionDémo

Conclusion

Le projet nous a permis :

• D’approfondir nos connaissances en java• D’utiliser les sockets• De gérer des accès concurrents

Page 27: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven

Démo