1 / 27

Projet Système

Projet Système. Gestion de bases de données réparties. LALUQUE Florian PERS Cyril ROSE Aurélien SAUJOT Steeven. Plan. Sujet Choix techniques Format des messages et donnée Connexion des serveurs Répartition Client Superviseur Conclusion Démo. Sujet.

devona
Download Presentation

Projet Système

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 • XMLHTTPRequestpour 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(newHashMap<String,Object>(){{ put("connect",port);}}); Message.envoyer_message(outcli, nouveau_message); • Reception: Message message = null; message=(Message)getP().jsonToJava(input); Stringinput = in.nextLine(); Sujet Choix techniques Format des messages et donnée Connexion des serveurs Répartition Client Superviseur Conclusion Démo

  8. {‘’Connect’’ :S3} S2 : Serveur S1 : Serveur Connexion des serveurs S2 : Client S1 : Client {‘’Jesuis’’: S1} S3 : Client S3 : Serveur • Utilisation d’un serveurs.properties pour qu’un nouveau serveur est connaissance des serveurs potentiels du réseau Serveur hors-ligne • 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 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 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 Serveur 1 BD.size()=15 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 Serveur 1 BD.size()=15 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> Serveur 3 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 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 3 Serveur 2 Serveur 1 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 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 Sujet Choix techniques Connexion des serveurs Répartition Client Superviseur Conclusion Démo

  18. Client Ajouter une donnée : JavaScript xhr.open(url) Serveur.java url.contains(HTTP) ClientWebAction.java url.contains(SELECT) 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 xhr.open(url) Serveur.java url.contains(HTTP) ClientWebAction.java url.contains(SELECT) serv.GetDonnee(id) JavaScript Sujet Choix techniques Connexion des serveurs Répartition Client Superviseur Conclusion Démo responText

  20. Client Supprimer une donnée : JavaScript xhr.open(url) Serveur.java url.contains(HTTP) ClientWebAction.java url.contains(SELECT) serv.SupDonnee(id) 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. {getIDFromSupervisor :1} Superviseur SERVEUR S1 (donnée : id = 1) ClientAction SUPERVISEUR • Recherche de la donnée contenant l’id 1 {rep_getID: donnée: id=1} INTERFACE SERVEUR S2 (donnée : id = 2) ClientAction RECEPTION S2 {rep_getID:not_exist} Recherche de la donnée 1 RECEPTION S1 {getIDFromSupervisor :1} 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 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 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 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

More Related