ES2362378T3 - Almacenamiento y tratamiento de hojas de cálculo y otros documentos. - Google Patents
Almacenamiento y tratamiento de hojas de cálculo y otros documentos. Download PDFInfo
- Publication number
- ES2362378T3 ES2362378T3 ES07766375T ES07766375T ES2362378T3 ES 2362378 T3 ES2362378 T3 ES 2362378T3 ES 07766375 T ES07766375 T ES 07766375T ES 07766375 T ES07766375 T ES 07766375T ES 2362378 T3 ES2362378 T3 ES 2362378T3
- Authority
- ES
- Spain
- Prior art keywords
- entities
- spreadsheet
- entity
- columns
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/194—Calculation of difference between files
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Un sistema para monitorizar y auditar los datos en una o más hojas de cálculo, comprendiendo el sistema: - un selector de entidades (123) para seleccionar una o más entidades en una hoja de cálculo; - un seguidor (125) para seguir el cambio en la posición de las entidades seleccionadas entre dos puntos en el tiempo; y - un determinador de desplazamientos (127 - 131) dispuesto para derivar uno o más valores del desplazamiento a partir de la información recibida desde el seguidor, representando los valores del desplazamiento el cambio de posición de las entidades en la hoja de cálculo; caracterizado por: - un aplicador de desplazamientos (133) para aplicar los valores del desplazamiento a los datos de la hoja de cálculo antes de comparar los datos de la hoja de cálculo con una versión de los datos de la hoja de cálculo en un punto en el tiempo diferente.
Description
Este invento se refiere a la monitorización y auditoría de datos en hojas de cálculo.
Una aplicación de hoja de cálculo es un programa de ordenador que permite a un usuario manipular matrices de datos bidimensionales y tridimensionales. A un usuario de una aplicación de hoja de cálculo se le presenta una matriz de celdas de dos dimensiones, siendo cada celda capaz de almacenar una entidad tal como un artículo de datos numéricos, texto, un objeto de software, o una fórmula. Una hoja de cálculo tridimensional tiene varias de tales matrices que tienen un orden definido. Cuando una celda contiene una fórmula, la presentación muestra normalmente el resultado del cálculo que define la fórmula. La fórmula puede incluir entre sus variables de entrada el valor de otra celda dentro de la hoja de cálculo o dentro de otra hoja de cálculo. Por supuesto, el valor de la otra celda puede ser el resultado del cálculo de una fórmula dentro de la otra celda. Tal enlace entre celdas puede ser extendida hasta un grado de complejidad arbitrario.
Las hojas de cálculo fueron concebidas como herramientas para ser usadas para efectuar cálculos rápidos sobre datos personales. En contraste con esto, los datos y la funcionalidad que son críticos para las operaciones de una organización habrían sido almacenados tradicionalmente en bases de datos de soporte de aplicaciones de ordenador que han sido desarrolladas por programadores para efectuar acciones específicas, controladas, sobre los datos. Las hojas de cálculo de ordenador han llegado a ser ubicuas en muchas organizaciones, como resultado del desarrollo de la potencia de los ordenadores personales. Por lo tanto, en la práctica, este modelo tradicional de cómo se gestionan los datos no se sigue ya en muchas organizaciones. Las hojas de cálculo que fueron conjuntadas apresuradamente para efectuar un cálculo que no se podía hacer con la base de datos programada, se han convertido en herramientas esenciales centrales para el trabajo de sus creadores, y, efectivamente, centrales para la operación del negocio.
En la presente situación, las características de las hojas de cálculo que las hacen muy atrayentes para sus usuarios han llegado a ser no bienvenidas desde el punto de vista de la organización como un conjunto. Una hoja de cálculo puede ser cambiada muy fácilmente. Sin embargo, la naturaleza interconectada de las celdas en una hoja de cálculo puede significar que las consecuencias de tal cambio pueden ser muy difíciles de prever. Esto es especialmente así en los casos en los que la hoja de cálculo está referenciada por otra hoja de cálculo, posiblemente desarrollada por otra persona. Tampoco es posible determinar el contenido de una hoja de cálculo en cualquier momento dado, de modo que las razones que respaldan una conclusión que se extrae del contenido de una hoja de cálculo pueden no ser localizables. Además, la potencia de los modernos ordenadores personales es tal que hace practicable la implementación de un lenguaje de escritura en aplicaciones de hoja de cálculo para efectuar cálculos y acciones de complejidad arbitraria. Sin embargo, este código no está sujeto a control de la versión ni al cambio de seguimiento. familiar para los programadores en los lenguajes de programación tradicionales.
Evidentemente, esta situación no es aceptable en una gran organización puesto que hace que el control de calidad de los datos y la funcionalidad sea imposible, y proporciona un obstáculo para la creación de una actividad comercial auditable (tal como la preparación de cuentas) dentro del negocio, que se requiere como un disuasorio para el falseamiento de la gestión financiera.
Hemos apreciado que sería ventajoso proporcionar un mecanismo mediante el cual las acciones efectuadas sobre una hoja de cálculo puedan ser registradas de tal manera que se pueda recuperar el estado de la hoja de cálculo en cualquier momento particular y se pueda interrogar la evolución entre estados.
Otro objetivo del invento es determinar los cambios en una hoja de cálculo de tal modo que sean tenidas en cuenta las acciones tales como las de inserción y las de borrado de filas y columnas y las acciones de almacenamiento que originen números significativos de entidades en la hoja de cálculo a cambiar.
Al hacer esto, es sumamente deseable que no se pierda la flexibilidad de la hoja de cálculo, la cual hace que la misma sea tan atractiva.
Se hace referencia a nuestra Solicitud de Patente Internacional WO 2005/081126, en relación con la cual la presente solicitud representa una mejora. En la Patente de EE.UU. Número 5.303.146 se describe un gestor de escenario para una hoja de cálculo para captar las modificaciones de un modelo básico. En una comunicación de Goldwater, P., y Mahoney, L.S., titulada "Colaborar en las hojas de cálculo", en la publicación del Journal of Accountancy Online, Enero 2004, se describen ciertas características de la hoja de cálculo de Microsoft Excel de ese tiempo, incluyendo la característica de Cambios de Pista.
El invento se ha definido en las reivindicaciones independientes. Las características preferidas se han establecido en las reivindicaciones subordinadas.
El invento proporciona un sistema, un método y un producto de programa de ordenador para monitorizar y auditar los datos en una o más hojas de cálculo. El sistema comprende un selector de entidad para seleccionar una o más entidades en una hoja de cálculo; un seguidor para seguir el cambio en posición de las entidades seleccionadas entre dos puntos en el tiempo; un determinador de desplazamiento dispuesto para derivar uno o más valores de desplazamiento de la información recibida del seguidor, representando los valores de desplazamiento el cambio de posición de las entidades en la hoja de cálculo; y un aplicador de desplazamiento para aplicar los valores del desplazamiento a los datos de la hoja de cálculo antes de comparar los datos de la hoja de cálculo con una versión de los datos de la hoja de cálculo en un punto diferente en el tiempo.
Cuando se inserta o se elimina una fila o una columna, o cuando se clasifican las filas o las columnas, el ruido resultante del cambio de entidades es eliminado antes de que sean comparadas las hojas de cálculo. Las entidades en una o más filas seleccionadas y/o en una o más columnas seleccionadas forman una muestra de entidades en la hoja de cálculo. Los movimientos de la muestra de entidades en la hoja de cálculo son seguidos para determinar el movimiento general de las entidades en la hoja de cálculo. Después, antes de la comparación de dos versiones de una hoja de cálculo, se aplica el movimiento determinado de las entidades a la versión anterior de la hoja de cálculo, antes de que sea efectuada la comparación celda a celda entre las dos versiones de la hoja de cálculo. De este modo, en el proceso de comparación de las hojas de cálculo celda a celda, se efectúan comparaciones entre valores desplazados equivalentes más que entre valores que ocurra que ocupen la misma celda.
A continuación se describirá en detalle una realización del invento, a modo de ejemplo, y con referencia a los dibujos que se acompañan.
La Figura 1 es una vista general esquemática de alto nivel de una realización del invento;
La Figura 2 ilustra un proceso de mantenimiento de los datos en la realización de la Figura 1;
La Figura 3 ilustra un proceso de captación de archivos en la realización de la Figura 1;
La Figura 4 ilustra un componente de la realización de la Figura 1;
La Figura 5 es una vista general de una red de ordenadores, dentro de una empresa, en la cual está realizado
el presente invento;
La Figura 6 es un diagrama bloque que presenta los componentes funcionales principales de una realización
del invento;
La Figura 7 es un diagrama que ilustra una clase de base de la cual se derivan otras clases de tarea;
La Figura 8 es un diagrama que ilustra varias clases de tarea;
La Figura 9 es un diagrama que ilustra la operación de las clases de recuperación de archivos;
La Figura 10 es un diagrama que ilustra la operación de la clase de transformación;
La Figura 11 es un diagrama que ilustra la operación de la clase de descomponedor de macros;
La Figura 12 es un diagrama que ilustra la operación de la clase de comparación;
La Figura 13 es un diagrama que ilustra la operación de la clase de carga a granel;
La Figura 14 es un diagrama que ilustra la operación de la clase de almacenamiento de XML; y
Las Figuras 15 a 18 son instantáneas de pantalla que muestran varias presentaciones generadas durante la
operación de la realización;
La Figura 19 es un organigrama de un método usado para tener en cuenta el tratamiento para inserción y
eliminación de filas y columnas y el tratamiento de clasificación de datos cuando cambia el seguimiento en
una hoja de cálculo.
Descripción de introducción A modo de introducción, se hará en primer lugar una descripción del sistema de nuestra Solicitud de Patente Internacional WO 2005/081126.
Como se ha ilustrado en la Figura 1, la realización es un sistema que trabaja conjuntamente con un entorno de ordenadores de sobremesa y redes de un negocio existente. En operación, el sistema identifica la existencia de archivos de hojas de cálculo dentro de la red, y entonces capta aquellos archivos que sean seleccionados por el negocio para la gestión. El sistema construye entonces una base de datos del contenido de esos archivos. Una vez construida la primera base de datos, el sistema vigila la red en cuando a acontecimientos que tengan lugar en el archivo gestionado. En acontecimientos de disparador seleccionados, incluyendo (aunque no exclusivamente) guardar un archivo de una hoja de cálculo, el sistema recuperará una copia del archivo, la descompondrá en partes elementales y comparará esas partes con las originales mantenidas en la base de datos.
El sistema guarda entonces los cambios hechos en la base de datos. Cuando el archivo sea cambiado de nombre, eliminado o movido, registra esto en la base de datos. El sistema permite que el negocio vea los datos recogidos en la base de datos central. Este sistema puede agregar y analizar los datos usando un portal empleando las tecnologías existentes.
Como se ha ilustrado en la Figura 2, el sistema puede tener acceso a múltiples dominios de la red para hacer su trabajo con objeto de mantener los archivos bajo su gestión. El sistema convierte el contenido de los archivos en una representación en el lenguaje Language Markup extensible (XML) y usa este formato para hacer comparaciones. El sistema trabaja al máximo nivel granular para guardar los archivos, seguir e identificar y captar los cambios en los archivos. La base de datos es poblada a ese nivel muy granular. El usuario del negocio puede aplicar sus propios instrumentos de reportar y elecciones de análisis a los datos. El invento no limita lo que se hace con los datos.
Como se ha ilustrado en la Figura 3, el sistema puede trabajar en dominios a los que se haya obtenido acceso. Escogerá los archivos, acontecimientos y versiones posteriores a los acontecimientos de los archivos para construir una base de datos.
Como se ha ilustrado en la Figura 4, el sistema explora los entornos de la red fijada como objetivo, y extrae la lista de los archivos a ser monitorizados. El invento identifica la existencia de archivos, donde hayan sido creados nuevos archivos desde la última exploración y donde hayan sido eliminados archivos. La exploración genera un informe que hace posible una herramienta de software automática del negocio para disparar la captación de archivos para ya sea el comienzo del proceso (Figura 1) o ya sea el mantenimiento de los archivos (Figura 2).
En la realización, cuando se inserta o se elimina una fila o una columna, o bien cuando se clasifican filas o columnas, el ruido resultante del cambio de entidades es eliminado antes de que sean comparadas las hojas de cálculo. Para conseguir esto, se siguen los movimientos de una muestra de las entidades en la hoja de cálculo para determinar el movimiento general de las entidades en la hoja de cálculo. Después, antes de la comparación de las dos versiones de una hoja de cálculo, el movimiento determinado de las entidades se aplica a la versión anterior de la hoja de cálculo antes de efectuar una comparación celda a celda entre las dos versiones de la hoja de cálculo.
Descripción Detallada de las Figuras 1 a 18 Como se ha ilustrado en la Figura 1, la realización preferida del invento funciona en un entorno objetivo, por ejemplo, en un entorno de ordenadores de sobremesa y redes de negocio existente. Una primera función del sistema es la de identificar todos los archivos en el entorno objetivo. Como se ha ilustrado con más detalle en la Figura 4, este proceso incluye seleccionar y obtener acceso al dominio apropiado dentro del entorno objetivo, explorar la red en cuanto a archivos y producir un informe para el negocio. La siguiente función del sistema es la de definir y establecer el alcance para la gestión. Esto permite que archivos específicos, agrupaciones de archivos o dominios y acontecimientos de disparador sean seleccionados por el negocio para su gestión. Esta podría incluir un subconjunto de los archivos totales que están dentro del alcance establecido. La siguiente función del sistema es la de captar archivos a través de la red. Este proceso incluye captar los archivos situados dentro de los PCs individuales registrados en la red. Como se ha ilustrado con mayor detalle en la Figura 3, este proceso incluye seleccionar y obtener acceso al dominio apropiado, recuperar archivos de varios departamentos, convertir los contenidos de los archivos a XML, y poblar una base de datos. La siguiente función del sistema es la de construir una base de datos de los archivos y el contenido de los archivos. Otra función del sistema es la de agregar los datos y crear un almacén centralizado de datos distribuidos.
Una importante función paralela es la del mantenimiento de los datos, que se ha ilustrado con más detalle en la Figura 2. Los varios archivos bajo gestión pueden ser almacenados en varios PCs diferentes a través de la red, de modo que una fuente centralizada de datos facilite el mantenimiento de los datos. El mantenimiento de los datos incluye la captación de archivos bajo gestión, la conversión de los contenidos de los archivos a XML, la comparación y la captación de los cambios y el almacenamiento de los cambios en una base de datos. Cuando se almacenan y se mantienen datos es importante saber que archivos existen, que cambios en los archivos están sucediendo y quien está manipulando los datos. Con objeto de conocer está información, un auditor sigue todos los datos y se construye una historia de la actividad, y se analizan los datos por el sistema. Con objeto de que los datos resultantes de los anteriores procesos puedan ser interrogados, la función siguiente del sistema es la de creación de un acceso a los datos por el portal. Con ello se puede proporcionar acceso a los datos a través del portal. Se puede mejorar el acceso a los datos mediante la provisión de herramientas de reporte y mediante la capacidad de reconstruir un archivo o una aplicación.
Las funciones implicadas en el mantenimiento de los datos almacenados en los procesos de la Figura 1 se han ilustrado en la Figura 2. Como un primer paso, tiene lugar un acontecimiento de disparador, tal como una función de guardar archivos. A continuación los archivos que están siendo gestionados son captados, como se ha ilustrado con mayor detalle en la Figura 3. Los archivos sometidos a gestión pueden incluir, por ejemplo, archivos de libros de trabajo, que residen dentro de los diferentes departamentos. Algunos archivos pueden ser manipulados en varios lugares diferentes. Por ejemplo, como se ha ilustrado en la Figura 2, dos libros de trabajo pueden estar situados en el departamento a, mientras que un libro de trabajo puede también estar situado en el departamento b. En el paso siguiente de mantenimiento de los datos, los contenidos de los archivos captados son convertidos a XML. Este formato representa un formato conveniente para el tratamiento subsiguiente. En un paso siguiente se comparan los documentos captados con las versiones anteriores de los documentos para encontrar los cambios que se hayan producido. Estos cambios son entonces captados y la base de datos es poblada con la información que represente los cambios. Se crea un acceso a los datos por el portal o por el cliente, de modo que se proporcione acceso a los datos por medio del portal o por el cliente. Las herramientas de reporte proporcionadas por el sistema mejoran el acceso al portal.
Las funciones que intervienen en la captación de archivos se han ilustrado en la Figura 3. En un primer paso, se seleccionan los dominios apropiados y se obtiene acceso del sistema a los dominios seleccionados. El sistema puede trabajar en dominios a los que se haya concedido acceso. A continuación, se identifica la existencia de archivos en los dominios seleccionados. Este proceso se ha ilustrado con más detalle en la Figura 4. Como se ha descrito en lo que antecede, los archivos pueden ser almacenados en varios lugares. En un paso siguiente, el sistema actúa y obtiene todos los archivos. En un paso siguiente, se seleccionan los archivos para su gestión. El contenido de estos archivos se convierte a XML, y se capta la versión en binario del origen de cada archivo. La base de datos es entonces poblada con estos datos.
Las funciones que implica la captación de archivos a través de la red, incluyendo los PCs individuales registrados en la red, se han ilustrado en la Figura 4. Como antes, se seleccionan los dominios apropiados y se obtiene el acceso a esos dominios. En un proceso siguiente el sistema explora los entornos de la red fijados como objetivo para que sean vigilados los archivos relevantes. Por ejemplo, en el caso de que se use el sistema para seguir los cambios en las hojas de cálculo Microsoft Excel, se explora la red para todos los archivos Excel. Este proceso incluye los subprocesos de hacer correr múltiples exploraciones para verificar si hay actividad, verificar los nuevos archivos creados y verificar en cuanto a archivos que no se hayan encontrado. Los nuevos archivos incluyen los creados desde la última exploración. Pueden no encontrarse archivos, por ejemplo, cuando se hayan eliminado filas. Los resultados de estos subprocesos son usados para construir un informe de los archivos hallados y de la actividad que tiene lugar. Después de haber sido explorada la red en cuanto a archivos, se puede producir un informe para el negocio. El informe hace posible el disparo o la captación de archivos para ya sea el principio del proceso ilustrado en la Figura 1 o ya sea el mantenimiento de los archivos ilustrados en la Figura 2.
La Figura 6 es un diagrama bloque que muestra los principales componentes funcionales de una realización del invento. Mediante un servicio de vigilancia 22 se obtiene acceso a la totalidad de las hojas de cálculo almacenadas dentro de un almacén de archivos 20. También se ha proporcionado un servicio de control 24. El servicio de vigilancia y el servicio de control se comunican con una meta memoria 26. La meta memoria 26 también se comunica con un marco de trabajo asíncrono que comprende un servicio de vigilancia 32 y un servicio de proceso
34. Los componentes funcionales de la Figura 6 se describen con más detalle en lo que sigue.
Las tareas asociadas con el marco de trabajo asíncrono 30 pueden ser implementadas mediante un objeto 36 de la tarea, ilustrado con mayor detalle en la Figura 7. Como se ha ilustrado en la Figura 7, cada objeto de la tarea expone varios métodos, incluyendo una tarea de operar, una tarea de iniciar, una tarea de marcha y una tarea de finalizar. Los componentes funcionales de la Figura 6 y los métodos de la Figura 7 se describen con mayor detalle en lo que sigue. Como se ha ilustrado en la Figura 8, el objeto 36 de la tarea y los métodos expuestos heredan varias clases derivadas del objeto 36 de la tarea, el cual realiza varios procesos en el sistema. En esto se incluyen un objeto de recuperación de archivo, un objeto de transformación, un objeto de descomponedor de macros, un objeto de carga a granel, un objeto de almacenamiento en XML, un objeto de almacenamiento en XLS y un objeto de verificador de límite. La clase de transformación llama a una clase de comparación y a la clase de macro. Los métodos de la Figura 7 y las clases de la Figura 8 se describen con mayor detalle en lo que sigue.
Las Figuras 9 a 14 ilustran la operación de las diversas clases de la Figura 8. En cada caso, el marco asíncrono lanza el objeto usando el método de tarea de operar, recibiendo un objeto de estado de la transacción (TSO) como una entrada que contiene las variables de estado para una tarea a usar dentro del proceso. El método para la tarea de operar llama también a una función de llamada de seguimiento de registro, que hace una entrada de registro en el código de seguimiento. También se efectúa una operación del estado de validar. El método de la tarea de iniciar establece variables de la configuración de marcha en el establecimiento de iniciación de la operación de las variables. Las variables son almacenadas en el meta almacén 26. El método de la tarea de marcha efectúa todas las funciones para completar la tarea. Al completarse la tarea, el método de tarea de finalizar establece todas las operaciones de acabar, incluyendo el establecimiento del estado de completar en el meta almacén 26.
Como se ha ilustrado en la Figura 9, el método de la tarea de marcha de la clase de recuperación de archivos incluye las funciones de recuperación de un archivo, para verificar si existe el archivo (vía un objeto de estado de la transacción), y añadir un archivo a la cola de tratamiento de archivos en el servicio de monitorización 32.
Como se ha ilustrado en la Figura 10, el método de la tarea de marcha de la clase de transformación incluye una función para procesar un libro de trabajo (WB). Este incluye las funciones para abrir el libro de trabajo, desproteger el libro de trabajo, calcular una lista de acciones de la hoja de trabajo (WS), generar rangos denominados en el libro de trabajo, dividir las macros en el libro de trabajo y guardar el libro de trabajo como un archivo XML. El método de la tarea de marcha incluye también funciones para dividir las hojas de trabajo en XML, procesar una cabecera de XML y añadir cada hoja de trabajo al marco de trabajo. En esta última función, se emite al marco de trabajo asíncrono un objeto del estado de la transacción que da lugar a una tarea de comparación, para comparar una hoja de cálculo en diferentes puntos en el tiempo. En una función para obtener los resultados del marco de trabajo asíncrono, se hace que el resultado de la tarea de comparación, que incluye el nombre del archivo en XML para el "delta" que representa los cambios en la hoja de cálculo, retorne desde el marco de trabajo asíncrono. Cada macro es procesada emitiendo para ello un objeto del estado de la transacción a la clase de descomponedor de macros y se efectúa una carga a granel emitiendo para ello un objeto del estado de la transacción a la clase de cargador a granel.
Como se ha ilustrado en la Figura 11, el método de la tarea de marcha del descomponedor de macros incluye una función para verificar si la suma de verificación de escrituras difiere. Mediante esta función se emite un objeto del estado de la transacción para almacenar un archivo en el meta almacén 26 y en el sistema 40 de control de códigos fuente. Se proporciona una función para solicitar un límite de macros en el marco de trabajo asíncrono.
Como se ha ilustrado en la Figura 12, el método de la tarea de marcha de la clase de comparación incluye una función para obtener versiones de puntos en el tiempo de una hoja de trabajo del meta almacén 26. También se proporcionan funciones que verifican las sumas de verificación, comparan las hojas de trabajo, establecen un sumario del proceso y retornan al lugar del archivo de deltas las resultantes de la comparación.
Como se ha ilustrado en la Figura 13, el método de la tarea de marcha de la clase de cargador a granel incluye una función para añadir cada archivo de delta generado de las comparaciones de la hoja de cálculo al marco de trabajo asíncrono 30. Una función de cargador proporciona los datos al meta almacén 26. Una función espera los resultados del marco de trabajo asíncrono.
Como se ha ilustrado en la Figura 14, el método de la tarea de marcha de la clase de almacenamiento en XML incluye una función para comprimir un archivo de XML. El archivo de XML comprimido es almacenado en el meta almacén 26 mediante una función de archivo de almacenar. También se hace que actúe una función para eliminar los archivos anteriores del meta almacén.
La Realización con Mayor Detalle Esta realización del invento se implementa dentro de una red de ordenadores. En esta red hay un número arbitrariamente grande de clientes, los cuales son ordenadores personales sobre los cuales los usuarios hacen correr las aplicaciones de la hoja de cálculo para desarrollar y usar las hojas de cálculo. Los usuarios pueden también almacenar sus archivos de hojas de cálculo personales sobre esos ordenadores. Los archivos pueden ser monitorizados en cualquier excitador enlazado con la red. Usualmente, pero no siempre, las hojas de cálculo importantes son situadas en los servidores de archivo central. También hay en la red un servidor de monitorización, el cual es el responsable de monitorizar y registrar las actividades efectuadas por los usuarios sobre las hojas de cálculo.
Como se ha ilustrado en la Figura 5, una red de ordenadores dentro de una empresa comprende un número arbitrariamente grande de ordenadores cliente 10. Cada ordenador cliente 10 se usa por un usuario para crear documentos personales, incluyendo las hojas de cálculo. Típicamente, cada ordenador de cliente 10 tiene un solo usuario, quien tendrá también sus propias preferencias personales y prácticas de trabajo asociadas con sus hojas de cálculo.
Cada ordenador de cliente 10 está conectado a una red 12. Para fines ilustrativos, ésta se ha representado en la Figura 1 como una red integrada. Sin embargo, en las realizaciones prácticas, es probable que se incluyan muchas subredes, y enlaces de redes de área local y de área amplia.
También conectados a la red 12 hay más servidores de archivo 14. Dependiendo de las políticas de la red, un usuario puede elegir almacenar archivos ya sea en su máquina de cliente 10 o ya sea en un servidor de archivos 14. Juntos, el almacenamiento local proporcionado por cada ordenador de cliente 10 y el o cada servidor de archivo 14 constituyen un almacén de archivos diverso.
Un servidor de monitorización 16 está conectado a la red 12 de tal modo que tiene acceso a la totalidad del almacén de archivos, o bien a parte del almacén de archivos, de acuerdo con la política de su operador. Dentro del servidor 16 de monitorización está que se efectúen los procesos proporcionados por el invento. La configuración del servidor de monitorización 16 depende mucho de la naturaleza de la red como un conjunto. El servidor de monitorización 16 debe ser capaz de efectuar su tarea con un retardo mínimo sobre la operación del software ejecutada en los clientes
10. En algunos casos, el servidor de monitorización 16 puede ser una máquina monolítica, mientras que en otros casos puede ser una agrupación de máquinas controladas por servidores 44 para hacer posible el tratamiento en paralelo de múltiples documentos. Esto se describirá ahora con mayor detalle.
En la Figura 6 se ha representado en 20 la totalidad de los archivos de hojas de cálculo dentro del almacén de archivos. Los demás elementos ilustrados en la Figura 6 son componentes lógicos del servidor de monitorización 16. Estos componentes son como sigue: un servidor de vigilancia 22, un servidor de controlador 24 y, una base de datos de meta almacén 26, y un marco de trabajo asíncrono 30 que incluye un servicio de monitorización 32 y un servicio de proceso 34. La operación del sistema en su conjunto se controla mediante el paso de mensajes de tarea entre los diversos componentes lógicos. Esto tiene la ventaja de que hace posible que el sistema sea escalado añadiendo para ello más máquinas a una agrupación y distribuyendo mensajes de tarea entre ellas. También permite al servidor de monitorización procesar los archivos de hojas de cálculo 20 con asíncronía con respecto a los clientes, asegurando con ello un mínimo de interferencia con la operación de los programas de hojas de cálculo de sus usuarios.
La función del servicio de vigilancia 22 es la de vigilar los archivos de hojas de cálculo 20 y avisar de un acontecimiento cuando cambie cualquiera de ellos. Al detectar un cambio, se lee el archivo, se comparan sus contenidos actuales con los contenidos del archivo cuando fue leído la última vez, y se almacenan entonces en una base de datos los cambios que hayan sido identificados. Por consiguiente, cada vez que cambia el archivo en el almacén de archivos se efectúa un registro. Es por lo tanto posible, partiendo del archivo tal como está en el almacén de archivos, aplicar los cambios registrados a la inversa y llegar con ello al archivo tal como era en una etapa anterior en su desarrollo. Al contar con el servicio de vigilancia 22 se obvia la necesidad de proporcionar ganchos en los programas de la hoja de cálculo para disparar una acción cuando se cambie un archivo.
En general, esta realización concierne al tratamiento de hojas de cálculo creadas usando Microsoft Excel. Esta aplicación almacena las hojas de cálculo en archivos que convencionalmente tienen una extensión del nombre de archivo "XLS" (convenientemente denominados como archivos o como "archivos XLS"). Estos son archivos binarios. Sin embargo, los principios del invento podrían ser aplicados igualmente a las hojas de cálculo creadas usando otras aplicaciones, con independencia de cómo almacenen esas aplicaciones los datos de las hojas de cálculo. Puesto que es notoriamente difícil efectuar un análisis del contenido en archivos binarios, el enfoque que se adopta mediante esta realización es la de primero convertir los archivos XLS en una representación en el Lenguaje de Marca Extensible (EML). Otros programas de hojas de cálculo, notablemente el Open Office. org Calc usan el XML como su formato de archivo nativo. Por lo tanto, se puede prescindir del paso de conversión cuando se procesen estos archivos.
Como se ha considerado anteriormente, esta realización se implementa en una agrupación de ordenadores. Las operaciones efectuadas por el servidor son llevadas a cabo como tareas discretas. Los objetos de la tarea se crean y se colocan en una cola de tareas. Cuando una tarea llega a la cabeza de la cola, se procesa por la primera máquina disponible de la agrupación.
En la Figura 7 se ha ilustrado la estructura de la clase origen de la cual se derivan todas las tareas. Se exponen cuatro métodos principales para cada objeto de tarea 36. Estos son: Tarea de Operar, Tarea de Iniciar, Tarea de Marcha y Tarea de Finalizar. La Tarea de Operar es el método para que el marco de trabajo asíncrono lance el objeto. También efectúa una entrada de registro en el código de seguimiento. Toma como una entrada un Objeto del Estado de la Transacción (TSO) el cual contiene las variables de estado para que se usen en una tarea dentro del tratamiento. El método de la Tarea de Iniciar establece las variables de la configuración de marcha. La Tarea de Marcha efectúa todas las funciones para completar la tarea. La Tarea de Finalizar establece todas las operaciones de acabar.
Las clases principales derivadas de la clase ilustrada en la Figura 7 se han ilustrado en la Figura 8. Éstas incluyen objetos de la tarea para recuperar un archivo del almacén de archivos, transformar y comparar el contenido del archivo, procesar macros, manejar el almacenamiento dentro de la base de datos, y manejar la información de cambio. Estas clases se describirán a continuación brevemente.
Recuperación de Archivos: esta clase es la responsable de captar el archivo del lugar cambiado tomado como objetivo.
Transformación: esta clase es la responsable de tomar un archivo de XLS y descomponer el archivo en hojas de trabajo de XML. La clase de Transformación llama a la clase de Comparación y a las clases de Macro para efectuar todas las operaciones de delta. Esta clase descompondrá todos los rangos denominados y detectará cualesquiera cambios. Esta clase abarca también las tareas de Comparar y Descomponer Macros en la estructura de trabajo asíncrono.
Comparación: esta clase es la responsable de calcular y clasificar el estado en el punto en el tiempo más reciente y una descripción de los cambios, conocida como "deltas" entre dos puntos en el tiempo del XML. En esta clase se clasifican todos los tipos de cambio y los tipos de celda y se etiquetan cada cambio de datos con el cambio asociado. Esta clase hace uso del siguiente algoritmo:
- *
- situar el indicador de la primera celda del archivo de XML anterior y el archivo de XML actual.
- *
- comparar las posiciones en la matriz (posición en la fila, posición en la columna) de las dos celdas. Si las posiciones actual y anterior en la celda son la misma, comparar entonces los valores de la celda y las fórmulas para verificar las diferencias. La comparación identificará y clasificará el tipo de cambio, si la celda contiene una fórmula se etiqueta la celda con el tipo de "fórmula" para diferenciar claramente entre una celda que contenga un valor numérico fijo y una que, cuando es presentada, presenta el mismo valor como resultado de una evaluación de la fórmula. Se establece también la diferencia entre los cambios de celda. Para un valor entero, la diferencia está entre los dos enteros. Una diferencia de cadena se basa en la longitud de cada cadena. Una diferencia de datos se calcula mediante el número de días. Si la posición
actual de la celda es mayor que la posición anterior de la celda, se añade entonces un registro de "datos
añadidos" al delta del archivo XML. Si la posición anterior de la celda es mayor que la posición actual de la
celda, entonces se añade un registro de "datos eliminados" a la delta del archivo XML.
* obtener la siguiente celda del archivo donde la posición en la matriz de la celda sea la mínima e iniciar el
proceso de comparación de nuevo comparando para ello la posición en la matriz de la celda.
* repetir este proceso hasta que ambos archivos de XML, el anterior y el actual, hayan sido leídos hasta el final de la fila.
El proceso completado da por resultado un delta del archivo XML. Este contiene las diferencias clasificadas por categorías entre los puntos en el tiempo actual y anterior.
Carga a Granel: esta clase es la responsable de insertar a granel el archivo de delta creado a partir de la tarea de transformar/comparar.
Almacenamiento de XML: esta clase es responsable de almacenar el archivo XML creado a partir de la transformación del documento. Esta clase sirve para comprimir el archivo XML generado actual, quitar la fila anterior y cargar el nuevo archivo en el almacén de datos.
Descomponedor de Macros: esta clase calcula las diferencias entre las escrituras programáticas en dos puntos en el tiempo. La escritura captada puede ser integrada en un sistema 40 de control del código fuente existente.
Verificador de Límite: esta clase vigila los tipos de cambio que tienen lugar dentro del almacén de datos y proporciona alertas a los objetivos especificados.
Si la realización proporciona una interfaz basada en la Web a través de la cual un usuario puede obtener acceso a los datos dentro de la base de datos, esto proporciona un punto central a partir del cual se pueden monitorizar todas las actividades de la hoja de cálculo. Un proceso que discurre en el servidor de monitorización 16 genera preguntas que son aplicadas a la base de datos y a partir de los resultados de esas preguntas genera páginas que pueden ser servidas a navegador en la web mediante un servidor 38 de la web. El rango de preguntas e informes que pueden ser generados es esencialmente ilimitado. Estos son adaptados a los requisitos específicos de un usuario particular del sistema. La misma interfaz se puede también usar para la configuración y el mantenimiento del sistema. La provisión de una interfaz basada en la web a una base de datos es una materia de rutina y por lo tanto los detalles no se describirán aquí con mayor profundidad.
Además, es posible generar alertas basadas en el resultado de las preguntas. Por ejemplo, un administrador puede definir un rango de acciones prohibidas para algunas partes de una hoja de cálculo específica, o bien puede desear ser alertado cuando el valor de una celda particular se mueva fuera de un rango predeterminado. El sistema puede generar y despachar un mensaje de correo electrónico a una dirección predeterminada cuando detecte que deberá ser emitida una alerta.
A continuación se describirán brevemente varias de las pantallas principales proporcionadas por otra interfaz basada en la web.
La Figura 15 es una pantalla que permite a un usuario ver que archivos están siendo monitorizados y, cuando los archivos sean enlazados, la jerarquía de los archivos enlazados.
La Figura 16 presenta una pantalla que permite al usuario monitorizar como cambia en el tiempo el valor de una celda particular dentro de una hoja de cálculo. El valor se ha representado gráficamente en esta pantalla.
La Figura 17 muestra una pantalla que presenta un usuario con un sumario de los cambios que han sido hechos en la hoja de cálculo o a lo largo del tiempo. Se identifican la naturaleza de cada cambio y la persona que lo hizo.
La Figura 18 ilustra el aspecto del control del código fuente del invento. En la Figura 18, la cara derecha representa un segmento del código de programa en su versión actual, mientras que la cara izquierda representa la versión anterior del código.
Inserción, Supresión y Cambio de Fila o Columna Como se ha descrito en lo que antecede, en una realización típica, los medios de comparación son operativos para comparar un archivo actual en el almacén de archivos con una versión anterior de ese archivo. Cada celda en el archivo actual es comparada con la celda correspondiente en la versión anterior de modo que se puedan registrar los cambios en la hoja de cálculo, sobre una base de celda a celda. Sin embargo, varias acciones comunes en la edición de la hoja de cálculo originan grandes números de entidades (tales como valores y fórmulas) que cambien de posición dentro de la hoja de cálculo. Por ejemplo, cuando se inserta o se suprime una fila, esta acción hace que todos los valores y fórmulas de bajo de la fila insertada o suprimida cambien hacia arriba o hacia abajo lo correspondiente a una celda. Análogamente, la inserción o la supresión de una columna hacen que los valores y las fórmulas en las celdas que están a la derecha de la columna insertada o suprimida cambien a la izquierda o a la derecha lo correspondiente a una celda. En otro ejemplo, la clasificación de los valores por filas o columnas hace que los valores que estén en las filas o en las columnas sean reordenados y cambien en cantidades variables.
Con estos tipos de acciones, el análisis de las diferencias entre una versión actual y anterior de una hoja de cálculo sobre una base de celda a celda da por resultado un alto grado de ruido resultante del desplazamiento de los a veces grandes números de entidades. Un archivo de deltas típico resultante de la comparación indicaría muchos cambios como cambios de valor en celdas particulares, mientras que sería más apropiado reconocer esos cambios como resultantes del desplazamiento de las entidades. Es por lo tanto preferible, cuando se analicen cambios en una hoja de cálculo, destacar el hecho de que algunos cambios se han producido debido al desplazamiento de las entidades causado por una sola acción. Esto permite que sea eliminado por filtrado el ruido en los cambios de la hoja de cálculo.
Con objeto de determinar si los cambios en múltiples celdas han surgido debido a una sola acción, mientras que se retiene el esquema de comparación de celda a celda, se puede emplear el siguiente método, con referencia al organigrama de la Figura 19. En primer lugar, se siguen los movimientos de una muestra de entidades en la hoja de cálculo para determinar el movimiento de las entidades en general en la hoja de cálculo. Después, antes de la comparación de las dos versiones de una hoja de cálculo, se aplica el movimiento determinado de las entidades a la versión anterior de la hoja de cálculo de que sea aplicada una comparación de celda a celda entre las dos versiones de la hoja de cálculo. En la realización preferida, la muestra de entidades cuyos movimientos son seguidos está formada por las entidades de una o más filas y/o de una o más columnas. Estas entidades pueden designarse como "claves". La determinación de la posición de cada clave en las dos versiones de la hoja de cálculo permite que sea determinado el movimiento de cada clave entre las dos versiones.
Como resultará evidente, se pueden seleccionar una o más columnas para detectar el movimiento de las entidades causado por la inserción o la supresión de filas o la clasificación de celdas en la dirección vertical. Se pueden seleccionar una o más filas para detectar la inserción o la supresión de columnas o para clasificar las celdas en la dirección horizontal. En el ejemplo que se describe en lo que sigue, se seleccionan una o más columnas. Sin embargo, el correspondiente proceso con respecto a las filas puede ser aplicado fácilmente como una alternativa, o bien en combinación con la selección de columnas. En el primer paso 121 del método del ejemplo, se seleccionan una o más columnas para definir una o más claves que comprenden entidades en las columnas seleccionadas.
Preferiblemente, se selecciona una columna tal que cada clave obtenida con ello sea una entidad única, tal como un valor único. La razón para esto es la de facilitar el seguimiento del movimiento de las claves particulares. Si dos claves fueran la misma, entonces no sería posible determinar con certeza cual de las dos claves en una versión de la hoja de cálculo corresponde a una específica de las claves en una versión anterior de la hoja de cálculo. El movimiento de tales claves duplicadas podría por lo tanto no ser determinado con certeza. En muchas hojas de cálculo, una o más columnas contienen valores que son diferentes de una a otra. Sin embargo, si no hay ninguna columna en la cual cada una de las entidades sea única, se puede usar una combinación de dos o más columnas para definir un conjunto de claves únicas. Por ejemplo, las entidades en una fila particular de dos o más columnas pueden ser concatenadas para formar una sola clave. Este proceso se repite para cada una de las demás filas para formar el conjunto de claves. Puede verse que este proceso generará un conjunto único de claves si se ha elegido un conjunto de columnas tal que las entidades en una fila de las columnas forme un conjunto que sea diferente de las entidades en cualquier otra fila de las columnas.
La selección de una o más columnas para definir un conjunto de claves puede ser efectuada usando un selector de entidades, ya sea automáticamente por el sistema o ya sea manualmente por un usuario. Por ejemplo, en el caso de la selección manual, el sistema está configurado para permitir el uso para destacar una o más columnas, seleccionando con ello las entidades que están en aquellas columnas como claves. En la realización preferida, el sistema proporciona una pantalla gestora de rangos mediante la cual un usuario puede seleccionar el rango denominado que sea de interés y elegir entonces la columna, o la combinación de columnas, que define la unicidad para las entidades dentro del rango denominado. En el caso de selección automática, el sistema puede ser configurado para seleccionar las columnas más apropiadas en base a la hoja de cálculo particular que esté siendo analizada.
La selección de las claves se efectúa inicialmente una vez determinado que se desee seguir el cambio en una hoja de cálculo particular. A continuación se describirá el tratamiento subsiguiente al seguimiento de los cambios en la hoja de cálculo.
Durante el tratamiento de la hoja de cálculo por el sistema, en cada punto en el tiempo, las entidades en la columna
o columnas seleccionadas son captadas y almacenadas en una base de datos.
Como se ha ilustrado en la Figura 19, en un paso siguiente 123, se captan las entidades en las columnas seleccionadas en dos puntos en el tiempo. Este paso proporciona información en cuanto a la localización de cada clave en los diferentes puntos en el tiempo.
Para seguir los cambios en la hoja de cálculo entre dos puntos en el tiempo, el sistema está dispuesto para determinar el movimiento de cada clave entre los puntos en el tiempo usando un seguidor. En un paso 125 siguiente, el sistema determina que claves se han desplazado entre los puntos en el tiempo. Para conseguir esto, los datos captados para el primer punto en el tiempo se buscan para cada clave y se determina la posición en la fila de cada clave como el primer punto en el tiempo. Los datos captados para el segundo punto en el tiempo se buscan para cada clave y se determina la posición de la fila de cada clave en el segundo punto en el tiempo. La posición en la fila en cada clave en el primer punto en el tiempo se resta de la posición en la fila de cada clave correspondiente en el segundo punto en el tiempo mediante un determinador del desplazamiento para definir un valor o desplazamiento que represente el número de filas que cada clave se haya desplazado entre los dos puntos en el tiempo. El movimiento de estas claves puede ser clasificado por su categoría como de "estacionario", si no se ha desplazado una clave, o bien como "no estacionario", si se ha desplazado una clave.
La información que representa el movimiento de las claves entre dos puntos en el tiempo particulares puede ser almacenada en la base de datos. Se crea una entrada en la base de datos para cada clave y se coloca en uno de entre varios compartimientos diferentes, correspondiendo cada compartimiento a uno de los posibles tipos de movimiento de las claves. Por ejemplo, se sitúa una entrada para cada clave estacionaria en un compartimiento "estacionario", mientras que se coloca una entrada para cada clave no estacionaria en un compartimiento "no estacionario". Cada una de estas entidades puede contener la fila actual en que está la clave y la fila anterior en la que estaba la clave.
Cuando se haya insertado o suprimido una fila entre dos puntos en el tiempo, las entidades insertadas o suprimidas existen ahora en un punto en el tiempo pero no existen en el otro punto en el tiempo. Por ejemplo, cuando se inserta una fila, se crean nuevas entidades en la fila insertada que existen en el último punto en el tiempo pero que no existen en el anterior punto en el tiempo. Análogamente, cuando se suprime una fila, existen las entidades en la fila suprimida en el anterior punto en el tiempo pero no existen en el último punto en el tiempo. Estos procesos producen la correspondiente supresión de las claves existentes y la creación de las nuevas claves en las columnas seleccionadas.
En un paso 127 siguiente, un determinador de la creación de entidades del sistema determina que claves son nuevas claves en el último punto en el tiempo. En un paso posterior 129, un determinador de la supresión de entidades del sistema determina que claves en el punto en el tiempo anterior han sido suprimidas. El sistema se configura para analizar la información almacenada en la base de datos para determinar si cualquier entidad existente en el anterior punto en el tiempo no existe en el último punto en el tiempo. Tales entidades pueden ser clasificadas por su categoría como "suprimidas". El sistema está también configurado para determinar si hay cualquier nueva entidad en el último punto en el tiempo que no existiera en el anterior punto en el tiempo. Tales entidades pueden ser clasificadas por su categoría como "nuevas". Se puede crear una entrada de base de datos para cada entidad suprimida y colocarla en un compartimiento de "suprimida", mientras que se puede crear una entrada en la base de datos para cada nueva entidad y colocarla en un compartimiento de "nueva". Cada entrada puede contener la fila en que esté la entrada, o en la que estaba, en el punto en el tiempo relevante.
El sistema está también dispuesto para analizar la información almacenada en la base de datos para determinar si cualesquiera claves en uno u otro de los dos puntos en el tiempo son las mismas. Esto puede ocurrir, por ejemplo, si las claves originales seleccionadas no fueran todas únicas, si las entidades en las columnas seleccionadas son modificadas o si se ha creado una nueva clave no única. Cuando una clave no sea única, se puede categorizar la clave como "duplicada". En un paso siguiente 131, un determinador de la duplicación de la entidad del sistema determina si existen cualesquiera claves duplicadas. Se puede crear una entrada de base de datos para cada clave duplicada y colocarla en un compartimiento de "duplicado".
Una vez que el movimiento de cada clave entre los puntos en el tiempo haya sido colocado en los compartimientos relevantes, se puede efectuar una comparación celda a celda de las hojas de cálculo en los dos puntos en el tiempo, como se ha descrito en lo que antecede, pero modificado para tener en cuenta el cambio de las entidades. Esto elimina el efecto del ruido originado por las acciones tales como la de inserción y la supresión de filas, y las operaciones de clasificación.
En procesos tales como los de inserción y supresión y clasificación en la dirección vertical, las entidades dentro de cada columna cambian en la misma cantidad. Por ejemplo, en una operación de inserción de fila, todas las entidades que tienen lugar por encima de la fila insertada no cambian, y todas las entidades que tienen lugar por debajo de la fila insertada cambian bajando una celda, con independencia de en que columna estén las entidades. Análogamente, cuando se clasifiquen los valores en una hoja de cálculo de acuerdo con los valores en una primera columna, si una entidad de una fila particular de la primera columna cambia lo correspondiente a, por ejemplo, cinco celdas, entonces las entidades que estén en la misma fila de las otras columnas cambian también en la misma cantidad. Por lo tanto, si se determina que una clave ha cambiado en una cantidad particular entre puntos en el tiempo, puede entonces suponerse que las entidades en las otras columnas en la misma fila que la de la clave han cambiado del mismo modo que la clave.
Como se ha ilustrado en la Figura 19, en un paso 133 siguiente, se aplican los desplazamientos al archivo de la hoja de cálculo mediante un aplicador de desplazamientos antes de que sea comparado el archivo con una versión del archivo en un punto en el tiempo diferente en un paso 135 siguiente. Cuando se haga uso de la comparación celda a celda descrita en lo que antecede, cuando se comparen los dos archivos XML para los dos puntos en el tiempo, para cada fila correspondiente a una clave no estacionaria, se añade el desplazamiento apropiado al número de la fila representado en el XML. Esto da por resultado una comparación entre dos valores cambiados equivalentes más que dos valores que ocurra que ocupen la misma celda en los dos puntos en el tiempo. Todas las claves nuevas pueden ser añadidas desde el archivo en el punto en el tiempo actual, ignorándose el archivo en el punto en el tiempo anterior. Todas las claves suprimidas pueden ser añadidas desde el archivo en el punto en el tiempo anterior ignorando el archivo en el punto en el tiempo actual. Cualquier clave que se identifique como una clave duplicada es ignorada durante el tratamiento debido a que no se puede asegurar cual sea la identificación de la clave correcta entre los dos puntos en el tiempo.
En el ejemplo descrito en lo que antecede, se seleccionaron una o más columnas para definir claves para tener en cuenta las operaciones de inserción y supresión de filas y las operaciones de clasificación en la dirección vertical. Sin embargo, puede verse que se puede emplear una técnica similar mediante la cual se seleccionen una o más filas para definir claves para tener en cuenta las operaciones de inserción y de supresión de columnas y las operaciones de clasificación en la dirección horizontal. También se apreciará por quien sea experto en la técnica que se pueden seleccionar tanto filas como columnas en combinación.
Los métodos descritos en lo que antecede pueden ser implementados mediante un software adecuado almacenado en una memoria, que comprende un código ejecutable en ordenador para ejecución mediante un proceso adecuado. Microsoft y Excel son marcas comerciales de la Microsoft Corporation.
Claims (13)
- REIVINDICACIONES1. Un sistema para monitorizar y auditar los datos en una o más hojas de cálculo, comprendiendo el sistema:
- -
- un selector de entidades (123) para seleccionar una o más entidades en una hoja de cálculo;
- -
- un seguidor (125) para seguir el cambio en la posición de las entidades seleccionadas entre dos puntos en el tiempo; y
- -
- un determinador de desplazamientos (127 - 131) dispuesto para derivar uno o más valores del desplazamiento a partir de la información recibida desde el seguidor, representando los valores del desplazamiento el cambio de posición de las entidades en la hoja de cálculo;
caracterizado por:- un aplicador de desplazamientos (133) para aplicar los valores del desplazamiento a los datos de la hoja de cálculo antes de comparar los datos de la hoja de cálculo con una versión de los datos de la hoja de cálculo en un punto en el tiempo diferente. -
- 2.
- Un sistema de acuerdo con la reivindicación 1, en el cual el seguidor está dispuesto para almacenar los datos que representen la posición de las entidades seleccionadas en los dos puntos en el tiempo, y en el cual está dispuesto el determinador de desplazamientos para determinar la posición de una entidad seleccionada en los dos puntos en el tiempo usando la información recibida del seguidor para deducir un valor del desplazamiento para la entidad seleccionada, mediante el cálculo de la diferencia de posición de la entidad seleccionada entre los dos puntos en el tiempo.
-
- 3.
- Un sistema de acuerdo con la reivindicación 1, en el cual las una o más entidades comprenden entidades en una
o más filas seleccionadas o columnas seleccionadas. -
- 4.
- Un sistema de acuerdo con la reivindicación 3, que comprende además un determinador de creación de entidades para determinar si se ha creado una entidad en una de las filas o columnas seleccionadas.
-
- 5.
- Un sistema de acuerdo con la reivindicación 3, que comprende además un determinador de supresión de entidades para determinar si ha sido suprimida una entidad de una de las filas o columnas seleccionadas.
-
- 6.
- Un sistema de acuerdo con la reivindicación 3, que comprende además un determinador de duplicados de entidades para determinar si una entidad en una de las filas o columnas seleccionadas es un duplicador de otra entidad en las filas o columnas seleccionadas.
-
- 7.
- Un método para monitorizar y auditar los datos en una o más hojas de cálculo, comprendiendo el método:
- -
- seleccionar (123) una o más entidades en una hoja de cálculo;
- -
- seguir (125) el cambio de posición de las entidades seleccionadas entre dos puntos en el tiempo; y
- -
- derivar (127 – 131) uno o más valores del desplazamiento del cambio en posición de las entidades seleccionadas, representado los valores del desplazamiento el cambio de posición de las entidades en la hoja de cálculo;
caracterizado por:- aplicar (133) los valores del desplazamiento a los datos de la hoja de cálculo antes de comparar los datos de la hoja de cálculo con una versión de los datos de la hoja de cálculo de un punto en el tiempo diferente. - 8. Un método de acuerdo con la reivindicación 7, que comprende además:
- -
- almacenar los datos que representen la posición de las entidades seleccionadas en los dos puntos en el tiempo;
- -
- determinar la posición de una entidad seleccionada en los dos puntos en el tiempo; y
- -
- derivar un valor del desplazamiento de la entidad seleccionada mediante el cálculo de la diferencia de posición de la entidad seleccionada entre los dos puntos en el tiempo.
- 9. Un método de acuerdo con la reivindicación 7, en el cual las una o más entidades comprenden entidades en unao más filas seleccionadas o columnas seleccionadas.
-
- 10.
- Un método de acuerdo con la reivindicación 9, que comprende además determinar si se ha creado una entidad en una de las filas o columnas seleccionadas.
-
- 11.
- Un método de acuerdo con la reivindicación 9, que comprende además determinar si se ha suprimido una entidad de una de las filas o columnas seleccionadas.
-
- 12.
- Un método de acuerdo con la reivindicación 9, que comprende además determinar si una entidad en una de las filas o columnas seleccionadas es un duplicado de otra entidad en las filas o columnas seleccionadas.
-
- 13.
- Un programa de ordenador para monitorizar y auditar los datos en una o más hojas de cálculo, comprendiendo el programa instrucciones ejecutables por ordenador, las cuales, cuando son ejecutadas por un procesador, hacen que el procesador siga los pasos de cualquiera de los métodos de las reivindicaciones 7 a 12.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US461087 | 2006-07-31 | ||
| US11/461,087 US9734139B2 (en) | 2005-02-14 | 2006-07-31 | Auditing and tracking changes of data and code in spreadsheets and other documents |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2362378T3 true ES2362378T3 (es) | 2011-07-04 |
Family
ID=38757714
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES07766375T Active ES2362378T3 (es) | 2006-07-31 | 2007-07-30 | Almacenamiento y tratamiento de hojas de cálculo y otros documentos. |
Country Status (6)
| Country | Link |
|---|---|
| EP (2) | EP2251796A3 (es) |
| JP (2) | JP5175284B2 (es) |
| AT (1) | ATE503230T1 (es) |
| DE (1) | DE602007013410D1 (es) |
| ES (1) | ES2362378T3 (es) |
| WO (1) | WO2008015395A2 (es) |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8140549B2 (en) | 2007-10-31 | 2012-03-20 | Juan Carlos Barinaga | Methods and arrangements of processing and presenting information |
| JP6421568B2 (ja) * | 2014-12-01 | 2018-11-14 | 富士ゼロックス株式会社 | 情報処理装置及び情報処理プログラム |
| US9727560B2 (en) | 2015-02-25 | 2017-08-08 | Palantir Technologies Inc. | Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags |
| JP2016224550A (ja) * | 2015-05-27 | 2016-12-28 | トッパン・フォームズ株式会社 | 変換方法 |
| GB201509331D0 (en) | 2015-05-29 | 2015-07-15 | Cluster Seven Ltd | Visualization method and system |
| JP6695541B2 (ja) | 2017-02-01 | 2020-05-20 | 株式会社島津製作所 | 磁気軸受制御装置および真空ポンプ |
| NL2026535B1 (en) * | 2020-09-24 | 2022-05-30 | Infotron B V | Method of identifying changes in sets of data tables |
| US12259857B2 (en) * | 2020-12-04 | 2025-03-25 | Kinaxis Inc. | Rule-based systems and methods for customizing complex business solutions |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5303146A (en) * | 1993-03-11 | 1994-04-12 | Borland International, Inc. | System and methods for improved scenario management in an electronic spreadsheet |
| JP2001162261A (ja) * | 1999-09-28 | 2001-06-19 | Toshiba Corp | 環境配慮状況情報取得方法および環境配慮状況情報取得システムおよび環境配慮状況情報取得プログラムを記録した媒体 |
| GB0403059D0 (en) | 2004-02-12 | 2004-03-17 | Cluster Seven Ltd | Xigence version 1.0 |
-
2007
- 2007-07-30 AT AT07766375T patent/ATE503230T1/de not_active IP Right Cessation
- 2007-07-30 DE DE602007013410T patent/DE602007013410D1/de active Active
- 2007-07-30 ES ES07766375T patent/ES2362378T3/es active Active
- 2007-07-30 JP JP2009522320A patent/JP5175284B2/ja not_active Expired - Fee Related
- 2007-07-30 WO PCT/GB2007/002864 patent/WO2008015395A2/en not_active Ceased
- 2007-07-30 EP EP10008362A patent/EP2251796A3/en not_active Withdrawn
- 2007-07-30 EP EP07766375A patent/EP2047384B1/en active Active
-
2012
- 2012-09-24 JP JP2012209972A patent/JP5592451B2/ja active Active
Also Published As
| Publication number | Publication date |
|---|---|
| EP2047384B1 (en) | 2011-03-23 |
| WO2008015395A2 (en) | 2008-02-07 |
| ATE503230T1 (de) | 2011-04-15 |
| JP5175284B2 (ja) | 2013-04-03 |
| EP2251796A2 (en) | 2010-11-17 |
| JP2009545793A (ja) | 2009-12-24 |
| EP2047384A2 (en) | 2009-04-15 |
| WO2008015395A3 (en) | 2008-10-02 |
| DE602007013410D1 (de) | 2011-05-05 |
| EP2251796A3 (en) | 2011-02-02 |
| JP5592451B2 (ja) | 2014-09-17 |
| JP2013030180A (ja) | 2013-02-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2362378T3 (es) | Almacenamiento y tratamiento de hojas de cálculo y otros documentos. | |
| US20070011211A1 (en) | Auditing and tracking changes of data and code in spreadsheets and other documents | |
| US8473837B2 (en) | Method for expanding and collapsing data cells in a spreadsheet report | |
| US9659073B2 (en) | Techniques to extract and flatten hierarchies | |
| US20140136573A1 (en) | System and Method for Creating and Using Computer Databases Having Schema Integrated Into Data Structure | |
| US7457832B2 (en) | Verifying dynamically generated operations on a data store | |
| Khayatbashi et al. | Transforming event knowledge graph to object-centric event logs: A comparative study for multi-dimensional process analysis | |
| Finkelstein et al. | The future of requirements management tools | |
| Norton | Knowledge discovery in databases | |
| US7873902B2 (en) | Transformation of versions of reports | |
| JP5312742B2 (ja) | スプレッドシート及び他文書におけるデータ及びコードの変更の監査及びトラッキング | |
| US10261663B2 (en) | Mandatory comment on action or modification | |
| US20190050467A1 (en) | Method and System for Content Creation and Management | |
| Gioia | Managing biodiversity data within the context of climate change: towards best practice | |
| NL2026535B1 (en) | Method of identifying changes in sets of data tables | |
| US20020178172A1 (en) | Methods and apparatuses for application analysis and report | |
| Ahmad et al. | Data warehousing in the construction industry: Organizing and processing data for decision-making | |
| Liukka | Developing audit trail for established ERP system | |
| Wojciechowski et al. | Transaction system with reporting capability in a web-based data warehouse application developed in Oracle Application Express | |
| Villiers | Clinical data warehouse functionality | |
| Chamoni | XBRL and Business Intelligence | |
| Addis | Electronic Document Management System for St. Mary’s University | |
| Chamoni | XBRL and Business Intelligence: From Business Reporting to Advanced Analysis | |
| Damiani et al. | Open source BI adoption | |
| Vysotskal et al. | Automated Monitoring of Changes |