[go: up one dir, main page]

MX2011012937A - Sincronizacion de divisiones de archivo utilizando un modelo de almacenamiento de servidor. - Google Patents

Sincronizacion de divisiones de archivo utilizando un modelo de almacenamiento de servidor.

Info

Publication number
MX2011012937A
MX2011012937A MX2011012937A MX2011012937A MX2011012937A MX 2011012937 A MX2011012937 A MX 2011012937A MX 2011012937 A MX2011012937 A MX 2011012937A MX 2011012937 A MX2011012937 A MX 2011012937A MX 2011012937 A MX2011012937 A MX 2011012937A
Authority
MX
Mexico
Prior art keywords
division
computer
client computer
server computer
file
Prior art date
Application number
MX2011012937A
Other languages
English (en)
Inventor
Simon Peter Clarke
Miko Arnab S Bose
Xuelei Sun
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 MX2011012937A publication Critical patent/MX2011012937A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/106Enforcing content protection by specific content processing
    • G06F21/1062Editing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)

Abstract

Se proporcionan modalidades para sincronizar divisiones de archivo utilizando un modelo de almacenamiento de servidor en una red de computadora de cliente-servidor. Las ediciones al contenido de un documento electrónico pueden recibirse en una computadora de cliente. El contenido puede incluirse en una primera división de un archivo almacenado en una computadora de servidor. La primera división puede incluir una primera corriente que incluye el contenido de documento electrónico. El archivo puede incluir múltiples divisiones, cada división incluyendo una o más corrientes. La computadora de cliente puede generar metadatos en una segunda división del archivo. Los metadatos pueden estar asociados con las ediciones al contenido de documento electrónico en la primera división. La segunda división entonces puede sincronizarse individualmente con la computadora de servidor para almacenar los metadatos. La primera división entonces puede sincronizarse individualmente con la computadora de servidor para almacenar las ediciones hechas al contenido de documento electrónico.

Description

