Présentation. Logistique. Introduction



Documents pareils
Windows Internet Name Service (WINS)

KWISATZ MODULE PRESTASHOP

KWISATZ_TUTO_module_magento novembre 2012 KWISATZ MODULE MAGENTO

Système de vidéosurveillance Guide de configuration

Manuel du logiciel PrestaTest.

Cahier des charges Remontée des ventes

Mes documents Sauvegardés

_ PARAMETRE DU COMPTE _ ACCEUIL. 1 ere Etape «Créer un compte principal» Créer un compte secondaire. Ouvrir un compte principal

Cisco Certified Network Associate

WinBooks Logistics 5.0

RECOPLUS LOGICIEL DE GESTION DES RECOMMANDES NOTICE D UTILISATION DE RECOPLUS RESEAU. N de série

Network musical jammin

Business Talk IP Centrex. guide. web utilisateur. pour. les services standards

Your Detecting Connection. Manuel de l utilisateur. support@xchange2.net

NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur "TIJARA" 1

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

LECON 2 : PROPRIETES DE L'AFFICHAGE Version aout 2011

Contrôleur de communications réseau. Guide de configuration rapide DN

FileMaker Pro 13. Utilisation d une Connexion Bureau à distance avec FileMaker Pro 13

Windows Server 2008 R2

COSWIN MOBILE SERVEUR DE SYNCHRONISATION GUIDE D INSTALLATION

Mise en place Active Directory / DHCP / DNS

Bac Professionnel Systèmes Electroniques Numériques

Sauvegarder automatiquement ses documents

Comment protéger ses systèmes d'information légalement et à moindre coût?

Guide de Migration du Serveur IceWarp

«clustering» et «load balancing» avec Zope et ZEO

Cours 6. Sécurisation d un SGBD. DBA - M1ASR - Université Evry 1

Sauvegarde et Restauration d un environnement SAS

4D v11 SQL Release 5 (11.5) ADDENDUM

CONFIGURATION DE BASE. 6, Rue de l'industrie BP130 SOULTZ GUEBWILLER Cedex. Fax.: Tel.:

FileMaker Pro 12. Utilisation d une Connexion Bureau à distance avec FileMaker Pro 12

Veeam Backup and Replication

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

Objet du document. Version document : 1.00

Exemple de configuration ZyWALL USG

Installation / Sauvegarde Restauration / Mise à jour

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10

LA FEUILLE DE MATCH ELECTRONIQUE(F.D.M.E)

Procédure d installation pour WinEUR PROCÉDURE D INSTALLATION POUR WINEUR. Copyright GIT SA 2015 Page 1/16

Consolidation de stockage

Guide de l administrateur CorpoBack

Utiliser Access ou Excel pour gérer vos données

Accéder à ZeCoffre via FTP

Le service FTP. M.BOUABID, Page 1 sur 5

Tenrox. Guide d intégration Tenrox-Salesforce. Janvier Tenrox. Tous droits réservés.

AudiParc Recommandations IMPORTANTES. AudiParc Principe de fonctionnement. AudiParc Installation Déployement

Installation de Windows 2003 Serveur

INTRODUCTION à Microsoft Dynamics CRM 2013 FR80501

Tutoriel pour la gestion des bases de données du Serveur Mysql virtualisé par le Gip Récia

E-MARQUE TRAITEMENT DES FICHIERS SAISON 2014/2015

ésylog, direction technique Esylog_PeerBackup outil de sauvegarde individuelle mails & fichiers personnels documentation technique

Serveur FTP. 20 décembre. Windows Server 2008R2

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Comment mettre en ligne un site WordPress local

Guide de l utilisateur de Cisco Unified Communications Manager Assistant pour Cisco Unified Communications Manager 6.0

