MXPA05013617A - Metodo y sistema para sincronizar multiples revisiones de usuario para un objeto compartido. - Google Patents

Metodo y sistema para sincronizar multiples revisiones de usuario para un objeto compartido.

Info

Publication number
MXPA05013617A
MXPA05013617A MXPA05013617A MXPA05013617A MXPA05013617A MX PA05013617 A MXPA05013617 A MX PA05013617A MX PA05013617 A MXPA05013617 A MX PA05013617A MX PA05013617 A MXPA05013617 A MX PA05013617A MX PA05013617 A MXPA05013617 A MX PA05013617A
Authority
MX
Mexico
Prior art keywords
shared object
revision
conflict
review
page
Prior art date
Application number
MXPA05013617A
Other languages
English (en)
Inventor
Igor Kofman
Original Assignee
Microsoft Corp
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 Corp filed Critical Microsoft Corp
Publication of MXPA05013617A publication Critical patent/MXPA05013617A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • 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

Abstract

Muchos usuarios diferentes pueden acceder, revisar y actualizar el mismo objeto compartido simultaneamente a traves de diferentes transportes. Las revisiones al objeto compartido son automaticamente sincronizadas para que todos los usuarios puedan ver las revisiones al objeto compartido. Las revisiones de conflicto son reconciliadas y fusionadas en una version actual del objeto compartido. Un cliente puede solicitar la version actual del objeto compartido desde un almacenamiento cuando la version actual del objeto compartido no esta disponible desde al almacenamiento. La version actual del objeto compartido esta sincronizada con el cliente cuando el almacenamiento recibe la version actual del objeto compartido.

Description

