La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Gestion de bases de données réparties

Présentations similaires


Présentation au sujet: "Gestion de bases de données réparties"— Transcription de la présentation:

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

2 Plan Sujet Choix techniques Format des messages et donnée
Connexion des serveurs Répartition Client Superviseur Conclusion Démo

3 Sujet Base de données répartie tolérante aux pannes Sujet
Choix techniques Format des messages et donnée Connexion des serveurs Répartition Client Superviseur Conclusion Démo

4 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 Sujet Choix techniques Format des messages et donnée Connexion des serveurs Répartition Client Superviseur Conclusion Démo

5 Donnée Sujet Choix techniques Format des messages et donnée
Connexion des serveurs Répartition Client Superviseur Conclusion Démo

6 Les messages Une classe message contenant une map de string, object
Une méthode statique pour envoyer les messages Sujet Choix techniques Format des messages et donnée Connexion des serveurs Répartition Client Superviseur Conclusion Démo

7 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.envoyer_message(outcli, nouveau_message); Reception: Message message = null; message=(Message)getP().jsonToJava(input); String input = in.nextLine(); Sujet Choix techniques Format des messages et donnée Connexion des serveurs Répartition Client Superviseur Conclusion Démo

8 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 Sujet Choix techniques Format des messages et donnée Connexion des serveurs Répartition Client Superviseur Conclusion Démo

9 Répartition Evènements déclencheurs Etapes de la répartition
Ajout d’une donnée sur l’un des serveurs Arrivée d’un serveur sur le réseau Crash d’un serveur Non-réponse à un ping Sujet Choix techniques Format des messages et donnée Connexion des serveurs Répartition Client Superviseur Conclusion Démo

10 Répartition Evènements déclencheurs : Ajout d’une donnée
Nouveau serveur sur le réseau Crash d’un serveur Evènements déclencheurs Ajout d’une donnée sur l’un des serveurs Arrivée d’un serveur sur le réseau Crash d’un serveur Non-réponse à un ping Sujet Choix techniques Format des messages et donnée Connexion des serveurs Répartition Client Superviseur Conclusion Démo

11 Répartition Election d’un serveur-maitre Serveur 2 BD.size()=16
Evènements déclencheurs Ajout d’une donnée sur l’un des serveurs Arrivée d’un serveur sur le réseau Crash d’un serveur Serveur 3 BD.size()=4 Sujet Choix techniques Format des messages et donnée Connexion des serveurs Répartition Client Superviseur Conclusion Démo

12 Répartition Election d’un serveur-maitre Serveur 2 BD.size()=16
Evènements déclencheurs Ajout d’une donnée sur l’un des serveurs Arrivée d’un serveur sur le réseau Crash d’un serveur Serveur 3 BD.size()=4 Sujet Choix techniques Format des messages et donnée Connexion des serveurs Répartition Client Superviseur Conclusion Démo

13 Répartition Envoi de la table d’ID Serveur 2 ArrayList<1,3,4>
Evènements déclencheurs Ajout d’une donnée sur l’un des serveurs Arrivée d’un serveur sur le réseau Crash d’un serveur Sujet Choix techniques* Format des messages et donnée Connexion des serveurs Répartition Client Superviseur Conclusion Démo

14 Répartition Création d’une table d’occurrence ID
Serveur possédant la donnée 1 S1,S2,S3 2 S1 3 S2,S3 Evènements déclencheurs Ajout d’une donnée sur l’un des serveurs Arrivée d’un serveur sur le réseau Crash d’un serveur Sujet Choix techniques Format des messages et donnée Connexion des serveurs Répartition Client Superviseur Conclusion Démo

15 Répartition Lecture 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 Seuil Tableau de charge Sujet Choix techniques Format des messages et donnée Connexion des serveurs Répartition Client Superviseur Conclusion Démo

16 Répartition Echange des données Serveur 2 Serveur 1 Serveur 3
Evènements déclencheurs Ajout d’une donnée sur l’un des serveurs Arrivée d’un serveur sur le réseau Crash d’un serveur Serveur 3 Sujet Choix techniques Format des messages et donnée Connexion des serveurs Répartition Client Superviseur Conclusion Démo

17 Client Les actions du clients : Ajouter une donnée
Sélectionner une donnée Supprimer une donnée Nos Choix : Le client se connecte au serveur le plus chargé Ajouter une donnée Création de la donnée Envoi au serveur sur lequel on est connecté Lancement d’une répartition Sélectionner une donnée Envoi l’Id a chercher au serveur sur lequel on est connecté Le serveur cherche sur sa base Le serveur envoi un par un la recherche à tous les autres serveurs Supprimer une donnée Envoi de l’Id a supprimer au serveur sur lequel on est connecté Le serveur supprime de sa base Le serveur envoi à tous les autres l’ordre de supprimer de leurs bases respectives Sujet Choix techniques Connexion des serveurs Répartition Client Superviseur Conclusion Démo

