ES2567192T3 - Sistema y método para traducir la información de sincronización entre dos redes basados en diferentes protocolos de sincronización - Google Patents

Sistema y método para traducir la información de sincronización entre dos redes basados en diferentes protocolos de sincronización Download PDF

Info

Publication number
ES2567192T3
ES2567192T3 ES02013762.6T ES02013762T ES2567192T3 ES 2567192 T3 ES2567192 T3 ES 2567192T3 ES 02013762 T ES02013762 T ES 02013762T ES 2567192 T3 ES2567192 T3 ES 2567192T3
Authority
ES
Spain
Prior art keywords
manifest
synchronization
data store
information
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES02013762.6T
Other languages
English (en)
Inventor
Kent D. Cedoa
Stephen D. Flanagin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Application granted granted Critical
Publication of ES2567192T3 publication Critical patent/ES2567192T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2082Data synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

Un método para replicar información que comprende, en un servidor de sincronización (330), las etapas de: recibir un manifiesto (312) de modificaciones (401) a un almacén de datos (311); comparar el manifiesto de modificaciones a una lista de objetos dentro de un almacén de datos móviles (321); si una modificación específica identificada en el manifiesto tiene relación con un objeto que no está en la lista de objetos incluidos en el almacén de datos móviles, alterar (715) el manifiesto para reflejar que la modificación específica está asociada con un evento de adición (611) para el objeto no incluido en la lista de objetos; y pasar el manifiesto alterado (322) que incluye el evento de adición a un dispositivo móvil (320) en el que reside el almacén de datos móviles.

Description