SINCRONIZACION DE DIVISIONES DE ARCHIVO UTILIZANDO UN MODELO DE ALMACENAMIENTO DE SERVIDOR ANTECEDENTES En recles de computadora de cliente-servidor, puede editarse un archivo de documento electrónico por múltiples usuarios en diferentes computadoras de cliente. El archivo de documento electrónico puede incluir datos de sesión de edición asociados (por ejemplo, metadatos) que son diferentes e independientes del contenido de archivo de documento principal. El archivo de documento electrónico se sincroniza entre una computadora de cliente y un servidor central con el fin de almacenar cualquiera de las ediciones hechas al archivo de documento electrónico que después pueden verse por usuarios de otras computadoras de cliente en una red. Bajo métodos de sincronización existentes, cualquiera de los metadatos asociados debe sincronizarse junto con las ediciones hechas al archivo de documento electrónico. En particular, para el lenguaje de marcación o documentos de compuesto de enlace e incorporación de objeto ("OLE"), los metadatos pueden colocarse en un formato de archivo extensible para sincronización. Como un resultado de la sincronización, los metadatos asociados con un archivo de documento electrónico se exponen automáticamente en el servidor, incluso si un usuario que sincroniza el archivo de documento electrónico no desea que los metadatos se vean por o se descargue (dentro del archivo de documento electrónico) a otros usuarios. Con respecto a estas y otras consideraciones se han hecho las varias modalidades de la presente invención.
BREVE DESCRIPCION DE LA INVENCION Esta breve descripción se proporciona para introducir una selección de conceptos en una forma simplificada que además se describe a continuación en la descripción detallada. Esta breve descripción no pretende identificar características clave o características esenciales del tema reclamado, ni se pretende como un auxiliar al determinar el alcance del tema reclamado.
Las modalidades se proporcionan para sincronizar divisiones de archivo al utilizar un modelo de almacenamiento de servidor en una red de computadora de servidor de cliente. Las ediciones a contenido de un documento electrónico pueden recibirse en una computadora de cliente. El contenido puede incluirse en una primera división de un archivo almacenado en una computadora de servidor. La primera división puede incluir una primera corriente que incluye el contenido del documento electrónico. El archivo puede incluir múltiples divisiones, cada división incluyendo una o más corrientes. La computadora de cliente puede generar metadatos en una segunda división del archivo. Los metadatos pueden estar asociados con las ediciones al contenido de documento electrónico en la primera división. La segunda división entonces puede sincronizarse individualmente con la computadora de servidor para almacenar los metadatos. La primera división entonces puede sincronizarse individualmente con la computadora de servidor para almacenar las ediciones hechas al contenido del documento electrónico.
Estas y otras características y ventajas serán evidentes a partir de una lectura de la siguiente descripción detallada y una revisión de los dibujos asociados. Se debe entender que tanto la descripción general anterior como la siguiente descripción detallada son ilustrativas únicamente y no restrictivas de la invención como se reclama.
BREVE DESCRIPCION DE LOS DIBUJOS La Figura 1 es un diagrama de bloques que ilustra una arquitectura de red de cliente-servidor que puede utilizar un modelo de almacenamiento de servidor para sincronizar divisiones de archivo, de acuerdo con varias modalidades; La Figura 2 es un diagrama de bloques que ilustra un ambiente de cómputo de cliente que puede utilizar un modelo de almacenamiento de servidor para sincronizar divisiones de archivo, de acuerdo con varias modalidades; La Figura 3 es un diagrama de flujo que ilustra una rutina para sincronizar divisiones de archivo utilizando un modelo de almacenamiento de servidor, de acuerdo con una modalidad; La Figura 4 es un diagrama de flujo que ilustra una rutina para sincronizar una división de archivo individual utilizando un modelo de almacenamiento de servidor, de acuerdo con una modalidad ilustrada en la Figura 3; La Figura 5 es un diagrama de flujo que ilustra una rutina para sincronizar otra división de archivo utilizando un modelo de almacenamiento de servidor, de acuerdo con la modalidad ilustrada en la Figura 3; La Figura 6 es un diagrama de flujo que ilustra una rutina para sincronizar divisiones de archivo utilizando un modelo de almacenamiento de servidor, de acuerdo con otra modalidad; y La Figura 7 es un diagrama de flujo que ilustra una rutina para sincronizar una división de archivo en una segunda computadora de cliente utilizando un modelo de almacenamiento de servidor, de acuerdo con la modalidad ilustrada en la Figura 6.
DESCRIPCION DETALLADA Se proporcionan modalidades para sincronizar divisiones de archivo utilizando un modelo de almacenamiento de servidor en una red de computadora de cliente-servidor. Las ediciones al contenido de un documento electrónico pueden recibirse en una computadora de cliente. El contenido puede incluirse en una primera división de un archivo almacenado en una computadora de servidor. La primera división puede incluir una primera corriente que incluye el contenido de documento electrónico. El archivo puede incluir múltiples divisiones, cada división incluyendo una o más corrientes. La computadora de cliente puede generar metadatos en una segunda división del archivo. Los metadatos pueden estar asociados con las ediciones al contenido de documento electrónico en la primera división. La segunda edición entonces puede sincronizarse individualmente con la computadora de servidor para almacenar los metadatos. La primera división entonces puede sincronizarse individualmente con la computadora de servidor para almacenar las ediciones hechas al contenido de un documento electrónico.
En la siguiente descripción detallada, se hace referencia a los dibujos anexos que forman una parte de la misma, y que se muestran a manera de ilustración modalidades o ejemplos específicos. Estas modalidades pueden combinarse, pueden utilizarse otras modalidades, y pueden hacerse cambios estructurales sin apartarse del espíritu o alcance de la presente invención. Por lo tanto la siguiente descripción detallada no debe tomarse en un sentido limitante, y el alcance de la presente invención se define por las reivindicaciones anexas y sus equivalentes.
Haciendo referencia ahora a los dibujos, en donde números similares representan elementos similares a través de las varias figuras, se describirán varios aspectos de la presente invención. La Figura 1 es un diagrama de bloques que ilustra una arquitectura de red de cliente y un servidor que puede utilizar un modelo de almacenamiento de servidor para sincronizar divisiones de archivo, de acuerdo con varias modalidades. La arquitectura de red incluye una computadora de cliente 2 y una computadora de cliente 6, ambas estando en comunicación con una computadora de servidor 70 a través de una red 4. La red 4 puede incluir una red local o una red de área ancha (por ejemplo, Internet).
La computadora de cliente 2 puede almacenar una aplicación de productividad 30 que puede utilizarse para editar un archivo de documento electrónico 40 (también almacenarse en la computadora de cliente 2). De acuerdo con varias modalidades, la aplicación de productividad 30 puede comprender el software de procesamiento de palabras WORD, el programa de gráficos de presentación POWERPOINT, y el software GROOVE de MICROSOFT CORPORATION de Redmond, Washington. Sin embargo, se debe apreciar que pueden utilizarse otros programas de productividad o aplicación de otros fabricantes de acuerdo con las varias modalidades aquí descritas.
El archivo de documento electrónico 40 puede recibirse en la computadora de cliente 2 a través de una operación de descarga mediante la red 4 desde la computadora de servidor 70 o generarse por la aplicación de productividad 30 en la computadora de cliente 30. El archivo de documento electrónico 40 puede incluir una división 50. La división 50 puede incluir corrientes 52 y 56. La corriente 52 además puede incluir contenido (es decir, contenido de documento electrónico) 54A. El archivo de documento electrónico 40 también puede incluir una división 60. La división 60 puede incluir corrientes 62 y 68. La corriente 62 además puede incluir metadatos 64A. De acuerdo con una modalidad, los metadatos 64A pueden ser asociados con el contenido 54A almacenado en la división 50. En particular, los metadatos 64A pueden incluir una lista de autor 67A que describe uno o más autores del contenido 54A y seguros de documento 66A que describen un usuario actual del archivo de documento electrónico 40 (por ejemplo, un usuario que edita actualmente el contenido 54A).
De acuerdo con varias modalidades, una "división" se define como un "archivo" dentro de un archivo (tal como el archivo de documento electrónico 40) y puede contener una o más corrientes. Una "corriente", que está contenida dentro de una división, contiene datos asociados con un archivo de documento electrónico (tales como el contenido 54A o los metadatos 64A). Se debe observar que cada una de las divisiones en un archivo puede sincronizarse independientemente de otra a diferentes velocidades de sincronización (es decir, divisiones en un archivo individual pueden sincronizarse en diferentes momentos). Además, múltiples corrientes en la misma división están relacionadas entre sí mientras puede no existir ninguna relación entre corrientes en diferentes divisiones. Por ejemplo, la corriente 56 puede comprender datos asociados con contenido de documento electrónico (y de esa forma relacionados con la corriente 52) pero pueden no contener metadatos asociados con el archivo de documento electrónico 40. Además, múltiples corrientes en una división dada están sincronizadas simultáneamente, asegurando con ello la consistencia entre corrientes en la misma división.
La computadora de cliente 6 puede almacenar la aplicación de productividad 30 que también puede utilizarse para editar el archivo de documento electrónico (también almacenado en la computadora de cliente 6). El archivo de documento electrónico 40 puede recibirse en la computadora de cliente 6 a través de una operación de descarga mediante la red 4 desde la computadora de servidor 70 o generarse por la aplicación de productividad 30 en la computadora de cliente 6. El archivo de documento electrónico 40 puede incluir la división 50. La división 50 puede incluir las corrientes 52 y 56. La corriente 52 además puede incluir contenido (es decir, contenido de documento electrónico) 54B. El archivo de documento electrónico 40 también puede incluir la división 60. La división 60 puede incluir las corrientes 62 y 68. La corriente 62 además puede incluir metadatos 64B. Se debe entender, que de acuerdo con varias modalidades, "metadatos" representa contenido dentro de una corriente en una división. De acuerdo con una modalidad, los metadatos 64B pueden estar asociados con el contenido 54B almacenado en la división 50. En particular, los metadatos 64B pueden incluir una lista de autor 67B que describe uno o más autores del contenido 54B y seguros de documento 66B que describen un usuario actual del archivo de documento electrónico 40 (por ejemplo, un usuario que dicta actualmente el contenido 54B).
La computadora de servidor 70 puede almacenar una aplicación de servidor 42. De acuerdo con varias modalidades, la computadora de servidor 70 puede funcionar como un sistema de almacenamiento de documento para archivos electrónicos creados en las computadoras de cliente 2 y 6. La aplicación de servidor 42 puede comprender un programa de aplicación de servicios colaborativos tales como la aplicación de servicios SHAREPOINT SERVER de MICROSOFT CORPORATION. Como se conoce por aquellos expertos en la técnica, la tecnología de servicios SHAREPOINT permite a los usuarios crear, mantener, y presentar un ambiente colaborativo para compartir información. Al utilizar la tecnología, un usuario u organización puede crear uno o más sitios web para proporcionar y compartir información (por ejemplo, documentos en un servidor web o carpeta web, etc.) para otros usuarios asociados con los sitios web. Se debe entender que las modalidades aquí descritas no deben interpretarse como estando limitadas a la tecnología de servicios SHAREPOINT y que también puede utilizarse otra tecnología de servicios colaborativos de otros desabolladores y/o fabricantes.
La computadora de servidor 70 también puede almacenar el archivo de documento electrónico 40. El archivo de documento electrónico 40 puede incluir la división 50. La división 50 puede incluir las corrientes 52 y 56. La corriente 52 además puede incluir el contenido (es decir, contenido de documento electrónico) 54. El archivo de documento electrónico 40 también puede incluir la división 60. La división 60 puede incluir las corrientes 62 y 68. La corriente 62 además puede incluir metadatos 64. De acuerdo con una modalidad, los metadatos 64 pueden estar asociados con el contenido 54 almacenado en la división 50. En particular, los metadatos 64 pueden incluir una lista de autor 67 que describe uno o más autores del contenido 54 y seguros de documento 66 que describen un usuario actual del archivo de documento electrónico 40 (por ejemplo, un usuario que edita actualmente el contenido 54). Se debe entender, que de acuerdo con una modalidad, el archivo de documento electrónico 40 puede descargarse de la computadora de servidor 70 a las computadoras de cliente 2 y 6 para edición creando consecuentemente de forma potencial diferentes versiones del contenido 54 y los metadatos 64 en el archivo de documento electrónico 40 cuando se hacen cambios antes de sincronizarse de nuevo con la computadora de servidor 70. De esa forma, en la presente descripción detallada, se identifican versiones del contenido 54 y los metadatos 64 en las computadoras de cliente 2 y 6 por las letras "A" y "B" anexas después de los números de referencia para esos componentes de archivo.
De acuerdo con varias modalidades y como se describirá con mayor detalle a continuación con respecto a las Figuras 3-7, la aplicación de servidor 42 y la aplicación de productividad 30 pueden configurarse para facilitar la sincronización de las divisiones 50 y 60 en las computadoras de cliente 2 y 6, con la computadora de servidor 70. De acuerdo con una modalidad, la aplicación de servidor 42 puede configurarse para utilizar un protocolo (que incluye, pero no se limita a un protocolo sin estado) para facilitar la sincronización de documento creciente y agregar soporte para archivos de servidor para exponer múltiples corrientes de datos independientes o dependientes. De esa forma, cada una de las divisiones en un archivo electrónico puede sincronizarse independientemente de otra y a diferentes velocidades de sincronización (es decir, divisiones en un archivo individual pueden sincronizarse en diferentes momentos). Por ejemplo, la aplicación de servidor 42 en conjunto con la aplicación de productividad 30, puede configurarse para sincronizar la división 60 (que contiene los metadatos 64) en la computadora de cliente 2 con la computadora de servidor 70 antes de la división 50 (que contiene el contenido 54A). Se debe apreciar que al sincronizar divisiones a diferentes velocidades, la cantidad de datos comunicada a la computadora de servidor 70 a través de la red 4 se reduce, mejorando consecuentemente la escalabilidad de servidor. Un protocolo sin estado ilustrativo que puede utilizarse de acuerdo con varias modalidades se describe en la solicitud de patente relacionada de E.U.A. serie No. 12/113,975 titulada "Sincronización de Documento en Protocolo Sin Estado", presentada el 2 de Mayo, 2008, cuya descripción se incorpora aquí, en su totalidad, para referencia.
Se debe entender que las varias divisiones y corrientes discutidas con respecto a las computadoras de cliente 2 y 6, y la computadora de servidor 70, son simplemente ilustrativas y no están limitadas al número de divisiones o corrientes que pueden estar contenidos dentro de un archivo de documento electrónico de acuerdo con varias modalidades. Por ejemplo, de acuerdo con una modalidad, un archivo de documento electrónico puede contener únicamente una división individual y una corriente individual mientras de acuerdo con otras modalidades un archivo de documento electrónico puede contener múltiples divisiones y múltiples corrientes. Además se debe entender que, de acuerdo con varias modalidades, el contenido de las corrientes contenidas dentro de un archivo de documento electrónico en las computadoras de cliente 2 y 6 y la computadora de servidor 70 no están limitados a metadatos sino que también incluyen datos genéricos (es decir, datos que no están asociados con contenido almacenado en una división de archivo de documento electrónico) también. Además se debe entender que las modalidades aquí descritas no deben interpretarse como estando limitadas a las aplicaciones de software antes mencionadas y que también pueden utilizarse otras aplicaciones de software de otros desabolladores y/o fabricantes. Además se debe entender que la arquitectura de red de la Figura 1 y sus componentes incluyen funcionalidad para comunicarse con otros dispositivos de cómputo, dispositivos de comunicación, y/u otros sistemas y no pretenden estar limitados a las modalidades y ejemplos aquí descritos. De esa forma, por ejemplo, la arquitectura de red de la Figura 1 puede incluir computadoras de cliente adicionales en comunicación con la computadora de servidor 70, de acuerdo con varias modalidades.
Ambiente Operativo Ilustrativo Haciendo referencia ahora a la Figura 2, la siguiente discusión pretende proporcionar una breve descripción general de un ambiente de cómputo adecuado en el cual pueden implementarse varias modalidades ilustrativas. Aunque varias modalidades se describirán en el contexto general de módulos de programa que se ejecutan en conjunto con módulos de programa que corren en un sistema operativo en una computadora personal, aquellos expertos en la técnica reconocerán que las varias modalidades también pueden implementarse en combinación con otros tipos de sistemas de computadora y módulos de programa.
Generalmente, los módulos de programa incluyen rutinas, programas, componentes, estructuras de datos, y otros tipos de estructuras que realizan tareas particulares o implementan tipos de datos abstractos particulares. Además, aquellos expertos en la técnica apreciarán que las varias modalidades pueden practicarse con otras configuraciones de sistema de computadora, que incluyen dispositivos portátiles, sistemas de multiprocesador, electrónica basada en microprocesador o de consumidor programable, minicomputadoras, macrocomputadoras, y similares. Las varias modalidades también pueden practicarse en ambientes de cómputo distribuidos en donde las tareas se realizan por dispositivos de procesamiento remotos que están enlazados a través de una red de comunicaciones. En un ambiente de cómputo distribuido, los módulos de programa pueden estar localizados en dispositivos de almacenamiento de memoria locales y remotos.
La Figura 2 muestra la computadora de cliente 2 que puede incluir una computadora de escritorio de propósito general, laptop, portátil, de tableta, u otro tipo de computadora para ejecutar uno o más programas de aplicación. La computadora de cliente 2 incluye al menos una unidad de procesamiento central 8 ("CPU"), una memoria de sistema 12, que incluye una memoria de acceso aleatorio 18 ("RAM") y una memoria de sólo lectura ("ROM") 20, y un conductor común de sistema 10 que acopla la memoria a la CPU 8. Un sistema de entrada/salida básico que contiene las rutinas básicas que ayudan a transferir información entre elementos dentro de la computadora, tal como durante el arranque, se almacena en la ROM 20. La computadora de cliente 2 además incluye un dispositivo de almacenamiento masivo 14 para almacenar un sistema operativo 32, la aplicación de productividad 30, y el archivo de documento electrónico 40 que incluye la división 50, las corrientes 52, 56, 62, y 68, el contenido 54A, los metadatos 64A, la lista de autor 67A, y los seguros de documento 66A, descritos anteriormente con respecto a la Figura 1.
De acuerdo con varias modalidades, el sistema operativo 42 puede ser adecuado para controlar la operación de una computadora personal en red, tal como los sistemas operativos de WINDOWS de MICROSOFT CORPORATION de Redmond, Washington. El dispositivo de almacenamiento masivo 14 está conectado a la CPU 8 a través de un controlador de almacenamiento masivo (no mostrado) conectado al conductor común 10. El dispositivo de almacenamiento masivo 14 y sus medios legibles por computadora asociados proporcionan almacenamiento no volátil para la computadora de cliente 2. Aunque la descripción de medios legibles por computadora aquí contenida se refiere a un dispositivo de almacenamiento masivo, tal como un disco duro o unidad CD-ROM, se debe apreciar por aquellos expertos en la técnica que los medios legibles por computadora puede ser cualquier medio disponible que puede accederse o utilizarse por la computadora de cliente 2. A manera de ejemplo, y no de limitación, los medios legibles por computadora pueden comprender medios de almacenamiento por computadora y medios de comunicación.
Los medios de almacenamiento por computadora incluyen medios de almacenamiento de hardware volátiles y no volátiles, removibles y no removibles ¡mplementados en cualquier método o tecnología física para el almacenamiento de información tales como instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos. Los medios de almacenamiento por computadora incluyen, pero no están limitados a, RAM, ROM, EPROM, EEPROM, memoria flash u otra tecnología de memoria de estado sólido, CD-ROM, discos versátiles digitales ("DVD"), u otro almacenamiento óptico, casetes magnéticos, cinta magnética, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, que pueden utilizarse para almacenar la información deseada y que pueden accederse por la computadora de cliente 2. Los medios de comunicación típicamente representan instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos en la señal de datos modulada tal como una onda portadora u otro mecanismo de transporte e incluye cualquier medio de entrega 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 establecidas o cambiadas de tal forma para codificar información en la señal. A manera de ejemplo, y no de limitación, los medios de comunicación incluyen medios por cable tales como red por cable, conexión por cable directa, y medios inalámbricos tal como acústicos, RF, infrarrojos, y otros medios inalámbricos. Combinaciones de cualquiera de los anteriores también deben incluirse dentro del alcance de medios legibles por computadora. Los medios legibles por computadora también pueden denominarse como un producto de programa de computadora.
De acuerdo, con varias modalidades, la computadora de cliente 2 puede operar en un ambiente en red utilizando conexiones lógicas a computadoras remotas a través de la red 4 que puede comprender, por ejemplo, una red local o una red de área ancha (por ejemplo, Internet). La computadora de cliente 2 puede conectarse a la red 4 a través de una unidad de interfase de red 16 conectada al conductor común 10. Se debe apreciar que la unidad de interfase de red 16 también puede utilizarse para conectarse a otros tipos de redes y sistemas de cómputo remotos. La computadora de cliente 2 también puede incluir un controlador de entrada/salida 22 para recibir y procesar entrada desde un número de tipos de entrada, incluyendo un teclado, ratón, pluma, estilete, dedo, y/u otro medio. Similarmente, un controlador de entrada/salida 22 puede proporcionar salida a un dispositivo de presentación 82, una impresora, u otro tipo de dispositivo de salida. Adicionalmente, una pantalla táctil puede servir como un mecanismo de entrada y uno de salida. Se debe apreciar que la computadora de cliente 6 y la computadora de servidor 70 mostrados en la Figura 1 pueden incluir muchos de los componentes convencionales mostrados con respecto a la computadora de cliente 2 en la Figura 2.
La Figura 3 es un diagrama de flujo que ilustra una rutina 300 para sincronizar divisiones de archivo utilizando un modelo de almacenamiento de servidor, de acuerdo con una modalidad. Cuando se lea la discusión de las rutinas aquí presentadas, se debe apreciar que las operaciones lógicas de varias modalidades de la presente invención se implementan (1) como una secuencia de actos implementados por computadora o módulos de programa que corren en un sistema de cómputo y/o (2) como circuitos lógicos de máquina interconectados o módulos de circuito dentro del sistema de cómputo. La implementación es un asunto de elección que depende de los requerimientos de desempeño del dispositivo de cómputo que implementa la invención. Por consiguiente, las operaciones lógicas ilustradas en las Figuras 3-7 y que forman las varias modalidades aquí descritas se denominan de forma variada como operaciones, dispositivos estructurales, actos o módulos. Se reconocerá por aquellos expertos en la técnica que estas operaciones, dispositivos estructurales, actos y módulos pueden implementarse en software, en firmware, en lógica digital de propósito especial, y cualquier combinación de los mismos sin desviarse del espíritu y alcance de la presente invención como se menciona dentro de las reivindicaciones aquí establecidas.
La rutina 300 comienza en la operación 305, en donde la aplicación de productividad 30 que se ejecuta en la computadora de cliente 2 recibe ediciones al contenido de documento electrónico (contenido en la corriente 52) en la división 50 del archivo de documento electrónico 40. De acuerdo con una modalidad, el archivo de documento electrónico 40 puede descargarse de la computadora de servidor 70 que incluye todas las divisiones y corrientes aquí contenidas. La división 50 entonces puede abrirse con el fin de editar el contenido 54 ahí contenido, con lo cual crea el contenido 54A.
A partir a la operación 305, la rutina 300 continúa la operación 310 en donde la aplicación de productividad 30 genera los metadatos 64A en la división 60 del archivo de documento electrónico 40. En particular, la aplicación de productividad 30 puede generar metadatos para actualizar la lista de autor 67 en la división 60 del archivo de documento electrónico 40 para agregar el usuario de la computadora de cliente 2 como un autor (lo que genera consecuentemente la lista de autor 67A). La aplicación de productividad 30 también puede generar metadatos para agregar un seguro de documento 66A en la división 60 del archivo de documento electrónico 40 para indicar que el archivo de documento electrónico 40 se esté editando actualmente por el usuario de la computadora de cliente 2.
A partir de la operación 310, la rutina 300 continúa a la operación 315 en donde la aplicación de productividad 30 envía una solicitud a la aplicación de servidor 42 para sincronizar la división 60 con la computadora de servidor 70 con el fin de guardar los cambios hechos a los metadatos 64 (es decir, los metadatos 64A que contienen la lista de autor 67A y el seguro de documento 66A) a la computadora de servidor 70. Se debe apreciar que la división 60 puede sincronizarse independientemente de la división 50 para que únicamente los metadatos cambiados 64A se guarden en la computadora de servidor 70. Una rutina ilustrativa para sincronizar la división 60 con la computadora de servidor se describirá con mayor detalle a continuación con respecto a la Figura 4.
A partir de la operación 315, la rutina 300 continúa a la operación 320 en donde la aplicación de productividad 30 envía una solicitud a la aplicación de servidor 42 para sincronizar la división 50 con la computadora de servidor 70 con el fin de guardar el contenido editado 54A a la computadora de servidor 70. Se debe entender que la división 50 puede sincronizarse independientemente de la división 60 para que únicamente el contenido editado 54A se guarde en la computadora de servidor 70. Además se debe entender que el orden de sincronización de las divisiones 60 y 50 puede invertirse para que la división 50 se sincronice independientemente con la computadora de servidor 70 antes de la división 60. Una rutina ilustrativa para sincronizar la división 50 con la computadora de servidor 70 se describirá con mayor detalle a continuación con respecto a la Figura 5. A partir de la operación 320, la rutina 70 continúa en la operación 325 en donde termina. Se debe entender que las operaciones 310-320, discutidas anteriormente, también pueden realizarse por la aplicación de productividad 30 que se ejecuta en la computadora de cliente 6, de acuerdo con una modalidad.
La Figura 4 es un diagrama de flujo que ¡lustra una rutina 400 para sincronizar una división de archivo individual utilizando un modelo de almacenamiento de servidor, de acuerdo con la modalidad ilustrada en la Figura 3. La rutina 400 comienza de la operación 315 de la Figura 3 y continúa a la operación 405, en donde la aplicación de servidor 42 determina si existe un conflicto con sincronizar la división 60 en la computadora de cliente 2 con la computadora de servidor 70. En particular y de acuerdo con una modalidad, la aplicación de servidor 42 puede comparar los metadatos 64A almacenados en la división 60 en la computadora de cliente 2 con los metadatos 64 almacenados en la computadora de servidor 70 para determinar cualquiera de las diferencias. Si los metadatos 64A y los metadatos 64 son diferentes, entonces la aplicación de servidor 42 determina que existe un conflicto y la rutina 400 continúa en la operación 410. Si no hay diferencias entre los metadatos 64A y los metadatos 64, entonces la rutina 400 regresa a la operación 320 de la Figura 3.
En la operación 410, la aplicación de servidor 42 determina cómo resolver el conflicto basándose en sí los metadatos 64A en la división 60 en la computadora de cliente 2 son más recientes que los metadatos 64 almacenados en la computadora de servidor 70. En particular, la solicitud de la aplicación de productividad 30 para sincronizar la división 60 puede incluir una fecha de registro que indica cuando los metadatos 64A se almacenaron en la división 60 en la computadora de cliente 2. La aplicación de servidor 42 puede comparar la fecha de registro con una fecha de registro que indica cuando se almacenaron los metadatos 64 en la división 60 en la computadora de servidor 70. Si se determina que los metadatos 64A son más recientes que los metadatos 64, entonces la rutina 40 continúa en la operación 415. Si se determina que los metadatos 64 son más recientes que los metadatos 64A, entonces la rutina 400 se ramifica a la operación 420. Se debe entender por aquellos expertos en la técnica que, de acuerdo con otra modalidad, lá solicitud de la aplicación de productividad 30 para sincronizar la división 60 puede incluir una etiqueta de entidad ("ETAG") de lenguaje de marcación hipertexto ("HTTP") para identificar (y resolver) conflictos.
En la operación 415, la aplicación de servidor 42 automáticamente sincroniza la división 60 en la computadora de cliente 2 con la computadora de servidor 70 para resolver el conflicto a favor de los metadatos más recientes 64A que están presentes en la computadora de cliente 2. De esa forma, la aplicación de servidor 42 puede actualizar los metadatos 64 en la división 60 en la computadora de servidor 70 con los metadatos 64A. A partir de la operación 415, la rutina 400 regresa a la operación 320 de la Figura 3.
En la operación 420, la aplicación de servidor 42 automáticamente ocasiona la sincronización de la división 60 en la computadora de cliente 2 con la computadora de servidor 70 para fallar con el fin de resolver el conflicto a favor de los metadatos 64 que son más recientes que los metadatos 64A. De esa forma, la aplicación de servidor 42 puede mantener los metadatos 64 en la división 60 en la computadora de servidor 70. A partir de la operación 420, la rutina 400 regresa a la operación 320 de la Figura 3.
La Figura 5 es un diagrama de flujo que ilustra una rutina 500 para sincronizar otra división de archivo utilizando un modelo de almacenamiento de servidor, de acuerdo con la modalidad ilustrada en la Figura 3. La rutina 500 comienza a partir de la operación 320 de la Figura 3 y continúa la operación 505, en donde la aplicación de servidor 42 determina si existe un conflicto con sincronizar la división 50 en la computadora de cliente 2 con la computadora de servidor 70. En particular y de acuerdo con una modalidad, la aplicación de servidor 42 puede comparar el contenido 54A almacenado en la división 50 en la computadora de cliente 2 con el contenido 54 almacenado en la división 50 en la computadora de servidor 70. Si el contenido 54 contiene ediciones que no están presentes en el contenido editado 54A en la división 50 en la computadora de cliente 2, entonces la computadora de servidor 70 determina si existe un conflicto y la rutina 500 continúa la operación 510. Si el contenido 54 no contiene ninguna de las ediciones del todo, entonces la rutina 500 continúa a la operación 515.
En la operación 510, la aplicación de servidor 42 genera un mensaje de error de conflicto para el usuario de la computadora de cliente 2. Por ejemplo, el mensaje de error de conflicto generado por la aplicación de servidor 42 en la computadora de cliente 2 puede incluir ediciones no observadas al contenido 54 (hechas, por ejemplo por un usuario de la computadora de cliente 6) que se han cargado previamente al servidor 70. En respuesta al mensaje de error de conflicto, un usuario de la computadora de cliente 2 puede resolver manualmente el conflicto al fusionar el contenido editado 54A con las ediciones al contenido 54, o alternativamente, al permitir que las ediciones previas al contenido 54 permanezcan no alteradas en el servidor 70. Desde la operación 510, la rutina 500 regresa a la operación 325 de la Figura 3.
En la operación 515, la aplicación de servidor 42 sincroniza el contenido editado 54A en la división 50 con el servidor 70 para actualizar el contenido 54 en el servidor 70 con el contenido editado 54A. A partir de la operación 515, la rutina 500 regresa a la operación 325 de la Figura 3.
La Figura 6 es un diagrama de flujo que ilustra una rutina 600 para sincronizar divisiones de archivo utilizando un modelo de almacenamiento de servidor, de acuerdo con otra modalidad. La rutina 600 comienza en la operación 605, en donde la aplicación de productividad 30 que se ejecuta en la computadora de cliente 2 recibe ediciones al contenido de documento electrónico (contenido en la corriente 52) en la división 50 del archivo de documento electrónico 40. De acuerdo con una modalidad, el archivo de documento electrónico 40 puede descargarse desde la computadora de servidor 70 incluyendo todas las divisiones y corrientes aquí contenidas. La división 50 entonces puede abrirse con el fin de editar el contenido 54 ahí contenido, creando consecuente el contenido 54A.
A partir de la operación 605, la rutina 600 continúa en la operación 610 en donde la aplicación de productividad 30 genera los metadatos 64A en la división 60 del archivo de documento electrónico 40 para identificar el editor del contenido 54A en la división 50. En particular, la aplicación de productividad 30 puede generar metadatos para agregar el nombre del editor de contenido 54A a la lista de autor 67 en la división 60 del archivo de documento electrónico 40 (generando consecuentemente la lista de autor 67A).
A partir de la operación 610, la rutina 600 continúa en la operación 615 en donde la aplicación de productividad 30 envía una solicitud a la aplicación de servidor 42 para sincronizar la división 60 con la computadora de servidor 70 con el fin de guardar los cambios hechos a los metadatos 64 (es decir, los metadatos 64A que contienen la lista autor 67A) a la computadora de servidor 70. Se debe entender que la división 60 puede sincronizarse independientemente de la división 50 para que se guarden únicamente los metadatos cambiados 64A a la computadora de servidor 70.
A partir de la operación 615, la rutina 600 continúa a la operación 620 en donde la aplicación de productividad 30 que se ejecuta en la computadora de cliente 6 recibe las divisiones de archivo 50 y 60 (que incluyen las corrientes 42, 56, 62, y 68 ahí contenidas) desde la computadora de servidor 70 al descargar el archivo electrónico 40. Se debe entender que la computadora de cliente 6, en la división de archivo 60, también recibe los metadatos 64A que identifican el editor del contenido 54A desde la computadora de cliente 2, como un resultado de la sincronización de la división 60 en la computadora de cliente 2 con la computadora de servidor 70 en la operación 615. De esa forma, un usuario de la computadora de cliente 6 es capaz de determinar que un usuario de la computadora y cliente 2 también ha descargado el contenido 54 desde la computadora de servidor 70 para edición.
A partir de la operación 620, la rutina 600 continúa a la operación 625 en donde la aplicación de productividad 30 que se ejecuta en la computadora de cliente 6 recibe ediciones al contenido de documento electrónico (contenido en la corriente 52) en la división 50 del archivo de documento electrónico 40. La división 50 entonces puede abrirse con el fin de editar el contenido 54 ahí contenido, creando consecuentemente el contenido 54B. Se debe entender que el contenido editado 54B no incluye las ediciones hechas en la computadora de cliente 2 (es decir, el contenido editado 54A).
A partir de la operación 625, la rutina 600 continúa a la operación 630 en donde la aplicación de productividad 30 que se ejecuta en la computadora de cliente 6 envía una solicitud a la aplicación de servidor 42 para sincronizar la división 60 con la computadora de servidor 70 con el fin de guardar los cambios hechos a los metadatos 64 (es decir, los metadatos 64B que contienen la lista de autor 67B) a la computadora de servidor 70. Se debe entender que la división 60 puede sincronizarse independientemente de la división 50 para que se guarden únicamente los metadatos cambiados 64B a la computadora de servidor 70.
A partir de la operación 630, la rutina 600 continúa a la operación 635 en donde la computadora de cliente 2 recibe los metadatos 64B que identifican el editor del contenido 54B desde la computadora de cliente 6, como un resultado de la sincronización de la división 60 con la computadora de servidor 70 en la operación 630. En particular, la aplicación de productividad 30 que se ejecuta en la computadora de cliente 2 puede descargar la división 60 desde la computadora de servidor 70 que se ha actualizado previamente con los metadatos 64B desde la computadora de cliente 6. De esa forma, un usuario de la computadora de cliente 2 es capaz de determinar que un usuario de la computadora de cliente 6 también ha descargado el contenido 54 desde la computadora de servidor 70 para edición.
Desde la operación 635, la rutina 600 continúa a la operación 640 en donde la aplicación de productividad 30 que se ejecuta en la computadora de cliente 2 envía una solicitud a la aplicación de servidor 42 para sincronizar la división 50 con la computadora de servidor 70 con el fin de guardar el contenido editado 54A a la computadora de servidor 70. Se debe entender que la división 50 también puede sincronizarse independientemente de la división 60 para que únicamente el contenido editado 54A se guarde en la computadora de servidor 70. Además se debe entender que el orden de sincronización de las divisiones 60 y 50 puede invertirse para que la división 50 se sincronice independientemente con la computadora de servidor 70 antes de la división 60.
De la operación 640, la rutina 600 continúa a la operación 645 en donde la aplicación de productividad 30 que se ejecuta en la computadora de cliente 6 envía una solicitud a la aplicación de servidor 42 para sincronizar la división 50 con la computadora de servidor 70 con el fin de guardar el contenido editado 54B a la computadora de servidor 70. Se debe entender que la división 50 puede sincronizarse independientemente de la división 60 para que únicamente el contenido editado 54B se guarde en la computadora de servidor 70. Además se debe entender que el orden de sincronización de las divisiones 60 y 50 puede invertirse para que la división 50 se sincronice independientemente con la computadora de servidor 70 antes de la división 60. Una rutina ilustrativa para sincronizar la división 50 con la computadora de servidor 70 se describirá con mayor detalle a continuación con respecto a la Figura 7. A partir de la operación 645, la rutina 600 continúa a la operación 600 en donde entonces termina.
La Figura 7 es un diagrama de flujo que ilustra una rutina 700 para sincronizar una división de archivo en una segunda computadora de cliente utilizando un modelo de almacenamiento de servidor, de acuerdo con una modalidad ilustrada en la Figura 6. La rutina 700 comienza desde la operación 645 de la Figura 6 y continúa a la operación 605, en donde la aplicación de productividad 30 que se ejecuta en la computadora de cliente 6 revisa con la computadora de servidor 70 cualquiera de las actualizaciones hechas a la división 50. En particular, la aplicación de productividad 30 puede enviar una consulta a la aplicación de servidor 42 sobre si el contenido 54 en la división 60 en la computadora de servidor 70 ha sido actualizado por la computadora de cliente 2. Como se discutió anteriormente en la operación 620 de la Figura 6, un usuario de la computadora de cliente 6 puede estar consciente que el contenido 54 en la división 50 de la computadora de servidor 70 se está editando por otro usuario en la computadora de cliente 2 después de recibir las divisiones de archivo 50 y 60 en el archivo electrónico 40 descargados desde la computadora de servidor 70.
De la operación 705, la rutina 700 continúa a la operación 710 en donde la computadora de cliente 6 recibe una confirmación de la aplicación de servidor 42 que la división 50 en la computadora de servidor 70 se ha actualizado (es decir, por la computadora de cliente 2) y de esa forma el contenido editado 54A desde la computadora de cliente 2 está disponible para fusionarse con el contenido editado 54B en la división 50 de la computadora de cliente 6. De la operación 710, la rutina 700 continúa a la operación 715 en donde la computadora de cliente 6 recibe el contenido editado 54A desde la computadora de servidor 70.
De la operación 715, la rutina 700 continúa a la operación 720 en donde la aplicación de productividad 30 que se ejecuta en la computadora de cliente 6 solicita a la aplicación de servidor 42 en la computadora de servidor 70 actualizar la división 50 con el contenido editado 54A (desde la computadora de cliente 2) y el contenido editado 54B (desde la computadora de cliente 6). Desde la operación 720, la rutina 700 regresa a la operación 650 de la Figura 6.
Aunque la invención se ha descrito en conexión con varias modalidades ilustrativas, aquellos expertos en la técnica entenderán que pueden hacerse a ésta muchas modificaciones dentro del alcance de las reivindicaciones a continuación. Por consiguiente, no se desea que el alcance de la invención esté limitado de ninguna forma por la descripción anterior, sino su vez esté determinado completamente por. referencia a las reivindicaciones que siguen.

