République Algérienne Démocratique et Populaire MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE UNIVERSITE D’ORAN ES-SENIA FACULTE DES SCIENCES DEPARTEMENT INFORMATIQUE THÈSE PRESENTEE PAR Mr Ali BELKACEMI Pour obtenir le Diplôme de Magistère Spécialité : Informatique THEME BASES DE DONNEES TITRE Vers la Réplication Universelle Date de Soutenance : 11 juin 2008 Composition du Jury : Président : Pr. D. Benhamamouch Examinateurs : Dr. S. Nait Bahloul Pr. H. Haffaf Dr. M. Ouali Directeur de Thèse : Pr. M. K. Rahmouni ˜ REMERCIEMENTS ™ Mes premiers remerciements vont aux membres du jury : Monsieur Benhamamouche Djillali, Professeur au département d’informatique – faculté des sciences Es-Sénia Oran pour l’honneur qu’il me fait de présider ce jury. Monsieur Haffaf Hafid, Professeur au département d’informatique – faculté des sciences Es-Sénia Oran d’avoir bien voulu apporter son jugement sur cette thèse. Je tiens à lui exprimer toute ma gratitude pour l’intérêt qu’il porte à mon travail. Melle Nait Bahloul Safia, Maître de conférences au département d’informatique – faculté des sciences Es-Sénia Oran qui me fait honneur de juger mon travail. Monsieur Ouali Mohamed, Chargé de cours au département d’informatique – faculté des sciences Es-Sénia Oran, qui me fait l’honneur de participer à ce jury. Je le remercie également pour l’aide, les conseils et la confiance qu’il m’a apportés. Monsieur Rahmouni Mustapha Kamel professeur au département d’informatique – faculté des sciences Es-Sénia Oran, qui m’a encadré. Je lui suis reconnaissant pour sa disponibilité, ses conseils et sa gentillesse dont il a fait preuve. Je ne saurai jamais lui exprimer toute ma gratitude pour avoir été mon encadreur, mais aussi une personne sur laquelle j’ai toujours pu compter. Outre les membres du jury, mes remerciements vont a : Mademoiselle Bendida Nacera, pour la disponibilité et l’efficacité dont elle a fait preuve. Monsieur Izza Rabah et Fatmi Mohamed pour leur soutien. Melle Zegai Imène pour sa disponibilité. Enfin, je n’oublierai pas mes familles, en particulier — Maman, pour s’être occupée de moi et qui m’a permis de conquérir le monde adulte. — Ma femme et mes enfants pour l’amour et la fierté qu’ils éprouvent envers moi. N’oubliez pas je serai toujours la pour vous. L’informatique c’est génial ……… Mais quand ça fonctionne . Introduction Générale……………………………………………………….……….. 1 Chapitre I Bases de Données et SGBD I.1 Première définition de la réplication……………………………………………………...5 I.2 Notion de Base de Données………………………………………………………………...5 I.2.1 Définitions………………………………………………………………………………..5 I.2.2 Analyse de la définition…………………………………………………………………..6 I.2.3 Objectifs liés a la définition………………………………………………………6 I.3 Le Système de gestion de bases de données ou SGBD……………………………..7 I.4 Vers un SGBD Idéal………………………………………………………………...8 I.5 Conclusion………………………………………………………………………………...10 Chapitre II De la Sauvegarde Vers la Réplication II.1 Introduction……………………………...………………………………………..12 II.2 Copie ou sauvegarde ?............................................................................................12 I I . 3 Finalité …………………………………………...……………………………...13 II.4Critères de choix…………………………………………………………………..13 II.5 Stratégies de sauvegarde…………………………………………………………14 II.6 Sauvegarde sur serveur…………………………………………………………14 II.7 Sauvegarde sur système client……………………………………………………15 II.8 Sauvegarde sur Internet…………………………………………………………15 II.9 Méthodes de sauvegarde les plus courantes…………………………………...…………16 II.10 Mécanisme…………………………………………………………………….17 II.10.1 Sauvegarde complète………………………………………………………….17 II.10.2 Sauvegarde différentielle……………………………………………………17 II.10.3 Sauvegarde incrémentale……………………………………………………..18 II.11 Pourquoi sauvegarder …………………………………………………………18 II.11.1 Sauvegarde informatique face aux virus…………………………………….18 II.11.2 Sauvegarde informatique face aux SPYWARES……………………………19 II.11.3 Sauvegarde informatique Face aux pannes………………………………….19 II.12 Limites de la sauvegarde………………………………………………………20 II.13 Conclusion……………………………………………………………………..21 Chapitre III : La Réplication Classique III.1 Introduction………………..…………………………………………………….23 III.2 Cas application n’utilisant ...pas de réplication………………………………….24 III.3 Cas application utilisant la réplication…………………………………………..25 III.4 Fonctionnalités…………………………………………………………………..25 III.5 Objectifs de la réplication……………………………………………………......25 III.6 Répliquer Quoi ?....................................................................................................25 III.6.1 Base de données Maître « Replica maître »…………………………………...26 III.6.2 Base de données Replica « Replica abonné »…………………………………26 III.7 Comment Répliquer ?............................................................................................26 III.7.1 réplication mono directionnelle (asymétrique)………………………………...27 III.7.2 réplication bi directionnelle (symétrique)……………………………………..27 III.8 Méthodes de propagation………………………………………………………..28 III.8.1 Mise a jour synchrone (temps réel)…………………………………………....28 III.8.2 La mise a jour asynchrone…………………………………………………......28 III.8.3 Les différents types de réplication……………………………………………..28 III.8.3.1 Réplication asymétrique synchrone………………………………………….29 III.8.3.2 Réplication symétrique synchrone…………………………………………..29 III.8.3.3 Réplication asymétrique asynchrone………………………………………...29 III.8.3.4 Réplication symétrique asynchrone………………………………………….30 III.9 Quels sont les moyens de réplications ?................................................................31 III.10 Solutions existantes…………………………………………………………….33 III.11 Limites de la réplication classique…………………………………………......33 III.12 Conclusion……………………………………………………………………...34 Chapitre IV : Vers la réplication Universelle IV.1 Introduction …………………………………………………………………......36 IV.1.1Définition………………………………………………………………………36 IV.1.2 Principe de fonctionnement…………………………………………………...36 IV.1.3 Présentation de l’UDR (Universal Data Réplication) ………………………...37 IV.1.4. UDR puissance et facilités……………………………………………………38 IV.1.5 l’UDR : media hétérogènes, connexion hétérogènes…………………………39 IV.2 Notion ODBC……………………………………………………………………40 IV.2.1 Inconvénients de la technologie ODBC……………………………………….41 IV.2.2 Pilotes ODBC par défaut………………………………………………………41 IV.3 Nom des sources de données (DSN).........................................................41 IV.4 Déclaration de la source de données…………………………………………….42 IV.5 Introduction OLEDB…………………………………………………………….45 IV.6 TCP/IP…………………………………………………………………………...45 IV.7 Accès aux bases tierces………………………………………………………….46 IV.7.1 Accès natif……………………………………………………………………..46 IV.7.2 Accès par un driver ODBC direct……………………………………………..46 IV.7.3 Accès ODBC via le provider OLE DB………………………………………..47 IV.7.4 Accès par un provider OLE DB……………………………………………….47 IV.8 Comment utiliser le Driver ODBC………………………………………………47 IV.9 Les journaux …………………………………………………………………….48 IV.9.1 Journaux relatifs aux traitements……………………………………………...48 IV.9.1.1 définition…………………………………………………………………..48 IV.9.1.2 contenu du journal …………………………………………………………..48 IV.9.1.3 les types de journaux ………………………………………………………..49 IV.9.2 journaux propres a la réplication………………………………………………50 IV.10 Contraintes pour réussir la réplication……………………………………….50 IV.11 Notion de déclencheurs (triggers)…..…………………………………………51 IV.1.2 Définition……………………………………………………………………...51 IV.1.3 Intérêts des triggers……………………………………………………………52 IV.1.4 Manipulation des triggers……………………………………………………...52 IV.1.4.1 Procédure associée………………………………………………………...52 Chapitre V : Solution technique V.1 Introduction……………...……………………………………………………….54 V.2 Présentation de la solution……………………………………………………….55 V.2.1 Principe de fonctionnement…………………………………………………….56 V.2.2 Cycle de vie………………………………….……………………………….57 V.3 Plateformes de développement…………………………………………………..58 V.4 Enchaînement des traitements…………………………………………………..58 V.4.1 PHASE : Description générale………………………………………………...59 V.4.2 PHASE : Description utilisateur ……………………………………………...62 V.4.3 PHASE : Génération…………………………………………………………..63 V.5 L’Edition d’une réplication ……………………………………………………...67 V.6 Sauvegarder...........................................................................................................67 V.7 Suppression de projet …………………………………………………………...67 V.8 Mise à niveau ………………………………………………………………...67 V.9 Description de l’analyse………………………………………………………68 V.9.1 Dictionnaire des rubriques…………………………………………………….68 V.9.2 Liste des fichiers………………………………………………………………68 V.10 Traitement associé à la réplication……………………………………………75 V.10.1 Traitement Trigger avant……………………………………………………75 V.10.2 Traitement Trigger après……………………………………………………76 C o n c l u s i o n G é n é r a l e …………………………………………………………………80 Glossaire. ……………………………………………………………………………..82 Bibliographie…….………………………………………………………………….90 1ntroduction Générale Vers la Réplication Universelle Le monde évolue, la technologie évolue. Le marché des systèmes de gestion des bases de données ne cesse de s’enrichir (ORACLE, MYSQL, DB2, INFORMIX, INGRES ….) Les systèmes d’exploitation (dos, win30…windows95…, vista, Linux.) Les réseaux ne font pas exception (local, intranet, Internet) Les media aussi (disquette, lecteur zip, CD, DVD, clé USB)… Aujourd'hui, les bases de données sont de plus en plus utilisées au fur et à mesure que le monde informatique se développe et que les flux de données augmentent sur Internet. Ainsi, il y a un plus gros besoin de transférer des données entre bases de données. La synchronisation est une solution efficace à ces problématiques. Elle est particulièrement utile dans des situations telles que la sauvegarde de données, synchroniser des bases de données qui ont été modifiées sur différents serveurs, ou encore envoyer à un utilisateur seulement les données dont il a besoin. Problématique De nombreux outils de synchronisation sont déjà fournis par des serveurs de base de données tels que Microsoft SQL Server et Oracle. Ce sont des solutions performantes et intégrées mais elles ne fonctionnent qu'à l'intérieur de leur propre système. Le besoin des entreprises de communiquer à l'extérieur de leur structure (avec des clients et des fournisseurs par exemple) amène à synchroniser des données entre bases de données de différentes organisations et qui peuvent donc être hétérogènes (SGBD). Il est évident qu’il n’existe pas actuellement d’outils universels permettant de synchroniser les données entre plusieurs bases de données évoluant dans divers SGBD. Cette thèse s’attaque à l’analyse, la conceptualisation et la mise en uvre d’une technique de réplication originale permettant de faire communiquer plusieurs SGBD, sites, média, types de réseaux et systèmes d’exploitation. Cette technique permet de rendre transparent toutes les interactions entre les sites, média, types de réseaux et systèmes d’exploitation [CHA84]. Il devient désormais suffisant pour le concepteur de connaître un SGBD, un système d’exploitation pour pouvoir communiquer avec d’autres SGBD. Éléments de réponse La première idée qui nous est venue à l’esprit c’est de passer par un format intermédiaire universel tel que XML, Excel, etc. Dans ce cas, la base de données d’origine est importée sous le format universel, traitée, puis reconvertie dans son format d’origine. Cependant, nous avons vite abandonné cette idée car elle présente plusieurs inconvénients, entre autres, elle ne permet que la réplication asynchrone, et le temps de transformation est considérable, posant un problème de performance. 1 1ntroduction Générale Vers la Réplication Universelle Dans le but de surmonter les difficultés posées par notre objectif de réplication multi SGBD, multi systèmes d’exploitation, multi supports, multi sites, tout en gardant un niveau de performance acceptable, nous suggérons de mettre au point un système utilisant les technologies existantes. Ce système ne peut se réaliser que par l’intermédiaire de deux modules différents : Ä L’interface d'administration est un programme qui permet de configurer et de gérer efficacement un nombre infini de réplications. Il donne la possibilité, pour chacune d'entre elles, de définir quelles bases de données sont concernées, quelles données doivent être répliquées et enfin quand et à quelle fréquence la tâche doit être effectuée [GRA07, SSP06]. Ä Le serveur de réplication est en fait un programme tournant en permanence. Il récupère le planning de réplications depuis l'interface puis initie par luimême l'exécution des tâches en fonction de ce planning. Vu la difficulté du projet, on se limitera au développement de la première partie, puis on donnera une idée sur la deuxième partie. Cette thèse est organisée de la façon suivante : Ä le chapitre I traite des notions de bases de données et des systèmes de gestion de bases de données (SGBD) ; il permet de situer les bases de données par rapport aux SGBD et montre les principales fonctionnalités d’un SGBD puis met en relief les principaux critères de choix d’un SGBD ; Ä le chapitre II permet de mieux situer la copie par rapport à la sauvegarde et la sauvegarde par rapport à la réplication ; il fait aussi ressortir le caractère sécuritaire de la sauvegarde et, par conséquent, de la réplication ; des éléments de synthèse sont présentés à la fin du chapitre montrant les avantages de la réplication par rapport à la sauvegarde ; Ä le chapitre III présente les méthodes de réplication qualifiées de classiques tout en introduisant le langage propre à la réplication (réplica maître, réplica abonné, bidirectionnelle, monodirectionnelle, synchrone, asynchrone) ; les discussions à la fin du chapitre montrent la limite de la réplication classique et ouvrent les perspectives de la réplication universelle ; 2 1ntroduction Générale Vers la Réplication Universelle Ä le chapitre IV présente l’UDR (Universal Data Replication) comme solution à la réplication universelle ; il définit le contexte de l’universalité considéré (SGBD, supports, systèmes d’exploitation, modes d’accès) ; par ailleurs, il met en relief un réplica maître évoluant dans un SGBD « x » par rapport aux réplicas abonnés chacun défini dans un SGBD différent ; une solution globale de la réplication universelle est présentée permettant l’automatisation des procédures de la mise en uvre et la mise en place de la réplication UDR ; Ä le chapitre V présente la solution technique de la réplication universelle UDR tout en pensant à une extension vers l’UDR+, qui poursuit l’ouverture du serveur de réplication par rapport à plusieurs bases de données ; Ä une conclusion générale synthétise les travaux présentés dans cette thèse et ouvre d’autres perspectives (vers la réplication « update »). 3 Bases de Données et Systèmes de Gestion de Bases de Données Chapitre 1 Bases de données et SGBD I.1 Première définition de la réplication (dictionnaire phpmyvisites) La réplication désigne le procédé par lequel on produit une copie d’une base de données dans une autre base de données. Par conséquent elle a tendance à améliorer la tolérance aux pannes [BHG87, HT94, SCH90]. Cette première définition met en évidence trois mots clés : base de données, copie et tolérance aux pannes (sécurité informatique) ; il est important pour nous d’en tenir compte [GHO96]. I.2 Notion de Base de Données Qu’est ce qu’un système de gestion de base de données ? [CHA01] Avant de répondre à la question, il paraît important savoir ce qu’est une base de données. • qu’est ce qu’une base de données ? I.2.1 Définitions En effet dans différents ouvrages on retrouve différentes définitions d’une base de données. Parmi ces définitions, nous avons retenu celles qui sont les plus explicites [TOM85]. * « une base de données est une collection de données opérationnelles liées par des relations » * « une base de données est une collection de données en relation mutuelle sans redondance nuisible ou inutile, pour être utilisées dans de multiples applications ; les données sont enregistrées de telle sorte qu’elles soient indépendantes des programmes qui les utilisent ; une approche commune et contrôlée est utilisée pour ajouter de nouvelles données et modifier ou retrouver des données existantes dans la base de données .Les données sont structurées pour servir de base de développement de futures applications .Un système est dit contenir une collection de bases de données si cellesci ont leurs structures complètement séparées. * « une base de données informatique est un ensemble de fichiers informatiques sur lequel sont basées toutes les activités d’une organisation et dans lequel est placée une grande confiance sur la disponibilité et l’exactitude ». 5 Chapitre 1 Bases de données et SGBD * « dans une organisation une base de données est essentiellement un outil communautaire. Contrairement à l’approche traditionnelle ou chaque application crée ses propres fichiers et vit de manière relativement isolée, l’approche base de données consiste à définir pour un ensemble d’applications ayant un univers de référence commun, une structure susceptible d’optimiser de manière globale le système d’information ». I.2.2 Analyse de la définition Une base de données est donc un ensemble, au sens mathématique, de données. Physiquement, cet ensemble de données a la forme d’une collection d’informations [KP97]. Ces informations seront enregistrées sur des supports informatiques. Les méthodes de codages des informations, ainsi que les méthodes d’écriture et de mise à disposition de ces informations ne nous préoccuperont pas dans leur aspect physique. Seul compte le fait que nous associons au concept de base de données l’idée d’une collection de données disponible, accessible et extensible. Cet ensemble de données est structuré. Cela signifie que la collection est organisée. Il existe donc des liens entre les différents éléments. Il est important de noter que ces relations entre les diverses informations sont autant d’informations supplémentaires. Une base de données est donc plus riche qu’une accumulation d’informations, car toute information s’y enrichit des liens qu’elle a avec les autres. Ces liens permettent d’accéder plus rapidement et plus facilement à une information à partir d’une autre. Donc les bases de données tirent leur richesse des interrelations entre les informations qu’elles contiennent. Une base de données aura donc plus d’intérêt de regrouper des données ayant un dénominateur commun. Cet élément commun est l’application pour laquelle est construite la base de données. Le terme application inclut généralement le développement des traitements. Une même donnée pourra donc être utilisée différemment par plusieurs traitements. Une base de données unique, regroupant l’ensemble des données, mettra donc à disposition l’ensemble des informations nécessaires à tous les traitements requis par l’application. Pour construire une base de données il est nécessaire de répondre aux questions suivantes : • quelles peuvent être ces données ? • quels seront les liens qui les uniront ? • quels seront les traitements qui les utiliseront ? 6 Chapitre 1 Bases de données et SGBD I.2.3 Objectifs liés a la définition. Une base de données : 1. doit pouvoir être utilisée en mode interactif et en mode batch 2. doit permettre l’indépendance des données et des traitements 3. doit permettre tout accès prévu à une donnée. 4. doit permettre le contrôle des accès aux données. 5. n’est pas figée mais évolutive. Cet ensemble peut être restructuré. I.3 Le Système de gestion de bases de données ou SGBD fourni avec le LDD (Langage de description de données) et le LMD (langage de manipulation de données) Un SGBD peut être vu comme un ensemble d’utilitaire permettant d’effectuer les opérations décrites précédemment. Ces opérations peuvent être regroupées à travers une explication du verbe gérer [KP97]. Gérer = Construire+Utiliser+Maintenir+Réorganiser. 1. Construire (LDD) Le SGBD doit offrir les moyens de créer la base de donnés. Le SGBD doit fournir les moyens pour pouvoir implanter physiquement les données (partie physique) et décrire les liens qui les unissent (partie logique). 2. Utiliser (LMD) La finalité d’une base de données est de mettre à disposition des informations. Les données devront être accessible en mode interactif ou en mode batch. Par conséquent : Le SGBD doit fournir les outils de consultation et de mise à jour. Le SGBD doit assurer les fonctions de contrôle de données et contrôles des accès concurrents. 7 Chapitre 1 Bases de données et SGBD 3. Maintenir (utilitaires) La crédibilité d’une base de données repose sur sa cohérence. Le SGBD aura donc pour fonction de maintenir la base dans un état cohérent et, à défaut, offrir les moyens de générer la base à partir d’une sauvegarde. 4. Réorganiser (LDD) Réorganiser signifie remettre en question, au moins modifier ce qui a été construit. Le SGBD doit donner les moyens de réorganiser physiquement, logiquement les données. I.4 Vers un SGBD Idéal Vu la concurrence des SGBD existant dans le marché, un choix s’impose, nous nous contentons d’énumérer les points déterminants : Critères pouvant participer à l'évaluation d'un SGBD [TRI93] - gestion de l’espace disque - gestion des clés primaires et secondaires - gestion des liaisons inter fichiers - gestion du dictionnaire de données - restructuration des données et optimisation - journalisation et reprise des incidents - portabilité des programmes et fichiers d’une version à l’autre Ä Le système induit une certaine centralisation (une seule et même base pour tout le monde); on peut donc réduire les redondances, et veiller à leur cohérence (une mise à jour est faite pour tout le monde et non pas uniquement pour celui qui en est à l'origine). Ä le système supporte au moins un modèle (abstrait) de données ; Ä indépendance physique: le stockage physique des données dépend uniquement du site sur lequel elles sont implantées et tient compte des critères de performances [CT92, ACL87, JA91], facilités d'accès, encombrement des volumes... Ä indépendance logique: les données manipulées modélisent une certaine réalité perçue de façon différente suivant les utilisateurs; ainsi chacun doit pouvoir appréhender sa propre vision du réel au travers de la base (ne voir qu'une partie des données, les associer de manière différente...); 8 Chapitre 1 Bases de données et SGBD Ä Environnement de développement non procédural: l'utilisateur doit spécifier ce qu'il désire extraire de la base et non comment l'extraire (QUOI et non COMMENT); les applications sont indépendantes des chemins d'accès. La complexité des systèmes sous-jacents impose pratiquement un langage de requêtes; c'est donc au système d'effectuer la conversion et d'optimiser la procédure interne de réponse à la requête); ces indépendances facilitent l'évolutivité des applications; Ä Convivialité permettant la manipulation de la base pour des utilisateurs banalisés en particulier non informaticiens; Ä Les garanties au niveau de la sécurité et de l'intégrité des données sont prises en charge automatiquement: les accès sont restrictifs (tout le monde n'a pas accès à tout), différents niveaux d'autorisation sont possibles (d'où confidentialité); les données entrées dans la base passent par un crible qui en assure l'intégrité; Ä Gestion des accès concurrents, notion de transaction; partageabilité: utilisation transactionnelle en temps réel dans un environnement multiutilisateurs; ces possibilités ont à la base de certains types d'applications dans le domaine de la banque, de systèmes de réservations... Ä Sécurité contre les destructions: journalisation, sauvegarde, reprise après panne; Ä Standardisation des systèmes permettant une portabilité maximale des données et des applications; Ä Administration: seul l’administrateur (*) a tous les droits sur la base: il l'a créée, suit son évolution, gère les sauvegardes, ajuste les paramètres du système, accorde les droits d'accès, résoud les conflits ; il est le responsable de l'efficacité des accès et de la sécurité des données. (*) L’administrateur de la base étant la personne ou le groupe de personnes qui ont la responsabilité du contrôle général du SGBD. 9 Chapitre 1 Bases de données et SGBD I.5 Conclusion En résumé nous dirons que : Une base de données est un ensemble structuré de données. Le SGBD est un logiciel permettant la gestion de la base de données. Pour conclure ce chapitre, nous dirons que si la base de données est importante, sa sécurité l’est encore plus. La sécurité étant un domaine tellement vaste que nous nous limiterons à l’étude de la sauvegarde. Le chapitre suivant lui sera réservé. 10 De la sauvegarde vers la réplication Chapitre II De la sauvegarde vers la réplication II.1 Introduction La sécurité informatique est l'ensemble des techniques qui assurent que les ressources du système d'information (matérielles ou logicielles) d'une organisation sont utilisées uniquement dans le cadre où il est prévu qu'elles le soient. Une perte de données accidentelle, un sinistre, ou une attaque virale, peuvent conduire à la perte de données, et par conséquent nuire au système. C’est à ce moment là que le système devient vulnérable. Il est donc nécessaire de prévoir des mécanismes de sauvegarde (backup1), idéalement sur des sites distants pour garantir la pérennité des données. II.2 Copie ou sauvegarde ? - Copier (Dupliquer) : permet de reproduire fidèlement une source de données (Enregistrement, Fichier,…) Action Copier sauvegarder Nbre Enregistrement N N Nbre Fichier N N Type (Donnée, Multimédia) Quelconque Support Quelconque Quelconque Durée de Vie Instantanée Selon Méthode (*) Utilisée Quelconque (*) Voir Chapitre Sauvegarde 1 Mot anglais : consiste à copier des fichiers sur un support. 12 Chapitre II De la sauvegarde vers la réplication La Sauvegarde est une action qui permet de pérenniser la copie Généralement on parle de sauvegarde lorsque la copie est effectuée dans un but sécuritaire. II.3 Finalité [CCM] Les copies de sûreté sont utiles principalement à deux choses : Ä La première et la plus évidente est de permettre de restaurer un système informatique dans un état de fonctionnement suite à un incident (perte d'un support de stockage tel que disque dur, bande magnétique, etc., ou de tout ou partie des données qu'il contient). Ä La seconde, incluse dans la première mais certainement la plus courante, est de faciliter la restauration d'une partie d'un système informatique (un fichier, un groupe de fichiers, un système d'exploitation, une donnée dans un fichier, etc.) suite à une suppression accidentelle ou à une modification non désirée. La technique la plus fréquente est la recopie des données sur un support indépendant du système initial (ordinateur local, serveur, etc.). L'opération inverse qui consiste à réutiliser des données sauvegardées s'appelle une restauration. On parle de « stockage » pour les données sauvegardées en attente d'une éventuelle restauration. II.4 Critères de choix Le choix d'une technique de sauvegarde se fera en prenant en compte : Ä la capacité de stockage du support (le volume d'information) Ä la vitesse de sauvegarde, Ä la fiabilité du support (notamment après une longue période de stockage), Ä la simplicité de classement, Ä la facilité à restaurer les données, 13 Chapitre II De la sauvegarde vers la réplication Ä et bien sûr le coût de l'ensemble. Intervient également la possibilité de sélectionner les données à sauvegarder. Enfin pour les grands systèmes de sauvegarde, il faut tenir compte de critères physiques : volume physique des supports de stockage, poids, sensibilité à la température, à l'humidité, à la poussière, à la lumière. II.5 Stratégies de sauvegarde On distingue la sauvegarde d'un poste individuel et la sauvegarde sur serveur. L'une et l'autre s'adressent à la même nature d'information (la donnée informatique) et ont le même objectif (protéger l'information et permettre de la retrouver si elle était perdue), mais les méthodes de sauvegarde sont différentes pour plusieurs raisons : Ä les données sur poste client sont réputées moins importantes que les données gérées sur des systèmes centraux ; Ä les utilisateurs sont moins sensibilisés au risque de perte de données que les professionnels de l'informatique ; Ä ils ont également moins de formation sur les techniques de sauvegarde ; Ä les moyens techniques sont moins développés sur poste individuel que sur serveur, même si des progrès importants ont été réalisés ces dernières années (chute du rapport coût/volume des supports de sauvegarde, simplification des interfaces de sauvegarde, sauvegarde sans intervention de l'utilisateur, etc.) De fait, la sauvegarde des données des postes individuels reste marginale dans la stratégie d'utilisation des ordinateurs. Cependant, les entreprises, en généralisant l'usage des micro-ordinateurs et du partage des ressources en réseau, ont ressenti un besoin de sécurité qui a favorisé le développement d'outils de sauvegarde sur microordinateurs, lesquels gagnent petit à petit le monde de la micro-informatique personnelle. II.6 Sauvegarde sur serveur La sauvegarde s'inscrit dans une démarche plus globale qui consiste à assurer la continuité d'activité d'un système informatique ou, en cas de défaillance, son redémarrage le plus vite possible. Cette démarche est souvent formalisée dans un document qui peut porter des noms divers, par exemple le "PRA" (plan de reprise d'activité) ou le "PS" (plan de secours), et qui fait appel soit à des automatismes (ex. donner l'alerte en cas de coupure de courant ou de perte d'accès à une unité de stockage) soit à des gestes manuels (ex. remplacer des bandes magnétiques défectueuses). La tendance est à l'automatisation, réputée plus sûre dans les situations d'urgence que les opérations manuelles. 14 Chapitre II De la sauvegarde vers la réplication En terme de support, les serveurs ont depuis toujours requis des supports à grande capacité de stockage. La bande magnétique a longtemps été le principal vecteur, du fait de sa grande capacité, de son coût faible (par rapport aux autres supports), de sa capacité de réutilisation et de sa relative stabilité au temps et à l'usure. Puis sont venus les cartouches numériques (bandes magnétiques intégrées dans un boîtier plastique) les disques durs et plus récemment les médias optiques, réinscriptibles ou non, tels que les CD-R, DVD-R ou formats similaires. II.7 Sauvegarde sur système client Au cours des années 1975–95, la plupart des utilisateurs d'ordinateurs personnels (PC) associaient principalement le terme "backup" au fait de faire des copies sur disquettes. Avec le développement de micro-ordinateurs mieux équipés, les utilisateurs personnels ont adopté des supports plus performants : disques optiques (CD-ROM ou DVD), Clés USB. De même, les ordinateurs intègrent des fonctions de sauvegarde de plus en plus évoluées, par exemple : Ä des outils intégrés au système d'exploitation tels que les "points de restauration" que l'on peut exécuter avant d'installer un nouveau logiciel et qui remettront le système en l'état d'avant l'installation si l'utilisateur le demande ; Ä des logiciels capables de faire une image parfaite du système à un moment donné (image appelée un "ghost", mot qui signifie "fantôme" en anglais) ; cette image sera stockée sur l'ordinateur lui-même ou sur un support externe. II.8 Sauvegarde sur Internet Aujourd'hui, les copies de sûreté dites "en ligne" deviennent populaires et, avec la banalisation des connexions Internet à large bande et à haut débit, de plus en plus d’utilisateurs recourent à ce type de service de sauvegarde. Elles consistent à se connecter à un site Internet, appelé "hébergeur", et à y transférer ses données. Les avantages sont multiples : Ä minimiser le risque de perte puisque le site est géré par un professionnel qui fait lui-même des sauvegardes ; 15 Chapitre II De la sauvegarde vers la réplication Ä accéder à ses données à partir de n'importe quel ordinateur connecté à Internet ; Ä souvent le coût de cette prestation est modique, parfois même gratuit pour les petites sauvegardes. L'inconvénient majeur est de laisser ses données à disposition d'un tiers qui peut à loisir les consulter, les modifier, les dupliquer, les publier ou en faire commerce ; et même les rendre indisponibles (cas des faillites, rachats de sites par des concurrents, ou différend commercial avec l'hébergeur). Évidemment, des dispositions contractuelles viennent réguler ces risques mais elles ne peuvent empêcher l'hébergeur d'agir techniquement de façon malveillante. Une des parades à la consultation abusive consiste à chiffrer/crypter les données. Un autre inconvénient vient des limites imposées sur le stockage ou la récupération des données : pour maîtriser l'usage de ses disques et de sa bande passante, un hébergeur peut limiter contractuellement son client à un volume de stockage ou de données consultées au-delà duquel il bloque l'accès aux données. II.9 Méthodes de sauvegarde les plus courantes La méthode la plus simple est la sauvegarde complète ou totale (appelée aussi "full backup") ; elle consiste à copier toutes les données à sauvegarder que celles-ci soient récentes, anciennes, modifiées ou non. Cette méthode est aussi la plus fiable mais elle est longue et très coûteuse en terme d'espace disque, ce qui empêche de l'utiliser en pratique pour toutes les sauvegardes à effectuer. Afin de gagner en rapidité et en temps de sauvegarde, il existe des méthodes qui procèdent à la sauvegarde des seules données modifiées et/ou ajoutées entre deux sauvegardes totales. On en recense deux : Ä La sauvegarde différentielle Ä La sauvegarde incrémentielle La restauration d'un disque avec l'une de ces méthodes s'avère plus longue et plus fastidieuse puisqu'en plus de la restauration de la sauvegarde différentielle ou des sauvegardes incrémentielles, on doit également restaurer la dernière sauvegarde complète. Les fichiers supprimés entre temps seront également restaurés. Afin de comprendre la différence entre les deux méthodes, nous prendrons l'exemple d'un plan de sauvegarde selon le cycle suivant : Ä Une sauvegarde complète au jour J 16 Chapitre II De la sauvegarde vers la réplication Ä Une sauvegarde des fichiers modifiés ou nouveaux du jour J+1 au jour J+6 Ä Une sauvegarde complète au jour J+7 II.10 Mécanisme Pour pouvoir différencier ces différentes méthodes de sauvegarde/archivage (complète, incrémentielle, différentielle), le mécanisme mis en place est l'utilisation d'un marqueur d'archivage. Chaque fichier possède ce marqueur d'archivage, qui est positionné à "vrai" lorsque l'on crée ou modifie un fichier. On peut comprendre cette position comme "Je viens d'être modifié ou créé : je suis prêt à être archivé donc je positionne mon marqueur à vrai". Ce marqueur est appelé aussi attribut d'archivage (ou bit d'archivage). II.10.1 Sauvegarde complète Lors d'une sauvegarde complète, on va remettre à "0" l'attribut du fichier pour mémoriser le fait que le fichier a été enregistré. Lorsque l'on travaille avec la date, on mémorise la date de la dernière sauvegarde de façon à pouvoir différencier les fichiers qui ont été sauvegardés des autres (date de dernière modification). Lors d'une sauvegarde complète, tous les fichiers sont sauvegardés, indépendamment de la position du marqueur (vrai ou faux). Une fois le fichier archivé, celui-ci se voit attribuer la position de son marqueur (ou son bit) à "faux" (ou à "0"). II.10.2 Sauvegarde différentielle La sauvegarde différentielle effectue une copie des fichiers créés ou modifiés depuis la dernière sauvegarde complète, quelles que soient les sauvegardes intermédiaires. En d'autres termes, la sauvegarde complète du jour J sert de référence pour identifier les fichiers créés, modifiés ou ajoutés et ainsi ne sauvegarder que ces derniers du jour J+1 au jour J+6. La restauration faite à partir de ce type de sauvegarde nécessite la recopie sur disque de la dernière sauvegarde complète et de la sauvegarde différentielle la plus récente. Avec notre exemple, si la restauration se porte sur un disque complet qui a été sauvegardé le jour J+2, on doit alors recopier sur disque la sauvegarde complète du jour J et la sauvegarde différentielle du jour J+2 afin d'avoir la dernière version des données. 17 Chapitre II De la sauvegarde vers la réplication Cependant lorsqu'il s'agit de la restauration d'un fichier ou d'un répertoire qui a été sauvegardé le jour J+2 seule la dernière sauvegarde, ici la différentielle, est utile. Lors d'une sauvegarde différentielle, tous les fichiers dont le marqueur est à "vrai" sont sauvegardés. Une fois le fichier archivé, celui-ci garde la position de son marqueur tel qu'il l'avait avant la sauvegarde. II.10.3 Sauvegarde incrémentale Cette méthode consiste à sauvegarder les fichiers créés ou modifiés depuis la dernière sauvegarde quel que soit son type (complète, différentielle ou incrémentielle). Exemple : Une sauvegarde complète est réalisée le jour J. Le jour J+1, la sauvegarde incrémentielle est réalisée par référence au jour J. Le jour J+2, la sauvegarde incrémentielle est réalisée par référence au jour J+1. Et ainsi de suite. Si la restauration se porte sur un disque complet qui a été sauvegardé le jour J+4, on doit alors recopier sur disque la sauvegarde du jour J et les sauvegardes incrémentielles des jours J+1, J+2, J+3 et J+4 afin d'obtenir la dernière version de la totalité des données. Cependant, lorsqu'il s'agit de la restauration d'un fichier ou d'un répertoire qui a été sauvegardé le jour J+3, seule la dernière sauvegarde, ici l'incrémentielle, est utile. Lors d'une sauvegarde incrémentielle, tous les fichiers dont le marqueur est à "vrai" sont sauvegardés. Une fois le fichier archivé, celui-ci se voit attribué la position de son marqueur à "faux". II.11 Pourquoi sauvegarder En plus de sa fonction primaire qu’est l’archivage, la sauvegarde peut servir pour faire face aux dangers suivants : II.11.1 Sauvegarde informatique face aux virus Les données de l’entreprise ainsi que tous les travaux sont effacés à jamais. Le temps que l’entreprise a consacré à ces activités est réduit à néant en une fraction de seconde à cause du concepteur de virus qui l’a agressée. 18 Chapitre II De la sauvegarde vers la réplication II.11.2 Sauvegarde informatique face aux SPYWARES Il s'agit de programmes espions qui sont installés sur un pc lors de connexion Internet et ce, sans l’autorisation du propriétaire du matériel. Ils espionnent le comportement de l’utilisateur sur le net mais aussi localement sur l’ordinateur en local. II.11.3 Sauvegarde informatique Face aux pannes Une panne informatique (détérioration du disque dur, panne système, etc.) peut arriver au mauvais moment. F Ce qu’il faut Retenir : Avec le développement de l'utilisation d'Internet, de plus en plus d'entreprises ouvrent leur système d'information à leurs partenaires ou leurs fournisseurs avec tous les risques que cela comporte. La sauvegarde informatique a trois principaux objectifs: Ä L'intégrité: garantir que les données ne soient pas corrompues par un agent extérieur. Ä La confidentialité: assurer que seules les personnes autorisées aient accès aux ressources. Ä La disponibilité: permettre de maintenir le bon fonctionnement du système informatique. Il est important de faire des sauvegardes, car les données sont encore plus nécessaires que le matériel, pour le bon fonctionnement d’une entreprise. Remplacer un ordinateur est plus simple que retrouver les données qui y étaient enregistrées. 19 Chapitre II De la sauvegarde vers la réplication II.12 Limites de la sauvegarde Bien que la sauvegarde nous permette de transférer les informations d’un Site A vers le Site B, la continuité dans la maintenance des informations sur le Site B, ne s’avère valable que si le Site A interrompe son travail. Illustrons cela par l’exemple suivant : 1er cas : en utilisant la sauvegarde INSTANT SITE A SITE B T Sauvegarder Restaurer T+1 ARRET Mise à jour T+2 Restaurer Sauvegarde T+3 Mise à jour ARRET Ä La similitude de la Base Site A et celle du Site B n’est assurée que si la phase « ARRET » est effectuée. Effectivement cette phase permet l’évolution de la Base dans le temps mais en bloquant des sites. Ä Les informations contenues dans le site A à l’instant t et celles du site B (t+1) sont cohérentes, intégres mais non synchronisées. Ä Pour combler à ce déficit (blocage des sites et similitude des bases de données) est venue la notion de REPLICATION LA REPLICATION est une sauvegarde suivie d’une synchronisation REPLICATION = SAUVEGARDE + SYNCHRONISATION* * La synchronisation (du grec sýn « ensemble » et chrónos « temps ») est l'action de coordonner plusieurs opérations entre elles en fonction du temps [PHPMYVISITES]. La synchronisation de fichiers a comme objectif de s'assurer que deux endroits, ou plus, contiennent exactement la même information. 20 Chapitre II De la sauvegarde vers la réplication 2ème cas : en utilisant la réplication INSTANT SITE A T Réplication T+1 Mise à jour T+2 Réplication SITE B Mise à jour Réplication Ä Avec la réplication la base évolue sans aucune contrainte. Nous qualifierons la sauvegarde comme étant PASSIVE, par contre la réplication est une sauvegarde ACTIVE II.13 Conclusion En plus de ce que nous avons montré, nous dirons que la réplication n’est pas une sauvegarde car les données sauvegardées ne changent pas, elles sont fixes, par contre les données répliquées évoluent. Ce qui nous amène à dire que la réplication est une sauvegarde intelligente des données. 21 La Réplication Classique Chapitre III La réplication classique III.1 Introduction La réplication des données est une technique permettant de cumuler plusieurs avantages sur différents niveaux de la protection et sécurisation des données. En disposant en local et ou distant d’un système redondant, on peut supporter une perte de données sans interrompre le travail. Outre son aspect sécuritaire, la réplication a d’autres objectifs. Voyons pourquoi. Qu est ce q une base de données répliquée ? Une base de données répliquée représente une base de données qui est recopiée de façon identique ou non sur plusieurs sites. Pourquoi répliquer ? Considérons le fichier « CLIENT » qui doit être accessible par tous les commerciaux, aussi bien à partir de leurs portable qu’au siège de la société. Chacun des commerciaux met à jour le fichier présent sur son portable et régulièrement se met à jour par rapport à la base de données principale de la société. Deux cas peuvent se présenter : - Application n’utilisant pas de réplication (utilisant des réseaux) - Application utilisant la réplication 23 Chapitre III La réplication classique - schéma illustrant une disponibilité de l’information selon le réseau et la réplication E T R O I T E M E N T L I E S I N D E P E N D A N C E REPLICATION BDD Principale Sans Réplication (Réseau) BDD Principale Avec Réplication III.2 Cas d’application n’utilisant pas de réplication La base de données est plus souvent accessible par réseau. Le commercial travaille alors grâce à une connexion par modem au réseau, avec toutes les contraintes de temps d’accès et de risque. De plus, tous les utilisateurs doivent être connectés au réseau pour accéder aux données. 24 Chapitre III La réplication classique III.3 Cas d’application utilisant la réplication Chacun des postes distants a sa propre base de données complète. Cette base de données (Réplica) est identique à la base de données principale, lors de son initialisation. Les postes évoluent (mettent à jour leurs bases de données), une synchronisation entre les bases de données permet de prendre en compte les modification effectuées sur chacune des différentes bases de données. Ce qui nous conduit à dire que : III.4 Fonctionnalités La réplication est une fonctionnalité très puissante. Elle permet de maintenir à jour des bases de données distantes de structure identiques. Chacune de ces bases évolue indépendamment. Grâce à la réplication, les opérations effectuées sur chacune des bases de données sont reportées sur toutes les autres bases de données. III.5 Objectifs de la réplication Ä disponibilité : la base étant présente dans différents sites, l’accessibilité est préservée, en cas de panne ou catastrophe naturelles. Ä la performance : les performances sont augmentées, car la charge de travail est repartie entre les sites. Ä Trafic réseau : du moment que le travail est reparti (localement), la charge réseau ne peut que diminuer. Ä traitement hors ligne : il est possible de travailler sur une machine non connectée au réseau. Ä équilibrage des charges : la réplication permet de mieux repartir les données. Donc la charge de travail du serveur hébergeur de la base de données principale sera allégée. III.6 Répliquer Quoi ? Bien entendu, il s’agit des bases de données, sachant que les bases de données sont constituées de tables qui elles même sont constituées de tuples on peut faire la distinction suivante : -Réplication d’une base de données : c’est procéder à la réplication de toutes ses tables sans distinction. -Réplication de tables : on parle de réplication de tables lorsqu’un choix est proposé, la réplication ne s’applique qu’aux tables sélectionnées. 25 Chapitre III La réplication classique -Réplication de tuples : lorsqu’au niveau d’une table on propose des filtres seulement les tuples filtrés sont concernés par la réplication. Quelque soit la réplication, il n’y a que la réplication des tuples qui peut être assurée automatiquement. La réplication a sa propre terminologie, on distingue la base de données maître et la base de données esclave [DMMA02, WEN06, WS04, TR06, COR04, MOR07, MOR07-2]. III.6.1 Base de données Maître « Replica maître » Appelée aussi base de données de référence ou site primaire. Sur cette base de données sont effectués toutes les mises à jour : Ä Celles effectuées sur ce poste Ä Celles effectuées sur les postes distants et transmises par réplication. III.6.2 Base de données Replica « Replica abonné » Appelée aussi esclave ou cible. C’est la base de données distante identique à celle du maître. Sur cette base de données sont appliquées les modifications effectuées par le poste distant. La réplication transmet ces modifications à la base de données « maître ». Pour des raisons d’uniformité, les termes replica maître et replica abonné seront utilisés. III.7 Comment Répliquer ? Il existe deux types de réplication : 26 Chapitre III La réplication classique III.7.1 réplication mono directionnelle (asymétrique) Ce type de réplication consiste à effectuer uniquement une mise à jour Du réplica maître vers le réplica abonné ou du réplica abonné vers le réplica maître. REPLICA MAITRE BDD PROPAGATION Mise à jour OU REPLICA ABONNEE BDD III.7.2 réplication bi directionnelle (symétrique) Ce type de réplication consiste à effectuer une mise a jour du replica maître vers les replicas abonnées et des replicas abonnés vers le replica maître. REPLICA MAITRE BDD PROPAGATION ET REPLICA ABONNEE BDD 27 Chapitre III La réplication classique III.8 Méthodes de propagation Que ce soit la réplication monodirectionnelle ou la réplication bidirectionnelle, la propagation ne peut se faire que selon un modèle de mise a jour : III.8.1 Mise à jour synchrone (temps réel) Chaque mise à jour est déployée sur les autres bases de données. Ceci nécessite une disponibilité permanente des ressources, malgré qu’elle assure le maximum d’intégrité, elle demeure trop coûteuse. En mode synchrone la réplication des données est immédiate, elle fait partie de la transaction qui échouera si l’ordre de mise à jour échoue [BT93, JPAA01]. III.8.2 La mise à jour asynchrone La mise à jour se fait dans un temps différé. La modification étant enregistrée, Elle est propagée par la suite. En mode asynchrone par contre, la réplication des données est retardée, elle ne fait pas partie de la transaction (problème de la cohérence des données, ordonnancement des mises à jour). III.8.3 Les différents types de réplication Il existe quatre types de réplication Ä Réplication monodirectionnelle (asymétrique) synchrone Ä Réplication monodirectionnelle (asymétrique) asynchrone Ä Réplication bidirectionnelle (symétrique) synchrone Ä Réplication bidirectionnelle (symétrique) asynchrone Voyons avec plus de détails. 28 Chapitre III La réplication classique III.8.3.1 Réplication asymétrique synchrone Replica Replica Ordre Maître Abonné d’écriture Abonné Copie instantanée (trigger) Maître La copie est instantanément mise à jour à chaque modification de la Base de donnée Maître ou Abonné. Si la copie échoue c’est toute la transaction qui est annulée ! III.8.3.2 Réplication symétrique synchrone Ordre d’écriture Copie instantanée (trigger) Réplica Maître Replica Abonné Ordre d’écriture Les deux Bases peuvent être modifiées, si l’une est mise à jour la propagation sur l’autre Base se fait directement. Il est à noter que la réplication fait partie de la transaction, ce qui ne ralentit que très peu le système. III.8.3.3 Réplication asymétrique asynchrone Replica Ordre Maître d’écriture Abonné Replica Ordre réplication mis en attente Abonné File attente Maître Ordre d’écriture Déclenché (trigger) La mise à jour de la Base répliquée est différée à utilisation d’un programmateur de tâches pour déclencher la réplication avec une horloge. 29 Chapitre III La réplication classique III.8.3.4 Réplication symétrique asynchrone Ordre réplication mis en attente Ordre d’écriture Replica Maître Ordre Replica Abonné File attente d’écriture Ordre d’écriture Déclenché (trigger) La mise à jour des Bases répliquées est différée à on peut mettre en place deux programmateur ou utiliser le même. 30 Chapitre III La réplication classique III.9 Quels sont les moyens de réplications ? - selon réseau La réplication par réseau correspond à l’opération effectuée pour synchroniser deux BDD accessibles sur le même réseau Exemple : Un commercial se connectant régulièrement au réseau de la société à l’aide de son portable : il met à jour les commandes clients. Poste Abonné Poste Maître Réseau Base de données Base de données Base de données 31 Chapitre III - La réplication classique selon support La réplication par support transportable correspond à l’opération effectuée pour synchroniser deux BDD complètement inaccessibles entre elles [HASA07]. Prenons l’exemple d’un site à TINDOUF et un site à Alger, régulièrement les mises à jour des bases de données sont effectuées à divers support. (Transfert par FTP, disquette, CD-ROM, ZIP, Clé USB, etc.) Voir schéma selon support réseau…. Poste Abonné Poste Maître Support transportable : CD-ROM, FTP, email Base de Données Base de Données 32 Chapitre III La réplication classique III.10 Solution Existante L étude du marché existant permet de mettre en relief les produits suivants : Ä Ä Ä Ä WDREPLIC WINDEV 12 de PC SOFT. Oracle Enterprise Manager. Microsoft SQL Server Enterprise Manager. IBM DB2 avec IBM Replication Solutions. III.11 Limites de la réplication classique La réplication classique se limite à l’utilisation de source de données homogènes (Donc un seul et unique SGBD).Vu l’évolution du monde des SGBD, il devient nécessaire de pouvoir faire communiquer des sources de données différentes (bases de données sous différents SGBD) REPLICA ABONNEE N’importe quel média : Sur place, par réseau, Par modem, via REPLICA MAITRE 33 Chapitre III La réplication classique III.12 Conclusion La réplication classique a fait ses preuves. Néanmoins, elle demeure insuffisante. De nos jours, toutes les réflexions sont basées sur l’universalité, la réplication ne peut pas faire exception à la règle. Pensons réplication universelle. 34 Vers la Réplication Universelle Chapitre IV Vers La réplication universelle IV.1 Introduction IV.1.1Définition La réplication universelle permet de répliquer des bases de données hétérogènes (*). IV.1.2 Principe de fonctionne ment Base Tierce Accès Natif Base Tierce Accès Natif Base Tierce OLE DB ODBC Réplication Universelle HF Base Tierce OLE DB ODBC HF Le principe est basé sur l’accès à la base de données à la source. Aucune importation de fichier n’est nécessaire. (*) Par hétérogène on sous entend SGBD hétérogènes. 36 Chapitre IV Vers La réplication universelle IV.1.3 Présentation de l’UDR (Universal Data Replication) Partant de la définition et du principe de fonctionnement de la réplication universelle, nous est venue l’idée de créer un centre de réplication (UDR) qui nous permettra de répliquer librement et automatiquement les bases de données. Centre de Réplication Serveur de l’entreprise INTERNET DVD, CD ou Clé USB 37 Chapitre IV Vers La réplication universelle IV.1.4. UDR puissance et facilités Vu la variété des SGBD et des systèmes d’exploitation on ne pouvait imaginer l’UDR accédant à tous les SGBD et accessible à partir de tous les systèmes d’exploitation. L’UDR étant accessible à travers tous les systèmes d’exploitation (Windows, Linux), elle constitue un noyau unique accédant à toutes les bases de données relationnelles (et autres). Hyper File ODBC Windows OLE DB Accès Base de données Linux Accès natifs Oracle, Infomix DB2, SQL, MySQL AS/400 38 Chapitre IV Vers La réplication universelle IV.1.5 l’UDR : media hétérogènes, connexion hétérogènes L’UDR supportera une variété de connexions, et utilisera n’importe quel media ACCES LOCAL WINDOWS RESEAU LOCAL WIFI LINUX UDR MODEM ADSL LIGNE SPECIALISE Dans ce qui suit nous essayerons de donner des éléments de réponse, mais il est important de connaître les notions suivantes : 39 Chapitre IV Vers La réplication universelle IV.2 Notion ODBC Qu’appelle-t-on ODBC? ODBC signifie Open DataBase Connectivity. Il s'agit d'un format défini par Microsoft permettant la communication entre des clients bases de données fonctionnant sous Windows et les SGBD du marché. Le gestionnaire ODBC est présent sur les systèmes Windows. Il existe toutefois des implémentations sur d'autres plates-formes, notamment des plates-formes Unix/Linux Sous Windows 95 et 98 le gestionnaire ODBC est disponible dans le panneau de configuration sous l'icône suivant : 40 Chapitre IV Vers La réplication universelle La technologie ODBC permet d'interfacer de façon standard une application à n'importe quel serveur de bases de données, pour peu que celui-ci possède un driver ODBC (la quasi-totalité des SGBD possèdent un tel pilote, dont tous les principaux SGBD du marché). ODBC n’est fonctionnel qu’avec Les bases de données utilisant le langage SQL. ODBC ne visent pas spécifiquement des bases de données relationnelles, mais toute base de donnée reconnaissant le langage SQL - et ce n'est pas tout à fait la même chose. Il existe ainsi des pilotes ODBC pour des bases de données qui ne sont pas des bases de données relationnelles IV.2.1 Inconvénients de la technologie ODBC Bien qu’ODBC permette un interfaçage avec des bases de données indépendamment du SGBD, cette technologie reste une solution propriétaire de Microsoft. Cela se traduit par une dépendance de la plateforme (ODBC ne fonctionne que sur les plateformes Microsoft Windows). D'autre part, ODBC est fortement lié au langage C (utilisation de pointeurs), et ODBC utilise des paramètres non standards, ce qui le rend difficile à mettre en oeuvre directement dans les programmes. IV.2.2 Pilotes ODBC par défaut Par défaut ce gestionnaire montre la liste de tous les drivers nécessaires aux clients bases de données Microsoft. IV.3 Nom des sources de données (DSN) ? ODBC permet de relier un client à une base de données en déclarant une source de données (correspondant généralement à une base de données) dans le gestionnaire ODBC (communément appelé administrateur de source de données ODBC). La source de données peut être aussi bien une base de données qu'un fichier Access, Excel ou bien même un fichier. On appelle donc DSN (Data Source Name) la déclaration de la source de données qui sera accessible par l'intermédiaire de ODBC. 41 Chapitre IV Vers La réplication universelle IV.4 Déclaration de la source de données L'administrateur de source de données ODBC (parfois appelé ODBC32 bits), disponible dans le panneau de configuration, permet de déclarer le type de données auxquels il est possible d'accéder et de leur associer un nom. L'onglet DSN système permet de voir la liste de DSN déjà installés sur le système : Pour déclarer une source de données il faut : Ä créer les données (créer une ou plusieurs tables dans une base de données ou bien créer un fichier Excel ou Access) Ä installer le driver ODBC pour la base de données si celle-ci n'est pas installée par défaut sous l'administrateur de source de données Ä Etablir la liaison ODBC dans l'onglet DSN système de l'administrateur de source de données, en cliquant sur Ajouter... puis en sélectionnant le type de driver à utiliser. 42 Chapitre IV Vers La réplication universelle L'administrateur de source de données va ensuite demander le nom à affecter à la source de données (Il s'agit du nom par lequel la base de données sera accessible), puis de sélectionner la source de données (un fichier dans le cas d'Excel ou Access, ou bien la base de données et éventuellement les tables à associer à la liaison ODBC). 43 Chapitre IV Vers La réplication universelle Il faut ensuite donner le chemin d'accès à la base de données en cliquant sur le bouton sélectionner de la fenêtre précédente La base de données devrait alors être accessible via ODBC suivant les bases de données, la procédure peut varier et des options supplémentaires peuvent être demandées, mais la configuration d'un DSN système reste globalement la même. En cas de doute, il faut se référer à la documentation de la base de données. 44 Chapitre IV Vers La réplication universelle IV.5 Introduction OLEDB OLEDB se sert d'interfaces COM (Component Object Model). Il a été conçu dans le but de remplacer ODBC. OLE DB est une nouvelle interface de bas niveau qui introduit une notion d'accès " universel " aux données. C'est-à-dire que l'interface OLE DB n'est pas réservée aux sources de données relationnelles, mais qu'elle est capable de traiter n'importe quel type de données indépendamment de leur format ou de leur méthode de stockage. Dans la pratique, cette souplesse signifie que vous pouvez accéder aux données résidant dans un tableur Excel, dans des fichiers texte ou même sur un serveur mail comme Microsoft Exchange. OLE DB est un ensemble complet d'interfaces COM (Component Object Model) capable d'offrir un accès uniformisé aux données stockées dans différentes sources d'informations. OLE DB convient aux sources de données relationnelles et non relationnelles. Il est important de noter que la technologie OLE DB apporte un avantage significatif en matière de performances et de coût de développement par rapport à ODBC (Open Database Connectivity) [BRO06, HAA99]. Pour permettre l'intégration des données ODBC dans tous les autres types de données, Microsoft offre un fournisseur de données OLE DB-ODBC, ce qui assure la prolongation de la prise en charge de la gamme étendue des pilotes ODBC de base de données relationnelle disponibles aujourd'hui. On peut ainsi accéder aux données par l'intermédiaire d'OLE DB avec les mêmes performances que si on y accédait par ODBC. IV.6 TCP/IP TCP/IP est un protocole, c'est à dire des règles de communication. IP signifie Internet Protocol : littéralement "le protocole d'Internet". C'est le principal protocole utilisé sur Internet. Internet signifie Inter-networks, c'est à dire "entre réseaux". Internet est une interconnexion des réseaux de la planète. Le protocole IP permet aux ordinateurs reliés à ces réseaux de dialoguer entre eux. Chaque ordinateur possède une adresse sur le réseau. Elle est unique. 45 Chapitre IV Vers La réplication universelle TCP/IP Transmission Control Protocol Avec TCP/IP, on peut maintenant communiquer de façon fiable entre logiciels situés sur des ordinateurs différents. TCP/IP est utilisé pour des tas de choses: Ä Dans le navigateur, le protocole HTTP utilise le protocole TCP/IP pour envoyer et recevoir des pages HTML, des images GIF, JPG et toutes sortes d'autres données. Ä FTP est un protocole qui permet d'envoyer et recevoir des fichiers. Il utilise également TCP/IP. Ä Le logiciel de courrier électronique utilise les protocoles SMTP et POP3 pour envoyer et recevoir des emails. SMTP et POP3 utilisent eux aussi TCP/IP. Ä Le navigateur (et d'autres logiciels) utilise le protocole DNS pour trouver l'adresse IP d'un ordinateur à partir de son nom (par exemple, de trouver 216.32.74.52 à partir de 'www.yahoo.com'). Le protocole DNS utilise UDP/IP et TCP/IP en fonction de ses besoins. IV.7 Accès aux bases tierces Il existe différent mode d’exécution des requêtes SQL en fonction du type d’accès effectué à la base de données IV.7.1 Accès natif Comme son nom l’indique l'accès natif à une base de données affranchit l'entreprise de l'installation de drivers ODBC et de providers OLE DB, de ce fait, éliminant une couche logicielle entre le poste client et le serveur de base de données. L'accès natif à une base de données apporte une meilleure intégration des fonctionnalités offertes par le SGBD cible et des performances optimales. IV.7.2 Accès par un driver ODBC direct Les caractéristiques de la connexion à la base de données doivent être définie dans l’administrateur ODBC de windows. Seuls les fonctions de type SQL sont utilisables pour ce type d’accès. 46 Chapitre IV Vers La réplication universelle IV.7.3 Accès ODBC via le provider OLE DB Ce type d’accès utilise le provider OLE DB spécifique pour un accès par un driver ODBC. En effet, les performances sont moins bonnes que par un driver ODBC direct. IV.7.4 Accès par un provider OLE DB Ce type d’accès utilise un provider OLE DB. Remarque Pour les modes d’accès 2 et 3, l’installation du provider lui-même ainsi que MDAC2.6 ou supérieur sur le poste est nécessaire. IV.8 Les accès ODBC aux bases de données Il permet d’accéder à une base de données définie sous un SGBD x depuis un SGBD externe gérant les accès ODBC. Dans ce cas, les données définies sous SGBD x sont alors accessibles en lecture et en écriture. Il est important de comprendre le fonctionnement et l’environnement des accès ODBC. 1. l’administrateur de données ODBC (odbcad3.exe) sur un poste client ou sur le poste serveur permet de configurer les accès de ce mode. 2. l’onglet « base de données utilisateur » contient les informations relatives à la mise en uvre du type d’accès. 3. plusieurs accès du type ODBC peuvent être configurés (le bouton « ajouter »). 4. le driver « x » relatif au SGBD « x » peut être sélectionné. 5. la validation du type d’accès pour cette source de donnée permet de sauvegarder les informations (« terminer »). 6. le nom de la source de données « x » permettra d’identifier la base de données « x » dans les programmes externes. 47 Chapitre IV Vers La réplication universelle 7. il faut indiquer les détails de la connexion de données (l’option Analyse doit être choisie ainsi que le répertoire des fichiers de données. 8. il faut sauvegarder cette configuration (validations, bouton « ok ») Quand toutes ces opérations sont complétées, la base de données est utilisable en lecture et en écriture depuis des programmes externes via le driver ODBC. IV.9 Les journaux On y distingue les journaux relatifs aux traitements sur la BDD et les journaux propres à la réplication. IV.9.1 Journaux relatifs aux traitements IV.9.1.1 définition Un journal est un fichier particulier dans lequel on mémorise automatiquement toutes les opérations réalisées sur un ou plusieurs fichiers de données depuis sa création jusqu'à sa sauvegarde en passant bien sur par toutes les opérations de mise à jour. IV.9.1.2 contenu du journal Le journal contient l’historique de l’utilisation d’un fichier c'est-à-dire : Ä La nature de l’opération (normale ou réplication) Ä Identifiant de la transaction ou de la réplication Ä L’enregistrement complet avant manipulation l’utilisateur (local, réseau ou Internet) ou modification par Ä L’auteur de la manipulation ou de la modification Ä La date de la manipulation ou de la modification Ä La nature de l’opération effectuée : ajout, modification, suppression, lecture 48 Chapitre IV Vers La réplication universelle IV.9.1.3 les types de journaux - Le journal des écritures (*.jec) Contient toutes les opérations d’ajout, de modification et de suppression. Il sert à déterminer qui a modifié le fichier et quelle est la nature de la modification effectuée. - Le journal de l’historique des accès au fichier (*.jom) Tous les ordres de lecture, d’écriture, de suppression, de modification effectués sur fichier seront enregistrés. Il sert à connaître à tout moment les opérations effectuées sur fichier, par contre il ne détermine pas la nature de l’opération donc impossible de déterminer la valeur de l’enregistrement avant et après modification. - Le journal des écritures+historique des accès (*.jhe) Toutes les opérations d’ajout, de modification et de suppression seront enregistrées dans le journal. Les ordres pour accéder au fichier seront mémorisés. Ile permet de connaître à tout moment : Ä Qui a modifié le fichier Ä Quelle est la modification effectuée Ä Quelles sont les opérations effectuées sur le fichier. Précautions à prendre Les fichiers journaux permettent d’enregistrer les opérations effectuées sur fichier pour les rejouer sur une sauvegarde en cas de problème. Il est conseillé de sauvegarder les fichiers journaux dans des répertoires, voire des disques différents que ceux utilisés pour les fichiers de données. 49 Chapitre IV Vers La réplication universelle IV.9.2 journaux propres à la réplication - Journal identifiant (*.RPc) C’est un fichier qui permet d’identifier d’une manière unique chaque réplication déclarée (identifiant de la réplication). L’installation est obligatoire sur le poste maître, mais facultative sur le poste abonné. - Journal description (*.RPB) Fichier décrivant la base de données « maître » et les bases qui lui sont abonnées. L’installation se fait sur le poste maître. - Journal (*.rpi) Fichier contenant les informations de la réplication. Il est échangé entre la base de donnée maître et abonnée. - Journal (*.syn) Fichier contenant les informations sur la base de données distante (taille, etc.) Cela permettra de prendre la décision d’utilisation des clichés. L’installation se fait sur le poste maître et poste abonné. IV.10 Contraintes pour réussir la réplication 1. Pour chaque analyse dans la description générale des fichiers, prévoir un descriptif qui nous indiquera si le fichier sera répliqué ou non (un booléen : vrai pour réplication sinon faux). Effectivement, cet élément va nous éviter de nous tromper lors de la sélection des fichiers à répliquer et en même temps elle nous permet la non sélection d’office des fichiers temporaires. 2. Pour mettre en place la réplication, il est obligatoire de créer la rubrique (ou 2 rubriques) de type date et heure dans chaque fichier. cette ou ces rubriques seront mises à jour par l’application lors de la modification ou de l’ajout d’un enregistrement. Si les bases de données utilisent différents fuseaux horaires, on utilise le format universel c'est-à-dire heure GMT. 3. Le poste sur lequel est installé le réplica abonné doit avoir accès en lectureécriture au poste où le replica maître est installé. 4. ( 2 ) pour effectuer la réplication, pour identifier le chemin des fichiers de données a répliquer, il est possible d’utiliser une lettre désignant le disque. Dans 2 Uniquement pour la réplication par réseau 50 Chapitre IV Vers La réplication universelle ce cas le poste qui lance l’opération de réplication doit utiliser la même lettre de disque que le poste avec lequel il réplique. Par exemple, si la réplication est lancée depuis le poste abonné : Ä Sur le poste maître, le répertoire des données est sur « c: » Ä Le poste abonné doit associer au « c: » (du poste maître) soit des chemins UNC soit des chemins relatifs Remarque : la réplication par support transportable permet uniquement une réplication mono directionnelle : Ä Soit du replica maître vers le replica abonné Ä Soit du replica abonné vers le replica maître IV.11 Notion de déclencheurs (triggers) IV.1.2 Définition Un trigger correspond à l'association d'une procédure et d'une fonction d'écriture sur fichier. Un trigger permet d'exécuter facilement des traitements lors de la modification d'un enregistrement. Les procédures appelées par l'intermédiaire des triggers peuvent être exécutées avant ou après l'opération d'écriture réalisée sur fichier. Ä Trigger avant Un trigger est dit avant s'il est appelé avant l'opération sur fichier. Il peut par exemple vérifier la cohérence des rubriques. Un booléen est renvoyé, pour signaler la validité de l'opération par conséquent sa confirmation ou son annulation. Ä Trigger après Un trigger est dit après s'il est appelé après l'exécution de l'opération sur fichier. 51 Chapitre IV Vers La réplication universelle IV.1.3 Intérêt des triggers Les triggers permettent d'associer des traitements à toutes les fonctions gérantes fichiers, sans se soucier de l'emplacement de ces fonctions dans le programme. L’utilisation des triggers permet de diminuer la taille de code. IV.1.4 Manipulation des triggers Pour créer un trigger on définit Ä le nom de fichier sur lequel il agit Ä les fonctions déclanchant le trigger (ajout, modification, etc.) Ä la procédure associée Ä son type (avant, après) IV.1.4.1 Procédure associée Code écrit selon les critères définis. Activation/désactivation d'un trigger Il est possible de désactiver temporairement un trigger particulier. Destruction du trigger Lorsqu’un un trigger est détruit, ses procédures ne le sont pas. Elles restent à la charge du programmeur. 52 Solution Technique Chapitre V __ Solution technique V.1 Introduction Faire communiquer des Bases de données Hétérogènes c’est important et c’est ainsi que nous est venue l’idée de créer un centre de réplication que l’on nommera (Universal Data Replication), à partir duquel on peut définir, planifier et lancer des réplications. L’Universal Data Réplication « UDR » est une idée originale, mais vu l’hétérogénéité des SGBD et de sources de données à manipuler, la gestion de l’UDR ne peut se faire sans la création d’un centre d’administration et un centre d’exécution. Le centre d’administration n’est autre qu’une interface utilisateur que l’on nommera ‘ADMIN_UDR’» ; il aura pour mission : Ä de définir avec exactitude toutes les réplications prévues c'est-à-dire l’identification de la réplication, les bases de données manipulées, les différentes connexions aux sources de données, la méthode de propagation, les différents sites gérés, les différents conflits et les différents utilisateurs. Ä de pouvoir modifier une réplication ayant déjà propagé des données (modification du scénario), ainsi que ses utilisateurs. Ä de pouvoir supprimer une réplication. Ä et enfin de générer un code (une sorte de RAD), pouvant aider l’utilisateur dans la réalisation du centre d’exécution. L’ADMIN_UDR aura pour objet de préparer la base de travail pour le centre d’exécution. Le centre d’exécution que l’on nommera ‘EXEC_UDR’ n’est autre qu’un programme récupérant les informations fournies par ADMIN_UDR et qui matérialise l’exécutif de la réplication, c'est-à-dire qu’il commence à propager les données selon les règles définies sous ADMIN_UDR. Si une bonne administration est définie, le programme de réplication devient très simple à réaliser (écriture du code) et facile à gérer. Pour conclure, nous dirons que la réplication elle-même n’est pas aussi complexe (synchronisation des données), mais c’est son administration (définition des règles) qui l’est, et c’est la raison pour laquelle nous lui consacrons cette thèse. Malgré cet avantage de gestion, l’UDR telle qu’elle est présentée montre ses limites, car elle se limite à une même base de données. 54 Chapitre V __ Solution technique Nous ne nous arrêtons pas à cela : la notion d’une UDR+ qui aura pour mission de répliquer plusieurs bases de données (homogènes ou hétérogènes) de tout horizons mûrit déjà dans notre esprit. V.2 Présentation de la solution UDR + ADMIN_UDR EXEC_UDR Interface Administration Universelle Serveur De réplication Universelle Description de la réplication Forte Interaction Programme utilisant la description de la réplication et les codes générés UDR Le serveur de réplication puise des informations à partir de l’administration universelle et s’en sert pour faire les réplications nécessaires. Dans ce qui suit, nous développerons la partie concernant l’interface d’administration. 55 Chapitre V __ Solution technique V.2.1 Principe de fonctionnement Projet Rep 2 Projet Rep 1 Projet Rep n ADMIN_UDR Replica Maître Tous Replica Abonnés Associés Tables utilisées Tuples utilisés Planning Connexions utilisées Utilisateurs Mode Réplication Média utilisé Mode d’Emploi + Suggestion de code Rep 1 Rep 2 Rep n EXEC_UDR 56 Chapitre V __ Solution technique V.2.2 Cycle de vie Cahier de charge Réplication Conception Mis en place U Test réplication D R Déploiement Maintenance et Evolution 57 Chapitre V __ Solution technique V.3 Plateformes de développement WinDev12 (AGL) s’avère un choix intéressant pour l'environnement de développement utilisé pour le projet. En effet, la plateforme offre certaines possibilités pour exécuter des réplications entre bases de données hétérogènes, reposant sur sa connexion universelle des données. V.4 Enchaînement des traitements a a 58 Chapitre V __ Solution technique IV.4.1 Configuration nouvelle réplication PHASE : Description générale a a 59 Chapitre V __ Solution technique a a 60 Chapitre V __ Solution technique a 61 Chapitre V __ Solution technique IV.4.2 Configuration nouvelle réplication PHASE : Description Utilisateur (Facultative) a Crypté 62 Chapitre V __ Solution technique IV.4.3 Configuration nouvelle réplication PHASE : Génération a 63 Chapitre V __ Solution technique a 64 Chapitre V __ Solution technique a a 65 Chapitre V __ Solution technique a 66 Chapitre V __ Solution technique V.5 L’édition d’une réplication Elle permet de modifier certains éléments propres à la réplication (droit d’activation, le mode, espace commun, la règle des conflits et les filtres). Principe L’administrateur choisi une réplication parmi les projets de réplications, toutes les parties non permise à la modification ne sont pas activées. V.6 Sauvegarder C’est prendre la configuration définie et l’insérer (modifier) dans la liste des projets. V.7 Suppression de projet La suppression n’est tolérée que si la réplication en cours n’a jamais été activée. La suppression d’un projet de réplication entraîne automatiquement la suppression de tous ses composants c'est-à-dire la suppression : Ä de ses procédures Ä de ses utilisateurs Ä de ses journaux Ä et finalement de la liste des projets V.8 Mise à niveau : C’est une procédure qui permet de synchroniser le projet lui-même (vérifier l’intégrité du projet de réplication en cours (les clés primaires, clés étrangères, rubriques, etc.) 67 Chapitre V __ Solution technique V.9 Description de l’analyse ADRESSE EMAIL Chaîne AUTORISATION Entier sur 2 Octets CHEMIN Chaîne Chaîne Chaîne Clé doublon Type Clé Unique Rubrique Taille V.9.1 Dictionnaire des rubriques 50 Utilisée par… EMAIL REPLICATEUR 80 80 80 12 3 REPLICABONNE REPLICAMAITRE CONNEXION O CLETABLE Clé composée CODE_REPLICATION Chaîne DIMANCHE Booléen PROJETREPLICATION ESPACE_COMMUN Entier sur 2 Octets PROJETREPLICATION ETAT Entier sur 2 Octets PROJETREPLICATION FILTRE_TABLE Chaîne GES_CONFLIT Entier sur 2 Octets HEURE Heure HOTE Chaîne IDCONNEXION Entier sur 4 Octets PROJETREPLICATION 80 TABLES_A_REPLIQUER PROJETREPLICATION 4 10 PROJETREPLICATION FTP O O Identifiant automatique IDPROJETREPLICATION Entier sur 4 Octets Entier sur 4 Octets O O Entier sur 4 Octets Identifiant automatique Entier sur 4 Octets IDREPLICABONNE Entier sur 4 Octets IDREPLICAMAITRE O O O Identifiant automatique IDREPLICATEUR Identifiant automatique IDTABLES_A_REPLIQUER Identifiant automatique JEUDI Booléen LOGIN Chaîne Chaîne REPLICMAITRE CONNEXION EMAIL FTP TABLE_A_REPLIQUER REPLICABONNE O Entier sur 4 Octets REPLICABONNE PROJETREPLICATION O Identifiant automatique TABLES_A_REPLIQUER REPLICATEUR O O O Entier sur 4 Octets TABLES_A_REPLIQUER CONNEXION O O O O Entier sur 4 Octets Entier sur 4 Octets IDREPLICA TABLE_A_REPLIQUER REPLICABONNE REPLICMAITRE REPLICATEUR TABLES_A_REPLIQUER PROJETREPLICATION 50 50 EMAIL FTP LUNDI Booléen PROJETREPLICATION MARDI Booléen PROJETREPLICATION 68 Chapitre V __ Solution technique MERCREDI Booléen PROJETREPLICATION MODE_ACCES Entier sur 2 Octets CONNEXION MODE_REPLICATION Entier sur 4 Octets PROJETREPLICATION MOT_DE_PASSE Chaîne 10 10 10 10 50 50 50 50 50 50 10 Chaîne Chaîne Chaîne REPLICATEUR PROJETREPLICATION EMAIL FTP O NOM_CONNEXION Chaîne NOM_REPLICABONNE Chaîne NOM_REPLICAMAITRE Chaîne NOM_REPLICATEUR Chaîne NOM_REPLICATION Chaîne NOM_TABLE Chaîne PORT Chaîne SAMEDI Booléen SERVEUR_POP Chaîne SERVEUR_SMTP Chaîne SGBD_UTILISE Entier sur 2 Octets CONNEXION TYPE_ESPACE Entier sur 2 Octets REPLICABONNE TYPE_REPLICATION Entier sur 2 Octets PROJETREPLICATION VENDREDI Booléen PROJETREPLICATION CONNEXION REPLICABONNE REPLICMAITRE REPLICATEUR PROJETREPLICATION TABLES_A_REPLIQUER FTP PROJETREPLICATION 30 30 EMAIL EMAIL REPLICATEUR TABLES_A_REPLIQUER EMAIL FTP 3 4 153 180 176 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O Compress.mémo Sécurisé6 Jnl.Lect/Ecr5 Jnl.Ecr4 Réplication +de 2Go Espace3 Taille enreg 102 103 162 153 81 Crypt.mémo REPLICMAITRE 1 1 1 1 1 1 1 1 Crypt.index REPLICABONNE O O O O O O O O Crypt.données PROJETREPLICATION N°génération CONNEXION Id.auto. Abréviation V.9.2 Liste des Fichiers Espace : Compléter des chaînes par des espaces. Jnl.Ecr : Journalisation des écritures. 69 Chapitre V __ Solution technique IDCONNEXION IDPROJETREPLICATION Identifiant de CONNEXION Identifiant de PROJETREPLICATION SGBD_UTILISE SGBD Utilisé MODE_ACCES Type d Accès NOM_CONNEXION Nom de la Connexion CHEMIN Chemin Id.auto (4 Octets) Entier sur 4 Octets Entier sur 4 Octets Entier sur 4 Octets Chaîne Chaîne Val.Défaut Sens Clé Doublon Type Clé Unique Libellé Taille Ä CONNEXION : Connexion.fic o 0 o 0 50 o 80 CODE_REPLICATION Identifiant de PROJETREPLICATION Code réplication Id.auto. (4 octets) Chaîne NOM_REPLICATION Nom de réplication MODE_REPLICATION Mode réplication TYPE_REPLICATION Maître Vers Abonne ou Abonne Vers Maître ETAT Active ou Non MOT_DE_PASSE Mot de passe GES_CONFLIT Gestion des conflits HEURE Heure Chaîne Entier sur 2 Octets Entier sur 2 Octets Entier sur 2 Octets Chaîne Entier sur 2 Octets Heure (hh :mm) SAMEDI Journée IDPROJETREPLICATION 5 6 Val.Défaut Sens Clé Doublon Type Clé Unique Libellé Taille Ä PROJETREPLICATION : Projetreplication.fic* o 3 50 0 0 0 10 0 0 Booléen Jnl.Lect/Ecr : Journalisation des lectures et écritures Sécurisé : Mode sécurisé renforcé 70 Chapitre V __ Solution technique DIMANCHE Journée Booléen LUNDI Journée Booléen MARDI Journée Booléen MERCREDI Journée Booléen JEUDI Journée Booléen VENDREDI Journée Booléen NOM_REPLICABONNE Identifiant de REPLICABONNE Nom_replica abonné IDPROJETREPLICATION Identifiant projet Replica IDREPLICAMAITRE Identifiant de Replica maître IDCONNEXION Identifiant de Connexion TYPE_ESPACE Type Espace ESPACE_COMMUN Espace commun CHEMIN Chemin de données IDREPLICABONNE Id.auto (4 Octets) Chaîne Entier sur 4 Octets Entier sur 4 Octets Entier sur 4 Octets Entier sur 2 Octets Entier sur 2 Octets Chaîne Val.Défaut Sens Clé Doublon Type Clé Unique Libellé Taille Ä REPLICABONNE : Replicabonne.fic O O O 0 O 0 O 0 0 80 71 Chapitre V __ Solution technique IDREPLICAMAITRE NOM_REPLICAMAITRE Identifiant de replica maître Identifiant de PROJETREPLICATION IDPROJETREPLICATION Identifiant de projet replica IDCONNEXION Identifiant de la Connexion CHEMIN Chemin de données Id.auto. (4 Octets) Chaîne Entier sur 4 Octets Entier sur 4 Octets Chaîne Val.Défaut Sens Clé Doublon Type Clé Unique Libellé Taille Ä REPLICAMAITRE : Replicamaitre.fic O 50 O 0 O O 80 IDREPLICATEUR Identifiant de replicateur NOM_REPLICATEUR Nom replicateur MOT_DE_PASSE Mot de passe AUTORISATION Autorisation IDPROJETREPLICATION Identifiant de projet replica Id.auto (4 Octets) Chaîne Chaîne Entier sur 4 Octets Entier sur 4 Octets Val.Défaut Sens Clé Doublon Type Clé Unique Libellé Taille Ä REPLICATEUR : Replicateur.fic O 50 10 O 0 O 0 72 Chapitre V __ Solution technique IDTABLES_A_REPLIQUER Identifiant de Tables à répliquer IDCONNEXION Identifiant de connexion NOM_TABLE Identifiant de projet de replication Nom de la table FILTRE_TABLE Filtre Table IDREPLICABONNE Identifiant du réplica abonné CLETABLE Cletable IDPROJETREPLICATION Id.auto (4 Octets) Entier sur 4 Octets Entier sur 4 Octets Chaîne Chaîne Entier sur 4 Octets Clé composée : IDPROJETREPL ICATION+IDRE PLICABONNE+ IDTABLE_A_R EPLIQUER Val.Défaut Sens Clé Doublon Type Clé Unique Libellé Taille Ä TABLES_A_REPLIQUER : Table_a_repliquer.fic O O 0 O 0 50 80 O 12 O 73 Chapitre V __ Solution technique IDEMAIL Identifiant de Email LOGIN MOT_DE_PASSE Login Identifiant de Maître ou abonné Mot de passe SERVEUR_POP Serveur pop SERVEUR_SMTP Serveur SMTP IDREPLICA Id.auto (4 Octets) Chaîne Entier sur 4 Octets Chaîne Chaîne Chaîne Val.Défaut Sens Clé Doublon Type Clé Unique Libellé Taille Ä EMAIL : Email.Fic O 50 0 0 O 10 30 30 Id.auto (4 Octets) Chaîne Entier sur 4 Octets Chaîne Chaîne IDFTP Identifiant de FTP LOGIN MOT_DE_PASSE Login Identifiant de Maître ou abonné Mot de passe HOTE Hôte PORT Port Chaîne CHEMIN Chemin Chaîne IDREPLICA Val.Défaut Sens Clé Doublon Type Clé Unique Libellé Taille Ä FTP : Fitp.fic O 50 0 O 0 10 20 10 80 74 Chapitre V __ Solution technique V.10 Traitement associé à la réplication V.10.1 Traitement Trigger avant Opération sur fichier Non Si Trigger actif Oui Initialiser Trigger à vrai Vérification des contraintes Oui Non Stop Erreur Renvoyer Faux 75 Chapitre V __ Solution technique V.10.2 Traitement Trigger après Début Non Si Trigger Avant = vrai Stop -Jounalisation -Mise à jour effective Non Non Oui Tester Table Importante Si Rep=Bidirectionnelle synchrone Oui Oui Utiliser Cliché Reporter Mise à Jour Lancer Synchronisation 76 Chapitre V __ Solution technique Début Synchronisation Données à répliquer Non Oui Donnée Maître Vers Abonné Oui Info plus récente Ecriture Cible Droit Maître Oui Non Droit Abonné Oui Donnée Abonné vers Maître Non Droit aucun Non Ouverture Boite de dialogue Stop Action selon Réponse Journalisation 77 Chapitre V __ Solution technique Remarque Dans le cas de la réplication asynchrone, on peut se passer des clichés et opérer directement sur les tables à répliquer en utilisant la technique des indexes (sur date et heure). 78 Conclusion et perspectives Vers la réplication Universelle Le travail présenté dans cette thèse s’inscrit dans le cadre de la réplication. Nous avons d’abord présenté les notions de bases de données et de systèmes de gestion de bases de données. Ensuite, nous avons montré la différence entre la copie, la sauvegarde et la réplication, qui elles-mêmes assurent une partie de la sécurité des données, puis nous avons mis en évidence l’avantage de la réplication par rapport à la sauvegarde. Nous appelons réplication classique toute réplication mono SGBD. Tous les aspects de la réplication classique ont été présentés. Une analyse de l’évolution du monde informatique a montré les limites de la réplication classique. Pour combler ce déficit, nous avons présenté une ébauche de l’UDR. La solution présentée fait abstraction des systèmes d’exploitation utilisés, des SGBD dans lesquels les réplicas sont définis, et des supports utilisés. Elle permet une réplication multi SGBD, multi supports, multi systèmes d’exploitation. Les propositions que nous avons exposées dans cette thèse marquent une étape dans notre projet que nous souhaitons poursuivre à court terme et à long terme sur deux aspects : 1- nous souhaitons conduire une évaluation du prototype (administration de réplication) qui devra, en particulier, permettre d’analyser comment un utilisateur non expérimenté appréhende la notion de réplication. Il est évident que cette évaluation permettra son amélioration ; 2- le serveur de réplication qui constituera le deuxième prototype ainsi que le couplage entre le prototype 1 (réalisé dans cette thèse) et le prototype 2. Un tel système est une condition forte pour la promotion de la réplication des bases de données hétérogènes. Il reste à imaginer, spécifier, développer et évaluer un type de réplication de bases de données hétérogènes sans contraintes (bases de données identiques), c'est-à-dire aller vers la « réplication update ». Mais ceci nous engage fortement dans un autre domaine de recherche sur lequel il serait nécessaire de s’investir pleinement. 80 Glossaire Vers la réplication universelle A AGL Atelier de Génie Logiciel ADSL Asymetric Digital Suscriber Line. Service d'accès à l'Internet utilisant les lignes téléphoniques classiques, en utilisant une bande passante. API Application Programming Interface: Bibliothèque de fonctions destinées à être utilisées par les programmeurs dans leurs applications. B BANQUE DE DONNEES Le sens est proche de celui d’une base de données, à la différence que la base exclu la répétition et est plus strictement structurée. Souvent elle est constituée de plusieurs bases de données. BASE DE DONNEES Une base de données, usuellement abrégée en BD ou BDD, est un ensemble structuré et organisé permettant le stockage de grandes quantités d'informations afin d'en faciliter l'exploitation (ajout, mise à jour, recherche de données) BDD HETEROGENES Base De Données gérées par différents SGBD C CDROM Compact Disc Read Only Memory est un disque compact contenant toutes sortes de données Numériques. 82 Glossaire Vers la réplication universelle CLE USB Une clé USB (ou clef USB) est une unité de stockage de petit format « dongle » se connectant sur le port USB (Universal Serial Bus) d’un ordinateur. On peut l’assimiler à (une mémoire flash ou un mini disque dur), à laquelle on peut accéder. COM Component Objet Model connu sous le nom de ActiveX, est un composant logiciel (comme les DLL) créé par Microsoft, permettant de dialoguer plusieurs logiciels. COPIE Reproduire à l’identique un enregistrement, un ou plusieurs fichiers. D DSN Data Source Name (source de données) permet de faire le lien avec une base de données. DVD Digital Versatile Disc. Support de stockage de données numérique, de forme identique à un CD-ROM. Il peut contenir actuellement jusqu’à 4,7 Go de données. E EMAIL Adresse de courrier électronique ENREGISTREMENT Un enregistrement est un élément d’un fichier ou d’une base de données. 83 Glossaire Vers la réplication universelle F FICHIER Fichier est une collection d’informations de même nature, telle qu’un programme, des données. Un fichier est caractérisé par un nom, un chemin d’accès et un format. FTP File Transfer Protocol est un protocole applicatif pour le transfert de fichiers sur Internet. G GIF Graphics Interchange Format, un format de données informatique d'image numérique. GPRS Global Packet Radio Service est une amélioration de la technologie GSM (Global System for Mobile communications.) qui permet des connexions en mode données plus rapides. H HF Hyper File, Format de fichier de grande capacité. HTML Hyper Text Markup Langage. Langage permettant de créer des pages Web. HTTP Hyper Text Transfer Protocol. Protocole pour la transmission des pages Web depuis un serveur vers un navigateur client. 84 Glossaire Vers la réplication universelle I INTERNET INTERconnexion of NETworks : Ensemble de réseau reliés entre eux et se comportant comme IP Internet Protocol J JPG Joint Photographic Experts Group (format d'image permettant un Impressionnant taux de compression) L LDD Langage de Description des Données LMD Langage de Manipulation des Données M MDAC 2.6 Making IIS and Data Access Component MODE ASYNCHRONE La mise à jour de la table répliquée est différée 85 Glossaire Vers la réplication universelle MODE SYNCHRONE La copie est instantanément mise à jour O ODBC Open Data Base Connectivity : c est une interface stratégique conçue par Microsoft pour accéder à des bases de données dans un environnement hétérogène. OLE DB Object Linking and Embedding Data Base est une API développée par Microsoft permettant l'accès aux données stockées dans différentes sources. P POP 3 Post Office Protocol (protocole de bureau de poste récupérer le courrier sur serveur distant) PROVIDER Nom anglais désignant fournisseur d'accès internent R REPLICA ABONNE Le site déclaré esclave dans une réplication. 86 Glossaire Vers la réplication universelle REPLICA MAITRE Le site déclaré maître dans une réplication REPLICATION Mécanisme de copie automatique d'une base de données vers une autre, permettant de rapprocher des données de l'utilisateur. REPLICATION ASYMETRIQUE Les copies de données ne se font que dans un sens REPLICATION SYMETRIQUE Les copies de données se font dans les deux sens S SAUVEGARDE Copie de données essentielles réalisée afin de les préserver d'une destruction malheureuse. SGBD Système de Gestion de Bases de Données SGBDR SGBD Relationnel, basé sur le modèle mathématique. SMTP Simple Mail Transfer Protocol (protocole simple de transfert de courrier) SPYWARES Contraction de "spy" et "software", (logiciel espion) SQL Sequel Query Language 87 Glossaire Vers la réplication universelle SYNCHRONISATION Lorsqu'un utilisateur ajoute, modifie, ou supprime un fichier à l'endroit A, le processus de synchronisation entre A et B ajoutera, modifiera, ou supprimera le même fichier à l'endroit B. T TCP Transmission Control Protocol; Protocole utilisé sur le réseau Internet pour transmettre des données entre deux machines. TRIGGER Un trigger ou déclencheur est un événement qui provoque l'exécution d'un algorithme. Il est souvent associé aux opérations sur fichier. U UDP User Datagram Protocol (Protocole que l'on peut employer à la place de quand la fiabilité de la transmission n’est pas critique) TCP UNC Universal Naming Convention (permet d'identifier un fichier partagé dans un réseau quelque soit le support) W WINDEV AGL Atelier de Génie Logiciel, développé par PC SOFT. 88 Bibliographie Vers une réplication universelle [AAAS97] D. Agrawal , G. Alonso , A. El Abbadi , I. Stanoi, Exploiting Atomic Broadcast in Replicated Databases (Extended Abstract), Proceedings of the Third International Euro-Par Conference on Parallel Processing, pp.496-503, August 26-29, 1997. [ACL87] R. Agrawal , M. J. Carey , M. Livny, Concurrency control performance modeling: alternatives and implications, ACM Transactions on Database Systems (TODS), v.12 n.4, pp.609-654, 1987. [ALO97] G. Alonso, “Partial Database Replication and Group Communication Primitives,” Proc. Second European Research Seminar on Advances in Distributed Systems (ERSADS '97), pp. 171-176, 1997. [AT02] Y. Amir , C. Tutu, From Total Order to Database Replication, Proceedings of the 22 nd International Conference on Distributed Computing Systems (ICDCS'02), pp.494, 2002. [BHG87] P. A. Bernstein , V. Hadzilacos , N. Goodman, Concurrency control and recovery in database systems, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1987. [BRO06] F. Brouard. Optimisation des bases de données MS SQL Server. Séminaire Européen de Recherche sur les Systèmes Distribués, Genève, 2006. [BT93] O Babaoglu , Sam Toueg, Understanding Non-Blocking Atomic Commitment, University of Bologna, 1993. [CHA01] R. Chapuis. Les bases de données Oracle, Media Press, 2001. [CHA84] J.-M. Chang, Simplifying distributed database systems design by using a broadcast network, ACM SIGMOD Record, v.14 n.2, 1984. [COR04] A. Corn . Oracle Advanced Master-to-Master Replication from WisdomForce. Rapport de recherche, WisdomForce Technologies, Inc, 2004. [CSI94] CSIM18 Simulation Engine (C++ Version), Mesquite Software Inc., Austin, Texas 78759, 1994. [CT92] S. Chen and D. Towsley, “A Performance Evaluation of RAID Architectures,” Technical Report UM-CS-1992-067, Dept. of Computer Science, Univ. of Masschusetts, Amherst, 1992. [DMMA02] K. Day, F.A. Masoud, A.B. Mnaouer, and M. Al-Towaiq (Oman). Centralized Versus Replicated Client-Server Database Systems. Proceeding of Applied Informatics, pp. 149-161, 2002. 90 Bibliographie Vers une réplication universelle [FP01] S. Frølund and F. Pedone, “Continental Pronto,” Proc. 20th Symp. Reliable Distributed Systems, pp. 46-55, 2001. [GHOS96] J. Gray , P. Helland , P. O'Neil , D. Shasha, The dangers of replication and a solution, Proceedings of the 1996 ACM SIGMOD, international conference on Management of data, pp.173-182, 1996. [GRA07] Y. Grandmontagne. NetApp : le logiciel s'impose entre application et réplication, Rapport de recherche, Silicon, 2007. [HAA00] J. A. Holliday , D. Agrawal , A. El Abbadi, Using Multicast Communication to Reduce Deadlock in Replicated Databases, Proceedings of the 19th IEEE Symposium on Reliable Distributed Systems (SRDS'00), pp.196, 2000. [HAA99] J. A. Holliday , D. Agrawal , A. El Abbadi, The Performance of Database Replication with Group Multicast, Proceedings of the Twenty-Ninth Annual International Symposium on Fault-Tolerant Computing, pp.158, 1999. [HAA99-1] J. A. Holliday , D. Agrawal , A. El Abbadi, The Performance of Replicated Databases using Atomic Broadcast Group Communication, University of California at Santa Barbara, Santa Barbara, CA, 1999. [HASA07] A. Haj Said, L. Amanton, B. Sadeg and B. Ayeb. Contrôle de la réplication dans les SGBD temps réel distribués. Schedae Conference, Prepublication n° 13, fascicule n° 2, pp. 41-49, 2007. [HSAA03] J. A. Holliday , R. Steinke , D. Agrawal , A. El Abbadi, Epidemic Algorithms for Replicated Databases, IEEE Transactions on Knowledge and Data Engineering, v.15 n.5, pp.1218-1238, 2003. [HT94] V. Hadzilacos , S. Toueg, A Modular Approach to Fault-Tolerant Broadcasts and Related Problems, Cornell University, Ithaca, NY, 1994. [JA91] R. Ja, The Art of Computer System Performance Analysis: Techniques for Experimental Design, Measurement, Simulation and Modeling. John Wiley and Sons, 1991. [JPAA01] R. Jiménez-Peris , M. Patiño-Martínez , G. Alonso , S, Arévalo, A Low-Latency Non-blocking Commit Service, Proceedings of the 15th International Conference on Distributed Computing, pp.93-107, 2001. [KA00] B. Kemme , G. Alonso, Don't Be Lazy, Be Consistent: Postgres-R, A New Way to Implement Database Replication, Proceedings of the 26th International Conference on Very Large Data Bases, pp.134-143, 2000. 91 Bibliographie Vers une réplication universelle [KA00-1] B. Kemme , G. Alonso, A new approach to developing and implementing eager database replication protocols, ACM Transactions on Database Systems (TODS), v.25 n.3, pp.333-379, 2000 [KA98] B. Kemme , G. Alonso, A Suite of Database Replication Protocols based on Group Communication Primitives, Proceedings of the The 18th International Conference on Distributed Computing Systems, pp.156, 1998. [KD98] I. Keidar , D. Dolev, Increasing the resilience of distributed and replicated database systems, Journal of Computer and System Sciences, v.57 n.3, pp.309-324, 1998 [KEI94] I. Keidar, “A Highly Available Paradigm For Consistent Object Replication,” master's thesis, The Hebrew Univ. of Jerusalem, Israel, 1994. [KEM00] B. Kemme, “Database Replication for Clusters of Workstations,” PhD dissertation, Swiss Federal Inst. of Technology Zürich, Switzerland, 2000. [KP97] F. Kramarz et O. Perrault. Bases de données et SGBD : de la conception à la mise en uvre , Edition Eyrolles, 1997 [MOR07] J. Mortar. MySQL master-master : réplication maître à maître, rapport de recherche, IBM Rational Systems, 2007. [MOR07-2] J. Mortar. Réduire le temps d'initialisation d'un esclave de réplication. Rapport de recherche, IBM Rational Systems, 2007. [NSB97] K. Nørvåg O. Sandstå and K. Bratbergsengen, “Concurrency Control in Distributed Object-Oriented Database Systems,” Proc. Advances in Databases and Information Systems Conf., pp. 9-17, 1997. [ORC99] Oracle 8i concepts, Release 2, Oracle Corp. Publ., 1999. [PED99] F. Pedone, “The Database State Machine and Group Communication Issues,” PhD dissertation, École Polytechnique Fédérale de Lausanne, Switzerland, 1999. [PF00] F. Pedone and S. Frølund, “PRonto: A Fast Failover Protocol for Off-the-Shelf Commercial Databases,” Technical Report HPL-2000-96, Software Technology Laboratory, Hewlett-Packard Laboratories, Palo Alto, Calif., 2000. 92 Bibliographie Vers une réplication universelle [PG89] F. M. Pittelli , H. Garcia-Molina, Reliable scheduling in a TMR database system, ACM Transactions on Computer Systems (TOCS), v.7 n.1, pp.25-60, 1989. [PGS03] F. Pedone , R. Guerraoui , A. Schiper, The Database State Machine Approach, Distributed and Parallel Databases, v.14 n.1, pp.71-98, 2003. [PGS98] F. Pedone , R. Guerraoui , A. Schiper, Exploiting Atomic Broadcast in Replicated Databases, Proceedings of the 4th International Euro-Par Conference on Parallel Processing, pp.513-520, 1998. [PS98] F. Pedone , A. Schiper, Optimistic Atomic Broadcast, Proceedings of the 12th International Symposium on Distributed Computing, pp.318-332, 1998. [SCH90] F. B. Schneider, Implementing fault-tolerant services using the state machine approach: a tutorial, ACM Computing Surveys (CSUR), v.22 n.4, pp.299-319, 1990. [SSP06] N. Schiper, R. Schmidt, and F. Pedone. Brief announcement: Optimistic Algorithms for Partial Database Replication. Rapport de recherche, université Lugano et EPFL Lausanne, Suisse, 2006. [TOM85] J. L. Tomas. Bases de données « conception réalisation et implantation », Edition Eyrolles, 1985. [TR06] An Adaptive Probabilistic Replication Method for Unstructured P2P Networks. Rapport de recherche, LIP, France, 2006 [TRI93] P. Trigano. Méthodologie de la programmation, Eyrolles, 1993. [UDS00] P. Urbán X. Défago and A. Schiper, “Contention-Aware Metrics for Distributed Algorithms: Comparison of Atomic Broadcast Algorithms,” Proc. Ninth IEEE Int'l Conf. Computer Comm. and Networks (IC3N 2000), 2000. [USDN01] P. Urban , A. Schiper , X. Defago, A. Neko: A Single Environment to Simulate and Prototype Distributed Algorithms, Proceedings of the The 15th International Conference on Information Networking, pp.503-510, 2001. [VAN00] R. Vandewall, “Database Replication Prototype,” master's thesis, Rijksuniversiteit Groningen and École Polytechnique Fédérale de Lausanne, Netherlands and Switzerland, 2000. [WD08] Pc soft : Windev 7.5 ; Windev 9 ; Windev 12. PC Soft Publ., 2008. 93 Bibliographie Vers une réplication universelle [WEN06] J. M. Wendt. Host-based replication. Rapport de recherche, Oracle Corp., 2006. [WIE05] M. Wiesmann. Comparison of Database Replication Techniques Based on Total Order Broadcast. IEEE Transactions on Knowledge and Data Engineering, Volume 17 , N 4, pp. 551 - 566, 2005. [WS04] M. WIESMANN and A. SCHIPER; Beyond 1-safety and 2-safety for replicated databases: Group-safety. Lecture notes in computer science, vol. 2992, pp. 165-182, 2004. [WSPKA00] M. Wiesmann , A. Schiper , F. Pedone , B. Kemme , G. Alonso, Database Replication Techniques: A Three Parameter Classification, Proceedings of the 19th IEEE Symposium on Reliable Distributed Systems (SRDS'00), pp.206, 2000. [WPSKA00-1] M. Wiesmann , F. Pedone , A. Schiper , B. Kemme , G. Alonso, Understanding Replication in Databases and Distributed Systems, Proceedings of the The 20th International Conference on Distributed Computing Systems ( ICDCS 2000), pp.464, 2000. 94 Bibliographie Vers une réplication universelle Webograhie ADAP http://adapt.asr.cnrs.fr/reunions/20051206/slides/gilliot. pdf ; « Etude d'un service de réplication » ANYW www.ianywhere.com ; « Réplication de données avec replication Server » CCM www.commentcamarche ; « Sauvegarde informatique » DEFMA www.definitions-marketing.com ; « Définition SGBD » DICPHP www.dictionnaire.phpmyvisites.net/definition-Replication DRAP www.dataprotex.be ; « Sauvegarde informatique » FUTSI www.futura-sciences.com ; « Définition SGBD » GREG www.greg.rubyfr.net ; « Introduction à la réplication des bases de données » linux magazine, Fév. 2004 IKOUL www.supportikoula.com ; « Comment répliquer deux bases de données avec MYSQL » JDN www.journaldunet.com ; « Sécurité informatique » JDN 1 www.journaldunet.com ; « Réplication de bases entre continuité de service et disponibilité » LORI www.loria.fr ; « Réplication de données » 95 Bibliographie Vers une réplication universelle LINUX www.linux-france.org ; « Définition SGBDR » LRI www.lri.fr/~antoine/Courses ; « Cours base de données » MS www.technet.microsoft.com ; « Fonctionnement de la réplication » Exchange Server MSH www.msdn2.microsoft.com ; « Intégration de données hétérogènes » NACBO www.loria.fr ; « Base de données et SGBD » SINFO www.supinfo-projects.com ; « Synchronisation et réplication bases de données hétérogènes » TUT 04 www.jgrondin.developpez.com ; « Tutoriel de la réplication sous MYSQL » WIK08 www.fr.wikipedia.org ; « Sauvegarde informatique » 96