5
10
15
20
25
30
35
40
45
50
55
60
DESCRIPCION
Sistema y metodo para traducir la information de sincronizacion entre dos redes basados en diferentes protocolos de sincronizacion
Campo Tecnico
La presente invention se refiere a comunicaciones con moviles y, mas especlficamente, a sistemas para sincronizar datos entre sistemas de computation moviles y convencionales.
Antecedentes de la Invencion
Con el uso creciente de dispositivos electronicos moviles, se estan desarrollando muchos sistemas que soportan informacion de replica incluida en un servidor de informacion, tal como un servidor de correo electronico o similar, con esos dispositivos moviles. En respuesta a un comando de busqueda, algunos protocolos de replica consiguen que los datos que han cambiado de estado desde la replica anterior sean identificados a traves de etiquetas “cambiar” y “borrar”, segun corresponda. Si se han borrado los datos desde la replica anterior, a esos datos se les identifica con una etiqueta “borrar”. En el caso de datos que han sido anadidos o modificados desde la replica anterior, a los datos se les identifica con una etiqueta “cambiar”.
Es importante observar que algunos protocolos de replica no cuentan con un evento “anadir” para indicar que se ha anadido un nuevo objeto. Un ejemplo de tal protocolo es la replica Intercambio basado en WebDAV. Sin embargo, los sistemas basados en otros protocolos de sincronizacion si soportan notificaciones para eventos “anadir” ademas de los eventos “cambiar” y “borrar”. Un sistema as! no entendera un mensaje que indique que debe realizarse un “cambio” en un objeto que no ya existiera. Por lo tanto, recibir tal comando tendrla como resultado un comportamiento no deseado en un sistema que no entiende el evento “anadir”. Serla beneficioso aprovechar las notificaciones “anadir” incluso en la replica (tambien conocida como “sincronizacion”) con sistemas que no proporcionan notification de evento “anadir”, como el protocolo DAV.
El documento GB-A-2330224 se refiere a la sincronizacion de un servidor de directorio central (DS) con un servidor de telefonla, tal como un sistema de comunicacion de voz o un sistema integrado de voz y datos. El sistema descrito incluye un servidor de directorio corporativo central (DS), un servidor de gestion OPS y una red de empresa PBX. Para operar como el punto central de administration, el DS contiene suficiente informacion para iniciar la programacion o desprogramacion de un dispositivo en la PBX desde el nivel DS. Por ejemplo, si se anade una nueva entrada al DS que contiene los campos requeridos, esa entrada es importada por el gestor OPS y el dispositivo se programa entonces en la PBX. Se muestra un Servicio de Directorio Integrado (IDS) que sincroniza el DS y el gestor OPS. El sistema IDS amplla aun mas las capacidades de MAC a un administrador en el nivel DS. Ademas, para una sincronizacion DS, se abre una sesion al servidor DS y se solicitan cambios al servidor del directorio. Si se han recibido entradas, el algoritmo de sincronizacion traduce la primera entrada a formato MAC y llama al MAC API.
Sumario de la Invencion
El objetivo de la invencion es proporcionar un sistema mas eficiente para sincronizar almacenes de datos.
El objetivo se soluciona por medio de la presente invencion como reivindican las reivindicaciones independientes.
Las realizaciones preferidas estan definidas por las reivindicaciones dependientes.
A modo de brevedad, la presente invencion define un mecanismo para establecer si un evento definido como evento “cambio” por un protocolo de sincronizacion que no proporciona una notificacion de evento “anadir” es en realidad un evento “anadir” con el proposito de un protocolo que realiza un evento “anadir” diferente de un evento “cambiar”. Por ejemplo, pueden interactuar dos sistemas, uno que se comunica utilizando un protocolo que no utiliza “anadidos” (el “Servidor”) y otro que se comunica utilizando un protocolo que soporta el evento “anadir” (el “sistema del cliente”). En una primera transaction de replica entre los dos sistemas, se crea una tabla del estado de la sincronizacion en un servidor intermedio o un servidor que facilita la comunicacion entre el sistema de informacion y el sistema del cliente. Aunque se describe en el contexto de un Servidor independiente y un servidor intermedio, se observara que puede utilizarse un sistema individual de computacion para realizar la misma funcionalidad.
La tabla del estado de sincronizacion esta unida al sistema del cliente para futuras operaciones de replica. La tabla del estado de sincronizacion mantiene una lista de objetos que han sido enviados al sistema del cliente en operaciones de replica anteriores. Posteriormente, cada vez que el sistema del cliente realiza una operation de replica con el Servidor, se transmite un manifiesto de los cambios desde la ultima transaccion de replica desde el Servidor al servidor intermedio. El manifiesto incluye informacion respecto de los cambios o eliminaciones, pero sin aviso de eventos “anadir”. Para cada evento de “cambio” en el manifiesto, se compara el objeto de cuyo cambio se ha informado con la lista de objetos de la tabla del estado de sincronizacion desde la transaccion anterior. Si el objeto no existe en la tabla, entonces el servidor intermedio cambia la notificacion del objeto de una etiqueta
5
10
15
20
25
30
35
40
45
50
55
60
65
“cambiar” a una etiqueta “anadir” y el objeto es anadido a la tabla del estado de sincronizacion. Cuando se ha procesado completamente el manifiesto, se mantiene la tabla del estado de sincronizacion para su uso en el futuro.
La presente invencion proporciona un sistema que permite el mantenimiento del conocimiento de los objetos y que reside en el sistema del cliente. Esa informacion puede entonces ser utilizada para determinar si un evento identificado como evento “cambiar” es en realidad un evento “anadir”. De forma ventajosa, el servidor intermedio puede traducir la informacion del manifiesto a un formato que aprovecha la capacidad de notificacion del evento anadir adicional.
Breve descripcion de los dibujos
La figura 1 es un diagrama funcional de bloques que ilustra los componentes funcionales de un dispositivo convencional de computacion que puede ser adaptado para ejecutar una realizacion de la presente invencion. La figura 2 es un diagrama funcional de bloques que ilustra los componentes funcionales de un dispositivo movil de computacion que puede ser adaptado para ejecutar una realizacion de la presente invencion.
La figura 3 es un diagrama funcional de bloques que ilustra en general un sistema, que ejecuta la presente invencion, para mantener la sincronizacion entre un almacen de datos fijos y un dispositivo movil.
La figura 4 es un diagrama funcional de bloques que ilustra en general las partes mas representativas de un manifiesto de muestra utilizado en union de la presente invencion.
La figura 5 es un diagrama funcional de bloques que ilustra en general las partes mas representativas de una tabla de muestra del estado de sincronizacion utilizada en union de la presente invencion.
La figura 6 es un diagrama funcional de bloques que ilustra en general las partes mas representativas de de un nuevo manifiesto de muestra creado a partir del manifiesto ilustrado en la figura 5 y de la tabla del estado de sincronizacion ilustrada en la figura 5, de acuerdo con la presente invencion.
La figura 7 es un diagrama logico de flujo que ilustra en general un metodo para traducir la informacion de sincronizacion entre un dispositivo movil y un servidor de acuerdo con la presente invencion.
Descripcion detallada de la realizacion preferida
La presente invencion puede ser realizada en uno o mas componentes que operan dentro una red de computacion distribuida o inalambrica. Esos componentes pueden incluir programas o aplicaciones de software que operan en sistemas de computacion segun varias configuraciones. Se utilizan dos tipos generales de sistemas de computacion para ejecutar las realizaciones de la invencion descritas en este documento. Estos dos tipos generales se ilustran en la FIGURA 1 y FIGURA 2 y se describen posteriormente, seguidos de una explicacion detallada de una realizacion ilustrativa de la invencion, ilustrada en las FlGURAS 3-6, basandose en estos dos tipos de sistemas de computacion.
Entorno ilustrativo operativo
Con referencia a la FIGURA 1, un sistema de ejemplo para realizar la invencion incluye un dispositivo de computacion, tal como un dispositivo de computacion 100. En una configuration muy basica, el dispositivo de computacion 100 normalmente incluye al menos una unidad de procesamiento 102 y una memoria del sistema 104. Segun la configuracion exacta y tipo del dispositivo de computacion, la memoria del sistema 104 puede ser volatil (tipo RAM), no volatil (tipo ROM, memoria flash, etc.) o una combination de ambas. La memoria del sistema 104 normalmente incluye un sistema operativo 105, uno o mas modulos de programa 106 y puede incluir datos de programa 107. Esta configuracion basica esta ilustrada en la FIGURA 1 por los componentes mostrados dentro de la llnea discontinua 108.
El dispositivo de computacion 100 puede tener caracterlsticas o funcionalidades adicionales. Por ejemplo, el dispositivo de computacion 100 puede tambien incluir dispositivos adicionales de almacenamiento de datos (extralbles o no extralbles), tales como, por ejemplo, discos magneticos, discos opticos o cinta. Tal almacenamiento adicional se ilustra en la FIGURA 1 por medio del almacenamiento extralble 109 y el almacenamiento no extralble 110. Los medios de almacenamiento de computacion pueden incluir medios volatiles y no volatiles, extralbles y no extralbles, realizados en cualquier metodo o tecnologla de almacenamiento de la informacion, tales como instrucciones interpretables por ordenador, estructuras de datos, modulos de programa u otros datos. La memoria del sistema 104, el almacenamiento extralble 109 y el almacenamiento no extralble 110 son todos ejemplos de medios de almacenamiento de ordenador. Los medios de almacenamiento de ordenador incluyen, sin limitation, RAM, ROM, EEPROM, memoria flash u otra tecnologla de memoria, CD-ROM, discos digitales versatiles (DVD) u otro almacenamiento optico, casete magnetica, cinta magnetica, almacenamiento de disco magnetico u otros dispositivos de almacenamiento magnetico, o cualesquiera otros medios que puedan utilizarse para almacenar la informacion deseada y a la que se puede acceder por medio del dispositivo de computacion 100. Dichos medios de almacenamiento de ordenador pueden ser parte del dispositivo 100. El dispositivo de computacion 100 puede disponer tambien de dispositivo(s) de entrada 112 tales como teclado, raton, lapiz, dispositivo de entrada de voz, dispositivo de entrada sensible al tacto, etc. Pueden estar incluidos tambien el/los dispositivo/s de salida 114 tales como pantalla, altavoces, impresora, etc. Estos dispositivos son bien conocidos en la tecnica y no necesitan explicacion detallada en este documento.
El dispositivo de computacion 100 puede tambien contener conexiones de comunicacion 116 que permiten que el dispositivo se comunique con otros dispositivos de computacion 118, por ejemplo a traves de una red. Las
5
10
15
20
25
30
35
40
45
50
55
60
65
conexiones de comunicaciones 116 son un ejemplo de medios de comunicacion. Los medios de comunicacion pueden normalmente consistir en instrucciones interpretables por ordenador, estructuras de datos, modulos de programa u otros datos en una senal modulada de datos, tal como una onda portadora u otro mecanismo de transporte, e incluye cualquier medio de suministro de informacion. El termino “senal modulada de datos” se refiere a una senal que tiene una o mas de sus caracterlsticas fijadas o cambiadas de manera de codificar la informacion en la senal. A modo de ejemplo, y sin limitacion, los medios de comunicacion incluyen medios cableados como una red por cable o una conexion directa por cable y medios inalambricos tales como medios acusticos, RF, infrarrojos y otros medios inalambricos. El termino medios interpretables por ordenador como se usa en este documento incluye tanto medios de almacenamiento como medios de comunicacion.
Dispositivo Movil de Computacion
La FIGURA 2 es un diagrama funcional de bloques que ilustra los componentes funcionales de un dispositivo movil de computacion 200. El dispositivo movil de computacion 200 tiene un procesador 260, una memoria 262, una pantalla 228 y un teclado 232. La memoria 262 generalmente incluye tanto memoria volatil (es decir, RAM) como memoria no volatil (por ejemplo, ROM, Memoria Flash o similar). El dispositivo movil de computacion 200 incluye un sistema operativo 264, tal como el sistema operativo Windows CE, de Microsoft, o cualquier otro sistema operativo, residente en la memoria 262 y que ejecuta el procesador 260. El teclado 232 puede ser un teclado de marcado numerico con teclas (como el de un telefono normal), un teclado multi-tecla (como un teclado convencional). La pantalla 228 puede ser una pantalla de cristal llquido o cualquier otro tipo de pantalla utilizado habitualmente en dispositivos moviles de computacion. La pantalla 228 puede ser sensible al tacto y servirla entonces tambien como dispositivo de entrada.
Uno o mas programas de aplicacion 266 estan cargados en la memoria 262 y se ejecutan por el sistema operativo 264. Algunos ejemplos de programas de aplicacion incluyen programas de marcado telefonico, programas de correo electronico, programas de agenda, programas PIM (gestion de informacion personal), programas procesadores de texto, programas de hojas de calculo, programas buscadores de Internet, y demas. El dispositivo movil de computacion 200 tambien incluye almacenamiento no volatil 268 dentro de la memoria 262. La memoria no volatil 268 puede utilizarse para almacenar informacion permanente que no se debe perder si el dispositivo movil de computacion 200 se desconecta. Las aplicaciones 266 pueden utilizar y almacenar la informacion en la memoria 268, tal como correo electronico u otros mensajes utilizados por una aplicacion de correo electronico, informacion de contacto utilizada por una PIM, informacion relativa a citas, utilizada por un programa de agenda, documentos utilizados por una aplicacion de procesador de textos, y similares. Tambien reside en el dispositivo movil una aplicacion de sincronizacion y esta programada para interactuar con una aplicacion de sincronizacion correspondiente que reside en un ordenador anfitrion para mantener la informacion almacenada en la memoria 268 sincronizada con la informacion correspondiente almacenada en el ordenador anfitrion.
El dispositivo movil de computacion 200 tiene una fuente de alimentacion 270 que puede estar compuesta por una o mas baterlas. La fuente de alimentacion 270 puede ademas incluir una fuente de alimentacion externa, tal como un adaptador de CA o un soporte de carga conectado a la red que suplementa o recarga las baterlas.
El dispositivo movil de computacion 200 se muestra tambien con dos tipos de mecanismo de notification externa: un LED 240 y un interfaz de audio 274. Estos dispositivos pueden estar directamente conectados a la fuente de alimentacion 270 de forma que cuando esta se active, permanezcan activados durante el tiempo establecido por el mecanismo de notificacion, aunque el procesador 260 y otros componentes esten desactivados, para conservar la energla. El LED 240 puede estar programado para mantenerse iluminado indefinidamente hasta que el usuario tome el control, para indicar el estado de conectado del dispositivo. El interfaz de audio 274 se utiliza para proporcionar senales audibles al usuario y recibir senales audibles de este. Por ejemplo, el interfaz de audio 274 puede estar conectado a un altavoz para proporcionar senales audibles y a un microfono para recibir senales audibles, por ejemplo para permitir una conversation telefonica.
El dispositivo movil de computacion 200 tambien incluye una capa de interfaz de radio 272 que realiza la funcion de transmitir y recibir comunicaciones de radio frecuencia. La capa de interfaz de radio 272 posibilita la conectividad inalambrica entre el dispositivo movil de computacion 200 y el mundo exterior, a traves de una portadora de comunicaciones o un proveedor de servicios. Las transmisiones a y desde la capa de interfaz de radio 272 se realizan bajo el control del sistema operativo 264. En otras palabras, las comunicaciones recibidas por la capa de interfaz de radio 272 pueden ser transmitidas a los programas de aplicacion 266 a traves del sistema operativo 264, y viceversa.
Sistema de Sincronizacion Ilustrativo
La FIGURA 3 es un diagrama funcional de bloques que generalmente ilustra un sistema que ejecuta la presente invention para mantener la sincronizacion entre un almacen de datos fijos, tal como un servidor de informacion 310 y un dispositivo movil 320. En esta ejecucion, el servidor de informacion 310 es un dispositivo de computacion tal como el descrito anteriormente junto con la FIGURA 1, y el dispositivo movil es un dispositivo movil de computacion tal como el descrito anteriormente junto con la FIGURA 2.
5
10
15
20
25
30
35
40
45
50
55
60
65
El servidor de informacion 310 incluye un almacen de datos 311 en el que reside la information que es utilizada por un usuario del dispositivo movil 320. Por ejemplo, el servidor de informacion 310 podria ser un servidor de correo electronico que alberga mensajes de correo electronico, informacion de contacto, informacion sobre citas y similares, para el usuario. Tambien reside otra copia de la informacion en el dispositivo movil 320 dentro de un almacen de datos moviles 321. Al conjunto de informacion similar que reside tanto en una carpeta especifica en el servidor de informacion 310 como en el dispositivo movil 320 se le denomina “coleccion”. Al almacenar la coleccion tanto en el servidor de informacion 310 como en el dispositivo movil 320, el usuario tiene siempre acceso a la coleccion, a traves de un sistema de computation convencional conectado al servidor de informacion 310 o directamente a traves del dispositivo movil 320. Sin embargo, para asegurar que los cambios en la coleccion que se producen en el dispositivo movil 320 se reflejan en el servidor de informacion 310 y viceversa, los dos sistemas de computacion estan sincronizados.
La sincronizacion entre los dos dispositivos puede realizarse por medio de un servidor de sincronizacion 330 que esta en comunicacion con el servidor de informacion 310 y con el dispositivo movil 320. Se observara que el servidor de sincronizacion 330 puede estar situado con el servidor de informacion 310, por ejemplo, dentro de una corporation o en otras empresas comerciales. Alternativamente, el servidor de sincronizacion 330 puede ser parte de un proveedor movil de servicios de comunicaciones que esta en comunicacion inalambrica con el dispositivo movil 320 y en comunicacion con el servidor de informacion 310. Hay una alternativa mas, en la que el servidor de sincronizacion 330 puede ser parte del propio dispositivo movil.
El servidor de sincronizacion 330 esta conectado al servidor de informacion 310 a traves de una red local o de banda ancha de modo convencional. El servidor de informacion 310 proporciona capacidad de sincronizacion (o replica), utilizando un protocolo que no utiliza la notification del evento “anadir”, tal como el protocolo normalizado de Autoria y Version del Documento (DAV) (a veces denominado WebDAV). Aunque se hace referencia al uso de protocolo DAV o WebDAV, ese es solo un ejemplo de un protocolo que no incluye notificacion del evento “anadir”, y la presente invention es igualmente aplicable a cualquier otro protocolo similar.
De acuerdo con ese protocolo, otras aplicaciones pueden interactuar con el almacen de datos 311 para ver, modificar y recuperar elementos de dentro de la coleccion. Como es bien conocido en la tecnica, una operation de sincronizacion basicamente se produce como se indica a continuation. Un cliente, como el servidor de sincronizacion 330, dirige al servidor de informacion 310 un comando de sincronizacion (por ejemplo, un comando PROPFIND o SEARCH). El comando de sincronizacion incluye una notificacion de los elementos de la coleccion que el cliente ya tiene y su estado, de forma que el servidor de informacion 310 no retransmite la misma informacion.
El servidor de informacion 310 responde al comando de sincronizacion identificando cualquiera de los elementos de la coleccion del almacen de datos 311 de los que el cliente no posee aun la version actualizada, junto con informacion adicional relativa a cuan diferente es la informacion (es decir, como debe ser modificada la informacion para reflejar la version actual). El cliente sube entonces al servidor de informacion 310 cualquier elemento que el cliente sepa que ha cambiado desde la ultima sincronizacion y descarga los nuevos elementos desde el almacen de datos 311.
Mas especificamente, el servidor de informacion 310 responde al comando de sincronizacion, devolviendo un “manifiesto” 312 que incluye una lista de cambios en la coleccion del almacen de datos 311. El manifiesto 312 puede tambien incluir informacion que identifique los cambios a realizar en la coleccion del dispositivo movil 320 para sincronizar la informacion. Un ejemplo de la estructura de un manifiesto se ilustra en la FIGURA 4 y se describe a continuacion. Una caracteristica importante del manifiesto 312 es que, de acuerdo con el protocolo especifico que se esta utilizando entre el servidor de informacion 310 y el servidor de sincronizacion 330, solo se proporcionan instrucciones relativas a “cambiar” y “borrar”. En otras palabras, si se ha anadido a la coleccion del servidor de informacion 310, se incluiria una instruction “cambiar” en el manifiesto 312 que identifica el nuevo elemento.
En contraste, el protocolo de sincronizacion utilizado entre el dispositivo movil 320 y el servidor 330 utiliza una instruccion “anadir” y si emite una instruccion “cambiar” para un elemento que aun no existe en el dispositivo movil 320, la transaction de sincronizacion puede fallar, al menos para el elemento especifico. Por esta razon, el servidor de sincronizacion 330 de esta ejecucion utiliza mecanismos para determinar cuando una instruccion “cambiar” es en realidad una instruccion “anadir” y para reemplazar esas instrucciones “cambiar “por las instrucciones “anadir” apropiadas.
El servidor de sincronizacion 330 mantiene, entre otras cosas, una tabla del estado de sincronizacion 331. La informacion sobre la version actual de los elementos de la coleccion en el dispositivo movil 320 se almacenan en la tabla del estado de sincronizacion 331. La informacion almacenada puede ser tan simple como un unico identificador de cada elemento en la coleccion del dispositivo movil 320 (por ejemplo, un identificador unico de replica o “ReplUID”). La tabla del estado de sincronizacion 331 esta asociada con el dispositivo movil de forma que cada transaccion de sincronizacion hace que el servidor de sincronizacion 330 actualice la tabla del estado de sincronizacion 331.
5
10
15
20
25
30
35
40
45
50
55
60
65
La tabla del estado de sincronizacion 331 identifica que elementos ya existen en la coleccion en el dispositivo movil 320. Por lo tanto, cuando llega el manifiesto 312, se compara la informacion del manifiesto 312 con la tabla del estado de sincronizacion 331 para identificar cualquier elemento que lleve la marca “cambiar” en el manifiesto 312 pero que no existe aun en el dispositivo movil 320. Dicho de otra forma, el gestor de sincronizacion 330 determina si algunos de los elementos marcados con una instruccion “cambiar” en el manifiesto 312 estan identificados en la tabla del estado de sincronizacion 331. Si no, entonces la instruccion marcada como “cambiar” en el manifiesto es en realidad una instruccion para anadir el elemento. Por lo tanto, el servidor de sincronizacion 330 puede cambiar estas instrucciones por la instruccion correcta “anadir”, y crear un nuevo manifiesto 322. El nuevo manifiesto 322 incluye la informacion relevante del manifiesto 312, excepto que las instrucciones “cambiar” que son en realidad “anadir” son reemplazadas por las instrucciones apropiadas. El nuevo manifiesto 322 se transmite entonces al dispositivo movil 320 para continuar la transaccion de sincronizacion.
La FIGURA 4 es un diagrama funcional de bloques que ilustra en general las partes destacadas de un manifiesto de muestra 312 utilizado junto con la presente invencion. En el manifiesto de muestra 312, cada fila esta asociada con un elemento o mensaje especlfico, tal como un simple mensaje de correo electronico o contacto. Cada entrada incluye tres columnas de informacion: una columna de accion 401, una columna ID 403 y una columna de datos de objeto 405. La columna ID 403 identifica el elemento concreto al que pertenece el registro en el manifiesto 312. Por ejemplo, un elemento de la coleccion podrla ser un mensaje de correo electronico identificado por Repl-UID “XXXX123”. La columna de accion 401 identifica la accion especlfica a realizar sobre la propiedad. La columna de datos de objeto 405 incluye las propiedades especlficas del elemento correspondiente.
La FIGURA 5 es un diagrama funcional de bloques que ilustra en general las partes destacadas de una tabla del estado de sincronizacion de muestra 331 utilizada junto con la presente invencion. Incluye al menos una columna, una columna ID 503, que contiene identificadores unicos asociados a cada elemento en la coleccion almacenados en el dispositivo movil 320. La tabla del estado de sincronizacion 331 puede ser creada por el servidor de sincronizacion 330 durante una primera transaccion de sincronizacion del dispositivo movil 320, o alternativamente, puede ser proporcionada por el dispositivo movil 320 al servidor de sincronizacion 330 en cualquier otro momento.
La FIGURA 6 es un diagrama funcional de bloques que ilustra en general las partes destacadas de un nuevo manifiesto de muestra 322 utilizado junto con la presente invencion. El nuevo manifiesto 322 guarda gran parecido con el manifiesto 312 e incluye las mismas columnas, columna de accion 601, columna ID 603 y columna de datos de objeto 605. Sin embargo, ya que el nuevo manifiesto 322 es compatible con un tipo diferente de protocolo de sincronizacion, puede incluir instrucciones “anadir” 611 en la columna de accion 601, al contrario que el manifiesto 312.
Debe observarse que aunque la imagen conceptual del nuevo manifiesto 322 se parece mucho a la imagen conceptual del manifiesto 312, los expertos en la materia observaran que las diferencias programaticas pueden ser importantes. Por ejemplo, un manifiesto puede estar en forma de Lenguaje Markup eXtensible (XML) con un primer esquema y el nuevo manifiesto puede estar en formato XML con un esquema completamente diferente, aunque la informacion contenida sea similar
Metodo de Sincronizacion Ilustrativo
La FIGURA 7 es un diagrama logico de flujo que ilustra en general un metodo 700 para traducir la informacion de sincronizacion entre un dispositivo movil y un servidor de acuerdo con la presente invencion. El metodo 700 comienza con el inicio de una transaccion de sincronizacion. En el bloque de decision 701, el metodo determina si la transaccion actual de sincronizacion (tambien llamada “replica”) es la primera sincronizacion del dispositivo movil 320 con el servidor de informacion 310.
Si la transaccion actual de sincronizacion es la primera, en el bloque 703, el servidor de sincronizacion 330 crea una nueva mesa del estado de sincronizacion vacla, como la descrita anteriormente junto con la FIGURA 5 y une la nueva mesa del estado de sincronizacion con el dispositivo movil 320. El servidor de sincronizacion 330 puede inicialmente rellenar la mesa del estado de sincronizacion con cualquier objeto identificado por el dispositivo movil 320 durante la transaccion actual de sincronizacion. Si la transaccion actual de sincronizacion no es la primera, en el bloque 705, el servidor de sincronizacion carga una tabla del estado de sincronizacion previamente almacenada, asociada a la coleccion del dispositivo movil 320. La mesa del estado de sincronizacion guarda una lista de objetos que han sido enviados al dispositivo movil 320 en anteriores transacciones de sincronizacion.
Con la tabla del estado de sincronizacion cargada o creada, en el bloque 707, el servidor de sincronizacion 330 realiza una busqueda de replica para crear un manifiesto de cambio y borrar eventos. Como se ha descrito anteriormente, el servidor de sincronizacion 330 emite un comando de sincronizacion al servidor de informacion 310, que devuelve el manifiesto identificando cada elemento que ha cambiado desde la ultima replica.
En el bloque 709, el metodo 700 entra en un bucle iterativo 710 que incluye el bloque de decision 711, el bloque de decision 713 y el bloque 713. El bucle 710 se repite para cada elemento en el manifiesto recibido en el bloque 707. El bucle 710 determina si cada elemento esta identificado como “cambiar” (en el bloque de decision 711) y si no,
continua al siguiente elemento del manifiesto. Sin embargo, para cada elemento “cambiar” en el manifiesto, se determina (en el bloque de decision 713) si existe el elemento marcado como “cambiar” en la tabla del estado de sincronizacion. Si es asl, entonces el bucle continua al siguiente elemento del manifiesto. Pero si el elemento marcado como “cambiar” no existe en la tabla del estado de sincronizacion, entonces su tipo de accion cambia de 5 “cambiar” a “anadir” (en el bloque 715) y el elemento se anade a la tabla del estado de sincronizacion. En el bloque de decision 717, se determina si hay mas elementos que tratar, y de ser asl, el bucle continua. De lo contrario, el proceso finaliza. Una vez se han tratado todas las entradas del manifiesto, la tabla del estado de sincronizacion se conserva para ser usada en el futuro.
10 La especificacion, ejemplos y datos anteriores proporcionan una descripcion completa de la fabricacion y uso de la composicion de la invencion. Dado que pueden hacerse muchas realizaciones de la invencion sin apartarse del ambito de la invencion, la invencion se basa en las reivindicaciones adjuntas a continuacion en este documento.