Claims (15)

REIVINDICACIONES
1.- Un método para sincronizar divisiones de archivo (50, 60) utilizando un modelo de almacenamiento de servidor en una red de computadora de cliente-servidor (4), que comprende: recibir (305), en una computadora de cliente (2), ediciones a contenido (54A) de un documento electrónico, el contenido (54A) comprende una primera corriente (52) de una primera división (50) en un archivo (40), el archivo (40) comprende la primera división (50) y al menos otra división (60), en donde la primera división (50) y al menos otra división (60) cada una incluye al menos una corriente (52, 56, 62, 68); generar (310), en al menos otra división (60) en la computadora de cliente (2), datos (64A) asociados con las ediciones al contenido de documento electrónico (54A) en la primera división (50); sincronizar (315) únicamente al menos otra división (60) en la computadora de cliente (2) con la computadora de servidor (70) para almacenar los datos (64A) en al menos otra división (60) del archivo (40) en la computadora de servidor (70); y sincronizar (320) únicamente la primera división (50) en la computadora de cliente (2) con la computadora de servidor (70) para almacenar las ediciones hechas al contenido de documento electrónico (54A) en una primera división (50) del archivo (40) en la computadora de servidor (70).
2.- El método de acuerdo con la reivindicación 1, en donde generar (310), en al menos otra división (60) en la computadora de cliente (2), datos (64A) asociados con las ediciones al contenido de documento electrónico (54A) en la primera división (50) comprende generar, en una segunda división (60) en la computadora de cliente (2), metadatos (64A) asociados con las ediciones al contenido de documento electrónico (54A) en la primera división (50).
3.- El método de acuerdo con la reivindicación 2, en donde sincronizar (315) únicamente al menos otra división (60) en la computadora de cliente (2) con la computadora de servidor (70) para almacenar los datos (64A) en al menos otra división (60) del archivo (40) en la computadora de servidor (70) comprende sincronizar únicamente la segunda división (60) en la computadora de cliente (2) con la computadora de servidor (70) para almacenar los metadatos (64A) en la segunda división (60) del archivo (40) en la computadora de servidor (70).
A.- El método de acuerdo con la reivindicación 3, en donde sincronizar (315) únicamente la segunda división (60) en la computadora de cliente (2) con la computadora de servidor (70) para almacenar los metadatos (64A) en una segunda división (60) del archivo (40) en la computadora de servidor (70) comprende: comparar (405) los metadatos (64A) generados en la segunda división (60) en la computadora de cliente (2) con metadatos (64) almacenados en la segunda división (60) del archivo (40) almacenado en la computadora de servidor (70); y determinar (405) un conflicto cuando los metadatos (64A) generados en la segunda división (60) en la computadora de cliente (2) son diferentes a los metadatos (64) almacenados en la segunda división (60) del archivo (40) en la computadora de servidor (70).
5.- El método de acuerdo con la reivindicación 4, que además comprende: sincronizar automáticamente (415) la segunda división (60) en la computadora de cliente (2) con la computadora de servidor (70) cuando los metadatos (64A) en la segunda división (60) en la computadora de cliente (2) son más recientes que los metadatos (64) almacenados en la segunda división (60) del archivo (40) almacenado en la computadora de servidor (70) para resolver el conflicto; y hacer automáticamente (420) que la sincronización de la segunda división (60) en la computadora de cliente (2) con la computadora de servidor (70) falle cuando los metadatos (64) almacenados en la segunda división (60) del archivo (40) almacenado en la computadora de servidor (70) son más recientes que los metadatos (64A) almacenados en la segunda división (60) en la computadora de cliente (2), para resolver el conflicto.
6.- El método de acuerdo con la reivindicación 1, en donde sincronizar (320) únicamente la primera división (50) en la computadora de cliente (2) con la computadora de servidor (70) para almacenar las ediciones hechas al contenido de documento electrónico (54A) en una primera división (50) del archivo (40) en la computadora de servidor (70) comprende: comparar (505) el contenido de documento electrónico editado (54A) en la primera división (50) en la computadora de cliente (2) con contenido de documento electrónico (54) almacenado en la primera división (50) del archivo (40) almacenado en la computadora de servidor (70); y determinar (505) un conflicto cuando el contenido de documento electrónico (54) almacenado en la primera división (50) del archivo (40) almacenado en la computadora de servidor (70) contenga ediciones que no están presentes en el contenido de documento electrónico editado (54A) en la primera división (50) en la computadora de cliente (2).
7.- Un medio de almacenamiento legible por computadora (12, 14), que comprende instrucciones ejecutables por computadora que, cuando se ejecutan en una computadora (2), causarán que la computadora (2) realice un método para sincronizar divisiones de archivo (50, 60) utilizando un modelo de almacenamiento de servidor, que comprende: recibir (305), en una computadora de cliente (2), ediciones a contenido (54A) de un documento electrónico, el contenido (54A) comprende una primera corriente (52) de una primera división (50) en un archivo (40), el archivo (40) comprende al menos la primera división (50) y una segunda división (60), cada una de al menos las primeras y las segundas divisiones (50, 60) comprende al menos una corriente (52, 56, 62, 68); generar (310), en la segunda división (60) en la computadora de cliente (2), metadatos (64A) asociados con las ediciones al contenido de documento electrónico (54A) en la primera división (50); sincronizar (315) únicamente la segunda división (60) en la computadora de cliente (2) con la computadora de servidor (70) para almacenar los metadatos (64A) en una segunda división (60) del archivo (40) en la computadora de servidor (70); y sincronizar (320) únicamente la primera división (50) en la computadora de cliente (2) o la computadora de servidor (70) para almacenar las ediciones hechas al contenido de documento electrónico (54A) en una primera división (50) del archivo (40) en la computadora de servidor (70).
8.- El medio de almacenamiento legible por computadora de acuerdo con la reivindicación 7, en donde sincronizar (615) únicamente la segunda división (60) en la computadora de cliente (2) con la computadora de servidor (70) para almacenar los metadatos (64A) en una segunda división (60) del archivo (40) en la computadora de servidor (70) comprende; comparar (405) los metadatos (64A) generados en la segunda división (60) en la computadora de cliente (2) con metadatos (64) almacenados en la segunda división (60) del archivo (40) almacenado en la computadora de servidor (70); y determinar (405) un conflicto cuando los metadatos (64A) generados en la segunda división (60) en la computadora de cliente (2) sean diferentes a los metadatos (64) almacenados en la segunda división (60) del archivo (40) en la computadora de servidor (70).
9. - El almacenamiento legible por computadora de acuerdo con la reivindicación 8, que además comprende: sincronizar automáticamente (415) la segunda división (60) en la computadora de cliente (2) con la computadora de servidor (70) cuando los metadatos (64A) en la segunda división (60) en la computadora de cliente (2) sean más recientes que los metadatos (64) almacenados en la segunda división (60) del archivo (40) almacenado en la computadora de servidor (70), para resolver el conflicto; y causar automáticamente (420) la sincronización de la segunda división (60) en la computadora de cliente (2) con la computadora de servidor (70) para fallar cuando los metadatos (64) almacenados en la segunda división (60) del archivo (40) almacenados en la computadora de servidor (70) son más recientes que los metadatos (64A) almacenados en la segunda división (60) en la computadora de cliente (2), para resolver el conflicto.
10. - Un método para sincronizar divisiones de archivo (50, 60) utilizando un modelo de almacenamiento de servidor en una red de computadora de cliente-servidor (4), que comprende: recibir (605), en una primera computadora de cliente (2), ediciones al contenido (54A) de un documento electrónico, el contenido (54A) comprendiendo una primera corriente (52) de una primera división (50) en un archivo (40), el archivo (40) comprende al menos la primera división (50) y otra división (60), en donde la primera división (50) y al menos la otra división (60) cada una incluye al menos una corriente (52, 56, 62, 68); generar (610), en una corriente (62) de al menos la otra división (60) en la primera computadora de cliente (2), datos que identifican al editor (67A) del nuevo contenido del documento electrónico (54A) en la primera división (50) en la primera computadora de cliente (2); sincronizar (615) únicamente al menos otra división (60) en la primera computadora de cliente (2) con la computadora de servidor (70) para almacenar los datos (67A) en la computadora de servidor (70); recibir (620), en una segunda computadora de cliente (6), el archivo (40) almacenado en la computadora de servidor (70) que incluye al menos la primera división (50) y al menos la otra división (60), en donde al menos la otra división (60) comprende los datos que identifican el editor (66B) del contenido de documento electrónico (54A) en la primera computadora de cliente (2); recibir (625), en la segunda computadora de cliente (6), ediciones al contenido de documento electrónico (54B) en la primera división (50), en donde las ediciones recibidas al contenido de documento electrónico (54B) en la segunda computadora de cliente (6) no incluyen las ediciones recibidas al contenido de documento electrónico (54A) en la primera computadora de cliente (2); y sincronizar (640) únicamente la primera división (50) en la primera computadora de cliente (2) con la computadora de servidor (70) para almacenar las ediciones hechas al contenido de documento electrónico (54A) en la computadora de servidor (70).
11. - El método de acuerdo con la reivindicación 10, en donde generar (610), en una corriente (62) de al menos la otra división (60) en la primera computadora de cliente (2), datos que identifican al editor (67A) del contenido de documento electrónico (54A) en la primera división (50) en la primera computadora de cliente (2) comprende generar, en una corriente (62) de una segunda división (60) en la primera computadora de cliente (2), metadatos que identifican al editor del contenido de documento electrónico (54A) en la primera división (50) en la primera computadora de cliente (2).
12. - El método de acuerdo con la reivindicación 11, en donde sincronizar (615) únicamente al menos la otra división (60) en la primera computadora de cliente (2) con la computadora de servidor (70) para almacenar los datos (67A) en la computadora de servidor (70) comprende sincronizar únicamente la segunda división (60) en la primera computadora de cliente (2) con la computadora de servidor (70) para almacenar los metadatos en la computadora de servidor (70).
13.- El método de acuerdo con la reivindicación 12, que además comprende sincronizar (630) únicamente la segunda división (60) en la segunda computadora de cliente (6) con la computadora de servidor (70) para actualizar los metadatos que identifican al editor (67A) del contenido de documento electrónico (54A) en la primera computadora de cliente (2) con la identidad del editor del contenido de documento electrónico en la segunda computadora de cliente (6).
14.- El método de acuerdo con la reivindicación 10, que además comprender sincronizar (645) únicamente la primera división (60) en la segunda computadora de cliente (2) con la computadora de servidor (70) para agregar, a la primera división (50) en la computadora de servidor (70), ediciones hechas al contenido de documento electrónico (54B) en la segunda computadora de cliente (2) a las ediciones hechas al documento electrónico (54A) en la primera computadora de cliente (2).
15.- El método de acuerdo con la reivindicación 14, en donde sincronizar (645) únicamente la primera división (50) en la segunda computadora de cliente (2) con la computadora de servidor (70) para agregar, a la primera división (50) en la computadora de servidor (70), las ediciones hechas al contenido de documento electrónico (54B) en la segunda computadora de cliente (2) a las ediciones hechas al documento de electrónico (54A) en la primera computadora de cliente (2), además comprende: recibir (715), desde la computadora de servidor (70), las ediciones hechas al contenido de documento electrónico (54A) en la primera computadora de cliente (2); y actualizar (720) la primera división (50) en la computadora de servidor (70) con ediciones hechas al contenido de documento electrónico (54A, 54B) en la segunda computadora de cliente (6) y la primera computadora de cliente (2).
MX2011012937A 2009-06-05 2010-06-01 Sincronizacion de divisiones de archivo utilizando un modelo de almacenamiento de servidor. MX2011012937A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/479,189 US8219526B2 (en) 2009-06-05 2009-06-05 Synchronizing file partitions utilizing a server storage model
PCT/US2010/036968 WO2010141517A2 (en) 2009-06-05 2010-06-01 Synchronizing file partitions utilizing a server storage model

