Géodatabases distribuées et réplication (épisode 2 sur 2)
Synchronisation
La synchronisation consiste à intégrer les mises à jour effectuées dans le réplica parent ou enfant de la base de données en ne transférant que les modifications de données (mouvements). Selon le type de réplication mis en place (mono-directionnel ou bi-directionnel) le transfert des mouvements s'effectue dans un seul sens ou dans les deux sens. Ce transfert des données modifiées entre les réplicas enfant et parent peut s'effectuer :
- via un réseau local,
- via le Web (utilisation d'un Geodata Service),
- par échange de fichier XML
Une synchronisation se déroule en deux temps :
- Transfert des mouvements (des modifications) du réplica émetteur vers le réplica récepteur
- Envoie d'un accusé de réception du réplica récepteur vers le réplica émetteur
Si l'accusé de réception n'est reçu par l'émetteur, les mouvements sont considérés par le réplica émetteur comme non transmis et le seront donc à nouveau lors de la prochaine synchronisation.
Ce processus s'effectue dans chaque sens. Ainsi, dans le cas d'une synchronisation bi-directionnelle c'est en fait deux synchronisations qui s'opèrent en inversant les rôles Expéditeur/Récepteur des deux réplicas.
En termes d'intégration des mouvements dans le réplica récepteur, la propagation des données se fait selon le même principe qu'une réconciliation/postage de versions. Les mêmes types de règles peuvent donc être définis par rapport à la gestion des conflits.
Automatiser les synchronisations
Dans ArcMap, la barre d'outils "Géodatabase répartie" permet de réaliser manuellement les opérations liées à la réplication (création de réplica, export des messages, synchronisation, …). Ces opérations peut également se faire via les outils de géotraitement de la boîte à outils "Géodatabase répartie". Ceci permet de construire des modèles enchainant, par exemple, plusieurs opérations de synchronisation entre plusieurs Géodatabases.
Pour aller encore plus loin et automatiser complètement les opérations de synchronisation, il est possible d'utiliser les outils de l'environnement de géotraitement d'ArcGIS 9.2 pour rédiger des scripts (Python, VBScript ou Perl) ou pour développer des applications plus évoluées en utilisant l'objet Geoprocessor des ArcObjects.
Ci-dessous un exemple de script Python utilisant la commande de géotraitement "Synchroniser les mouvements". Ce script peut être appelé par un batch exécuté ensuite de manière automatique.
import sys, string, os, arcgisscripting
# Create the Geoprocessor object
gp = arcgisscripting.create()
# Set the necessary product code
gp.SetProduct("ArcEditor")
# Load required toolboxes...
gp.AddToolbox("C:/Program Files/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx")
# Local variables...
GDB_Oracle = "Database Connections\\gergovie_ADMIN.sde"
GDB_SQL_Server_Express = "Database Servers\\127.0.0.1_SQLEXPRESS.gds\\MaBase (VERSION:DBO.DEFAULT)"
# Process: Synchronisation
gp.SynchronizeChanges_management(GDB_Oracle,
"ADMIN.MonReplica",
GDB_SQL_Server_Express,
"FROM_GEODATABASE1_TO_2",
"IN_FAVOR_OF_GDB1",
"BY_OBJECT",
"DO_NOT_RECONCILE")
Mécanisme de "Check-In/Check-Out"
Le mécanisme de "Check-In/Check-Out" (déjà existant dans les versions précédentes d'ArcGIS) peut être considéré comme un type particulier de réplication. L'objectif est de permettre l'extraction de tout ou partie d'une Géodatabase afin de pouvoir la mettre à jour en étant déconnecté de la Géodatabase d'origine. Les modifications effectuées sur le jeu de données extrait sont ensuite réinsérées dans la Géodatabase d'origine. Le mécanisme de "Check-In/Check-Out" est techniquement similaire à la réplication mais avec certaines restrictions dans l'usage :
- seules les modifications effectuées dans le réplica enfant sont remontées dans le réplica parent (mono-directionnel)
- pour un réplica enfant créé, une seule synchronisation est possible (une insertion pour une extraction)
Réplication de Géodatabase et Réplication de SGBD
La plupart des SGBD disposent de leurs propres mécanismes de réplication permettant la copie de données et la synchronisation entre cette copie et la base de données parente. Il est donc possible d'utiliser ces mécanismes sur des Géodatabases. Cependant, il faut prendre conscience que ces mécanismes de réplications ne prendront pas en compte la totalité de la logique de la Géodatabase notamment sur les éléments complexes tels que les classes de relations, les réseaux géométriques, … ou encore les versions. Ils fonctionneront donc correctement dans des contextes de réplications globales de la Géodatabase mais plus difficilement dans des contextes de réplication partielle de certaines couches ou de certaines zones géographiques d'une Géodatabase.
Le tableau ci-dessous montre quelques points important à prendre en compte dans la comparaison des deux types de mécanisme de réplication :
Pour aller plus loin
Pour plus d'informations sur le mécanisme de réplication de Géodatabases, vous pouvez vous reporter à l'aide en ligne d'ArcGIS à la rubrique suivante (ainsi qu'aux rubriques du même chapitre) :
http://webhelp.esri.com/arcgisdesktop/9.2/index.cfm?TopicName=Understanding_distributed_data
A noter également ce nouveau document publié la semaine dernière par ESRI concernant la gestion de Géodatabases distribuées :
http://support.esri.com/index.cfm?fa=knowledgebase.whitepapers.viewPaper&PID=66&MetaID=1314
(Fin)
0 comments :
Enregistrer un commentaire