Claims (10)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    REIVINDICACIONES
    1. - Un metodo para replicar informacion que comprende, en un servidor de sincronizacion (330), las etapas de:
    recibir un manifiesto (312) de modificaciones (401) a un almacen de datos (311);
    comparar el manifiesto de modificaciones a una lista de objetos dentro de un almacen de datos moviles (321);
    si una modificacion especlfica identificada en el manifiesto tiene relacion con un objeto que no esta en la lista de objetos incluidos en el almacen de datos moviles, alterar (715) el manifiesto para reflejar que la modificacion especlfica esta asociada con un evento de adicion (611) para el objeto no incluido en la lista de objetos; y
    pasar el manifiesto alterado (322) que incluye el evento de adicion a un dispositivo movil (320) en el que reside el almacen de datos moviles.
  2. 2. - El metodo segun la reivindicacion 1, en el que el manifiesto alterado incluye modificaciones (601) que describen eventos de adicion, eventos de cambio y eventos de borrado.
  3. 3. - El metodo segun la reivindicacion 2, en el que los eventos de adicion, eventos de cambio y eventos de borrado describen acciones a realizar en objetos que residen en el almacen de datos moviles.
  4. 4. - El metodo segun la reivindicacion 1, en el que el manifiesto, antes de ser alterado, no contiene una modificacion que describe un evento de adicion, y en el que el manifiesto alterado contiene al menos una modificacion que describe un evento de adicion.
  5. 5. - El metodo segun la reivindicacion 1, en el que el manifiesto se crea de acuerdo con un protocolo de Autorla y Version del Documento, DAV.
  6. 6. - El metodo segun la reivindicacion 5, en el que el manifiesto alterado ya no es coherente con el protocolo DAV.
  7. 7. - El metodo segun la reivindicacion 1, en el que el manifiesto se crea en respuesta a una peticion para sincronizar el almacen de datos y el almacen de datos moviles.
  8. 8. - El metodo segun la reivindicacion 7, en el que la peticion de sincronizacion comprende una peticion de busqueda de objetos en el almacen de datos que han cambiado desde una transaccion anterior de sincronizacion entre el almacen de datos y el almacen de datos moviles.
  9. 9. - El metodo segun la reivindicacion 7, en el que la peticion de sincronizacion comprende una peticion de busqueda de objetos en el almacen de datos que han sido borrados desde una transaccion anterior de sincronizacion entre el almacen de datos y el almacen de datos moviles.
  10. 10. - Un medio interpretable por ordenador donde se almacenan instrucciones ejecutables por ordenador, que, cuando son ejecutadas por una unidad procesadora, hacen que la unidad procesadora ejecute el metodo de cualquiera de las reivindicaciones anteriores.
