Gestion de bases de données réparties

Slides:



Advertisements
Présentations similaires
Systèmes d ’Information :
Advertisements

Chapitre 1 Introduction
Approfondissement du langage
Module 7 : Résolution de noms NetBIOS à l'aide du service WINS
Introduction aux IHM et à la réflexivité Java Vos premiers pas en Swing.
TP 3-4 BD21.
Formulaire HTML Introduction. Définition de formulaire.
Programmation Web : Protocole HTTP
Bases de données Objet singleton pour la connexion
Introduction aux Session Beans
Révision Avant lintra – Architecture de lordinateur, les composants, le fonctionnement, codage – Système dexploitation: organisation des données (fichier),
Dessin Vectoriel Collaboratif
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
Projet Génie Logiciel & UML, Bases de Données & Interfaces
Abderrahmane Bouarissa Damien Burglin Arnaud Sansig
Gestion d’un ensemble de bases documentaires
Jeudi 16 février I Le but du projet II Les choix effectués III Les premiers résultats.
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
Détection de défaillances pour les grilles
PROJET DE GENIE LOGICIEL 2005
AJAX.
Synchronisation Classique
Ipchains TP 1 TP 2 TP 3 Installer un serveur web sur votre poste,
Introduction aux technologies AJAX Ajax François BONNEVILLE
-Présentation de l’équipe -Cadre du projet -Enjeux -Choix du sujet.
Bienvenue sur CAUTIONET l'outil On Line de gestion de caution
PHP & My SQL.
GROUPE BTS IRIS 2 Informatique et Réseaux pour l’industrie et les Services techniques E-6 PROJET INFORMATIQUE REVUE N°2      INTERROGATION DE LA BASE DE.
VAL3 Ethernet - Sockets A partir VAL 3 Version 4.x.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
JavaScript Nécessaire Web.
Travail de diplôme José Garrido Professeur : Philippe Freddi Explorer Internet en toute sécurité Surf Safe SPY INTERNET.
Content Management System CMS. Pourquoi ? Obligation de ressaisir des contenus publiés à plusieurs endroits Pas d’outils de gestion de qualité de l’information.
DOC-DEPOT.COM - ‘' Mon essentiel à l'abri en toute confiance '' 29 mai 2014 Copies d’écrans Acteur Social Avec commentaires.
Création d’une communauté web scénarisée : le projet Crealys
La réplication dans les réseaux mobiles ad hoc
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Les Composants de l’architecture Oracle
0 Objectifs de la session n°1  Revenir sur toutes les bases théoriques nécessaires pour devenir un développeur Web,  Découvrir l’ensemble des langages.
Structures de données avancées : Concepts réseaux et protocole de communication. D. E ZEGOUR Institut National d ’Informatique.
A App1 Socket 1 Port 1 App2 Socket 2 Port 2 Cas général.
Android Kévin Giroux.
Cours de programmation web
Soutenance ProJet Individuel
Réalisé par : Mr IRZIM Hédi Mr JRAD Firas
1 Registration Physique Séminaire du Master Davide Bazzi Université de Fribourg
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Application de gestion des retards
Les sockets.
BTS IRIS Lycée Grandmont1 Projet CNEPE 2008 Gestion d’accès aux centrales nucléaires françaises E1 et E3 : DEMEYER Julien E2 : BOILEAU Antoine E4 : AUJUMIER.
Abderrahmane Bouarissa Damien Burglin Arnaud Sansig
Introduction au socle MEAN
Gestion d’accès aux centrales nucléaires françaises
Présentation ESTRABOX
Système d’exploitation
Service de vidéo à la demande Projet Tutoré : Groupe C3 Université Paris 5.
Plan de la présentation
Séance /10/ Projet de site dynamique avec Dreamweaver : MyCMS
Cluster d’équilibrage de charge réseau
Architecture Client/Serveur
MINI‐PROJET DE GROUPE REALISE DANS LE CADRE DU COURS DE GEN
Programmation mobile: Android
ANNEHEIM Geoffrey21/03/ Protocole de communication Socket TCP/IP Afin que MyCrawler fonctionne de façon optimale, une configuration de deux machines.
L. Gurret – M. Herve – P. Mignon – J. Prarioz. Introduction  Dernière étape d’analyse  Cahier des charges, spécifications et conception orientée objet.
Edwige Prisca Kom Mbiengang Marc ferradou Hugo cordier Gestion d’un ensemble de bases documentaires 1.
Tuteur : Jean-Philippe Prost Soutenance de Projet Licence Professionnelle Assistant de Projet Informatique Développement d’Applications E-Business Année.
2 3 Recherche de l’adresse du serveur Envoie en broadcast ( ) Communication entre les clients et le serveur :  Enregistrement de personnes.
PROJET DE SESSION DANS LE CADRE DU COURS: SCG Réalisation d’applications en SIG PRÉSENTÉ PAR: Marie-Andrée Levesque 18 AVRIL 2006.
DWR Jean-Jacques LE COZ. Introduction Projet DWR Framework AJAX Projet Open Source commencé en 2004 Licence GPL (Apache Software License v2) Sponsorisé.
Développement d’applications Web
Transcription de la présentation:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Démo