METODO Y SISTEMA PARA SINCRONIZAR MULTIPLES REVISIONES DE USUARIO PARA UN OBJETO COMPARTIDO ANTECEDENTES DE LA INVENCION Las aplicaciones para compartir archivos permiten a diferentes usuarios compartir colectivamente información. Muchos usuarios pueden acceder el mismo archivo simultáneamente. Todos los usuarios pueden ver el archivo pero solo el primer usuario pueoe acceder al archivo y tiene privilegios de edición. Los usuarios subsecuentes al acceder el archivo están bloqueados de editar el archivo. Al proporcionar una versión solo de lectura de un archivo a todos excepto a un usuario es inconveniente para archivos muy compartidos. Esto es particularmente exacerbado si los usuarios desean trabajar en un archivo compartido fuera de línea. Por ejemplo, otros usuarios pueden estar fuera del archivo por un periodo largo de tiempo si el primer usuario en acceder al archivo compartido está lejos en un viaje de negocios.
COMPENDIO DE LA INVENCION La presente invención está dirigida a un método y sistema para sincronizar múltiples revisiones de usuario a un objeto compartido. El objeto puede ser cualquier entidad cualquier de ser compartida tal como un archivo. Muchos usuarios diferentes pueden acceder, revisar y actualizar el mismo objeto compartido simultáneamente a través diferentes transportes. Los usuarios no están bloqueados de acceder y revisar un objeto compartido cuando otro usuario tiene acceso al objeto compartido. Cualquiera de los usuarios autorizados puede revisar simultáneamente el objeto compartido. Los usuarios no están requeridos para estar conectados al objeto compartidos mientras se hacen revisiones. Las revisiones pueden hechas fuera de línea a una versión en memoria caché local del objeto. Las revisiones después son sincronizadas con otras revisiones de usuario cuando el objeto compartido está disponible. Las revisiones para el objeto compartido son automáticamente sincronizadas para que todos los usuarios puedan ver revisiones para el objeto compartido. Diferentes usuarios pueden revisar el objeto compartido en diferentes momentos para que múltiples versiones del objeto compartido puedan coexistir. La última versión del objeto compartido es la versión que incluye las revisiones sincronizadas más recientes que están disponibles para otros usuarios autorizados. Puede ocurrir un conflicto cuando dos usuarios revisan la misma porción del objeto compartido. La porción revisada puede no estar sincronizada con el objeto compartido y hay conflicto con otra revisión del usuario a la misma porción. La porción del objeto compartido que tiene la revisión en conflicto es presentada en una página de conflicto. La página de conflicto parece una página maestra correspondiente de la última versión del archivo compartido que excepto que la porción del objeto compartido que tiene la revisión de conflicto está resaltada y presentada en lugar de la revisión sincronizada. Un indicador de conflictos presentada en la página maestra del objeto compartido. La página de conflicto es presentada a lo largo de la página maestra cuando se selecciona el indicador de conflicto. Un usuario es presentado tanto con el estado sincronizado de la página maestra como con la página de conflicto correspondiente. El usuario puede reconciliar y fusionar las revisiones de conflicto en la página maestra. Las revisiones de conflicto que son identificadas como irrelevantes pueden ser eliminadas. En un aspecto de la invención, se recibe una revisión para un objeto compartido. Se hace una determinación si la revisión tiene conflictos con una revisión sincronizada en una página maestra del objeto compartido. La revisión está sincronizada con el objeto compartido cuando se determina que la revisión va a estar asociada con una versión actual del objeto compartido cuando la revisión se determina que no tiene conflicto con una revisión sincronizada.
BREVE DESCRIPCION DE LOS DIBUJOS La Figura 1 ilustra un dispositivo de cómputo que puede ser utilizado de acuerdo con una modalidad ilustrativa de la presente invención. La Figura 2 ilustra un diagrama de bloque de un sistema para sintonizar múltiples revisiones de usuario a un objeto compartido, de acuerdo con la presente invención. La Figura 3 ilustra un gráfico jerárquico de nodos conectados que indican diferentes porciones de un objeto compartido, de acuerdo con la presente invención. La Figura 4 ilustra una página maestra de un objeto compartido y una página de conflicto asociada, de acuerdo con la presente invención. La Figura 5 ilustra un diagrama de bloque de un sistema para sincronizar múltiples revisiones de usuario para un objeto compartido, de acuerdo con la presente invención. La Figura 6 ilustra un diagrama de flujo operacional que ilustra un procedimiento de sincronización de múltiples revisiones de usuario para un objeto compartido, de acuerdo con ia presente invención. La Figura 7 ilustra un diagrama de flujo relacionado ilustra un procedimiento para reconciliar y fusionar revisiones de conflicto de múltiples usuarios en un objeto compartido, de acuerdo con la presente invención. La Figura 8 ilustra un diagrama de flujo operacional que ¡lustra un procedimiento para sincronizar múltiples revisiones de usuario para un objeto compartido, de acuerdo con la presente invención. La Figura 9 ilustra un diagrama de flujo operacional que ilustra un procedimiento para transitar aproximadamente de modos de comunicación asincrónico a asincrónico, de acuerdo con la presente invención.
La Figura 10 ilustra un diagrama de flujo operacional que ilustra un procedimiento para transitar aproximadamente de modos de comunicación sincrónicos a sincrónicos, de acuerdo con la presente invención.
DESCRIPCION DETALLADA DE LA MODALIDAD PREFERIDA La presente invención está dirigida a un método y sistema para sincronizar múltiples revisiones de usuario a un objeto compartido. El objeto puede ser una entidad capaz de ser compartida tal como un archivo. Muchos usuarios diferentes pueden acceder, revisar y actualizar el mismo objeto compartido simultáneamente a través de diferentes transportes. Los usuarios no están bloqueados de acceder y revisar un objeto compartido cuando otro usuario tiene acceso al objeto compartido. Cualquiera de los usuarios autorizados puede revisar simultáneamente el objeto compartido. Los usuarios no requieren estar conectados al objeto compartido mientras hacen las revisiones. Las revisiones pueden ser hechas fuera de línea para una versión en memoria caché local del objeto. Las revisiones después son sincronizadas con otras revisiones de usuario cuando el objeto compartido está disponible. Las revisiones para el archivo compartido son automáticamente sincronizadas para que todos los usuarios puedan ver las revisiones para el objeto compartido. Diferentes usuarios pueden revisar el objeto compartido en diferentes momentos para que múltiples versiones del objeto compartido puedan coexistir. La última versión del objeto compartido es la versión que incluye las revisiones sincronizadas más recientes que son disponibles para otros usuarios autorizados. Puede ocurrir un conflicto cuando dos usuarios revisan la misma porción del objeto compartido. La porción revisada no puede ser sincronizada con el objeto compartido si tiene conflictos con otra revisión del usuario a la misma porción. La porción del objeto compartido que tiene las revisiones en conflicto es presentada en una página de conflicto. La página de conflicto parece una página maestra correspondiente de la última versión del objeto compartido excepto que la porción del objeto que tiene la revisión de conflicto está resaltada y presentada en lugar de la revisión sincronizada. Un indicador de conflicto es presentado en la página maestra del archivo compartido. La página de conflicto es presentada a lo largo de la página maestra cuando el indicador de conflicto es seleccionado. El usuario es presentado tanto con el estado sincronizado de la página maestra como con la página de conflicto correspondiente. El usuario puede reconciliar y fusionar las revisiones de conflicto en la página maestra. Las revisiones del conflicto que son identificadas como irrelevantes pueden ser eliminadas.
Ambiente Operativo Ilustrativo Con referencia a la Figura 1, un sistema ilustrativo para ¡mplementar la invención incluye un dispositivo de cómputo, tal como dispositivo de cómputo 100. El dispositivo de cómputo 100 puede estar configurado como un cliente, un servidor, un dispositivo móvil, o cualquier otro dispositivo de cómputo que interactúa con datos en un sistema de colaboración basado en red. En una configuración básica, el dispositivo de cómputo 100 típicamente incluye al menos una unidad de procesamiento 102 y memoria de sistema 104. Dependiendo en la configuración exacta y tipo de dispositivo de cómputo, la memoria de sistema 104 puede ser volátil (tal como RAM), no volátil (tal como ROM, memoria instantánea, y similares) o alguna combinación de ambas. La memoria del sistema 104 típicamente incluye un sistema operativo 105, una o más aplicaciones 106, y pueden incluir datos de programa 107. Un módulo de sincronización de revisión 108, que escrito en detalla más adelante, es implementado dentro de las aplicaciones 106. El dispositivo de cómputo 100 también puede tener características adicionales o funcionalidad. Por ejemplo, el dispositivo de cómputo 100 también puede incluir dispositivos de almacenamiento de datos adicionales (removible y/o no removible) tal como, por ejemplo, discos magnéticos, discos ópticos, o cintas. Tal almacenamiento adicional es ilustrado en la Figura 1 por almacenamiento removible 109 y almacenamiento no removible 110. Los medios de almacenamiento de computadora pueden incluir medios volátiles y no volátiles, removibles y no removibles implementados por cualquier método o tecnología para almacenamiento de información, tal como instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos. La memoria de sistema 104, almacenamiento removible 109 y almacenamiento no removible 110 son todos ejemplos de medios de almacenamiento por computadora. Los medios de almacenamiento de computadora incluyen, pero no se limitan a, RAM, ROM, EEPROM, memoria instantánea u otra tecnología de memoria, CD-ROM, discos versátiles digitales (DVD) u otro almacenamiento óptico, casetes magnéticos, cinta magnética, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que pueda ser utilizado para almacenar la información deseada y que pueda ser accedido por el dispositivo de cómputo 100. Cualquier medio de almacenamiento de computadora puede ser parte del dispositivo 100. El dispositivo de cómputo 100 también puede tener d ispositivo(s) de entrada 112 tal como teclado, ratón, pluma, dispositivo de entrada de voz, dispositivo de entrada por tacto, etc. El dispositivo(s) de salida 114 tal como una presentación, bocinas, impresora, etc., también pueden ser incluidos. El dispositivo de cómputo 100 también contiene conexión(es) de comunicaciones 116 que permiten al dispositivo comunicarse con otros dispositivos de cómputo 118, tal como en una red. Las redes incluyen redes área local y redes de área amplia, así como otras redes de clasificación grande incluyendo, pero no limitándose a, intranets y extranets. La conexión(es) de comunicaciones 116 es un ejemplo de medios de comunicación. Los medios de comunicación típicamente representan instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos en una señal de datos modulada, tal como una onda de vehículo u otro mecanismo de transporte, e incluyen cualquiera medio de suministro de información. El término "señal de datos modulada" significa una señal que tiene una o más de sus características fijadas o cambiadas de tal manera que codifica la información en la señal. A manera de ejemplo, y no de limitación, los medios de comunicación incluyen medios mediante cables, tales como una red con cables o una conexión de cable directo, y medios inalámbricos tales como medios acústicos, RF, infrarrojos y otros medios inalámbricos. El término medios legibles por computadora como se utiliza aquí incluyen tanto medios de almacenamiento como medios de comunicación.
Sincronizar Múltiples Revisiones de Usuario para un Archivo Compartido La Figura 2 ilustra un diagrama de bloque de un sistema para sincronizar múltiples revisiones de usuario a un objeto compartido. El objeto puede ser cualquier entidad capaz de ser compartida tal como un archivo. El sistema incluye clientes 200, 210, 220, 230, un servidor de correo electrónico con capacidad de almacenamiento de archivo tal como servidor de intercambio 240, servidor web 250, red par a par 260 y un anexo de correo electrónico 270. Los clientes 200, 210 están acoplados al servidor de intercambio 240. Los clientes 210, 220 están acoplados al servidor web 250. Los clientes 210, 220 también están acoplados juntos a través de la red de par a par 260. El anexo de correo electrónico 270 está ordenado para preferir hacia y desde el cliente 230 a través del servidor web 250. Los clientes 200, 210 ambos están asociados con mismo usuario (Usuario 1). Por ejemplo, el cliente 200 es accedido por el Usuario 1 en casa, y el cliente 210 está accedido por el Usuario 1 en el trabajo. Los clientes 220, 230 están asociados con diferentes usuarios (Usuario 2 y Usuario 3, respectivamente). Los clientes 200, 210, 230 cada uno incluye memoria caché 202, 212, 222, 232 para almacenar localmente un objeto compartido. La red par a par 260 incluye servidor virtual 262 para transferir un objeto compartido entre clientes 210, 220. El archivo de revisión 242 y objetos compartidos 252, 264, 272 son almacenados en el servidor de intercambio 240, servidor web 250, servidor virtual 262 y anexo de correo electrónico 270, respectivamente. El archivo de revisión 242 y objetos compartidos 252, 264, 272 pueden estar asociados con un identificador de grupo par. El ¡dentificador de grupo par identifica a los usuarios que son autorizados para acceder y revisar a un objeto compartido particular (es decir, ei grupo par). En una modalidad, el identificador de grupo par es un localizador de recurso uniforme (URL) para el grupo par que puede ser resuelto a cualquier cliente web. Los objetos compartidos 252, 264 están asociados con archivos manifiesto 254, 266, respectivamente. Muchos usuarios diferentes pueden acceder, editar y actualizar el mismo objeto compartido simultáneamente a través de diferentes transportes. Por ejemplo, el Usuario 1 en el cliente 210 y el Usuario en el cliente 220 pueden acceder al objeto compartido 252 desde el servidor web 250. El objeto compartido está almacenado localmente en la memoria caché correspondiente 212, 222. Tanto el Usuario 1 como el Usuario 2 pueden revisar el objeto compartido 252. Las revisiones están sincronizadas con el objeto compartido 252 en el servidor web 250 para que el Usuario 1 pueda ver revisiones hechas por el Usuario 2, y el Usuario 2 puede ver las revisiones hechas por el Usuario 1. En otro ejemplo, el Usuario 3 puede compartir el acceso del objeto compartido 272 con el Usuario 2 a través del anexo de correo electrónico 270. El Usuario 2 puede revisar un objeto compartido localmente almacenado y enviar un mensaje de correo electrónico al Usuario 3 con el objeto compartido completo o solo con las revisiones al anexo del objeto compartido. Las revisiones hechas por el Usuario 2 son sincronizadas con el objeto compartido 252 en el servidor web 250. Cuando el correo electrónico es recibido en el cliente 230, las revisiones hechas por el Usuario 2 son automáticamente sincronizadas con el objeto compartido local almacenado en la memoria caché 232. El Usuario 3 después ser otras revisiones al objeto compartido 272 y responder al Usuario 2 con el objeto compartido completo solo con las revisiones al objeto compartido incluidas en el anexo del correo electrónico 270. Las revisiones el Usuario 3 están sincronizadas con el objeto compartido 252 en el servidor web 250. El objeto compartido en el cliente 220 también es actualizado para incluir revisiones hechas por el Usuario 3.
Por ejemplo, el Usuario 1 puede acceder a un objeto compartido ya sea en casa en el cliente 200 o en el trabajo en el cliente 210 a través del servidor de intercambio 240. Los servidores de intercambio frecuentemente son utilizados cuando el acceso a un servidor externo no está permitido o no está disponible. El archivo de revisión 242 incluye revisiones al objeto compartido. El archivo de revisión 242 puede ser transferido entre clientes 200, 210 a través de una unidad de conductor común en serie universal (USB), una aplicación de correo electrónico, o cualquier otro mecanismo que permite revisiones para ser transferidas hacia atrás y hacia delante. Las revisiones son aplicadas a los clientes 200, 210 para que el objeto compartido local almacenado en la memoria caché 202, 212 pueda ser actualizado. El servidor de intercambio 240 puede tener una restricción en el tamaño de archivo que puede controlar (por ejemplo, 2 megabytes máximos). El Usuario 1 puede cargar el archivo de revisión 242 que incluye cualquiera de las revisiones al objeto compartido desde el cliente 200 hasta el servidor de intercambio 240. El archivo de revisión 242 puede ser transferido desde el cliente 200 al cliente 210 en subsecciones en donde el archivo de revisión 242 excede los límites de tamaño del servidor de intercambio 240. El protocolo de archivo permite a un procedimiento de solicitud/llenado transferir las subsecciones. En una modalidad, el servidor de intercambio 240 está asociado con una aplicación de correo electrónico. Las revisiones hechas por otro usuario (Usuario 2) pueden ser transferidas del cliente 220 al cliente 210 a través del servidor web 250 o red par a par 260 y después transferidas al cliente 200 a través de una cuenta de correo electrónica emitida por el Usuario 1. En otra modalidad, el cliente 200 periódicamente emite el servidor de intercambio 240 para un archivo de revisión actual. En otro ejemplo, la red par a par 260 puede ser establecida entre los cliente 210, 220 cuando la conexión de los clientes 210, 220 al servidor web 250 es perdida o cuando el Usuario 1 y Usuario 2 prefieren comunicarse directamente y sincrónicamente en tiempo real. El Usuario y el Usuario 2 pueden preferir comunicarse a través de la red par a par 260 debido a que el objeto que comparte en el servidor web 250 puede resultar en un retrazo entre cuando se hacen las revisiones en cliente 210 y cuando están disponibles las revisiones en el cliente 220. El retraso puede ser un resultado de tráfico de servidor muy pesado. La red par a par 260 permite que las revisiones al objeto compartido sean directamente transferidas entre los clientes 210, 220 en vez de a través del servidor web 250. En una modalidad, la red par a par 260 es una red directa de protocolo de control de transmisión/protocolo de Internet (PCT/IP). La red directa de TCP/IP permite que las revisiones sean almacenadas y recuperadas rápidamente. Los clientes 210, 220 cada uno puede tener una copia del objeto compartido 252 localmente almacenada en memoria caché 212, 222 cuando la conectividad del servidor 250 es interrumpida. El identificador de grupo par asociado con el objeto compartido 252 indica que tanto el Usuario 1 y el Usuario 2 están accediendo al objeto compartido simultáneamente. Los usuarios se hacen concientes uno a otro cuando ambos acceden en una red par a par establecida (por ejemplo, ambos usuarios están trabando en computadoras portátiles en el mismo avión). La red par a par 260 permite al Usuario 1 y al Usuario 2 simultáneamente acceder a revisiones para el objeto compartido 264 en el servidor virtual 262 e implementar otras revisiones. Las revisiones son instantáneamente respondidas en los clientes 210, 220 para que el Usuario 1 y el Usuario 2 puedan colaborar activamente en el objeto compartido 264. La red par a par 260 puede ser deshabilitada cuando ei Usuario 1 y el Usuario 2 ya no están en la misma proximidad (por ejemplo, cada usuario regresa a sus respectivas oficinas) o cuando el Usuario 1 y el Usuario 2 ya no desean comunicarse en tiempo real. El objeto compartido 252 después puede ser accedido desde el servidor web 250. La transición entre acceder a las revisiones de objeto compartido en la red par a par 260 y el servidor web 250 es automática y uniforme. Los clientes 210, 220 pueden recibir revisiones actuales tanto del servidor web 250 como de la red para par 260. Cada revisión hecha al objeto compartido está asociada con un identificador único global (GUID) y una estampa de tiempo. La estampa de tiempo identifica el tiempo cuando se hizo la revisión. El cliente 210 puede modificar el objeto compartido 252 en el servidor web 250. El cliente 220 determina si la versión local del objeto compartido en la memoria caché 222 es actual al comparar un GUID y una estampa de tiempo asociada con el objeto de memoria caché al GUID y la estampa de tiempo asociada con el objeto compartido 252 en el servidor web 250. Si la versión actual no está almacenada localmente, las últimas revisiones que no han sido implementadas en el objeto caché son cargadas del servidor web 250 al cliente 220 y sincronizadas con el archivo local. De esa forma, el objeto compartido completo no necesita ser cargado al cliente 220 cada vez que la versión local del objeto compartida es actualizada. En una modalidad, el cliente 220 puede determinar desde el GUID y la estampa de tiempo asociada con la revisión que en las mismas modificaciones están disponibles desde la red par a par 260. Sin embargo, no resulta ninguna acción debido a que el cliente 220 ya ha implementado las modificaciones. En otra modalidad, el cliente 220 puede determinar desde el GUID y la estampa de tiempo asociada con la revisión de las mismas modificaciones no están disponibles desde la red par a par 260. De esa forma, el cliente 220 envía las revisiones a la red par a par 260 para que los otros usuarios conectados a la red par a par 260 puedan sincronizarse con la versión actual del objeto compartido. El cliente 220 puede recibir otra revisión de la red par a par 260. El objeto compartido en la memoria caché 222 es actualizado. El cliente 220 determina si el estado actual del estado compartido también está disponible en el servidor web 250 utilizando el GUID y la estampa de tiempo asociada con la revisión. Si el objeto compartido 252 en ei servidor web 250 no está sincronizado con el estado actual del documento compartido, el cliente 220 envía la última revisión al servidor web 250 para que el objeto compartido 252 pueda ser actualizado. Puede ocurrir la comunicación asincrónica cuando un cliente revisa el objeto compartido mientras está conectado al sistema a través de un servidor físico. Las limitaciones del servidor pueden causar menos sincronizaciones del objeto compartido sean retrazadas desde el tiempo en el que se implementaron las revisiones por un usuario. En una modalidad, el cliente puede estar revisando una versión localmente guardada en memoria caché del objeto compartido mientras no está conectado al sistema. Cualquiera de las revisiones hechas por el cliente pueden ser sincronizadas con el objeto compartido cuando el cliente se reconecta al sistema a través de un servidor. El cliente puede hacer una transición uniforme entre el acceso local, la comunicación sincrónica y asincrónica para que el usuario no este conciente que el modo de comunicación ha cambiado. Un usuario puede cambiar la ubicación y cualquiera de los transportes del compartimiento de datos (por ejemplo, redes par a par, servidores) son automáticamente identificados. De esa forma, el usuario puede acceder a un objeto compartido y colaborar con otros usuarios autorizados a través de diferentes mecanismos. Cada objeto compartido es asociado con un archivo manifiesto. El archivo manifiesto identifica las ubicaciones en donde otras versiones y casos del objeto compartido están almacenados dentro del sistema. En una modalidad, el archivo manifiesto es un archivo de lenguaje de marcación extensible (XML). En otra modalidad, el archivo manifiesto identifica múltiples objetos compartidos. En otra modalidad, el archivo manifiesto puede estar asociado con cualquier objeto que puede ser compartido entre clientes. Por ejemplo, ei archivo manifiesto puede estar asociado con un objeto compartido completo o cualquier porción del objeto compartido (por ejemplo, un contendor de contenido, una sección, una página, un perfil, etc.). El archivo manifiesto puede ser almacenado en cualquier parte dentro del sistema. Como se muestra en la figura, el archivo manifiesto 254 es almacenado con el archivo compartido 252. Tanto el objeto compartido 252 como el archivo manifiesto 254 son almacenados en el servidor web 250. En otra modalidad, el archivo manifiesto es almacenado en el objeto compartido. Incluso en otra modalidad, el archivo manifiesto es guardado en un directorio activo. Incluso en otra modalidad, el archivo manifiesto es almacenado en múltiples ubicaciones dentro del sistema. El archivo manifiesto es almacenado en una ubicación identificada por un identificador de ubicación única. El identificador de ubicación única puede identificar un servidor de archivo, un área compartida de un servidor, un servidor web, o un grupo par a par. El objeto compartido puede ser accedido localmente desde una memoria caché, a través de un servidor, o a través de una red par a par. El cliente recupera el archivo manifiesto de la ubicación identificada por el identificador de ubicación único en el objeto compartido correspondiente. En una modalidad, el cliente puede almacenar ei archivo manifiesto localmente para referencia futura. El archivo manifiesto índica la ubicación de cualquier otra de las versiones y casos del objeto compartido dentro del sistema (por ejemplo, en un sub-almacenamiento o un grupo par). Si otra versión/caso del objeto compartido es almacenado en un grupo par, el archivo manifiesto puede incluir el identif icador del grupo par correspondiente. En una modalidad, el cliente 220 accede al objeto compartido 252 en el servidor web 250. Ei cliente 220 es automáticamente conectado a otros clientes que también están accediendo al objeto compartido 252 (por ejemplo, el grupo par). El cliente 220 recupera el archivo manifiesto 254 asociado con el objeto compartido 252. El archivo manifiesto 254 identifica las ubicaciones de diferentes versiones y casos del objeto compartido 252. De esa forma, el cliente 220 puede establecer una red par a par con cualquier otro cliente en el grupo par en donde cualquier cliente en el grupo par accede a una versión/caso del objeto compartido 252 identificado por el archivo manifiesto 254. El cliente 220 después puede desconectarse del servidor web 250 y continuar para acceder al objeto compartido 252 en la red par a par. En otra modalidad, el cliente 210 puede acceder al objeto compartido 264 desde la red par a par 260. El cliente 210 recupera el archivo manifiesto 266 asociado con el objeto compartido 264. El cliente 210 puede conectarse a un servidor y determinar si los clientes también están conectados al servidor. Los clientes conectados pueden ser accedidos a través del servidor cuando la red par a par 260 no está disponible. El objeto compartido 264 (o 252) y el archivo manifiesto asociado 264 (o 254) permite al cliente 210 (o cliente 220) transitar automáticamente y uniformemente entre modos de comunicación asincrónicos y sincrónicos. Los usuarios no están bloqueados de acceder y revisar un objeto compartido cuando otro usuario tiene acceso al objeto compartido. Cualquiera de los usuarios autorizados puede revisar simultáneamente el objeto compartido. En una modalidad, un caso breve de bloquear puede ocurrir para asegurar la integridad de la transacción de revisión. Por ejemplo, un usuario puede revisar extensivamente el documento compartido mientras de desconecta del servidor. Cuando el usuario se reconecta al servidor, otros clientes pueden ser brevemente bloqueados de acceder al objeto compartido hasta que toda la revisión del usuario es implementada en el objeto compartido. La Figura 3 ilustra un gráfico jerárquico de nodos enlazados que indican diferentes porciones del objeto compartido. En una modalidad, el objeto compartido es un cuaderno que es compartido entre varios usuarios. El nodo de cuaderno 300 simboliza el objeto compartido completo. El nodo de carpeta 310 está incluido dentro del nodo de cuaderno 300. El nodo de sección 320 está incluido dentro del nodo de carpeta 310. Los nodos de página 330, 335 están incluidos dentro del nodo de sección 310. El nodo de tabla 320, el nodo de tinta 342, el nodo de perfil 344, y el nodo de imagen 346 están incluidos dentro del nodo de página 330. El nodo de elemento de perfil 350 está incluido dentro del nodo de perfil 344. El nodo de texto 360 está incluido dentro del nodo de elemento de perfil 350. Los diferentes nodos pueden estar agrupados juntos en un contenedor de contenido. Por ejemplo, el nodo de perfil 344, el nodo de elemento de perfil 350, y el nodo de texto 360 pueden estar agrupados como un contenedor de contenido R0. El contenedor de contenido R0 es asignado con un GUID (por ejemplo, GUID-0). El GUID únicamente identifica el contenedor de contenido R0. Un contenedor de contenido incluye el contenido de objeto compartido (por ejemplo como una palabra, un enunciado, un párrafo, una página, una tabla, una imagen, escritura a mano, un localizador de recurso uniforme, o cualquier combinación de datos incluidos en el objeto compartido). Los contenedores de contenido proporcionan una dimensión para el contenido de objeto que está agrupado. Por ejemplo, un contenedor de contenido puede corresponder a una línea, un párrafo, una página, o elementos de página específicos (por ejemplo, solo las tablas en una página particular). El objeto compartido almacena una versión inicial en el gráfico.
Las operaciones específicas después pueden ser realizadas en contenedores de contenido individuales. Por ejemplo, un usuario puede revisar los datos de un contenedor de contenido. La revisión para el objeto compartido puede ser identificada como un estado del contenedor de contenido. El objeto compartido almacena los contenedores de contenido revisados del gráfico. Un estado actual del contenedor de contenido es comparado con un estado previo que utiliza GUIDs y estampas de tiempo tal para que una determinación se haga y el contenedor de contenido ha sido revisado. Por ejemplo, dos usuarios diferentes pueden tener acceso cada uno al documento compartido y modificar el contenedor de contenido RO. Un usuario puede revisar el contenedor de contenido RO al eliminar el nodo de texto 360 (como se muestra en la revisión R1). La revisión R1 es almacenada en el objeto compartido. La revisión R1 es asignada con un GUID (por ejemplo, GUID-1) para identificar únicamente el contenido revisado y una estampa de tiempo que identifica el tiempo fecha cuando la revisión R1 es escrita al objeto compartido. Otro usuario puede revisar el contenedor de contenido RO al agregar nodo de texto 380 para el nodo de elemento de perfil 350 (como se muestra en la revisión R2). La revisión R2 es almacenada en el objeto compartido. La Revisión R2 es asignada como una estampa de tiempo y un GUID (por ejemplo, GUID-2) para identificar únicamente el contenedor de contenido revisado. Diferentes usuarios pueden revisar un objeto compartido en diferentes momentos para que múltiples versiones del objeto compartido puedan coexistir. Sin embargo, existe solo una última versión del objeto compartido. En una modalidad, la última versión del objeto compartido es la versión que incluye las versiones más recientes que son sincronizadas con el objeto compartido y están disponibles para otros usuarios autorizados.
Por ejemplo, un usuario puede revisar un contenedor de contenido de un objeto compartido que es identificado como una revisión R1 al agregar un nodo de elemento de perfil 370 al nodo de perfil 344 (como se muestra en la revisión R3). La revisión R3 es almacenada en el objeto compartido. La revisión R3 también es asignada con una estampa de tiempo y un GUID (por ejemplo GUID-3) para identificar únicamente el contenedor de contenido revisado. La revisión R2 es una extensión de la revisión R1. De esa forma, la revisión R1 es la última revisión del objeto compartido de la que el usuario estaba conciente (por ejemplo, la versión localmente almacenada). El objeto compartido es inspeccionado para determinar si la última versión del objeto compartido aún es la revisión R1. En una modalidad, la última versión del objeto compartido puede ser determinada al comparar las estampas de tiempo y GUIDs de diferentes contenedores de contenido. Si la última versión del objeto compartido está asociada con una estampa de tiempo más reciente que la versión R1 entonces otro usuario (por ejemplo, el usuario que creo la revisión (R2) ha modificado subsecuentemente el mismo contendor de contenido. Si otro usuario ha modificado el contenedor de contenido desde que la revisión R1 fue sincronizada con el objeto compartido, cualquiera de las revisiones que son una extensión de la revisión R1 (por ejemplo, revisión R3) pueden no estar sincronizadas con el objeto compartido hasta que cualquiera de las revisiones subsecuentes son sincronizadas con el objeto compartido y cualquiera de las revisiones que tienen conflictos son resueltas y fusionadas. Por ejemplo, la revisión R2 es sincronizada con el objeto compartido después de la revisión R1. De esa forma, la última revisión del objeto compartido incluye la revisión R2. Antes de que la revisión R3 sea sintonizada con el objeto compartido, la revisión R3 es comparada con la revisión R2 para determinar si cualquiera de las revisiones tiene conflicto. La comparación es necesaria debido a que la revisión R3 es una extensión de la revisión R1 que ya no está asociada con la última versión del objeto compartido. La revisión R3 es determinada para no tener conflicto con la revisión R2 debido a que el nodo de elemento de perfil 370 puede ser agregado al nodo de perfil 344 sin interrumpir la revisión R2. En una modalidad, el objeto compartido es revisado al mover un contenedor de contenido desde una ubicación a otra dentro del objeto compartido. Por ejemplo, el nodo de tabla 340 puede ser movido del nodo de página 330 al nodo de página 335. Se hace una determinación que el nodo de tabla 340 ha sido movido pero la nueva ubicación no puede ser determinada. Un nodo sustituto es creado en la ubicación original del nodo de tabla 340. El nodo sustituto es implementado en nueva ubicación del nodo de tabla 340 cuando la nueva ubicación del nodo de tabla 340 es determinada. Si el nodo de tabla 340 es eliminado antes que se determine la nueva ubicación, se descarta el nuevo sustituto. Diferentes usuarios pueden editar simultáneamente el objeto compartido. Usualmente, los usuarios están realizando diferentes contenedores de contenido del objeto compartido. De esa forma, cada una de las revisiones del usuario puede ser sincronizada con el objeto compartido sin otro procesamiento. Puede ocurrir un conflicto cuando dos usuarios editan el mismo contenedor de contenido del objeto compartido (por ejemplo, los mismos valores de tabla, el mismo enunciado). Un conflicto entre diferentes revisiones de usuario puede resultar asincrónicamente. Por ejemplo, un usuario puede revisar una versión localmente guardada en memoria caché del objeto compartido cuando no está conectado a un servidor. Las revisiones son sincronizadas con el objeto compartido cuando el usuario se reconecta al servidor. Sin embargo, las revisiones pueden tener conflictos con otras revisiones que ya han sido sincronizadas con el objeto compartido. Por ejemplo, la revisión R4 es una extensión de la revisión R3. La revisión R4 elimina el nodo de elemento de perfil 350 del nodo de perfil 344. La última versión del objeto compartido es determinada para incluir la revisión R2. Una comparación entre la revisión R2 y la revisión R4 identifica un conflicto debido que el nodo de elemento de perfil 350 está presente en la revisión R2 pero ha sido eliminada en la revisión R4. Una fusión de tres formas es realizada entre una versión maestra de un contenedor de contenido y dos versiones divergentes del contenedor de contenido para resolver los conflictos. Por ejemplo, el contenedor de contenido R0 (es decir, la versión maestra), la revisión R2, y revisión R4 son fusionadas para establecer la versión actual del objeto compartido. La versión maestra de un contenedor de contenido puede ser la versión que fue recientemente sincronizada con el objeto compartido en el servidor. La versión maestra incluye revisiones de no conflicto. Los contenedores de contenido de no conflicto son reconciliados y fusionados en el objeto compartido siguiendo un grupo de reglas establecido por un algoritmo de fusión. El algoritmo de fusión determina que revisiones son sincronizadas con el objeto compartido. Por ejemplo, diferentes usuarios pueden ser clasificados de acuerdo con la prioridad para que las revisiones del usuario tomen precedencia en todos los otros usuarios (es decir, ediciones primarias). Cuando un usuario de prioridad inferior intenta revisar un contenedor de contenido del objeto compartido que ya ha sido revisado por un usuario de prioridad superior, el usuario es informado que las revisiones (es decir, ediciones secundarias) no serán sincronizadas con el objeto compartido. De esa forma, las ediciones primarias son presentadas en una página maestra del objeto compartido y cualquiera de las ediciones secundarias son marcadas como no siendo sincronizadas con el objeto compartido. En otro ejemplo, las revisiones hechas a un objeto compartido en un servidor tienen prioridad sobre las revisiones hechas localmente en un cliente. La copia del servidor del objeto compartido es considerada la versión maestra debido a que muchos usuarios diferentes han accedido potencialmente y revisado el objeto compartido en el servidor. Solo un usuario ha accedido y revisado una versión almacenada localmente. Los contenedores de contenido revisados que no están sincronizados con el objeto compartido (por ejemplo, ediciones secundarias) son identificados como con conflicto. Los contenedores de contenido con conflicto son preservados al ser almacenados en páginas de conflicto asociadas con la página maestra correspondiente del objeto compartido. La Figura 4 ilustra una página maestra de un objeto compartido y una página de conflicto asociada. La página maestra 400 incluye versiones de no conflicto tal como contenedores de contenido 410, 420. Cualquiera de las revisiones de conflicto no fusionadas es identificada en la página maestra 400 por un indicador de conflicto. En una modalidad, el indicador de conflicto es un menú de desplazamiento 430. La primera entrada del menú de desplazamiento 430 puede ser los conflictos más recientes generados por el usuario. La entrada del menú de desplazamiento 430 puede incluir el nombre del usuario y una estampa de tiempo correspondiente. Otra entrada en el menú de desplazamiento 430 puede incluir otras páginas de conflicto que el usuario generó pero no reconcilió. Otras entidades en el menú de desplazamiento 430 pueden corresponder a páginas de conflicto generadas por otros usuarios. Al seleccionar una entrada del menú de desplazamiento 430 se presenta la página de conflicto correspondiente con las revisiones de conflicto resaltadas para dibujar la atención del usuario a las revisiones que no fueron fusionadas en la versión maestra del objeto compartido. De esa forma, el usuario ya sea que puede reconciliar y fusionar los conflictos con la página maestra 400 o decidir que los conflictos son irrelevantes. En otra modalidad, el indicador de conflicto es una lengüeta. La página maestra puede estar asociada con la lengüeta 440. Las páginas de conflicto correspondientes pueden estar asociadas con las lengüetas que son -diferentes de l-a lengüeta 440. Por ejemplo, las lengüetas de página de conflicto pueden pretenderse con respecto a la lengüeta 440 o estar colapsadas bajo la lengüeta 440. La página de conflicto que incluye conflictos no fusionados asociados con un usuario particular puede ser identificada por una lengüeta que es diferente de las otras lengüetas para la que la atención del usuario esté dirigida a las páginas de conflicto generadas por este usuario. Después el usuario puede seleccionar la lengüeta para navegar a la página de conflicto correspondiente. La página se conflicto seleccionada puede ser presentada a lo largo dé la página maestra correspondiente del objeto compartido para que el usuario pueda reconciliar y fusionar cualquiera de las revisiones de conflicto en vista de las revisiones fusionadas. La página de conflicto 450 está asociada con la página maestra 400. La página de conflicto 450 parece la página maestra 400 excepto que cualquiera de los contenedores de contenido de conflicto están resaltados para indicar que el conflicto no ha sido resuelto. Por ejemplo, el contenedor de contenido 460 es presentado con un antecedente resaltado para distraer la atención del usuario al conflicto no fusionado. El contenedor de contenido 460 pudo haber sido eliminado sincronizado con el objeto compartido antes de que un usuario revisará los datos en el contenedor de contenido 460 al crear de esa forma un conflicto. El usuario puede seleccionar el contenedor de contenido 460 para fusionar la revisión de una página maestra 400. En una modalidad, la página de conflicto está asociada con un usuario particular. De esa forma, más de una página de conflicto puede estar asociada con la página maestra 400 cuando más de un usuario toma revisiones en una página que no puede ser fusionada. Todas las revisiones de conflicto están almacenadas para todos los usuarios que están autorizados para acceder al objeto compartido. El usuario que accede a la página de conflicto presumiblemente está más concentrado en los conflictos generados por ese usuario para que el usuario pueda reconciliar esos conflictos. Por ejemplo, el Usuario 1 es presentado con la página de conflicto correspondiente cuando selecciona el indicador de conflicto. El usuario también puede ver una página de conflicto asociado con el otro usuario. Por ejemplo, el Usuario 1 puede seleccionar la lengüeta 470 para navegar a una página de conflicto asociada con el Usuario 2. Muchas páginas de conflicto asociadas con una página maestra del objeto compartido pueden acumularse con el tiempo. Durante ese periodo de tiempo, el usuario puede tener varias revisiones sincronizadas con la versión maestra del objeto compartido localizado en un servidor mientras se ignora cualquiera de las páginas de conflicto correspondiente. De esa forma, las páginas de conflicto más antiguas que el usuario no reconcilió presumiblemente ya no son relevantes. En una modalidad, cualquiera de las páginas de conflicto identificadas como irrelevantes pueden ser eliminadas después de un periodo de tiempo predeterminado ha transcurrido tiene revisiones sincronizadas de la página durante ese periodo de tiempo. Por ejemplo, las tres páginas de conflicto más recientes asociadas con cualquier página maestra son preservadas mientras cualquiera otra de las páginas de conflicto asociadas son eliminadas después de un mes de su creación. En una modalidad, las páginas de conflicto no son creadas durante comunicación en tiempo real debido a que los conflictos pueden ocurrir más frecuentemente que durante comunicación asincrónica. En vez de eso, los usuarios pueden en colaboración revisar el mismo contenedor de contenido. Cualquiera de los conflictos puede ser inmediatamente dispuesto ya que todos los usuarios pueden determinar rápidamente si sus revisiones han sido implementadas. Alternativamente, el usuario es notificado que otro usuario está revisando un contenedor de contenido particular. El usuario pudo haber alentado a revisar un contenedor de contenido diferente hasta que las otras revisiones del usuario son completadas.
La Figura 5 ilustra un diagrama de bloque de un sistema para sincronizar múltiples revisiones de usuario para un objeto compartido. El sistema incluye clientes 500, 510, 540, 550 y servidores 520, 530. El cliente 500 está acopado a los servidores 520, 530. El cliente 510 está acoplado al servidor 520. Los clientes 540, 550 están acoplados al servidor 530. El cliente 540 incluye e¡ almacenamiento 542 y el almacenamiento hijo 544. El servidor 520 incluye almacenamiento 522 y almacenamientos hijo 524, 526. El servidor 530 incluye almacenamiento 532. El almacenamiento 532 incluye sub-almacenamiento 534, 536. Los almacenamiento 522, 532, almacenamiento fijo 524, 526, y sub-almacenamientos 534, 536 pueden almacenar revisiones asociadas con un objeto compartido. El almacenamiento 522, 532, almacenamientos fijos 526, 526 y sub-almacenamientos 534, 536 son jerárquicos. Por ejemplo, el almacenamiento 522 puede estar asociado con documento de cuaderno compartido completo. El almacenamiento hijo 524 puede estar asociado con una sección de documento de cuaderno compartido. El almacenamiento hijo 526 puede estar asociado con una página del documento de cuaderno compartido. En una modalidad, solo la versión más reciente del objeto compartido de nivel superior está incluida en el almacenamiento 522. El almacenamiento 532 puede almacenar el objeto compartido de nivel superior completo. f Los sub-almacenamientos 534, 536 están asociados con porciones del objeto compartido. Por ejemplo, el sub-almacenamiento 534 puede estar asociado con una sección del objeto compartido, y sub-almacenamiento 536 puede estar asociado con una sección diferente del objeto compartido. Una aplicación puede cargar un objeto compartido desde el servidor 520 o el servidor 530 al cliente 500 sin una versión actual de un contenedor de contenido particular del objeto compartido. Por ejemplo, el cliente 500 solicita un objeto compartido desde el almacenamiento 522. La versión disponible más reciente del objeto compartido está presentada en el cliente 500. La versión disponible más reciente del objeto compartido puede no corresponder a la versión actual del objeto compartido debido a que los datos de la revisión más reciente no están disponibles en el almacenamiento hijo correspondiente 526. Una etiqueta de solicitud es asignada ai almacenamiento hijo 526 para indicar el cliente 500 requiere los datos de revisión más recientes para actualizar el objeto compartido. El almacenamiento hijo 526 también puede ser asignado con una estampa de tiempo que identifica el tiempo y la fecha cuando el cliente 500 solicitó los datos de revisión desde el almacenamiento hijo 526. El almacenamiento hijo también puede ser asignado con un GUID que identifica al cliente que representó los datos (por ejemplo, cliente 500) La etiqueta de solicitud, estampa de tiempo, y GUID son utilizados para informar al cliente 500 cuando otro cliente al almacenamiento hijo 526. Por ejemplo, el cliente 510 puede acceder al almacenamiento hijo 526 con los datos de revisión más actuales. De esa forma, el cliente 500 es informado que los datos de revisión más actuales del objeto compartido están disponibles en el almacenamiento hijo 526. El cliente 500 puede ser una computadora de casa del usuario y el cliente 540 puede ser una computadora del trabajo del usuario. El servidor 530 puede ser un servidor de intercambio que transfiere un archivo de revisiones de cliente 500, 540. El archivo de revisión puede ser utilizado para actualizar un objeto compartido almacenado en los clientes 500, 550. En una modalidad, el cliente 500 está restringido de controlar archivos mayores a un tamaño predeterminado (por ejemplo, dos megabytes). Por ejemplo, el cliente 500 puede incluir una aplicación de correo electrónico que limita el tamaño de mensajes de correo electrónico que pueden ser recibidos. El almacenamiento 542 incluye revisiones asociadas con un objeto compartido de nivel superior. El almacenamiento hijo 544 incluye revisiones asociadas con un contenedor de contenido del objeto compartido. El cliente 540 puede recibir al servidor 530 para determinar si otro cliente ha enviado una solicitud de revisión de datos. El cliente 540 puede satisfacer la solicitud cuando la última versión de la revisión de datos solicitados está disponible en el almacenamiento 542 o almacenamiento 544. El cliente 540 puede transferir la revisión solicitada completa al cliente 500 si el tamaño del archivo de revisión es menor que el límite que puede ser controlado por el cliente 500. El tamaño del archivo de revisión es mayor al límite, el archivo puede ser dividido en archivos pequeños que son menores del límite. Alternativamente, el tamaño del archivo de revisión puede ser reducido al eliminar solicitudes previas. Los archivos menores después son transferidos del cliente 540 al cliente 500 a través del servidor 530. Múltiples solicitudes para datos de revisión pueden ser esperadas en un servidor. En una modalidad, las solicitudes pueden ser hechas desde diferentes clientes (por ejemplo, clientes 500, 550). Cada cliente que solicita puede estar asociado con un límite de tamaño de archivo diferente. Por ejemplo, el cliente 500 está limitado a archivos menores de 2 megabytes y el cliente 550 puede controlar archivos superiores a 20 megabytes. Por lo tanto, ambas solicitudes no pueden ser satisfechas a través de una transacción de transferencia cuando el archivo de revisión es superior a 2 megabytes. En una modalidad, un bit de prioridad está asociado con cada cliente que solicita para establecer el orden en el que se van a satisfacer las solicitudes. Se satisfacen las solicitudes al sincronizar el archivo de revisión con los clientes 500, 550. El archivo de revisión puede ser sincronizado con clientes 500, 550 en una transacción o a través de una serie de múltiples transacciones dependiendo del tamaño del archivo de revisión. Cada cliente 500, 550 determina que la solicitud es satisfecha cuando el archivo de revisión completo es sincronizado. El cliente 540 puede eliminar los datos solicitados debido a que las solicitudes son satisfechas. El cliente 540 después puede obtener el servidor 530 para determinar si cualquiera de las solicitudes adicionales están esperando para ser satisfechas. La Figura 6 ilustra un diagrama de flujo operacional que ilustra un procedimiento para sincronizar múltiples revisiones de usuario a un objeto compartido. El procedimiento comienza en un bloque de inicio en muchos usuarios son autorizados para acceder y revisar un objeto compartido simultáneamente (es decir, el grupo par). El objeto puede ser cualquier entidad capaz de ser compartida tal como un archivo. El grupo par puede ser identificado por un identificador de grupos par. Diferentes versiones del objeto compartido son identificadas por el GUID correspondiente y la estampa de tiempo. La estampa de tiempo identifica el tiempo cuando el objeto compartido fue por último sincronizado con una revisión. Al moverse ai bloque 600, un usuario revisa el objeto compartido. El objeto compartido puede ser revisado en el servidor, en una memoria caché local, o una red par a par. En una modalidad, la revisión es almacenada como un archivo de revisión. Procedimiento al bloque 610, la revisión está asociada con un GUID y una estampa de tiempo. La estampa de tiempo identifica el tiempo cuando el usuario revisó el objeto compartido. Avanzando al bloque 620, la última versión del objeto compartido es localizada. La última versión del objeto compartido es la versión que incluye las revisiones más recientes que están sincronizadas con el objeto compartido y hechos disponibles a otros usuarios autorizados. La última versión del objeto compartido puede ser determinada de las estampas de tiempo y los GUIDs asociados con diferentes versiones del objeto compartido. Cambiando al bloque de decisión 630, se hace una determinación si existe cualquiera de las revisiones de conflicto. Las revisiones pueden tener conflicto cuando los usuarios diferentes revisan el mismo contenedor de contenido. La revisión no puede ser sincronizada con el objeto compartido si existen revisiones de conflicto. Si existen revisiones de conflicto, el procedimiento continúa en el bloque 640 en donde las revisiones de conflicto son reconciliadas y fusionadas (como se discutió con referencia a ia Figura 7). Si no existe ninguna de las revisiones de conflicto, el procedimiento continúa en el bloque 650 en donde la revisión es sincronizada con el objeto compartido para otros usuarios puedan ver la revisión. Después el procedimiento termina en un bloque de término. La Figura 7 ilustra un diagrama de flujo operacional que ¡lustra un procedimiento para reconciliar y fusionar múltiples revisiones de usuario de conflicto a un objeto compartido. El procedimiento-comienza en un bloque de inicio en donde más de un usuario ha revisado el mismo contenedor de contenido en un objeto compartido. Un conflicto resulta cuando uno de los contenedores de contenido revisados está sincronizado con el objeto compartido para que cualquiera otra de las revisiones al contenedor de contenido no pueda ser sincronizada. Moviéndose al bloque 700, la revisión de conflicto es presentada en una página de conflicto. La página de conflicto parece la página maestra correspondiente excepto que la revisión de conflicto está resalta y presentada en lugar de la revisión sincronizada. Procediendo al bloque 710, un indicador de conflicto es presentado en la página maestra del objeto compartido. El indicador de conflicto puede ser un menú de desplazamiento, una lengüeta, o cualquier otro mecanismo que informa a un usuario que una página de conflicto está disponible para la página maestra. El indicador de conflicto para una página de conflicto asociada con un usuario particular puede ser diferente al indicador de conflicto para páginas de conflicto asociadas con otros usuarios para que un usuario actual pueda identificar rápidamente las páginas de conflictos generadas por el usuario actual. Avanzando al bloque 720, la página de conflicto es presentada a lo largo de la página maestra cuando el indicador de conflicto es seleccionado. El usuario es presentado junto con el estado sincronizado de la página maestra como con la página de conflicto correspondiente. Cambiando al bloque 730, el usuario reconcilia y fusiona las versiones de conflicto en la página maestra. En una modalidad, el usuario puede seleccionar el contenedor de contenido para que el contenedor de contenido sea fusionado con la página maestra. En otra modalidad, el usuario puede ¡mplementar directamente revisiones en la página maestra. Aún en otra modalidad, el usuario puede identificar revisiones de conflicto como irrelevantes. Continuando al bloque 740, las revisiones de conflicto que son identificadas como irrelevantes son eliminadas. En una modalidad, las revisiones de conflicto pueden ser identificadas como irrelevantes por un usuario. En otra modalidad, las revisiones de conflicto pueden ser automáticamente identificadas como irrelevantes. Por ejemplo, un usuario puede haber sincronizado diferentes revisiones con la versión maestra del objeto compartido localizado en un servidor mientras se ignora cualquiera de las páginas de conflicto correspondientes. Las páginas de conflicto antiguas que el usuario no reconcilio son identificadas como irrelevantes después de que ha transcurrido un periodo de tiempo predeterminado. El procedimiento después termina en un bloque de término. La Figura 8 ilustra un diagrama de flujo operacional que ilustra un procedimiento para sincronizar múltiples revisiones de usuario para un objeto compartido. El procedimiento comienza en un bloque de inicio en donde diferentes versiones del objeto compartido son almacenadas en diferentes ubicaciones a través de un sistema. Moviéndose al bloque 800, el objeto compartido es descargado de un almacenamiento a un cliente. Procediendo al bloque de decisión 810, se hace una determinación si el objeto compartido es la versión actual del objeto compartido. Si el objeto compartido es la versión actual del objeto compartido, el procedimiento termina en el bloque de término. Si el objeto compartido no es la versión actual del objeto compartido, el procedimiento continúa en el bloque 820. El objeto compartido puede no ser la versión actual debido que la revisión más reciente para un contenedor de contenido del objeto compartido no está disponible para almacenamiento. Avanzando al bloque 820, una etiqueta de solicitud de información de cliente son asignadas al almacenamiento para indicar que el cliente requiere los datos de revisión más recientes para actualizar el objeto compartido. La información de cliente puede incluir un GUID que identifica el cliente que solicita y una estampa de tiempo que identifica el tiempo cuando el cliente solicitó la versión actual del objeto compartido desde el almacenamiento. Cambiando al bloque 830, la versión actual del objeto compartido es recibida en el almacenamiento. El almacenamiento puede recibir la versión actual del objeto compartido cuando otro cliente accede al almacenamiento con los datos de revisión más recientes. El cliente que solicita es informado que la versión actual del objeto compartido ha sido recibida por el almacenamiento. Continuando al bloque 840, la versión actual del objeto compartido es sincronizada con el cliente que solicita. El procedimiento después termina en el bloque de término. La Figura 9 ilustra un diagrama de flujo operacional que ilustra un procedimiento para la transición uniforme de modos de comunicación asincrónicos a sincrónicos. El procedimiento comienza en el bloque de inicio en donde se establece un grupo par que identifica usuario que están autorizados para acceder a un objeto compartido. Moviéndose al bloque 900, un cliente accede al objeto compartido en un servidor. El cliente es automáticamente conectado a otros clientes que también están accediendo al objeto compartido (es decir, el grupo par). El objeto compartido está asociado con un archivo manifiesto. El objeto compartido incluye un identificador de ubicación único que identifica la ubicación en donde el archivo manifiesto correspondiente es almacenado en el sistema. Procediendo al bloque 910, el archivo manifiesto es recuperado de la ubicación identificada por el identificador de ubicación único. El archivo manifiesto identifica las ubicaciones en donde otras versiones y casos del objeto compartido son almacenados dentro del sistema. El archivo manifiesto incluye un identificador de grupo par a par para el grupo par en donde se almacena una versión del objeto compartido. Avanzando al bloque 920, una red par a par es establecida cuando otro cliente en el grupo par accesa a una versión o caso del objeto compartido identificado por el archivo manifiesto. De esa forma, el cliente puede desconectarse del servidor y continuar para acceder al archivo compartido en la red par a par. El procedimiento después termina en un bloque de término. La Figura 10 ilustra un diagrama de flujo operacional que ¡lustra un procedimiento para transición uniforme de modo de comunicación sincrónicos a asincrónicos. El procedimiento comienza en el bloque de inicio en donde se establece una red par a par entre al menos dos usuarios que están autorizados para acceder a un objeto compartido. Moviéndose al bloque 1000, un cliente accede al objeto compartido en la red par a par. El objeto compartido está asociado con un archivo manifiesto. El objeto compartido incluye un identif icador de ubicación único que identifica la ubicación en donde el archivo de manifiesto correspondiente es almacenado en el sistema. Procediendo al bloque 1010, el archivo manifiesto asociado con el objeto compartido es recuperado desde la ubicación identificada por la identificación de ubicación único. El archivo manifiesto identifica las ubicaciones en donde otras versiones y casos del objeto compartido están almacenados dentro del sistema. Avanzando al bloque 1020, el cliente se conecta a un servidor. El cliente determina que otros clientes también están conectados al servidor. Cambiando al bloque 1030, el cliente identifica otros clientes que están autorizados para acceder al objeto compartido desde la red par a par. Continuando al bloque 1040, el cliente se conecta a un cliente autorizado cuando la red par a par no está disponible. El procedimiento después termina en un bloque de término. La especificación anterior, ejemplos y datos proporcionan una descripción completa de la fabricación y uso de la composición de la invención. Ya que muchas modalidades de la invención pueden ser hechas , sin apartarse del espíritu y alcance de la invención, la invención reside en las reivindicaciones aquí anexas.

Claims (20)

  1. REIVINDICACIONES 1. - Un método implementado por computadora para sincronizar múltiples revisiones de usuario para un objeto compartido, que comprende: recibir una revisión para el objeto compartido; determinar si la revisión tiene conflictos con una revisión sincronizada en la página maestra del objeto compartido; y sincronizar la revisión con el objeto compartido cuando la revisión es determinada para estar asociada con una versión actual del objeto compartido y cuando la revisión es detenida para no estar en conflicto con una revisión sincronizada. 2. - El método implementado por computadora de acuerdo con la reivindicación 1, que además comprende: presentar la revisión en una página de conflicto asociada con la página maestra cuando se determina que la revisión va a estar en conflicto con una revisión sincronizada; presentar un indicador de conflicto en la página maestra, en donde el indicador de conflicto indica que la página maestra está asociada con la página de conflicto; y fusionar la revisión en el objeto compartido. 3. - El método implementado por computadora de acuerdo con la reivindicación 2, en donde el presentar la revisión además comprende: presentar la revisión en la página de conflicto en una ubicación que corresponde a la ubicación en donde ia revisión sincronizada es presentada en la página maestra; y resaltar la revisión en la página de conflicto. 4. - El método implementado por computadora de acuerdo con la reivindicación 2, que además comprende presentar la página de conflicto y la página maestra asociada cuando se selecciona el indicador de conflicto. 5. - El método implementado por computadora de acuerdo con la reivindicación 1, que además comprende: determinar si la revisión es irrelevante; y eliminar la revisión que se determina como irrelevante. 6. - El método implementado por computadora de acuerdo con la reivindicación 1, que además comprende: recibir una solicitud de cliente para una versión actual del objeto compartido en un almacenamiento; recibir la versión actual del objeto compartido en el almacenamiento; y sincronizar la versión actual del objeto compartido con el cliente. 7.- El método implementado por computadora de acuerdo con la reivindicación 6, en donde el recibir una solicitud de cliente además comprende asignar una etiqueta de solicitud e información de cliente al almacenamiento. 8.- El método implementado por computadora de acuerdo con la reivindicación 6, en donde ei recibir la versión actual del objeto compartido además comprende recibir la versión actual del objeto compartido cuando otro cliente accesa al almacenamiento con la versión actual del objeto compartido. 9. - Un medio legible por computadora que tiene instrucciones ejecutables por computadora para sincronizar múltiples revisiones de usuario para un objeto compartido, que comprende: recibir una revisión del objeto compartido; determinar si la revisión tiene conflicto con una revisión sincronizada en una página maestra del objeto compartido; y sincronizar la revisión con el objeto compartido cuando la revisión se determina que está asociada con una versión actual del objeto compartido y cuando se determina que la revisión no tiene conflictos con una revisión sincronizada. 10. - El medio legible por computadora de acuerdo con la reivindicación 9, que además comprende: presentar la revisión en una página de conflicto asociada con la página maestra cuando la revisión se determina que tiene conflicto con una revisión sincronizada; presentar un indicador de conflicto en la página maestra, en donde el indicador de conflicto indica que la página maestra está asociada con la página de conflicto; y fusionar la revisión en el objeto compartido. 11. - El medio legible por computadora de acuerdo con la reivindicación 10, en donde el presentar la revisión además comprende: presentar la revisión en la página de conflicto en una ubicación que corresponde a la ubicación en donde la revisión sincronizada es presentada en la página maestra; y resaltar la- revisión de la página de conflicto. 12.- El medio legible por computadora de acuerdo con la reivindicación 10, que además comprende presentar la página de conflicto y la página maestra asociada cuando se selecciona el indicador de conflicto. 13. - El medio legible por computadora de acuerdo con la reivindicación 9, que además comprende: determinar si la revisión es irrelevante; y eliminar la revisión que ha sido determinada como irrelevante. 14. - El medio legible por computadora de acuerdo con la reivindicación 9, que además comprende determinar si la revisión está asociada con una versión actual del objeto compartido. 15. - El método imp.lementado por computadora de acuerdo con la reivindicación 14, que además comprende: recibir una solicitud del cliente para una versión actual del objeto compartido en un almacenamiento; recibir la versión actual del objeto compartido en el almacenamiento; y sincronizar la versión actual del objeto compartido con el cliente. 16. - Un sistema para sincronizar múltiples revisiones de usuario para un objeto compartido, que comprende: medios para recibir una revisión para el objeto compartido; medios para determinar si la revisión tiene conflictos con una revisión sincronizada en una página maestra del objeto compartido; y medios para sincronizar la revisión con el objeto compartido cuando la revisión se determina que está asociada con una versión actual del objeto compartido y cuando la revisión se determina que no tiene conflicto con una revisión sincronizada. 17. - El sistema de acuerdo con la reivindicación 16, que además comprende: medios para recibir una solicitud de cliente para un versión actual del objeto compartido en un almacenamiento; medios para recibir la versión actual del objeto compartido en el almacenamiento; y medios para sincronizar la versión actual del objeto compartido con el cliente. 18. - El sistema de acuerdo con la reivindicación 17, en donde los medios para recibir una solicitud de cliente además comprende medios para asignar una etiqueta de solicitud de información de cliente al almacenamiento. 19.- El sistema de acuerdo con la reivindicación 17, en donde los medios para recibir la versión actual del objeto compartido además comprenden medios para recibir la versión actual del objeto compartido cuando otro cliente accede al almacenamiento con la versión actual del objeto compartido. 20.- El sistema de acuerdo con la reivindicación 16, que además comprende medios para determinar si la revisión está asociada con una versión actual del objeto compartido.
MXPA05013617A 2005-01-14 2005-12-14 Metodo y sistema para sincronizar multiples revisiones de usuario para un objeto compartido. MXPA05013617A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/035,698 US7593943B2 (en) 2005-01-14 2005-01-14 Method and system for synchronizing multiple user revisions to a shared object

Publications (1)

Publication Number Publication Date
MXPA05013617A true MXPA05013617A (es) 2006-07-13

Family

ID=35520225

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA05013617A MXPA05013617A (es) 2005-01-14 2005-12-14 Metodo y sistema para sincronizar multiples revisiones de usuario para un objeto compartido.

Country Status (17)

Country Link
US (1) US7593943B2 (es)
EP (1) EP1681652B1 (es)
JP (1) JP4874640B2 (es)
KR (1) KR101153052B1 (es)
CN (1) CN100561473C (es)
AU (1) AU2005234676B2 (es)
BR (1) BRPI0505187A (es)
CA (1) CA2528070C (es)
IL (1) IL172571A (es)
MX (1) MXPA05013617A (es)
MY (1) MY144510A (es)
NO (1) NO336905B1 (es)
NZ (1) NZ544151A (es)
RU (1) RU2404450C2 (es)
SG (1) SG124349A1 (es)
TW (1) TWI368171B (es)
ZA (1) ZA200510084B (es)

Families Citing this family (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7617278B1 (en) 2003-01-29 2009-11-10 Adobe Systems Incorporated Client controllable server-side playlists
US7246356B1 (en) 2003-01-29 2007-07-17 Adobe Systems Incorporated Method and system for facilitating comunications between an interactive multimedia client and an interactive multimedia communication server
US7272658B1 (en) 2003-02-13 2007-09-18 Adobe Systems Incorporated Real-time priority-based media communication
US7287256B1 (en) 2003-03-28 2007-10-23 Adobe Systems Incorporated Shared persistent objects
US7953794B2 (en) * 2005-01-14 2011-05-31 Microsoft Corporation Method and system for transitioning between synchronous and asynchronous communication modes
JP4696721B2 (ja) * 2005-06-27 2011-06-08 富士ゼロックス株式会社 文書管理サーバ、文書管理システム
US7925701B2 (en) * 2005-07-25 2011-04-12 Sony Ericsson Mobile Communications Ab Mobile communication terminal supporting information sharing
US8161159B1 (en) 2005-10-31 2012-04-17 Adobe Systems Incorporated Network configuration with smart edge servers
US7945615B1 (en) * 2005-10-31 2011-05-17 Adobe Systems Incorporated Distributed shared persistent objects
JP2007122609A (ja) * 2005-10-31 2007-05-17 Ricoh Co Ltd 構造化文書、コンテンツ配信サーバ装置及びコンテンツ配信システム
JP4876734B2 (ja) * 2006-06-22 2012-02-15 富士ゼロックス株式会社 文書利用管理システム及び方法、文書管理サーバ及びそのプログラム
JP4816281B2 (ja) * 2006-06-22 2011-11-16 富士ゼロックス株式会社 文書利用管理システム、文書管理サーバ及びそのプログラム
US8090944B2 (en) * 2006-07-05 2012-01-03 Rockstar Bidco Lp Method and apparatus for authenticating users of an emergency communication network
US20080103977A1 (en) * 2006-10-31 2008-05-01 Microsoft Corporation Digital rights management for distributed devices
US20080104206A1 (en) * 2006-10-31 2008-05-01 Microsoft Corporation Efficient knowledge representation in data synchronization systems
US7966426B2 (en) * 2006-11-14 2011-06-21 Microsoft Corporation Offline synchronization capability for client application
JP5003131B2 (ja) * 2006-12-04 2012-08-15 富士ゼロックス株式会社 文書提供システム及び情報提供プログラム
US20080140732A1 (en) * 2006-12-11 2008-06-12 Bentley System, Inc. Method and system for sharing file based data
US7836429B2 (en) 2006-12-19 2010-11-16 International Business Machines Corporation Data synchronization mechanism for change-request-management repository interoperation
JP4305510B2 (ja) * 2006-12-28 2009-07-29 富士ゼロックス株式会社 情報処理システム、情報処理装置及びプログラム
JP4943166B2 (ja) * 2007-01-05 2012-05-30 株式会社ants Webブラウザ上に表示されたオブジェクトをWebブラウザから取り出したように見せる方法及びプログラム
US7954008B2 (en) * 2007-01-15 2011-05-31 Microsoft Corporation Objective assessment of application crashes from a customer environment
JP5082460B2 (ja) * 2007-01-19 2012-11-28 富士ゼロックス株式会社 情報処理装置及びプログラム及び情報処理システム
JP5023715B2 (ja) * 2007-01-25 2012-09-12 富士ゼロックス株式会社 情報処理システム、情報処理装置及びプログラム
US7620659B2 (en) * 2007-02-09 2009-11-17 Microsoft Corporation Efficient knowledge representation in data synchronization systems
US8131670B2 (en) * 2007-02-22 2012-03-06 Microsoft Corporation Techniques to cross-synchronize data
US20080222508A1 (en) * 2007-03-08 2008-09-11 Huy Nguyen Method and system for comparing spreadsheets
US7949938B2 (en) * 2007-03-20 2011-05-24 International Business Machines Corporation Comparing and merging multiple documents
JP2008257317A (ja) * 2007-04-02 2008-10-23 Fuji Xerox Co Ltd 情報処理装置、情報処理システム及びプログラム
US8677270B2 (en) 2007-05-04 2014-03-18 Microsoft Corporation Live companion user interface
KR101546639B1 (ko) * 2007-05-15 2015-08-21 메리얼 리미티드 아릴로아졸-2-일 시아노에틸아미노 화합물, 이의 제조방법 및 이의 사용방법
US8954507B2 (en) * 2007-06-22 2015-02-10 Microsoft Corporation Gathering and using awareness information
US8782527B2 (en) 2007-06-27 2014-07-15 Microsoft Corp. Collaborative phone-based file exchange
JP2009042856A (ja) * 2007-08-07 2009-02-26 Fuji Xerox Co Ltd 文書管理装置、文書管理システム及びプログラム
US7890472B2 (en) 2007-09-18 2011-02-15 Microsoft Corporation Parallel nested transactions in transactional memory
JP5119840B2 (ja) * 2007-10-02 2013-01-16 富士ゼロックス株式会社 情報処理装置、情報処理システム、及びプログラム
US20090112870A1 (en) * 2007-10-31 2009-04-30 Microsoft Corporation Management of distributed storage
US7941399B2 (en) 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US8825758B2 (en) 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US9501453B2 (en) * 2007-12-23 2016-11-22 Salesforce.Com Inc. Method and system for a flexible-data column user interface
US8185495B2 (en) * 2008-02-01 2012-05-22 Microsoft Corporation Representation of qualitative object changes in a knowledge based framework for a multi-master synchronization environment
US8301588B2 (en) 2008-03-07 2012-10-30 Microsoft Corporation Data storage for file updates
US8489566B2 (en) * 2008-04-08 2013-07-16 International Business Machines Corporation Optimistic locking in online and offline environments
US8352870B2 (en) * 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
US8347061B2 (en) * 2008-04-29 2013-01-01 International Business Machines Corporation Method for protecting user-managed memory using an exception
US7974948B2 (en) * 2008-05-05 2011-07-05 Microsoft Corporation Automatically capturing and maintaining versions of documents
US8825594B2 (en) 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US8429753B2 (en) 2008-05-08 2013-04-23 Microsoft Corporation Controlling access to documents using file locks
US9418054B2 (en) 2008-05-12 2016-08-16 Adobe Systems Incorporated Document comment management
US9176943B2 (en) 2008-05-12 2015-11-03 Adobe Systems Incorporated Comment presentation in electronic documents
US10055392B2 (en) * 2008-05-12 2018-08-21 Adobe Systems Incorporated History-based archive management
US8996621B2 (en) 2008-05-12 2015-03-31 Adobe Systems Incorporated Asynchronous comment updates
US7949633B1 (en) 2008-05-12 2011-05-24 Adobe Systems Incorporated Shared edit access of electronic content
US7945595B1 (en) 2008-05-12 2011-05-17 Adobe Systems Incorporated System and method for generating an item list in electronic content
US10417051B2 (en) * 2008-05-23 2019-09-17 International Business Machines Corporation Synchronizing shared resources in an order processing environment using a synchronization component
US7899883B2 (en) * 2008-06-13 2011-03-01 Microsoft Corporation Merging versions of documents using multiple masters
US8612520B2 (en) 2008-06-16 2013-12-17 Microsoft Corporation Online/offline proto link behavior and proto page conflict resolution
US8700301B2 (en) 2008-06-19 2014-04-15 Microsoft Corporation Mobile computing devices, architecture and user interfaces based on dynamic direction information
US9200901B2 (en) * 2008-06-19 2015-12-01 Microsoft Technology Licensing, Llc Predictive services for devices supporting dynamic direction information
US8467991B2 (en) 2008-06-20 2013-06-18 Microsoft Corporation Data services based on gesture and location information of device
US20090319166A1 (en) * 2008-06-20 2009-12-24 Microsoft Corporation Mobile computing services based on devices with dynamic direction information
US20090315775A1 (en) * 2008-06-20 2009-12-24 Microsoft Corporation Mobile computing services based on devices with dynamic direction information
US8417666B2 (en) 2008-06-25 2013-04-09 Microsoft Corporation Structured coauthoring
US8489999B2 (en) 2008-09-02 2013-07-16 Accenture Global Services Limited Shared user interface surface system
US20100064004A1 (en) * 2008-09-10 2010-03-11 International Business Machines Corporation Synchronizing documents by designating a local server
US20100082560A1 (en) * 2008-09-19 2010-04-01 Sony Computer Entertainment America Inc. Software change management, configuration substitution and remote administration of datacenters
US8051287B2 (en) 2008-10-15 2011-11-01 Adobe Systems Incorporated Imparting real-time priority-based network communications in an encrypted communication session
US8656290B1 (en) * 2009-01-08 2014-02-18 Google Inc. Realtime synchronized document editing by multiple users
US9396279B1 (en) 2009-02-17 2016-07-19 Jpmorgan Chase Bank, Na Collaborative virtual markup
US8639762B2 (en) 2009-03-23 2014-01-28 Google Inc. Providing access to a conversation in a hosted conversation system
US8346768B2 (en) 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents
US9665413B2 (en) * 2009-05-01 2017-05-30 Microsoft Technology Licensing, Llc Shared job scheduling in electronic notebook
US8296338B2 (en) * 2009-05-05 2012-10-23 Entangled Media Corp. Method for a cloud-based meta-file system to virtually unify remote and local files across a range of devices' local file systems
US9269102B2 (en) * 2009-05-21 2016-02-23 Nike, Inc. Collaborative activities in on-line commerce
US9298834B2 (en) 2009-05-26 2016-03-29 Adobe Systems Incorporated User presence data for web-based document collaboration
US8612380B2 (en) * 2009-05-26 2013-12-17 Adobe Systems Incorporated Web-based collaboration for editing electronic documents
US9602444B2 (en) 2009-05-28 2017-03-21 Google Inc. Participant suggestion system
US9021386B1 (en) 2009-05-28 2015-04-28 Google Inc. Enhanced user interface scrolling system
US8527602B1 (en) 2009-05-28 2013-09-03 Google Inc. Content upload system with preview and user demand based upload prioritization
US8872767B2 (en) 2009-07-07 2014-10-28 Microsoft Corporation System and method for converting gestures into digital graffiti
US9569254B2 (en) * 2009-07-28 2017-02-14 International Business Machines Corporation Automatic checkpointing and partial rollback in software transaction memory
US8412841B1 (en) 2009-08-17 2013-04-02 Adobe Systems Incorporated Media content streaming using stream message fragments
US8166191B1 (en) 2009-08-17 2012-04-24 Adobe Systems Incorporated Hint based media content streaming
US8201094B2 (en) * 2009-09-25 2012-06-12 Nokia Corporation Method and apparatus for collaborative graphical creation
CA2684225A1 (en) * 2009-10-30 2011-04-30 Ibm Canada Limited - Ibm Canada Limitee Selective delta validation of a shared artifact
US8510399B1 (en) 2010-05-18 2013-08-13 Google Inc. Automated participants for hosted conversations
US8719845B2 (en) * 2010-05-19 2014-05-06 Microsoft Corporation Sharing and synchronization of objects
US9026935B1 (en) 2010-05-28 2015-05-05 Google Inc. Application user interface with an interactive overlay
US9380011B2 (en) 2010-05-28 2016-06-28 Google Inc. Participant-specific markup
CN103238150B (zh) 2010-11-02 2016-08-17 谷歌公司 由多个用户对博客的实时同步文档编辑
US20120136839A1 (en) * 2010-11-30 2012-05-31 Peter Eberlein User-Driven Conflict Resolution Of Concurrent Updates In Snapshot Isolation
US9165285B2 (en) 2010-12-08 2015-10-20 Microsoft Technology Licensing, Llc Shared attachments
US9009726B2 (en) * 2010-12-10 2015-04-14 Microsoft Technology Licensing, Llc Deterministic sharing of data among concurrent tasks using pre-defined deterministic conflict resolution policies
US9436502B2 (en) 2010-12-10 2016-09-06 Microsoft Technology Licensing, Llc Eventually consistent storage and transactions in cloud based environment
EP2793130B1 (en) 2010-12-27 2015-12-23 Amplidata NV Apparatus for storage or retrieval of a data object on a storage medium, which is unreliable
CN102739703A (zh) * 2011-04-02 2012-10-17 中兴通讯股份有限公司 一种对等网络中数据迁移的方法及系统
US10552799B2 (en) 2011-04-28 2020-02-04 Microsoft Technology Licensing, Llc Upload of attachment and insertion of link into electronic messages
US9137185B2 (en) 2011-04-28 2015-09-15 Microsoft Technology Licensing, Llc Uploading attachment to shared location and replacing with a link
US11308449B2 (en) 2011-04-28 2022-04-19 Microsoft Technology Licensing, Llc Storing metadata inside file to reference shared version of file
US8682989B2 (en) 2011-04-28 2014-03-25 Microsoft Corporation Making document changes by replying to electronic messages
US10185932B2 (en) 2011-05-06 2019-01-22 Microsoft Technology Licensing, Llc Setting permissions for links forwarded in electronic messages
US8965983B2 (en) 2011-05-06 2015-02-24 Microsoft Technology Licensing, Llc Changes to documents are automatically summarized in electronic messages
US9378138B2 (en) 2011-06-29 2016-06-28 International Business Machines Corporation Conservative garbage collection and access protection
US9716744B2 (en) * 2011-10-27 2017-07-25 Microsoft Technology Licensing, Llc Remote access from mobile devices
CA2769773C (en) * 2011-11-04 2018-01-09 Gemcom Software International Inc. System and method for data communication over a network
US9355115B2 (en) * 2011-11-21 2016-05-31 Microsoft Technology Licensing, Llc Client application file access
US8825722B2 (en) * 2012-01-13 2014-09-02 Microsoft Corporation Calculation of properties of objects/shapes across versions of applications
KR101919008B1 (ko) 2012-02-24 2018-11-19 삼성전자주식회사 정보 제공 방법 및 이를 위한 이동 단말기
KR102008495B1 (ko) 2012-02-24 2019-08-08 삼성전자주식회사 데이터 공유 방법 및 이를 위한 이동 단말기
KR101894395B1 (ko) 2012-02-24 2018-09-04 삼성전자주식회사 캡쳐 데이터 제공 방법 및 이를 위한 이동 단말기
CN102629221B (zh) * 2012-02-28 2014-11-19 华为技术有限公司 用于分布式共享存储的任务同步方法、装置及系统
US20130238552A1 (en) * 2012-03-12 2013-09-12 Joseph Saib Systems and methods for synchronizing files in a networked communication system
US9519631B2 (en) 2012-03-30 2016-12-13 Microsoft Technology Licensing, Llc Semantic diff and automerge
US9286597B2 (en) 2012-03-30 2016-03-15 Microsoft Technology Licensing, Llc Tracking co-authoring conflicts using document comments
US10089323B2 (en) 2012-04-05 2018-10-02 Microsoft Technology Licensing, Llc Telemetry system for a cloud synchronization system
US8700569B1 (en) 2012-05-09 2014-04-15 Bertec Corporation System and method for the merging of databases
US8543540B1 (en) * 2012-05-09 2013-09-24 Bertec Corporation System and method for the merging of databases
US9043278B1 (en) 2012-05-09 2015-05-26 Bertec Corporation System and method for the merging of databases
FI20125700A (fi) * 2012-06-21 2013-12-22 Tekla Corp Yhteisdata suhdetiedolla
US8504519B1 (en) * 2012-06-27 2013-08-06 Dropbox, Inc. Determining a preferred modified version from among multiple modified versions for synchronized files
CN102946403B (zh) * 2012-07-20 2015-09-09 珠海金山办公软件有限公司 一种用于云存储系统的解决文件冲突的方法及装置
US9058311B1 (en) 2012-08-08 2015-06-16 Sprint Communications Company L.P. User timeframe selection for delivery of media resources
US9542177B1 (en) * 2012-10-30 2017-01-10 Amazon Technologies, Inc. Peer configuration analysis and enforcement
US20140136985A1 (en) * 2012-11-12 2014-05-15 Moondrop Entertainment, Llc Method and system for sharing content
TWI464580B (zh) * 2012-12-24 2014-12-11 Ind Tech Res Inst 資料儲存方法、採用此方法的資料儲存系統及需求節點
US9460073B2 (en) * 2013-02-27 2016-10-04 Google Inc. Systems and methods for mutations and operational transforms in a collaborative spreadsheet environment
US10635638B2 (en) 2013-03-13 2020-04-28 Ivanti Us Llc Systems, methods and media for deferred synchronization of files in cloud storage client device
US9544351B1 (en) * 2013-03-15 2017-01-10 Steven Sanghoon Lee Media sharing and consumption
US10642928B2 (en) * 2013-06-03 2020-05-05 International Business Machines Corporation Annotation collision detection in a question and answer system
CN103345482A (zh) * 2013-06-20 2013-10-09 上海爱数软件有限公司 一种网络存储系统及其文件访问冲突处理方法
CN104657358B (zh) * 2013-11-15 2018-11-23 腾讯科技(深圳)有限公司 实现网页程序离线缓存的方法和系统
US9898520B2 (en) 2014-03-25 2018-02-20 Open Text Sa Ulc Systems and methods for seamless access to remotely managed documents using synchronization of locally stored documents
US20160048548A1 (en) * 2014-08-13 2016-02-18 Microsoft Corporation Population of graph nodes
US9503402B2 (en) 2014-08-18 2016-11-22 Dropbox, Inc. Managing drafts of electronic documents across client devices
US20170031661A1 (en) 2015-04-15 2017-02-02 Alpha Software Corporation Systems and methods for transactional applications in an unreliable wireless network
US10218709B2 (en) * 2016-03-11 2019-02-26 Microsoft Technology Licensing, Llc Share permissions and organization of content in an application with multiple levels of organizational hierarchy
US10298656B2 (en) * 2016-06-08 2019-05-21 Western Digital Technologies, Inc. Extending representational state transfer application program interface (REST API) functionality
US10095674B2 (en) * 2016-07-08 2018-10-09 Google Llc Maintaining state of document concurrently edited by two computing systems by determining locations of edits based on inverse transformations
US10498741B2 (en) 2016-09-19 2019-12-03 Box, Inc. Sharing dynamically changing units of cloud-based content
US11003632B2 (en) 2016-11-28 2021-05-11 Open Text Sa Ulc System and method for content synchronization
CN106708521B (zh) * 2016-12-21 2020-07-17 金蝶软件(中国)有限公司 一种页面元数据的保存方法及装置
TWI735511B (zh) * 2017-01-19 2021-08-11 香港商斑馬智行網絡(香港)有限公司 代碼提交方法和設備
US11301431B2 (en) * 2017-06-02 2022-04-12 Open Text Sa Ulc System and method for selective synchronization
US11016937B2 (en) * 2017-07-17 2021-05-25 Microsoft Technology Licensing, Llc Updateable distributed file framework
CN109408081A (zh) * 2017-08-17 2019-03-01 佳能企业股份有限公司 数据传输方法及通讯系统
JP6573686B2 (ja) * 2018-02-02 2019-09-11 eXTEM Software Japan株式会社 複数のユーザにアクセスされるデータを処理する情報管理システム、情報管理方法、およびプログラム
CN109462661B (zh) * 2018-12-19 2021-08-10 深圳市卡牛科技有限公司 数据同步方法、装置、计算机设备和存储介质
CN111950981B (zh) * 2020-08-07 2023-07-18 中国联合网络通信集团有限公司 文档修订管理方法
US11880650B1 (en) * 2020-10-26 2024-01-23 Ironclad, Inc. Smart detection of and templates for contract edits in a workflow
WO2022107248A1 (ja) * 2020-11-18 2022-05-27 三菱電機株式会社 監視画面作成支援装置、監視画面作成支援方法、および監視画面作成支援プログラム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06324928A (ja) * 1993-05-14 1994-11-25 Mitsubishi Electric Corp ログ生成装置とファイルの異なるバージョンの調停のための装置及び異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置
US5806078A (en) * 1994-06-09 1998-09-08 Softool Corporation Version management system
US6006239A (en) * 1996-03-15 1999-12-21 Microsoft Corporation Method and system for allowing multiple users to simultaneously edit a spreadsheet
US5890177A (en) * 1996-04-24 1999-03-30 International Business Machines Corporation Method and apparatus for consolidating edits made by multiple editors working on multiple document copies
JP3022326B2 (ja) * 1996-06-18 2000-03-21 日本電気株式会社 ファイル変更履歴管理システム
US5787262A (en) * 1996-06-26 1998-07-28 Microsoft Corporation System and method for distributed conflict resolution between data objects replicated across a computer network
US6226652B1 (en) 1997-09-05 2001-05-01 International Business Machines Corp. Method and system for automatically detecting collision and selecting updated versions of a set of files
US6240414B1 (en) * 1997-09-28 2001-05-29 Eisolutions, Inc. Method of resolving data conflicts in a shared data environment
US6067551A (en) * 1997-11-14 2000-05-23 Microsoft Corporation Computer implemented method for simultaneous multi-user editing of a document
US6058416A (en) * 1998-05-22 2000-05-02 International Business Machines Corportion Flexible state sharing and consistency mechanism for interactive applications
US6317754B1 (en) 1998-07-03 2001-11-13 Mitsubishi Electric Research Laboratories, Inc System for user control of version /Synchronization in mobile computing
US6341291B1 (en) * 1998-09-28 2002-01-22 Bentley Systems, Inc. System for collaborative engineering using component and file-oriented tools
US6212534B1 (en) * 1999-05-13 2001-04-03 X-Collaboration Software Corp. System and method for facilitating collaboration in connection with generating documents among a plurality of operators using networked computer systems
US6662212B1 (en) 1999-08-31 2003-12-09 Qualcomm Incorporated Synchronization of a virtual workspace using E-mail extensions
AU1450901A (en) 1999-11-01 2001-05-14 Mangosoft Corporation Internet-based shared file service with native pc client access and semantics
US20030112273A1 (en) * 2001-12-17 2003-06-19 Workshare Technology, Ltd. Document collaboration suite using a common database
AU2003228416A1 (en) 2002-04-02 2003-10-20 Collabo-Technology, Inc. Method and apparatus for synchronous project collaboration
US6938042B2 (en) 2002-04-03 2005-08-30 Laplink Software Inc. Peer-to-peer file sharing
US7366460B2 (en) 2003-01-23 2008-04-29 Dexterra, Inc. System and method for mobile data update
JP2004326176A (ja) 2003-04-21 2004-11-18 Matsushita Electric Works Ltd 情報サーバ、情報サーバ用プログラムおよび情報システム
AU2003903994A0 (en) * 2003-07-31 2003-08-14 Canon Kabushiki Kaisha Collaborative editing with automatic layout
US7296023B2 (en) 2004-01-15 2007-11-13 International Business Machines Corporation Method and apparatus for persistent real-time collaboration
US20060059481A1 (en) * 2004-09-16 2006-03-16 Rodney Smith Presenting, delivering and installing electronic downloads with an installed list

Also Published As

Publication number Publication date
ZA200510084B (en) 2007-10-31
TW200630891A (en) 2006-09-01
EP1681652A2 (en) 2006-07-19
KR20060083118A (ko) 2006-07-20
CA2528070C (en) 2015-12-29
AU2005234676A1 (en) 2006-08-03
RU2005139140A (ru) 2007-06-20
RU2404450C2 (ru) 2010-11-20
CN1804836A (zh) 2006-07-19
MY144510A (en) 2011-09-30
JP4874640B2 (ja) 2012-02-15
NO20055422L (no) 2006-07-17
EP1681652B1 (en) 2020-11-18
JP2006195972A (ja) 2006-07-27
US20060161516A1 (en) 2006-07-20
NZ544151A (en) 2009-01-31
AU2005234676B2 (en) 2010-10-28
IL172571A0 (en) 2006-04-10
NO336905B1 (no) 2015-11-23
CN100561473C (zh) 2009-11-18
KR101153052B1 (ko) 2012-07-03
IL172571A (en) 2010-12-30
NO20055422D0 (no) 2005-11-16
CA2528070A1 (en) 2006-07-14
BRPI0505187A (pt) 2006-09-12
US7593943B2 (en) 2009-09-22
SG124349A1 (en) 2006-08-30
TWI368171B (en) 2012-07-11
EP1681652A3 (en) 2007-07-04

Similar Documents

Publication Publication Date Title
MXPA05013617A (es) Metodo y sistema para sincronizar multiples revisiones de usuario para un objeto compartido.
US8150919B2 (en) Method and system for transitioning between synchronous and asynchronous communication modes
US11388251B2 (en) Providing access to managed content
KR20040056639A (ko) 모바일 환경에서의 이동 클라이언트와 서버간의 데이터동기화 및 갱신 충돌 해결 방법
EP1422901A1 (en) Client driven synchronization of file and folder content in web publishing
JP4247975B2 (ja) データ管理方法、データ管理システム、およびそのためのプログラムならびに記録媒体

Legal Events

Date Code Title Description
FG Grant or registration
HH Correction or change in general