Manuel utilisateur (Manuel_utilisateur_version pdf) Manuel Reprise des données (Manuel_Reprise_donnees_version

Tutorial Terminal Server sous

Serveur de travail collaboratif Michaël Hoste -

Un équipement (clé USB, disque dur, imprimante, etc.) est connecté au port USB.

Contrôle de la DreamBox à travers un canal SSH

Administration Centrale : Opérations

DOCUMENT D ACCOMPAGNEMENT POUR L INSTALLATION DU LOGICIEL ESTIMACTION

Chiffrement des terminaux : comment ça marche?

MANUEL D INSTALLATION D UN PROXY

VRM Monitor. Aide en ligne

1. Installation du Module

Avertissement : Nos logiciels évoluent rendant parfois les nouvelles versions incompatibles avec les anciennes.

Utilisez Toucan portable pour vos sauvegardes

COMMUNICATION TECHNIQUE N TCV060 Ed. 01. OmniVista 4760 Nb de pages : 18 Date : URGENTE NON URGENTE TEMPORAIRE DEFINITIVE

ENVOI EN NOMBRE DE SMS

NiceLabel pour Services Microsoft Windows Terminal Serveur et Citrix MetaFrame

Nokia Internet Modem Guide de l utilisateur

MISE A JOUR : 04 FEVRIER 2011 PROCÉDURE D INSTALLATION. Cegid Business COMMENT INSTALLER CEGID BUSINESS V9 SOUS WINDOWS XP, VISTA ET 7

Réplication de données de classe entreprise pour environnements distribués et reprise sur sinistre

Prise en main d une Cyberclasse

Guide d installation des licences Solid Edge-NB RB

Système de messagerie vocale Cisco Unity Express 7.0 Guide de l utilisateur Fonctionnalités avancées

COURS WINDEV NUMERO 3

Administration Réseau sous Ubuntu SERVER Serveur DHCP

SQUID P r o x y L i b r e p o u r U n i x e t L i n u x

Tutorial NL220. Objectifs : Fournir un guide utilisateur pour NL220. Présenter une méthodologie efficace pour la création de projet

Installation de Windows 2000 Serveur

SOFI Gestion+ Version 5.4. Echanges de données informatiques Spicers Sofi gestion+ Groupements. SOFI Informatique. Actualisé le

Allocation de l adressage IP à l aide du protocole DHCP.doc

GUIDE D UTILISATION DU LOGICIEL DE TELE-MAINTENANCE. TEAM VIEWER Version 7.

Outils logiciels SPC - une façon simple d optimiser les performances et la protection

Le routeur de la Freebox explications et configuration

Aide Webmail. L environnement de RoundCube est très intuitif et fonctionne comme la plupart des logiciels de messagerie traditionnels.

GUIDE DE L USAGER DE LA MESSAGERIE VOCALE

Contrôle d accès à Internet

Projet «Evolution» Référentiel d activités et de compétences : Administrer un parc informatique. Objectifs pédagogiques :

CONFIGURATION DE BASE

Préconisations Techniques & Installation de Gestimum ERP

ENVOI EN NOMBRE DE SMS

Service client LSC 1

Module 10 : Supplément 2

WINDOWS SERVER 2003-R2

Installation et utilisation du client FirstClass 11

Transcription:

Présentation Diapo01 Je m appelle Michel Canneddu. Je développe avec 4D depuis 1987 et j exerce en tant qu indépendant depuis 1990. Avant de commencer, je tiens à remercier mes parrains Jean-Pierre MILLIET, Bernard FEVAT et Matthieu BAUDOUX qui m ont aidé à préparer cet exposé. Logistique Diapo02 Introduction Diapo03 Tout d abord, nous allons employer alternativement les mots synchronisations ou réplications. Ici, on peut les considérer comme synonymes. La conférence va permettre d illustrer une méthode pour synchroniser des données entre des bases de données dites Esclaves et une base de données centrale dite Maître. Dans ce schéma, l esclave saisie et est propriétaire de ses données. Le Maître reçoit le travail de l esclave et est éventuellement propriétaire d autres données. Dans cette première partie, la réplication est unidirectionnelle (de Esclaves vers Maître) (1 vers 1). Toutefois, nous verrons en seconde partie qu il est également possible d échanger des données de Maître vers Esclave (1 vers n). Diapo04 Le système décrit ici, se veut léger à mettre en place. L objet le plus fin pouvant être synchronisé est l enregistrement. Il est donc possible d envisager de synchroniser seulement certaines tables ou même seulement certains enregistrements de ces tables. Nous faisons l impasse ici sur la synchronisation de champs à champs. De ce fait, certaines limites sont à prendre en considération : - Les échanges de données sont quasiment unidirectionnels ; - Chaque base de données Esclave est propriétaire de ses données (il n y a pas ou très peu de saisies croisées avec la base Maître ou une autre base Esclave) ; - Il n est pas nécessaire d utiliser les données consolidées en temps réel. Le système le plus autonome (celui détaillé ici) permet d échanger des données automatiquement grâce à l implémentation de 4D Open pour 4D. Toutefois, le système de synchronisation s appuie sur un échange de fichiers et peut donc utiliser d autres canaux pour communiquer (disquettes, LAN, WAN, Internet, fichiers joints aux E-Mails). Bien entendu ces solutions sont plus ou moins autonomes et donc plus ou moins fiables. Au plus le facteur humain est introduit dans le processus, au plus une méthode de synchronisation totale, pour palier à ces défaillances, est nécessaire. Diapo05 Différents types d utilisation : - Mise en place d un système d information réparti sur plusieurs serveurs avec consolidation des données dans une base de données centrale. Exemple : Une université est structurée autour de plusieurs sites : les facultés. Chaque faculté a un serveur 4D pour gérer ses étudiants. Au niveau de l université, un autre serveur 4D centralise les données saisies sur les différents serveurs. - Dans le cas de la publication web : Mise en réplication d une base de données exploitées en local et de son image installée chez un fournisseur d accès Internet.

Schéma de principe Diapo06 Pour mieux comprendre les mécanismes mis en place nous allons décrire une organisation. La société SOC a plusieurs filiales dans le monde. Dans ce schéma SOC Italie (UID 1), Espagne (UID 2) et Grèce (UID3) sont esclaves de SOC (UID0). SOC Sicile (UID 4) est esclave de SOC Italie (UID 1). L UID est donc une référence abrégée unique entre toutes les bases de données. La structure employée dans chaque site est identique. En fait, il faut surtout que la structure de chaque table à synchroniser soit identique. Chaque base de données déclarées comme esclave va devoir maintenir à jour un journal des modifications des données faites sur les tables à synchroniser. Les échanges entre les sites se font avec des fichiers. Tous les modes de transfert sont envisageables. Les connexions sont unidirectionnelles. Ce sont les bases esclaves qui envoient leurs données vers leur base maître. Concepts abordés Diapo07 L implémentation du système s appuie sur différents aspects techniques de 4D qui sont : Les méthodes de base Les procédures stockées (délégation de certaines tâches sur le serveur) Les triggers Le plug-in 4D Open pour 4D Les différents types de variables et leurs communications entre les process. Les blobs Mise en place du système Diapo08 Paramètres globaux Pour un portage efficace de votre application, les paramètres globaux ne doivent pas être attachés au fichier de structure ni accessible uniquement à partir d un poste. Plusieurs solutions sont possibles : - Une table dédiée avec, normalement, un enregistrement unique. - Un enregistrement dans une table «fourre tout» contenant dans un blob pour l ensemble des paramètres En cous d exploitation, certaines de ces valeurs sont chargées dans des variables interprocess. Les paramètres essentiels sont : Diapo09 UID : Référence unique entre toutes les bases de données (multi-site), Ce champ est inclus dans le codage des clés alphanumériques, sa longueur doit être la plus courte possible. Diapo10 Numéro de version : Ce numéro est incrémenté à chaque mise à jour de la structure. Il permet de contrôler que deux bases de données qui se synchronisent ont le même numéro de version et donc la même structure des tables échangées Diapo11 Esclave : Ce champ permet de démarrer ou d arrêter l écrire du journal sur les modifications effectuées sur la base de données.

Diapo12 Données propres à la synchronisation : - Active Oui-Non - Fréquence de synchronisation ; Attention cette dernière, exprimé en heure, doit avoir en valeur minimum une valeur supérieure à 00h00 - Date et heure prochaine synchronisation ; Attention de plafonner le champ heure à une valeur maximum de 23h59 - Si des échanges sont réalisés avec 4D Open for 4D il faut prévoir de mémoriser l adresse IP du serveur Maître, le nom d utilisateur et le mot de passe permettant la connexion. Diapo13 Marquage des enregistrements à répliquer Pour garantir que chaques modifications des tables à répliquer seront prises en compte, il est nécessaire d utiliser les triggers. Dans le trigger, le logiciel va affecter un identifiant unique à chaque enregistrement s il n existe pas et va mettre à jour le journal en fonction du type de modification. Diapo14 Rappel sur les options d exécution des Triggers La demande d exécution des triggers est faite, table par table, sur la fenêtre des propriétés de la table où l on veut activer le triggers. Pour les tables à synchroniser, trois événements moteurs doivent être activés : Sur sauvegarde nouvel enreg. Cette option permet d invoquer le trigger à chaque fois qu'un enregistrement est créé dans la table AJOUTER ENREGISTREMENT CREER ENREGISTREMENT et STOCKER ENREGISTREMENT IMPORT TABLEAU VERS SELECTION STOCKER SUR LIEN Sur sauvegarde enregistrement Cette option permet d invoquer le trigger à chaque fois qu'un enregistrement de la table est modifié MODIFIER ENREGISTREMENT STOCKER ENREGISTREMENT TABLEAU VERS SELECTION APPLIQUER A SELECTION MODIFIER SELECTION Sur suppression enregistrement Cette option permet d invoquer le trigger à chaque fois qu'un enregistrement de la table est supprimé SUPPRIMER ENREGISTREMENT SUPPRIMER SELECTION Suppression automatique par les options de contrôle d intégrité de 4D

Diapo15 Création d un identifiant unique pour chaque table à synchroniser Cet identifiant peut déjà exister dans votre base. Il est tout à fait utilisable. Pour l exposé, nous décrivons la mise en place d un identifiant unique simple. Pour numéroter les enregistrements il est préférable d utiliser une table compteur que la fonction Numérotation automatique. Ainsi, on peut éventuellement mettre en place : - Des sous système de numérotation par année ; - Un système de récupération des numéros supprimés. Attention, dans ce dernier cas, il faut prévoir un système qui interdit la réutilisation du numéro tant que ce dernier se trouve dans le journal (table décrite dans le chapitre suivant). Nous avons dans cette table un enregistrement par table à numéroter. Pour utiliser cette table, nous écrivons une méthode projet qui renvoie le prochain numéro pour la table dont le numéro est passé en paramètre. Dans le cas où le compteur n existerait pas pour la table passée en paramètre, la méthode le créé automatiquement. Diapo16 Création d un identifiant unique pour chaque table à synchroniser Dans le cas où l on créerait un champ clé unique il sera typé alphanumérique. Il contient : - la référence UID - le numéro d ordre séquentiel dans la table Si ce champ était numérique, il faudrait limiter le potentiel de numérotation de l ensemble des bases à un seul compteur de 0 à 2 147 483 647. Selon les plages attribuées, on prendrait le risque d avoir des plages qui se chevauche. Pour limiter la longueur de ce champ, il est conseillé d utiliser une méthode qui convertie une valeur numérique (en base 10) en une valeur en base 36. 16 777 216 qui mesure 8 caractères ne devient plus que 9ZLDS qui mesure 5 caractères. 2 147 483 647 qui mesure 10 caractères ne devient plus que ZIK0ZJ qui mesure 6 caractères D après ces exemples, le champ Clé unique occupe au plus 7 caractères. Il faut toutefois en structure le définir avec 2 caractères de plus. En effet, dans les processus suivant, le logiciel utilise ces places vides. Diapo17 Trigger pour assurer cette tâche Le trigger est tout à fait adapté pour y insérer le code permettant d affecter le champ identifiant unique. Ce code sera exécuté pour l événement Sur sauvegarde nouvel enreg. Toutefois, il faut veiller à affecter ce champ que s il est vide. En effet, dans certains cas, les développeurs ont besoin d avoir un identifiant unique bien avant de passer sur STOCKER ENREGISTREMENT. Il est également souhaitable de prévoir pour l événement Sur sauvegarde enregistrement, une génération d erreur si le champ identifiant unique est différent de sa copie ancienne. Je vous rappelle qu un trigger est une fonction qui renvoie une valeur numérique. Si cette dernière est égale à 0, cela signifie qu il s est bien déroulé, sinon la commande invoqué n a pas été exécutée. Il suffit donc pour bloquer la commande qui a invoquer le trigger de renvoyer une valeur différente de zéro.

Diapo18 Mise en place d une table journal Les bases Esclaves doivent remplir automatiquement une table complémentaire. Cette table a pour mission de maintenir un journal des actions réalisées sur les données avec l horaire. L horaire est exprimé par une méthode qui donne un TimeStamp (c est à dire un nombre de secondes entre l horaire de modification et une date fixée arbitrairement). Le pas de temps le plus court est la seconde, il y aura donc plusieurs actions pour le même horaire. S il est nécessaire de connaître exactement l ordre d exécution, on peut y ajouter : - Un champ Priorité (Rapide et souvent suffisent, il fixe la priorité des actions sur les tables par rapports aux autres) ; - Un champ Ordre (Imparable mais lent). Diapo19 Synchronisation incrémentale et synchronisation totale Les mécanismes à mettre en place pour un processus de réplication sont identiques à ceux d une sauvegarde. Dans les processus de sauvegardes il existe les sauvegardes incrémentales et les sauvegardes complètes. Dans les processus de réplication on doit retrouver ces deux concepts. La synchronisation incrémentales va permettre d envoyer vers le site Maître, les données modifiées depuis la dernière synchronisation. Ce mécanisme est le processus de base. La synchronisation complète est un processus qui est nécessaire. Il permet d initialiser la première synchronisation. Il peut ensuite être utilisé pour palier à des défaillances du système qui résultent automatiquement à une désynchronisation des données Diapo20 Trigger pour assurer cette tâche La mise à jour du journal est assurée par les triggers mis en place sur chacune des tables à synchroniser. Pour chaque événement moteur une méthode projet sera invoquée : Sur sauvegarde nouvel enreg. Cette méthode recherche dans la table journal s il existe un enregistrement pour l ID passé en paramètre. Si : - il existe, elle positionne le champ Action à A En fait, ce cas n existe pas - il n existe pas, elle en crée un et positionne le champ Action à A. Sur sauvegarde enregistrement Cette méthode recherche dans la table journal s il existe un enregistrement pour l ID passé en paramètre. Si : - il existe, elle ne fait rien En effet, il peut déjà exister en A ou M - il n existe pas, elle en crée un et positionne le champ Action à M. Sur suppression enregistrement Cette méthode recherche dans la table journal s il existe un enregistrement pour l ID passé en paramètre. Si : - il existe, Si : - Le champ Action est égal à A, elle supprime l enregistrement L enregistrement a été créé, n a jamais été envoyé à la base Maître, on peut le supprimer en effaçant la trace de son existence - Le champ Action est égal à M, elle le convertit à S - il n existe pas, elle en crée un et positionne le champ Action à S.

Diapo21 Attention : certaines manipulations ne doivent pas être intégrée dans le journal La mise à jour du journal au travers du trigger garantie une fiabilité totale. Cependant, dans certains cas, si on est une base Esclave, il ne faut pas mettre à jour le journal. Par exemple, pour l import d un enregistrement, il faut d abord SUPPRIMER la copie existante puis CREER la nouvelle copie. Ceci entraîne normalement une mise à jour du journal pour une Suppression et une mise à jour du journal pour un Ajout. Hors en fait, nous cherchons, une simple mise à jour du journal pour une Modification. Nous allons donc utiliser l espace disponible dans l ID pour insérer un caractère 1 qui sert de paramètre : - > est la lettre qui signifie de Ne pas mettre à jour le journal ; - + ou * sont les lettres passées uniquement pour l événement moteur Sur sauvegarde nouvel enreg et indiquent au logiciel quel Type d action il doit mettre dans le journal. Ces caractères «paramètres» sont testés dans le code du trigger pour soit simplement lever le caractère et ne rien faire ou soit invoquer une mise à jour du journal différente de celle qui devrait normalement être invoquée. Diapo22 Fichiers d échanges L objectif majeur du système est de ne pas être lié à l utilisation d une connexion réseau entre deux bases 4D. En effet, avec ce type de connexion, une solution basée intégralement sur 4D Open for 4D offre des avantages quant à sa flexibilité. Ici, même si en deuxième partie, nous abordons ce type de connexion, nous somme toujours dans une logique de «petite connexion» et en fait elle ne durera rarement plus d une minute. Sur les bases Esclaves, nous venons de voir que le logiciel est capable de maintenir un journal des événements sur les enregistrements à synchroniser. Ce journal va servir à générer des fichiers d échanges. La méthode projet d export va créer autant de fichier d échange qu il y a de multiple de 2500 enregistrements dans la table journal. Ces fichiers d échanges sont structurés, ils contiennent 2500 séquences : - Action - Numéro de table - Identifiant unique - Enregistrement (sauf quand l action est égale à S Ces fichiers sont créés dans un répertoire temporaire sur le disque et ensuite sont stockés dans une table «Fourre tout» dans un champ blob de façon compressé. Sur la base Maître, la méthode projet d import va traiter un a un les enregistrements de la table «Fourre tout». Pour chacun d eux, elle décompresse le blob et reconstitue le fichier d échange dans un répertoire temporaire. Ce dernier est ensuite lu et chacun des ordres est exécuté. Il faut noter : - Le chiffre de 2500 commandes dans un fichier d échange est arbitraire. Ce nombre est essentiellement lié à la mémoire disponible sur le poste qui les génèrent. En effet, Les commandes DOCUMENT VERS BLOB et COMPRESSER BLOB sont liés à la mémoire allouée à 4D et n accepte pas de fonctionner s il n y a pas assez de mémoire. Le nombre d enregistrements dans un fichier d échange est donc lié à la taille de la mémoire disponible et à la taille moyenne des enregistrements. - Il faut prévoir d implémenter une méthode APPELER SUR ERREUR pour intercepter tous les messages. Ces méthodes fonctionnent sur le serveur normalement. - Il est souhaitable d appeler la commande ECRIRE CACHE avant d exporter les enregistrements 1 Attention, il faut éviter de prendre un caractère qui serait utilisé dans le codage du champ. Par exemple, ici nous utilisons dans le code les 26 lettres de l alphabet + les 10 chiffres.

Diapo23 Avantages Quelques avantages pour cette solution : - En client/serveur la génération de ces fichiers est faite sur le serveur On a mesuré des temps de 3 secondes pour générer un fichier de 2500 enregistrements à transmettre - Les fichiers échangés sont très petits car compactés Un fichier de 2500 enregistrements pèse environ 10 Ko sur le disque. Le compactage le réduit d un facteur de 2 à 3 - Les temps de connexion, si on utilise 4D Open for 4D, sont très court Economie si la connexion n est pas permanente. Licence 4D Client très peu utilisée, donc éventuellement partageable - D autres solutions d échange sont envisageable (certaines peuvent être automatisée comme 4D Open) Email, ftp, disquette - Les contrôles d intégrités lors de la récupération sont fait en local (des règles locales peuvent être mise en place pour rejeter un enregistrement). De plus, en client/serveur ils sont fait par le serveur. L intégration des données se mesure également en quelques secondes Conclusion Diapo24 Dans cette partie nous avons abordé l incidence de la mise en place du système de réplication sur la structure. A ce stade, le système marque les modifications automatiquement par contre, l échange entre les bases de données est seulement manuel. Dans certains cas, où la part humaine est prépondérante (pas de réseau, peut d échange, etc.) la mise en place du processus peut s arrêter là.