ES02013762.6T 2001-06-27 2002-06-20 Sistema y método para traducir la información de sincronización entre dos redes basados en diferentes protocolos de sincronización Expired - Lifetime ES2567192T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US892677 1986-08-01
US09/892,677 US6928458B2 (en) 2001-06-27 2001-06-27 System and method for translating synchronization information between two networks based on different synchronization protocols

Publications (1)

Publication Number Publication Date
ES2567192T3 true ES2567192T3 (es) 2016-04-20

Family

ID=25400345

Family Applications (1)

Application Number Title Priority Date Filing Date
ES02013762.6T Expired - Lifetime ES2567192T3 (es) 2001-06-27 2002-06-20 Sistema y método para traducir la información de sincronización entre dos redes basados en diferentes protocolos de sincronización

Country Status (3)

Country Link
US (1) US6928458B2 (es)
EP (1) EP1271318B1 (es)
ES (1) ES2567192T3 (es)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7284064B1 (en) 2000-03-21 2007-10-16 Intel Corporation Method and apparatus to determine broadcast content and scheduling in a broadcast system
US20020143591A1 (en) * 2001-03-30 2002-10-03 Connelly Jay H. Method and apparatus for a hybrid content on demand broadcast system
US7185352B2 (en) * 2001-05-11 2007-02-27 Intel Corporation Method and apparatus for combining broadcast schedules and content on a digital broadcast-enabled client platform
US20030005465A1 (en) * 2001-06-15 2003-01-02 Connelly Jay H. Method and apparatus to send feedback from clients to a server in a content distribution broadcast system
US20020194603A1 (en) * 2001-06-15 2002-12-19 Jay H. Connelly Method and apparatus to distribute content using a multi-stage broadcast system
US7363569B2 (en) 2001-06-29 2008-04-22 Intel Corporation Correcting for data losses with feedback and response
US6917951B2 (en) * 2001-07-26 2005-07-12 Microsoft Corporation System and method for replicating data in resource sets
KR20030013200A (ko) * 2001-08-07 2003-02-14 한국전자통신연구원 객체 트랜잭션 서비스 조정자를 이용한 자바 트랜잭션서비스의 상태객체 제거방법
US8943540B2 (en) * 2001-09-28 2015-01-27 Intel Corporation Method and apparatus to provide a personalized channel
JP2003196232A (ja) * 2001-12-27 2003-07-11 Fuji Xerox Co Ltd 情報収集装置、情報収集方法
US20030135553A1 (en) * 2002-01-11 2003-07-17 Ramesh Pendakur Content-based caching and routing of content using subscription information from downstream nodes
EP1518381B1 (en) * 2002-06-28 2007-10-24 Nokia Corporation Method and device for retrieving data store access information
JP2004227080A (ja) * 2003-01-20 2004-08-12 Nec Corp 情報処理システム、携帯端末、及び、情報処理サーバ
US7913279B2 (en) * 2003-01-31 2011-03-22 Microsoft Corporation Global listings format (GLF) for multimedia programming content and electronic program guide (EPG) information
US8209375B2 (en) * 2003-03-07 2012-06-26 Ricoh Co., Ltd. Communication of compressed digital images with restricted access and server/client hand-offs
US8135759B2 (en) * 2003-08-07 2012-03-13 Teamon Systems, Inc. Communications system including protocol interface device for use with multiple operating protocols and related methods
CN100432998C (zh) * 2003-08-07 2008-11-12 蒂蒙系统公司 包括使用多种操作协议的协议接口设备的通信系统及相关方法
US8032593B2 (en) * 2003-08-07 2011-10-04 Teamon Systems, Inc. Communications system providing reduced access latency and related methods
US7685302B2 (en) * 2003-08-11 2010-03-23 Teamon Systems, Inc. Communications system providing extensible protocol translation and configuration features and related methods
US8028078B2 (en) 2003-08-07 2011-09-27 Teamon Systems, Inc. Communications system including protocol interface device providing enhanced operating protocol selection features and related methods
US7774486B2 (en) * 2003-08-11 2010-08-10 Teamon Systems, Inc. Communications system providing multi-layered extensible protocol interface and related methods
US7644170B2 (en) * 2003-08-11 2010-01-05 Teamon Systems, Inc. Communications system providing extensible protocol translation features and related methods
US7289975B2 (en) 2003-08-11 2007-10-30 Teamon Systems, Inc. Communications system with data storage device interface protocol connectors and related methods
US20050181790A1 (en) * 2004-02-10 2005-08-18 Yach David P. Apparatus, and associated method, for facilitating efficient communication of data communicated pursuant to a syncrhonization session
US7730097B2 (en) * 2004-02-12 2010-06-01 Mobileframe, Llc Smart database
WO2005079349A2 (en) * 2004-02-12 2005-09-01 Mobileframe Llc Integrated deployment of software projects
US20070100834A1 (en) * 2004-09-15 2007-05-03 John Landry System and method for managing data in a distributed computer system
US20060168069A1 (en) * 2005-01-25 2006-07-27 International Business Machines Corporation Method, system and program product for performing message benchmarking
US20070070999A1 (en) * 2005-08-02 2007-03-29 Black Jeffrey T Synchronization of historical data without retransmission
US20070162516A1 (en) * 2005-12-30 2007-07-12 Microsoft Corporation Computing asynchronous transaction log replication progress based on file change notifications
US20090083441A1 (en) 2007-09-24 2009-03-26 Microsoft Corporation Synchronization of web service endpoints in a multi-master synchronization environment
US8078957B2 (en) * 2008-05-02 2011-12-13 Microsoft Corporation Document synchronization over stateless protocols
US8219526B2 (en) * 2009-06-05 2012-07-10 Microsoft Corporation Synchronizing file partitions utilizing a server storage model
KR101808732B1 (ko) * 2010-06-09 2018-01-18 프라발라 인코포레이티드 복수의 서로 다른 네트워크를 통한 데이터 송신
ES2805755T3 (es) * 2011-03-10 2021-02-15 Amadeus Sas Sistema y método para sincronización de sesión con sistemas externos independientes
US9218405B2 (en) * 2012-10-10 2015-12-22 Apple Inc. Batch processing and data synchronization in cloud-based systems
US10521309B1 (en) 2013-12-23 2019-12-31 EMC IP Holding Company LLC Optimized filesystem walk for backup operations
US10298585B1 (en) 2018-01-26 2019-05-21 Accenture Global Solutions Limited Blockchain interoperability
US10721065B2 (en) 2018-03-29 2020-07-21 Accenture Global Solutions Limited Active state blockchain synchronization

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5694546A (en) * 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US5745906A (en) * 1995-11-14 1998-04-28 Deltatech Research, Inc. Method and apparatus for merging delta streams to reconstruct a computer file
US5926816A (en) * 1996-10-09 1999-07-20 Oracle Corporation Database Synchronizer
US5870760A (en) * 1996-12-19 1999-02-09 Oracle Corporation Dequeuing using queue batch numbers
US5961590A (en) 1997-04-11 1999-10-05 Roampage, Inc. System and method for synchronizing electronic mail between a client site and a central site
US6125369A (en) 1997-10-02 2000-09-26 Microsoft Corporation Continuous object sychronization between object stores on different computers
CA2217923C (en) 1997-10-10 2002-01-15 Mitel Corporation Integrated directory services
US6286060B1 (en) * 1998-06-26 2001-09-04 Sun Microsystems, Inc. Method and apparatus for providing modular I/O expansion of computing devices
US6317754B1 (en) 1998-07-03 2001-11-13 Mitsubishi Electric Research Laboratories, Inc System for user control of version /Synchronization in mobile computing
US6463427B1 (en) * 1999-03-16 2002-10-08 Microsoft Corporation Use of object signature property as a search parameter during synchronization of objects on a computer