Publications (1)

Publication Number Publication Date
MX2011012937A true MX2011012937A (es) 2012-01-27

Family

ID=43298457

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2011012937A MX2011012937A (es) 2009-06-05 2010-06-01 Sincronizacion de divisiones de archivo utilizando un modelo de almacenamiento de servidor.

Country Status (16)

Country Link
US (2) US8219526B2 (es)
EP (1) EP2438526A4 (es)
JP (2) JP5280583B2 (es)
KR (2) KR101655497B1 (es)
CN (1) CN102460409A (es)
AU (1) AU2010256703B2 (es)
BR (1) BRPI1011684A2 (es)
CA (1) CA2761165C (es)
CL (1) CL2011003047A1 (es)
IL (2) IL216022A (es)
MX (1) MX2011012937A (es)
MY (1) MY163754A (es)
RU (1) RU2554845C2 (es)
SG (1) SG175387A1 (es)
WO (1) WO2010141517A2 (es)
ZA (1) ZA201107867B (es)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8078957B2 (en) 2008-05-02 2011-12-13 Microsoft Corporation Document synchronization over stateless protocols
US9396279B1 (en) 2009-02-17 2016-07-19 Jpmorgan Chase Bank, Na Collaborative virtual markup
US8219526B2 (en) * 2009-06-05 2012-07-10 Microsoft Corporation Synchronizing file partitions utilizing a server storage model
US8924592B2 (en) * 2009-09-29 2014-12-30 Citrix Systems, Inc. Synchronization of server-side cookies with client-side cookies
KR101994163B1 (ko) 2012-08-24 2019-09-30 삼성전자 주식회사 압축 컨텐츠 파일의 자동 동기화 방법 및 장치 그리고 동기화 시스템
US9262435B2 (en) 2013-01-11 2016-02-16 Commvault Systems, Inc. Location-based data synchronization management
US10318492B2 (en) * 2013-02-25 2019-06-11 Amazon Technologies, Inc. Predictive storage service
US9798596B2 (en) 2014-02-27 2017-10-24 Commvault Systems, Inc. Automatic alert escalation for an information management system
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
US9588849B2 (en) 2015-01-20 2017-03-07 Commvault Systems, Inc. Synchronizing selected portions of data in a storage management system
US9952934B2 (en) * 2015-01-20 2018-04-24 Commvault Systems, Inc. Synchronizing selected portions of data in a storage management system
RU2609081C2 (ru) * 2015-06-29 2017-01-30 Общество С Ограниченной Ответственностью "Яндекс" Способ (варианты) и система (варианты) обработки документа в распределенной архитектуре
US10503699B2 (en) 2016-04-25 2019-12-10 Sap Se Metadata synchronization in a distrubuted database
US10152284B2 (en) 2016-10-26 2018-12-11 Ricoh Company, Ltd. Synchronizing metadata with alterations to a portable document format print job
US11003632B2 (en) 2016-11-28 2021-05-11 Open Text Sa Ulc System and method for content synchronization
US11301431B2 (en) 2017-06-02 2022-04-12 Open Text Sa Ulc System and method for selective synchronization

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774868A (en) * 1994-12-23 1998-06-30 International Business And Machines Corporation Automatic sales promotion selection system and method
US5924092A (en) * 1997-02-07 1999-07-13 International Business Machines Corporation Computer system and method which sort array elements to optimize array modifications
JPH10301828A (ja) * 1997-04-23 1998-11-13 Fujitsu Ltd データベース管理方法
JPH11232159A (ja) * 1998-02-13 1999-08-27 The Japan Reserch Institute Ltd ファイル管理方法およびファイル管理のためのプログラムを記憶した媒体
US6801938B1 (en) * 1999-06-18 2004-10-05 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
US6671757B1 (en) * 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US6694336B1 (en) * 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
WO2002019128A1 (en) * 2000-08-29 2002-03-07 Eloquent Tool for collaborative edit/search of dyanamic objects
EP1532543A4 (en) * 2000-09-11 2008-04-16 Agami Systems Inc STORAGE SYSTEM COMPRISING PARTITIONED METADATA THAT MIGRATE LIKELY
JP2002251350A (ja) 2001-02-22 2002-09-06 Sony Corp 送信装置、受信装置、送受信装置、送信方法および受信方法
JP4270771B2 (ja) * 2001-05-29 2009-06-03 富士通株式会社 表示プログラム、表示方法、および記録媒体
US7389201B2 (en) * 2001-05-30 2008-06-17 Microsoft Corporation System and process for automatically providing fast recommendations using local probability distributions
US7702563B2 (en) * 2001-06-11 2010-04-20 Otc Online Partners Integrated electronic exchange of structured contracts with dynamic risk-based transaction permissioning
US6928458B2 (en) * 2001-06-27 2005-08-09 Microsoft Corporation System and method for translating synchronization information between two networks based on different synchronization protocols
TW579463B (en) * 2001-06-30 2004-03-11 Ibm System and method for a caching mechanism for a central synchronization server
US8442957B2 (en) * 2001-09-26 2013-05-14 Emc Corporation Efficient management of large files
US7058664B1 (en) * 2002-04-29 2006-06-06 Sprint Communications Company L.P. Method and system for data recovery
US6925467B2 (en) * 2002-05-13 2005-08-02 Innopath Software, Inc. Byte-level file differencing and updating algorithms
US7096311B2 (en) * 2002-09-30 2006-08-22 Innopath Software, Inc. Updating electronic files using byte-level file differencing and updating algorithms
US7138998B2 (en) * 2002-11-14 2006-11-21 Intel Corporation Multi-resolution spatial partitioning
US7325202B2 (en) * 2003-03-31 2008-01-29 Sun Microsystems, Inc. Method and system for selectively retrieving updated information from one or more websites
US7750908B2 (en) * 2003-04-04 2010-07-06 Agilent Technologies, Inc. Focus plus context viewing and manipulation of large collections of graphs
US7299404B2 (en) * 2003-05-06 2007-11-20 International Business Machines Corporation Dynamic maintenance of web indices using landmarks
US7406499B2 (en) * 2003-05-09 2008-07-29 Microsoft Corporation Architecture for partition computation and propagation of changes in data replication
US20040230894A1 (en) * 2003-05-16 2004-11-18 Dethe Elza Method and system for enabling collaborative authoring of hierarchical documents with versioning
US20050010576A1 (en) * 2003-07-09 2005-01-13 Liwei Ren File differencing and updating engines
US20050033811A1 (en) * 2003-08-07 2005-02-10 International Business Machines Corporation Collaborative email
US7401104B2 (en) 2003-08-21 2008-07-15 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device
JP2005092583A (ja) * 2003-09-18 2005-04-07 Nippon Telegr & Teleph Corp <Ntt> メタデータ保存方法及び装置並びにプログラム、メタデータ保存プログラムを記録した記録媒体
US7203708B2 (en) * 2003-11-06 2007-04-10 Microsoft Corporation Optimizing file replication using binary comparisons
US20050289152A1 (en) * 2004-06-10 2005-12-29 Earl William J Method and apparatus for implementing a file system
US7313575B2 (en) * 2004-06-14 2007-12-25 Hewlett-Packard Development Company, L.P. Data services handler
US7873669B2 (en) * 2004-07-09 2011-01-18 Microsoft Corporation Direct write back systems and methodologies
US7613787B2 (en) * 2004-09-24 2009-11-03 Microsoft Corporation Efficient algorithm for finding candidate objects for remote differential compression
US7401192B2 (en) * 2004-10-04 2008-07-15 International Business Machines Corporation Method of replicating a file using a base, delta, and reference file
US7933868B2 (en) * 2004-11-04 2011-04-26 Microsoft Corporation Method and system for partition level cleanup of replication conflict metadata
JP5173427B2 (ja) * 2004-11-08 2013-04-03 イノパス・ソフトウェアー・インコーポレーテッド 圧縮リード・オンリ・メモリ・ファイル・システム(crmfs)イメージの更新
US7480654B2 (en) * 2004-12-20 2009-01-20 International Business Machines Corporation Achieving cache consistency while allowing concurrent changes to metadata
US7519579B2 (en) * 2004-12-20 2009-04-14 Microsoft Corporation Method and system for updating a summary page of a document
US7953794B2 (en) 2005-01-14 2011-05-31 Microsoft Corporation Method and system for transitioning between synchronous and asynchronous communication modes
US7720890B2 (en) * 2005-02-22 2010-05-18 Microsoft Corporation Ghosted synchronization
US7680835B2 (en) * 2005-02-28 2010-03-16 Microsoft Corporation Online storage with metadata-based retrieval
US20080195601A1 (en) * 2005-04-14 2008-08-14 The Regents Of The University Of California Method For Information Retrieval
US20060242204A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Sync manager conflict resolution
KR100733054B1 (ko) 2005-07-27 2007-06-27 주식회사 유텍 구조화 문서의 동기화를 이용한 문서변환 시스템 및문서변환 방법
US7606812B2 (en) * 2005-11-04 2009-10-20 Sun Microsystems, Inc. Dynamic intent log
WO2007062254A2 (en) * 2005-11-28 2007-05-31 Commvault Systems, Inc. Systems and methods for data management
CN101005428A (zh) * 2006-01-19 2007-07-25 华为技术有限公司 一种检测与解决数据同步冲突的实现方法
US20070198659A1 (en) * 2006-01-25 2007-08-23 Lam Wai T Method and system for storing data
US8307119B2 (en) * 2006-03-31 2012-11-06 Google Inc. Collaborative online spreadsheet application
JP5590881B2 (ja) 2006-05-03 2014-09-17 テレフオンアクチーボラゲット エル エム エリクソン(パブル) メディア表現からメディアを再構成する方法及び装置
US20080059539A1 (en) 2006-08-08 2008-03-06 Richard Chin Document Collaboration System and Method
JP2008077485A (ja) * 2006-09-22 2008-04-03 Sharp Corp 通信端末装置および制御プログラム
JP2008165299A (ja) * 2006-12-27 2008-07-17 Update It Inc ドキュメント作成システム
US20080163056A1 (en) * 2006-12-28 2008-07-03 Thibaut Lamadon Method and apparatus for providing a graphical representation of content
US7933952B2 (en) * 2007-06-29 2011-04-26 Microsoft Corporation Collaborative document authoring
US20090144654A1 (en) * 2007-10-03 2009-06-04 Robert Brouwer Methods and apparatus for facilitating content consumption
US20090106454A1 (en) * 2007-10-17 2009-04-23 Girle David A Independent synchronization of meta-data between devices
US7941399B2 (en) * 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US9436927B2 (en) 2008-03-14 2016-09-06 Microsoft Technology Licensing, Llc Web-based multiuser collaboration
US9262764B2 (en) * 2008-04-30 2016-02-16 Yahoo! Inc. Modification of content representation by a brand engine in a social network
US8078957B2 (en) 2008-05-02 2011-12-13 Microsoft Corporation Document synchronization over stateless protocols
US8219526B2 (en) * 2009-06-05 2012-07-10 Microsoft Corporation Synchronizing file partitions utilizing a server storage model

