Los componentes del grupo Javier: Martín: Steeven: Carolina: Logo Foto de grupo.
Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien...
-
Upload
brian-beaumont -
Category
Documents
-
view
118 -
download
0
Transcript of Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien...
![Page 1: Projet Système Gestion de bases de données réparties LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/1.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/2.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/3.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/4.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/5.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/6.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/7.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/8.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/9.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/10.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/11.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/12.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/13.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/14.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/15.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/16.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/17.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/18.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/19.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/20.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/21.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/22.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/23.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/24.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/25.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/26.jpg)
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.](https://reader033.fdocuments.net/reader033/viewer/2022051211/551d9dda497959293b8e7c25/html5/thumbnails/27.jpg)
Démo