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
Links
- 238000005192 partition Methods 0.000 title abstract 10
- 238000000034 method Methods 0.000 claims description 15
- 230000001360 synchronised effect Effects 0.000 abstract description 22
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 239000004020 conductor Substances 0.000 description 2
- 238000013329 compounding Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/106—Enforcing content protection by specific content processing
- G06F21/1062—Editing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, 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)
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).
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)
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)
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 |
-
2009
- 2009-06-05 US US12/479,189 patent/US8219526B2/en not_active Expired - Fee Related
-
2010
- 2010-06-01 AU AU2010256703A patent/AU2010256703B2/en not_active Ceased
- 2010-06-01 MY MYPI2011005776A patent/MY163754A/en unknown
- 2010-06-01 RU RU2011149273/08A patent/RU2554845C2/ru not_active IP Right Cessation
- 2010-06-01 CN CN2010800252229A patent/CN102460409A/zh active Pending
- 2010-06-01 CA CA2761165A patent/CA2761165C/en not_active Expired - Fee Related
- 2010-06-01 BR BRPI1011684A patent/BRPI1011684A2/pt not_active Application Discontinuation
- 2010-06-01 MX MX2011012937A patent/MX2011012937A/es active IP Right Grant
- 2010-06-01 KR KR1020117028994A patent/KR101655497B1/ko active IP Right Grant
- 2010-06-01 SG SG2011079316A patent/SG175387A1/en unknown
- 2010-06-01 JP JP2012514057A patent/JP5280583B2/ja not_active Expired - Fee Related
- 2010-06-01 KR KR1020167023991A patent/KR101740207B1/ko active IP Right Grant
- 2010-06-01 WO PCT/US2010/036968 patent/WO2010141517A2/en active Application Filing
- 2010-06-01 EP EP10783964A patent/EP2438526A4/en not_active Withdrawn
-
2011
- 2011-10-27 ZA ZA2011/07867A patent/ZA201107867B/en unknown
- 2011-10-30 IL IL216022A patent/IL216022A/en not_active IP Right Cessation
- 2011-12-02 CL CL2011003047A patent/CL2011003047A1/es unknown
-
2012
- 2012-06-12 US US13/494,685 patent/US8572030B2/en not_active Expired - Fee Related
-
2013
- 2013-05-22 JP JP2013108070A patent/JP5646686B2/ja not_active Expired - Fee Related
-
2016
- 2016-03-16 IL IL244625A patent/IL244625A/en not_active IP Right Cessation
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 |