Also Published As

Publication number Publication date
IL216022A0 (en) 2012-01-31
CA2761165A1 (en) 2010-12-09
IL216022A (en) 2016-03-31
WO2010141517A2 (en) 2010-12-09
RU2011149273A (ru) 2013-06-10
JP5646686B2 (ja) 2014-12-24
US8219526B2 (en) 2012-07-10
EP2438526A4 (en) 2012-11-28
JP2013211036A (ja) 2013-10-10
KR20160106774A (ko) 2016-09-12
KR101740207B1 (ko) 2017-05-25
US20100312758A1 (en) 2010-12-09
IL244625A (en) 2017-04-30
KR101655497B1 (ko) 2016-09-07
RU2554845C2 (ru) 2015-06-27
JP2012529118A (ja) 2012-11-15
IL244625A0 (en) 2016-04-21
KR20120017442A (ko) 2012-02-28
SG175387A1 (en) 2011-12-29
US20120246117A1 (en) 2012-09-27
CL2011003047A1 (es) 2012-06-15
AU2010256703A1 (en) 2011-11-17
CA2761165C (en) 2017-02-28
MY163754A (en) 2017-10-17
BRPI1011684A2 (pt) 2016-03-22
AU2010256703B2 (en) 2014-07-17
WO2010141517A3 (en) 2011-02-17
EP2438526A2 (en) 2012-04-11
JP5280583B2 (ja) 2013-09-04
ZA201107867B (en) 2013-01-30
CN102460409A (zh) 2012-05-16
US8572030B2 (en) 2013-10-29

Similar Documents

Publication Publication Date Title
MX2011012937A (es) Sincronizacion de divisiones de archivo utilizando un modelo de almacenamiento de servidor.
US11740891B2 (en) Providing access to a hybrid application offline
US10606809B2 (en) Multi-master text synchronization using deltas
US10755234B2 (en) System and method for offline synchronization of exception items of shared services for client applications
US11132420B2 (en) Utilizing server pre-processing to deploy renditions of electronic documents in a computer network
US7933871B2 (en) Discovering and updating templates
US8346869B2 (en) Granular data synchronization for editing multiple data objects

Legal Events

Date Code Title Description
FG Grant or registration
PD Change of proprietorship

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC