Brevet FR2850814A1 — publié le 20040806

Système et procédé de synchronisation de données entre des portails de services et plate-forme d'accès à des services utilisant un tel système de synchronisation L'invention concerne la synchronisation de données entre des serveurs mettant en oeuvre des services accessibles à partir de portails. Plus particulièrement, l'invention concerne la synchronisation d'informations personnelles entre des serveurs mettant en oeuvre des services gestionnaires d'informations personnelles ou PIM ("Personal 10 Information Manager") accessibles à partir de portails Web. La synchronisation de données consiste à établir et à maintenir une relation d'équivalence entre deux collections de données. Après synchronisation, chaque élément d'un ensemble de données correspond à un élément de l'autre ensemble de données, les données de ces 15 éléments étant alors équivalentes mais pas forcément identiques. En effet, dans le cas d'une synchronisation entre un répertoire de téléphone mobile et un répertoire de messagerie électronique, la capacité de mémorisation du téléphone mobile étant relativement faible, seul un sous-ensemble de données pertinentes sera transféré du 20 répertoire de messagerie électronique vers le poste téléphonique mobile. Un certain nombre de solutions de synchronisation de données existent à ce jour et sont utilisées pour réaliser la synchronisation de données chargées dans des terminaux d'utilisateurs respectifs. De 25 telles solutions servent, par exemple, à mettre à jour et à établir une relation d'équivalence entre des données stockées dans un assistant personnel et des données stockées dans un micro-ordinateur. Ce type de technique présente des inconvénients majeurs, dans la mesure o, d'une part, elle nécessite un rapprochement physique des 30 terminaux à synchroniser et, d'autre part, elle n'est applicable qu'à des types de terminaux spécifiques pour lesquels elle a été développée, de sorte qu'un changement de matériel nécessite une réinstallation complète du logiciel de synchronisation utilisé. Il a été également proposé de réaliser une synchronisation de données entre des informations personnelles stockées dans des 5 serveurs mettant en oeuvre des services gestionnaires d'informations personnelles PIM et des terminaux d'accès distants tels que des microordinateurs, des assistants personnels, des postes de télécommunication mobiles, Cette technique utilise des serveurs de synchronisation 10 hébergés au sein des portails d'accès à ces services et permet, lorsqu'une opération de synchronisation est demandée par un utilisateur à partir de son terminal d'accès, de provoquer la synchronisation des données entre le ou les terminaux de l'utilisateur et le portail d'un opérateur ou d'un fournisseur d'accès. Comme on le 15 conçoit, cette synchronisation n'est adaptée que pour réaliser une synchronisation des données entre un module PIM de gestion d'informations personnelles localisé sur un terminal distant d'accès à un portail de services et un module PIM de gestion d'informations personnelles en ligne sur ce portail. Ce type de technique est dès lors 20 contraignante lorsque l'utilisateur est abonné à plusieurs portails. Ainsi, le but de l'invention est de fournir un procédé et un système de synchronisation de données capables de réaliser une synchronisation de données hébergées au sein de deux portails différents. L'invention a donc pour objet un système de synchronisation de données entre des portails de services hébergeant chacun au moins un service gestionnaire d'informations personnelles (PIM), les portails étant chacun accessibles au moyen de terminaux d'accès distants. Ce système comporte des premiers moyens de synchronisation des 30 données entre les portails pour établir une correspondance entre les données stockées dans ces derniers. Ce système comporte en outre des deuxièmes moyens de synchronisation des données entre les portails d'une part, et une partie au moins desdits terminaux, d'autre part. Selon une autre caractéristique de l'invention, les premiers 5 moyens de synchronisation ont une architecture client-serveur, le client et le serveur de cette architecture étant constitués respectivement, d'une part, par un module hébergé dans l'un desdits portails et en communication avec un serveur mettant en oeuvre le service de gestion d'informations personnelles dudit portail et, d'autre 10 part, par un module de synchronisation hébergé au sein de l'autre ou des autres portails et en communication avec serveur hébergeant un autre service de gestion d'informations personnelles, lesdits modules communiquant par l'intermédiaire d'un réseau informatique. Les deuxièmes moyens de synchronisation ont également une 15 architecture client-serveur, le client et le serveur de cette architecture étant constitués respectivement, d'une part, par un module client hébergé au sein de chacun des terminaux et, d'autre part, par un module de synchronisation hébergé au sein du portail, lesdits modules client et de synchronisation communiquant par l'intermédiaire d'un 20 réseau informatique. Les premiers moyens de synchronisation comportent en outre, selon un mode de réalisation, des moyens d'échange de données selon un langage standard de synchronisation de données utilisant des balises de description de contenu. Tel est également le cas des 25 deuxièmes moyens de synchronisation. Les informations personnelles manipulées par le système de synchronisation sont par exemple constituées soit par des données se présentant selon un format standardisé " vCard ", soit selon un format standardisé " vCalendar ". Selon l'invention, il est également proposé une plate-forme d'accès à des services d'un portail de services hébergeant au moins un service gestionnaire d'informations personnelles (PIM), comprenant un ensemble d'au moins un serveur d'accès auxdits services, accessibles à des terminaux d'accès distants et associés à des moyens de mémorisation dans lesquels sont chargées les informations personnelles, cette plate-forme comportant un système de synchronisation tel que défini ci-dessus. Cette plate-forme peut en outre comporter des moyens pour générer une interface homme-machine sur l'écran des terminaux, adaptée pour provoquer l'élaboration et la transmission de commandes de synchronisation à destination du système de synchronisation Enfin, l'invention a pour objet un procédé de synchronisation de données entre des portails de services hébergeant chacun au moins un service gestionnaire d'informations personnelles (PIM), les portails étant chacun accessibles au moyen de terminaux d'accès distants. Ce procédé comporte les étapes consistant à: - élaborer une commande de synchronisation en utilisant une interface homme-machine fournie par un client de synchronisation d'une architecture client-serveur hébergée, d'une part, dans l'un desdits portails et, d'autre part, dans un autre ou les autres portails, ladite commande véhiculant des informations relatives 20 aux données à synchroniser; et - réaliser la synchronisation des données entre les portails en utilisant un serveur de synchronisation hébergé dans ledit ou lesdits autres portails et indiqué dans la commande de synchronisation. Dans un mode de mise en oeuvre, les clients et le serveur communiquent par l'intermédiaire d'un réseau informatique selon un langage standardisé de synchronisation de données utilisant des balises de description de contenu. Les données à synchroniser se présentent par exemple selon 30 l'un au moins des formats standardisés " vCard " et " vCalendar ". Ainsi, au cours de la synchronisation, on procède à la conversion bidirectionnelle des balises en format " vCard " ou " vCalendar ". D'autres buts, caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante, donnée uniquement à titre d'exemple non limitatif et faite en référence aux dessins annexés sur lesquels: - la figure 1 illustre schématiquement la structure d'un réseau de télécommunication permettant l'accès à des portails de services; - la figure 2 illustre le fonctionnement d'un serveur de synchronisation de données accessible à partir d'un portail et des 10 terminaux d'accès distants; - la figure 3 illustre la structure du client de synchronisation utilisé pour la synchronisation des données entre deux portails différents; et - la figure 4 est un organigramme illustrant les principales 15 phases d'un procédé de synchronisation conforme à l'invention. Sur la figure 1, on a représenté l'architecture générale d'un réseau de télécommunication permettant à un utilisateur disposant d'un ou de plusieurs terminaux distants tels qu'un poste de téléphonie mobile 10, un micro-ordinateur 12 portable ou non ou un assistant 20 personnel 14 permettant d'accéder à des portails Pi et P2 afin d'accéder au réseau Internet. Comme on le sait, un portail est un site Web dont la page d'accueil propose l'accès à un bouquet de services de différentes natures et, en particulier, l'accès à un ou plusieurs services de gestion 25 d'informations personnelles (PIM). Un tel service PIM permet le stockage et la gestion d'informations utiles à l'utilisateur, portant, d'une part, sur des contacts, et, d'autre part, sur des évènements. Ainsi, par exemple, dans l'exemple de réalisation illustré sur la figure 1, le portail Pi permet d'accéder à un premier service PIMI de 30 gestion d'informations personnelles et le deuxième portail P2 permet d'accéder à un deuxième service PIM2 de gestion d'informations personnelles. Comme cela est connu en soi, chacun des serveurs mettant en oeuvre ces services PIM1 et PIM2 est associé à une base de données, respectivement BD1 et BD2, dans lesquelles sont stockées les informations personnelles de l'utilisateur sous la forme de formats " vCard " et " vCalendar ", en ce qui concerne respectivement les 5 informations de contacts et les informations d'évènements, afin de disposer d'une interopérabilité totale de ces données avec les terminaux d'accès 10, 12 et 14. Ces formats " vCard " et " vCalendar " sont des formats standard développés par la Société "Versit", permettant de partager 10 des données relatives à la gestion de données de contact et d'agenda et à la planification d'évènements. Ainsi, une application PIM porte soit sur un carnet d'adresses, soit sur un agenda, soit sur un combiné carnet d'adresses/agenda. Afin de permettre à l'utilisateur d'effectuer une synchronisation des données 15 stockées dans les bases de données BD1 et BD2, d'une part, et les données stockées dans les terminaux 10, 12 et 14, chacun des portails Pi et P2 est pourvu d'un serveur de synchronisation Si et S2, respectivement en communication avec les serveurs PIMI et PIM2. Ces serveurs de synchronisation Si et S2 font partie d'une architecture 20 client-serveur, dont les clients sont constitués par une application installée localement sur les terminaux 10, 12 et 14 et pilotée par le serveur de synchronisation hébergé sur les portails Pi et P2. Ainsi, la synchronisation est mise en oeuvre à l'aide de cette architecture et est essentiellement réalisée par les serveurs Si et S2 après déclenchement 25 par le client des terminaux 10, 12 et 14. En outre, afin de pouvoir procéder à une synchronisation des données entre les bases de données BD1 et BD2 accessibles respectivement par les portails Pi et P2, un client de synchronisation additionnel S3 est hébergé au sein de l'un des portails Pi et P2, par 30 exemple le portail désigné par la référence P2, de manière à communiquer avec le serveur PIM2 et avec le serveur de synchronisation Si hébergé au sein de l'autre portail et à constituer, avec celui-ci, une architecture client-serveur. Il est dès lors possible, sur requête formulée par l'utilisateur à partir de son terminal d'accès 10, 12 ou 14, d'effectuer, soit une 5 synchronisation de données entre les bases de données BD1 ou BD2 et les terminaux d'accès de manière à rétablir une correspondance entre les données qui y sont respectivement stockées, soit une synchronisation entre les bases de données BD1 et BD2 pour établir une relation de correspondance entre le contenu de ces dernières. Comme indiqué précédemment, les données synchronisables sont des données de gestion d'informations personnelles PIM conformes au standard vCard pour la synchronisation de carnets d'adresses et au format vCalendar pour la synchronisation d'agendas. On notera également que les moyens de synchronisation ci15 dessus évoqués, à savoir les applications du modèle client-serveur hébergés, d'une part, au sein des terminaux 10, 12 et 14, et au sein de l'un des portails, à savoir le portail P2, et, d'autre part, les serveurs de synchronisation Si et S2 comportent des moyens d'échange de données de type classique en eux-mêmes, permettant de dialoguer selon un 20 langage de synchronisation de données utilisant des balises de description de contenu. On utilise à cet effet le langage de synchronisation connu sous l'appellation SyncML ("Synchronization Markup Language"), qui est utilisé pour définir un ensemble de marqueurs d'un langage XML de balisage extensible pour décrire les 25 contenus des données à synchroniser, mais aussi le format d'un message utilisé, lors de l'échange des données. Le protocole de transfert de données utilisé est le protocole http (protocole de transfert hypertexte) via le réseau Internet. Un utilisateur peut dès lors procéder à une synchronisation entre deux portails, d'une part, et entre un 30 terminal d'accès distant et l'un des serveurs depuis n'importe quel lieu géographique en utilisant le réseau Internet. Dans la description faite à la figure 1, chaque portail Pi et P21 permet d'accéder à un service PIM1 ou PIM2. On conçoit néanmoins, comme on le voit sur la figure 2, que, en fait, chaque portail, par exemple le portail désigné par la référence Pi permet d'accéder à un 5 bouquet de services 16, 18 et 20 mis en oeuvre chacun au moyen de serveurs, tel que 22 et associé chacun à une base de données 24. Ces serveurs 22 et 24 communiquent avec le serveur de synchronisation Si, lequel communique avec les terminaux distants 10, 12 et 14, par l'intermédiaire d'un réseau de communication sans fil RI, en ce qui 10 concerne les terminaux de télécommunication de type mobile, et par le réseau Internet R2 en ce qui concerne, par exemple, les microordinateurs 12. Le serveur de synchronisation Si communique également avec l'autre portail P2 par l'intermédiaire du réseau Internet R2 et, en particulier, avec le serveur mettant en oeuvre le service PIM2 15 par l'intermédiaire du client de synchronisation S3. On notera en outre que chaque portail Pi et P2 qui, en fonctionnement, matérialise une page d'accueil permettant d'accéder à l'ensemble des services proposés, génère en outre une interface homme-machine manipulable par l'utilisateur pour l'élaboration d'une 20 commande de synchronisation et pour provoquer la transmission de cette commande à destination du système de synchronisation, une telle commande pouvant également être élaborée à partir d'une touche matérialisée prévue spécifiquement sur le terminal distant. On notera néanmoins que cette interface est élaborée par le 25 portail de manière à permettre d'identifier le serveur de synchronisation à utiliser, c'est-à-dire le serveur SI hébergé sur le portail Pi dans l'exemple de réalisation décrit en référence à la figure 1, d'identifier l'utilisateur grâce à l'utilisation d'un identifiant et d'un mot de passe, de sélectionner l'application PIM distante à synchroniser 30 et également de sélectionner le mode de synchronisation, à savoir bidirectionnel ou unidirectionnel, une configuration par défaut pouvant être établie par l'opérateur de télécommunication ou par le fournisseur d'accès pour être téléchargée et proposée à l'utilisateur. Dans le cas d'une synchronisation de données bidirectionnelle, les bases de données des deux applications de gestion d'informations 5 personnelles sélectionnées sont amenées dans un état d'équivalence, c'est-à-dire que des modifications telles qu'un ajout, une mise à jour ou une destruction d'un élément d'une base de données, effectuées par l'utilisateur sont répercutées dans l'autre base de données. Dans le cas d'une synchronisation de données unidirectionnelle, 10 seule l'une des bases de données est mise à jour en fonction des modifications, c'est-à-dire ajout, mise à jour ou destruction d'un élément effectuées par l'utilisateur dans une autre base de données. Comme indiqué précédemment, le système de synchronisation selon l'invention utilise une architecture client-serveur. La partie 15 client de ce modèle qui est hébergée sur le portail P2, se compose essentiellement d'un client de synchronisation, à savoir une application compatible avec le standard SyncML hébergée au sein d'un module de synchronisation et de l'application de gestion d'informations personnelles PIM2. Ces modules sont constitués par des 20 modules structurellement distincts, un connecteur assurant la liaison entre le client de synchronisation et le serveur hébergeant l'application PIM2. Le client de synchronisation se charge de déclencher le processus de synchronisation lorsqu'une requête a été formulée par l'utilisateur et se charge de scruter la base de données à synchroniser 25 pour en extraire les données modifiées et d'envoyer les informations et données nécessaires au serveur de synchronisation Si utilisé. De même, il reçoit les informations et les données nécessaires à la mise à jour de la base de données associée au serveur de services. En se référant à la figure 3, le client de synchronisation S3 30 comporte un module de transport 28 assurant essentiellement la récupération et le transfert d'informations vers le serveur de synchronisation Si sélectionné, associé à un interpréteur syntaxique SyncML 30, lequel est raccordé à un conduit ou module de conversion 32 assurant la conversion bidirectionnelle des données émises ou reçues par le module de transport 28, c'est-à-dire selon le langage XML, en données selon le format " vCard " ou " vCalendar ". Le 5 module de transport 28 est responsable de l'envoi et de la réception des messages selon le langage SyncML sur la couche de transport utilisée. L'interpréteur SyncML 30 est responsable du codage et du décodage des messages SyncML en conformité avec les définitions de type de documents (DTD) du langage SyncML. Le conduit 32 se 10 charge, quant à lui, de convertir un élément de données à synchroniser dans un format conforme au protocole SyncML, c'est-à-dire " vCard " ou " vCalendar ". Ce module de conversion 32 est raccordé à un module d'adaptation de bases de données 34, lequel se charge de l'accès aux 15 bases de données du serveur PIM2. De même, le module de conversion 32 communique avec un moteur 38 responsable de l'établissement et du maintien d'une session de synchronisation en supervisant la création et la mise en forme de messages SyncML envoyés au serveur de synchronisation et en gérant 20 le traitement des informations de mise à jour reçues dans les messages SyncML envoyés par le serveur. Ce moteur 36 est enfin raccordé à une interface 38 qui permet à l'utilisateur de configurer, comme indiqué précédemment, par l'intermédiaire d'une interface homme-machine, ses préférences, les 25 paramètres de synchronisation et de déclencher le processus de synchronisation de données. En se référant à la figure 4, pour procéder à la synchronisation de données entre deux portails Pi et P2 et, entre les bases de données BD1 et BD2, il convient tout d'abord de générer une commande de 30 synchronisation de données en utilisant une interface homme-machine disponible sur le portail P2 (étape 39). Cette commande de synchronisation comporte, comme indiqué précédemment, l'identité du serveur de synchronisation à utiliser, à savoir le serveur Si dans l'exemple de la figure 1, l'identité de l'utilisateur représentée par un couple identifiant-mot de passe, l'application de gestion d'informations personnelles à synchroniser, dans le cas o le portail permet d'accéder 5 à un tel service multiple, ainsi que le mode de synchronisation bidirectionnel ou unidirectionnel souhaité par l'utilisateur. Cette commande de synchronisation est alors envoyée au serveur de synchronisation S1 utilisé. Après vérification du nom du serveur et du nom de l'utilisateur, la synchronisation est autorisée 10 (étape 40). Lors de l'étape 42 suivante, les informations à synchroniser sont alors échangées entre les serveurs associés aux bases de données à synchroniser. Au cours de cette étape, les nouveaux éléments sont extraits et mis de côté. On vérifie alors les bases de données concernées afin de déterminer si les nouveaux éléments sont déjà sur 15 la base de données à synchroniser. Si tel n'est pas le cas, les nouveaux éléments sont introduits dans cette base (étape 44). Lors de l'étape 46 suivante, une table de correspondance est mise à jour afin d'établir une liaison entre les adressages de chaque élément dans les différentes bases de données concernées. REVENDICATIONS 1. Système de synchronisation de données entre des portails (Pl, P2) de services hébergeant chacun au moins un service gestionnaire d'informations personnelles (PIM), les portails étant 5 chacun accessibles au moyen de terminaux d'accès (10, 12, 14) distants, caractérisé en ce qu'il comporte des premiers moyens (SI., S3) de synchronisation de données adaptés pour établir une correspondance entre les données stockées dans les portails. 2. Système selon la revendication 1, caractérisé en ce qu'il 10 comporte des deuxièmes moyens (S1, S2) de synchronisation des données entre les portails d'une part, et une partie au moins desdits terminaux, d'autre part. 3. Système selon l'une des revendications 1 et 2, caractérisé en ce que les premiers moyens de synchronisation ont une architecture 15 clientserveur, le client et le serveur de cette architecture étant constitués respectivement, d'une part, par un module (S3) hébergé dans l'un desdits portails et en communication avec un serveur (PIM2) mettant en oeuvre le service de gestion d'informations personnelles dudit portail et, d'autre part, par un module de synchronisation (S1) 20 hébergé au sein de l'autre ou au sein de chacun des autres portails et en communication avec serveur (PIM1) hébergeant un autre service de gestion d'informations personnelles, lesdits modules communiquant par l'intermédiaire d'un réseau informatique. 4. Système selon l'une des revendications 2 et 3, dépendante 25 de la revendication 2, caractérisé en ce que les deuxièmes moyens de synchronisation ont une architecture client-serveur, le client et le serveur de cette architecture étant constitués respectivement, d'une part, par un module client hébergé au sein de chacun des terminaux (10, 12, 14) et, d'autre part, par un module de synchronisation (Si, S2) 30 hébergé au sein du portail, lesdits modules client et de synchronisation communiquant par l'intermédiaire d'un réseau informatique. 5. Système de synchronisation selon l'une quelconque des revendications 1 à 4, caractérisé en ce que les premiers moyens de synchronisation comportent des moyens d'échange de données selon un langage standardisé de synchronisation de données utilisant des balises de description de contenu. 6. Système de synchronisation selon l'une quelconque des revendications 2 à 5, caractérisé en ce que les deuxièmes moyens de synchronisation comportent des moyens d'échange de données selon un langage standardisé de synchronisation de données utilisant des balises 10 de description de contenu. 7. Système de synchronisation selon l'une quelconque des revendications 1 à 6, caractérisé en ce que les informations personnelles manipulées par le système de synchronisation sont constituées par des données se présentant selon un format " vCard ". 8. Système de synchronisation selon l'une quelconque des revendications 1 à 6, caractérisé en ce que les informations personnelles manipulées par le système de synchronisation sont constituées par des données se présentant selon un format " vCalendar ". 9. Plate-forme d'accès à des services d'un portail de services hébergeant au moins un service gestionnaire d'informations personnelles (PIM), comprenant un ensemble d'au moins un serveur (PIMI, PIM2) d'accès auxdits services, accessibles à des terminaux d'accès distants (10, 12, 14) et associés à des moyens de mémorisation 25 dans lesquels sont chargées les informations personnelles, caractérisée en ce qu'elle comporte un système de synchronisation selon l'une quelconque des revendications 1 à 8. 10.Plate-forme selon la revendication 9, caractérisée en ce qu'elle comporte des moyens pour générer une interface homme30 machine sur l'écran des terminaux, adaptée pour provoquer l'élaboration et la transmission de commandes de synchronisation à destination du système de synchronisation. II.Procédé de synchronisation de données entre des portails de services hébergeant chacun au moins un service gestionnaire d'informations personnelles (PIM), caractérisé en ce qu'il comporte les étapes consistant à: - élaborer une commande de synchronisation en utilisant une interface homme-machine fournie par un client (S3) de synchronisation d'une architecture client-serveur hébergée, d'une part, dans l'un desdits portails (Pi, P2) et, d'autre part, dans un autre ou les autres portails, ladite commande 10 véhiculant des informations relatives aux données à synchroniser; et - réaliser la synchronisation des données entre les portails en utilisant un serveur de synchronisation (SI) hébergé dans ledit ou lesdits autres portails et indiqué dans la commande 15 de synchronisation. 12.Procédé selon la revendication 11, caractérisé en ce que les clients et le serveur communiquent par l'intermédiaire d'un réseau informatique selon un langage de synchronisation de données utilisant des balises de description de contenu (XML). 13.Procédé selon la revendication 12, caractérisé en ce que les données à synchroniser se présentent selon l'un au moins des formats " vCard " et " vCalendar ", et en ce qu'au cours de la synchronisation, on procède à la conversion bidirectionnelle des balises en format " vCard " ou " vCalendar ".