Also Published As

Publication number Publication date
EP1271318B1 (en) 2016-02-24
EP1271318A3 (en) 2004-07-21
US20030004955A1 (en) 2003-01-02
EP1271318A2 (en) 2003-01-02
US6928458B2 (en) 2005-08-09

Similar Documents

Publication Publication Date Title
ES2567192T3 (es) Sistema y método para traducir la información de sincronización entre dos redes basados en diferentes protocolos de sincronización
US11656859B2 (en) Data model API for live applications in a cloud collaboration platform
ES2317968T3 (es) Sistema y procedimiento de recuperacion de una sesion de sincronizacion fallida.
US10585570B2 (en) Author sharing and recipient creation of copied collaborative content items
US9002344B2 (en) Phone content service
ES2577279T3 (es) Gestión de conectividad para un dispositivo inalámbrico
US7831558B2 (en) Bi-directional data modification with synchronization
US10740298B2 (en) File synchronization with reduced conflicts in computing systems
US20050228812A1 (en) System and method for accessing different types of back end data stores
US20140279893A1 (en) Document and user metadata storage
US20140281875A1 (en) Multi-user layer annotation
US9465856B2 (en) Cloud-based document suggestion service
TW200842627A (en) Techniques to cross-synchronize data
US7783712B2 (en) System and method for bi-directional synchronized conversion of electronic mail data
KR20060041737A (ko) 다중 동기화 소스의 크로스-폴리네이션
CN104769616A (zh) 作为移动应用的平台的规则引擎
KR20070076619A (ko) 서버의 주소 정보를 업데이트하는 dns의 동작 방법 및그 방법을 채용한 dns
US20080243874A1 (en) Lightweight Schema Definition
US20230315757A1 (en) Systems and methods for flexible synchronization
US11080243B2 (en) Synchronizing virtualized file systems
US7739232B2 (en) Programming system for occasionally-connected mobile business applications
Karypidis et al. Omnistore: A system for ubiquitous personal storage management
US20180191659A1 (en) Comment management in shared documents
US20180097877A1 (en) Linking content items and collaboration content items
US20190042605A1 (en) Selective data migration on schema breaking changes