18 Client Ajouter une donnée : JavaScript Serveur.java
xhr.open(url) Serveur.java url.contains(HTTP) ClientWebAction.java url.contains(SELECT) Nos Choix : Le client se connecte au serveur le plus chargé Ajouter une donnée Création de la donnée Envoi au serveur sur lequel on est connecté Lancement d’une répartition Sélectionner une donnée Envoi l’Id a chercher au serveur sur lequel on est connecté Le serveur cherche sur sa base Le serveur envoi un par un la recherche à tous les autres serveurs Supprimer une donnée Envoi de l’Id a supprimer au serveur sur lequel on est connecté Le serveur supprime de sa base Le serveur envoi à tous les autres l’ordre de supprimer de leurs bases respectives serv.AjouterDonnee() JavaScript Sujet Choix techniques Connexion des serveurs Répartition Client Superviseur Conclusion Démo responText

19 Client Sélectionner une donnée : JavaScript Serveur.java
xhr.open(url) Serveur.java url.contains(HTTP) ClientWebAction.java url.contains(SELECT) serv.GetDonnee(id) Nos Choix : Le client se connecte au serveur le plus chargé Ajouter une donnée Création de la donnée Envoi au serveur sur lequel on est connecté Lancement d’une répartition Sélectionner une donnée Envoi l’Id a chercher au serveur sur lequel on est connecté Le serveur cherche sur sa base Le serveur envoi un par un la recherche à tous les autres serveurs Supprimer une donnée Envoi de l’Id a supprimer au serveur sur lequel on est connecté Le serveur supprime de sa base Le serveur envoi à tous les autres l’ordre de supprimer de leurs bases respectives JavaScript Sujet Choix techniques Connexion des serveurs Répartition Client Superviseur Conclusion Démo responText

20 Client Supprimer une donnée : JavaScript Serveur.java
xhr.open(url) Serveur.java url.contains(HTTP) ClientWebAction.java url.contains(SELECT) serv.SupDonnee(id) Nos Choix : Le client se connecte au serveur le plus chargé Ajouter une donnée Création de la donnée Envoi au serveur sur lequel on est connecté Lancement d’une répartition Sélectionner une donnée Envoi l’Id a chercher au serveur sur lequel on est connecté Le serveur cherche sur sa base Le serveur envoi un par un la recherche à tous les autres serveurs Supprimer une donnée Envoi de l’Id a supprimer au serveur sur lequel on est connecté Le serveur supprime de sa base Le serveur envoi à tous les autres l’ordre de supprimer de leurs bases respectives JavaScript Sujet Choix techniques Connexion des serveurs Répartition Client Superviseur Conclusion Démo responText

21 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 Sujet Choix techniques Format des messages et donnée Connexion des serveurs Répartition Client Superviseur Conclusion Démo

22 Superviseur Recherche de la donnée contenant l’id 1
RECEPTION S2 INTERFACE SERVEUR S1 (donnée : id = 1) ClientAction SERVEUR S2 (donnée : id = 2) {rep_getID: donnée: id=1} {rep_getID: not_exist} {getIDFromSupervisor :1} Recherche de la donnée 1 RECEPTION S1 Sujet Choix techniques Format des messages et donnée Connexion des serveurs Répartition Client Superviseur Conclusion Démo

23 Superviseur Web Connaitre l’état des serveurs JavaScript
Pour tous les serveurs JavaScript xhr.open(url, true) =asynchrone Si xhr.status = 200 Serveur OK Sinon Serveur Hors-ligne Sujet Choix techniques Connexion des serveurs Répartition Client Superviseur Conclusion Démo

24 Superviseur Web Voir la répartition sur les serveurs Serveur.java
Pour tous les serveurs xhr.open(url, true) Serveur.java url.contains(HTTP) SuperviseurWebAction.java url.contains(LISTE) serv.getBaseDonnee(id) Sujet Choix techniques Connexion des serveurs Répartition Client Superviseur Conclusion Démo JavaScript responText

25 Superviseur Web Voir la répartition sur les serveurs Serveur.java
Pour tous les serveurs xhr.open(url, true) Serveur.java url.contains(HTTP) SuperviseurWebAction.java url.contains(LISTE) serv.getBaseDonnee(id) Sujet Choix techniques Connexion des serveurs Répartition Client Superviseur Conclusion Démo JavaScript responText

26 Conclusion Le projet nous a permis :
D’approfondir nos connaissances en java D’utiliser les sockets De gérer des accès concurrents Sujet Choix techniques Format des messages et donnée Connexion des serveurs Répartition Client Superviseur Conclusion Démo

27 Démo


Télécharger ppt "Gestion de bases de données réparties"

Présentations similaires


Annonces Google