Serveur de Synchronisation base de données mobiles
La synchronisation des données a toujours été un problème dans l'histoire de l'informatique en général, et des données mobiles en particulier. L'émergence des applications mobiles sur Smartphones ou PocketPC et la généralisation d'Internet a provoqué ces dernières années la genèse de nouveaux modèles d'architectures de synchronisation de données mobiles par Internet.
Dans le cadre de ses études sur Windows Mobile, le lr2i a mis en place un serveur Web de synchronisation. Ce serveur est un Windows 2003 R2 sur image virtuelle intégrant un serveur Web IIS, une base de données SQL-Server et des agents de synchronisation mobile Microsoft. Il permet de réaliser des accès aux données par différentes technologies de synchronisation : Remote Data Access, Merge Replication et Web Services.
1 - La technologie Remote Data Access (ou RDA) permet à une application sous Windows Mobile (Smarphone ou PDA) utilisant une base de données SQL Server Compact Edition de synchroniser ses données (téléchargement, mise à jour) avec une base de données distante (SQL Server). Cette architecture permet à une application mobile d'accéder de n'importe où dans le monde à une base de données interne en utilisant une simple connexion internet classique (les données sont encapsulées dans des trames HTTP/SOAP). Cette manipulation nécessite l'installation et la configuration d'un agent de synchronisation sur le serveur IIS (SQL Server 2005 Compact Edition Server Tools) qui se présente sous la forme d'une dll. Un simple appel de méthode d'un objet du Compact Framework .Net est suffisant pour récupérer ou poster des données au server. L'url de synchronisation sera sous la forme : http://serveurdesynchro/virtual/sqlcesa35.dll
2 - La réplication repose sur un ensemble de technologies qui permettent de copier et de distribuer des données et des objets de base de données d'une base de données vers une autre, puis de synchroniser ces bases de données afin de préserver leur cohérence. La Merge réplication (ou réplication de fusion) est un mécanisme de synchronisation qui peut être appliquée spécifiquement à la mobilité. C'est une réplication idéale lorsque les souscripteurs sont nombreux et leurs connexions asynchrones. Ce mécanisme nécessite de créer une base de publication qui mettra à disposition les données accessibles aux mobiles. Il est possible de publier des données disposées sur plusieurs serveurs (notion de fusion) mais aussi de les trier et de les filtrer pour limiter l'étendue des données publiées. A partir d'un serveur IIS sur lequel le même agent de synchronisation que le processus RDA a été installé, un simple appel de méthode d'un objet du Compact Framework .Net permet de déclencher une synchronisation entre la base embarquée et la base de publication, et ceci à travers Internet.
3 - Les technologies Web Services ne sont pas spécifiquement dédiées aux synchronisations de données mobiles mais permettent cependant de réaliser ce type d'accès par programmation. Un service Web dédié a été développé dans ce sens. Il fournit des fonctions d'accès à une base de données. Ces fonctions sont accessibles par Internet à toutes applications instanciant le service Web disponible sur le serveur IIS. Ce service Web de type ASP.NET a été développé sous Visual Studio .Net 2008.
Disponible sur le réseau interne de 3il, le serveur de synchronisation est notamment utilisé en projet de veille technologique et en Travaux Pratique dans le cadre de l'option Systèmes Temps réels, Embarqués et Mobiles. Les applications mobiles pour Windows Mobile 6 sont développée en C# ou VB.Net sous Visual Studio .Net 2008 et utilisent le Compact Framework .Net 3.0.
La prochaine étape consistera à implémentée les nouvelles technologies Microsoft Synchronization Services pour Windows CE qui utilisent Microsoft Sync Framework et Sync Services for ADO.NET. Encore plus complexe, ce modèle introduit de nouvelles notions comme la mise en cache (ou hors ligne) de bases de données, la synchronisation d'égal à égal, les filtres de synchro ou la résolution de conflits de données.
Contact sur le sujet : B. Chervy