|
Introduction
Cet article sur la synchronisation RDA avec les SDE, fait suite
à celui sur l'utilisation d'une base SQL Server CE avec C#.
Ici l'objectif est d'expliquer comment synchroniser des données
d'une base SQL Serveur 2000 avec une base embarquée SQL Server
CE 2.0 en passant par le serveur HTTP IIS de Microsoft.
Les modes de synchronisation
Il existe 2 procédés standard qui permettent
d'effectuer une synchronisation de données entre ses 2 bases. La
méthode "Remote Data Access" consiste à extraire
les données d'une table SQL Serveur 2000 vers une table d'une base
SQL Serveur CE via une instruction SELECT (méthode Pull), et de
renvoyer les modifications apportées sur les données de
la table SQL Serveur CE vers la base SQL Serveur 2000 (méthode
Push).
La seconde manière consiste à utiliser le procédé
de "Merging Replication" via les "publications" de
SQL Server 2000.
D'autres moyens de synchronisation peuvent être
envisagés, par exemple via un service Web de synchronisation. Nous
l'aborderons dans un prochain article.
Le .NET Compact Framework fournit les classes nécessaires à
la manipulation des modes de synchronisation standard à travers
l'espace de noms System.Data.SqlServerCe.
Nous nous intéresserons dans cet article
uniquement à la méthode RDA. Cette méthode est bien
adaptée à une utilisation en mode déconnectée
: L'utilisateur récupère des données de son serveur
sur son PDA (via le PULL). Il travaille ensuite sur ses données
avec son Pocket PC de façon autonome à l'aide d'une application
.NET et re-synchronise ensuite les données vers le serveur (via
le PUSH).
RDA présente l'avantage d'être simple à mettre en
uvre, mais les méthodes PULL et PUSH doivent être utilisées
avec vigilance. En effet, la méthode PUSH, nécessite d'une
part l'existence d'une table sur le pocket PC et écrase les données
contenues dans cette table lors de son utilisation. Il existe néanmoins
une gestion de conflits basique et un système de tracing des erreurs
qui s'effectue dans la base SQL Serveur CE.
Architecture de la solution
La réplication utilise les composants de SQL
Server CE suivants :
- Le moteur SQL Serveur CE 2.0
- Un agent SQL Serveur CE Client : il s'agit de la
dll ssceca20.dll qui est stockée sur le pocket PC.
- Le serveur http IIS 5, qui sert d'intermédiaire
entre les 2 bases. En effet, les données sont synchronisées
via le protocole http.
- Un agent SQL Serveur CE Server : il s'agit d'un composant
COM, le sscesa20.dll, qui réside sur le serveur IIS.
- La base de donnée SQL Serveur 2000, qui peut
être sur un serveur dédié ou résidée
sur la même machine que le serveur http.

Configurer et développer une application utilisant
RDA
Les pré-requis pour développer une application
utilisant RDA sont les suivants :
- Disposer d'une base SQL Serveur 2000 votre PC. Créer
une base Personne. Créer et Remplir une table PERSONNE.
- Avoir installé IIS
- Avoir installé Microsoft SQL Server
CE 2. Cette installation crée un répertoire sur le disque
contenant entre autre le fichier sscesa20.dll
Etapes à suivre pour configurer le serveur de synchronisation
Créer un répertoire virtuel sous IIS
pour activer l'agent serveur SQL Serveur CE, à
l'aide de l'utilitaire Microsoft SQL Server CE Connectivity Wizard.


Tester le service
Lancer un browser avec l'URI suivante : http://nom_du_serveur/nom_du_repertoire_virtuel/sscesa.dll

Développer l'application sous Visual Studio.NET
et déployez la sur le pocket PC.
Pour cela reportez vous aux articles précédents. La partie
de code spécifique à la synchronisation RDA est illustrée
ci-dessous :

Laurent
Nyffels
|