Le premier site francophone dédié au développement Pocket PC

Synchronisation RDA avec les SED
Auteur
Laurent Nyffels
Date 28 mai 2003
 

 

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

 

Copyright 2001-2004 - Tous droits réservés
Toutes les autres marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives.