MX2010012866A - Compaginacion de datos jerarquicos. - Google Patents

Compaginacion de datos jerarquicos.

Info

Publication number
MX2010012866A
MX2010012866A MX2010012866A MX2010012866A MX2010012866A MX 2010012866 A MX2010012866 A MX 2010012866A MX 2010012866 A MX2010012866 A MX 2010012866A MX 2010012866 A MX2010012866 A MX 2010012866A MX 2010012866 A MX2010012866 A MX 2010012866A
Authority
MX
Mexico
Prior art keywords
row
client
rows
group
view
Prior art date
Application number
MX2010012866A
Other languages
English (en)
Inventor
Andrew R Cuneo
Ben Worline
Eric M Zenz
Sean Zhu
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of MX2010012866A publication Critical patent/MX2010012866A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2393Updating materialised views
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2428Query predicate definition using graphical user interfaces, including menus and forms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/26Visual data mining; Browsing structured data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

La arquitectura que proporciona la capacidad de compaginar (dividir) inteligentemente grupos de datos jerárquicos a través de operaciones de observación de una vista jerárquica. Esto además proporciona la capacidad de hacer adiciones a/eliminaciones de la vista de jerarquía y manejar la relación padre/hijo de los registros de vista sin enviar nunca el grupo de registro completo al cliente o recibir el grupo de registro completo de regreso al servidor, con lo cual se optimiza el desempeño de operación en los grupos de datos jerárquicos.

Description

COMPAGINACION DE DATOS JERARQUICOS ANTECEDENTES La naturaleza ubicua de redes y sistemas de datos facilita el acceso extendido a grandes cantidades de datos. Las empresas, por ejemplo, ahora soportan sistemas de datos distribuidos así como locales que almacenan toda clase de datos relacionados, por ejemplo, con finanzas, ventas, productos, manejo de proyecto, recursos humanos, y así sucesivamente. De esa forma, la capacidad de un usuario a acceder a datos desde los sistemas de servidor puede impactar el desempeño de servidores, redes, y sistemas de cliente.
Los sistemas de datos convencionales típicamente involucran la consulta y recuperación de grandes grupos de datos. Es difícil soportar la observación y edición interactiva de grandes grupos de datos jerárquicos en un sistema de cliente/servidor en una forma que promueva una experiencia de usuario positiva. El almacenamiento, agrupamiento, y otras operaciones de vista que requieren el grupo de datos completo son muy intensivos de recurso y descarga deficiente en el servidor a medida que el número de usuarios aumenta. Además, a medida que se agregan registros en niveles de la jerarquía, estos registros también necesitan tomarse en cuenta en las operaciones anteriores. Cuando se acoplan estas limitaciones con la complejidad agregada de un grupo de datos jerárquico (por ejemplo, un proyecto que contiene múltiples niveles de tarea), la complejidad del problema aumenta y el desempeño en el cliente y/o servidor sufre.
BREVE DESCRIPCION DE LA INVENCION Lo siguiente presenta una breve descripción simplificada con el fin de proporcionar un entendimiento básico de algunas modalidades novedosas aquí descritas. Esta breve descripción no es una revisión extensiva, y no pretende identificar elementos clave/críticos ni delinear el alcance del mismo. Su único propósito es presentar algunos conceptos en una forma simplificada como un preludio a la descripción más detallada que se presenta a continuación.
La arquitectura descrita optimiza el desempeño de operaciones en grupos de datos jerárquicos en un ambiente de cliente/servidor al minimizar la cantidad de datos enviados entre el cliente y el servidor cuando se leen o editan grupos de datos jerárquicos. La arquitectura facilita la capacidad de compaginar inteligentemente grupos de datos jerárquicos a través de operaciones de observación (por ejemplo, clasificación, filtrado, agrupación), la capacidad para hacer adiciones a/eliminaciones de la jerarquía, y manejar la relación padre/hijo de registros del grupo de datos sin enviar un grupo de registro completo al cliente o de regreso al servidor. El control puede optimizarse para leer operaciones, pero minimiza datos intercambiados durante operaciones de edición también.
Para la realización de lo anterior y para fines relacionados, se describen aquí ciertos aspectos ilustrativos en conexión con la siguiente descripción y los dibujos anexos. Estos aspectos son indicativos de varias formas en las cuales pueden practicarse los principios aquí descritos, todos los aspectos equivalentes que pretenden estar dentro del alcance del tema reclamado. Otras ventajas y características novedosas serán evidentes a partir de la siguiente descripción detallada cuando se consideran en conjunto con los dibujos.
BREVE DESCRIPCION DE LOS DIBUJOS La Figura 1 ilustra un sistema de procesamiento de datos implementado por computadora de acuerdo con la arquitectura descrita.
La Figura 2 ilustra un sistema de cliente/servidor para compaginar datos jerárquicos.
La Figura 3 ilustra un mecanismo de rastreo empleado en el cliente en cooperación para operaciones realizadas en la vista jerárquica.
La Figura 4 ilustra una expandida y una vista colapsada de filas e información de rastreo en Índice convertidor de posición y lista de grupo colapsada.
La Figura 5 ilustra un método para procesar datos.
La Figura 6 ilustra un método para rastrear operaciones de vista del lado del cliente.
La Figura 7 ilustra un diagrama de bloques de un sistema de cómputo operable para ejecutar procedimientos de compaginación y observación de acuerdo con la arquitectura descrita.
La Figura 8 ilustra un diagrama de bloques esquemático de un ambiente de cómputo ilustrativo para ejecutar procedimientos de compaginación y observación.
DESCRIPCION DETALLADA La arquitectura descrita es una implementación de cliente y un servidor que proporciona la capacidad de compaginar (dividir) inteligentemente grupos de datos jerárquicos a través de operaciones de observación de una vista jerárquica en un cliente. Esto además proporciona la capacidad de hacer adiciones a/eliminaciones desde la vista jerárquica en el cliente y manejar la relación padre/hijo de registros de vista sin enviar el grupo de registros completo al cliente o recibir el grupo de registro completo de regreso al servidor, con lo cual se optimiza el desempeño de operación en los grupos de datos jerárquicos. La arquitectura maximiza la cantidad de datos que pueden compaginarse y minimiza los datos que no pueden compaginarse.
La siguiente terminología relacionada con "vista" se utiliza a la vez a través de la descripción. Una vista de grupo de datos es un subgrupo de un grupo de datos mayor definido por un subgrupo de campos, un subgrupo de filas, criterios de filtro o de fila, criterios de grupo, criterios de clasificación; la vista de grupo de datos existe únicamente en el servidor. Una vista de fila es exactamente el subgrupo de filas mencionado en la vista de grupo de datos. Esta lista de filas es la lista 'completamente expandida' denominada en alguna otra parte. Un índice en esta lista es lo que se denomina como "posición de datos" en alguna otra parte. La vista de fila existe en el servidor y el cliente.
Una vista de cliente es un subgrupo de la vista de fila que no incluye los hijos de las filas colapsadas. Un índice en esta lista es lo que se denomina en algún otra parte como 'posición de vista'. Un grupo de vista de cliente es un subgrupo de la vista de cliente, y lo que un usuario puede ver físicamente en el cliente en un momento dado. Es decir, si la vista de cliente contiene 100 filas, y 30 de las filas se descargaron al cliente, pero solamente las primeras 10 filas están visibles en la pantalla sin desplazamiento, entonces el grupo de vista de cliente tiene un tamaño de 10.
Ahora se hace referencia a los dibujos, en donde números de referencia similares se utilizan para hacer referencia a elementos similares en todo el documento. En la siguiente descripción, para propósitos de explicación, se establecen numerosos detalles específicos con el fin de proporcionar un entendimiento completo de la misma. Sin embargo, puede ser evidente que las modalidades novedosas pueden practicarse sin estos detalles específicos. En otros casos, estructuras bien conocidas y dispositivos se muestran en forma de diagrama de bloque con el fin de facilitar una descripción de la misma. La intención es cubrir todas las modificaciones, equivalentes, y alternativas que caen dentro del esp.íritu y alcance del tema reclamado.
La Figura 1 ilustra un sistema de procesamiento de datos implementado por computadora 100 de acuerdo con la arquitectura descrita. El sistema 100 incluye un componente de compaginación 102 para compaginar (obtener un subgrupo) un grupo de datos jerárquicos 104 basándose en una operación de fila 106 en una o más filas 108 en un grupo de vista del cliente jerárquico 110. El sistema 100 también incluye un componente de actualización 112 para actualizar el grupo de vista de cliente jerárquico 110 de acuerdo con una operación de cambio de fila 114. La actualización al grupo de vista de cliente 110 también puede estar basada en claves de fila de la vista de fila, las claves de fila asociadas con la página del grupo de datos jerárquicos 104. El componente de compaginación 102 puede compaginar el grupo de datos jerárquicos 104 asincrónicamente basándose en la operación de cambio de fila 114.
Se debe notar que la operación de cambio de fila 114 es una operación de fila que es de una naturaleza de división con respecto a la jerarquía presente en la vista del grupo de datos 206. La operación de cambio de fila 114 es la inserción de una fila, la eliminación de una fila, o la indentación o la integración exterior de una fila. Una operación de cambio de fila 114 puede resultar en una operación de fila subsecuente 106 si se vuelve necesario actualizar el grupo de vista de cliente 110 con filas que se desplazaron en la vista como el resultado de una eliminación de fila, por ejemplo.
El sistema 100 minimiza la cantidad de datos manejada mediante el procesamiento únicamente de filas relevantes en la vista de fila en lugar de volver a calcular la vista de fila completa. Con ese fin, la operación de fila 106 puede ser una operación de lectura que colapsa filas descendentes del grupo de vista de cliente jerárquico 110 en una fila colapsada, expande una fila colapsada para mostrar una o más nuevas filas descendentes en el grupo de vista de cliente jerárquico 110, y agrega o remueve filas basándose en el desplazamiento del grupo de vista de cliente jerárquico 110. Las operaciones de lectura pueden realizarse durante un modo de lectura cuando los datos jerárquicos se envían a un cliente para lectura solamente. No se permiten ediciones en este modo, y por esta razón, la cuadricula puede ser más económica sobre el volumen de datos no compaginados (por ejemplo, la jerarquía no filtrada) que la cuadrícula envía al cliente. La cuadrícula es una estructura de cómputo para la exposición de grandes cantidades de datos de sistemas de datos locales y/o distribuidos.
El desplazamiento puede resultar en filas que se anexan al grupo de vista de cliente 110 ó removerse del grupo de vista de cliente 110. Por ejemplo, cuando se desplazan hacia arriba, las filas se agregarán a la parte superior y se removerán del fondo del grupo de vista de cliente 110. La adición de las filas en la parte superior i del grupo de vista de cliente 110 resulta en nuevas consultas (o solicitudes) que se envían al componente de compaginación 102'para compaginar el grupo de datos 104 para las nuevas filas deseadas.
La operación de fila puede ser una operación de edición asociada con la inserción de una fila, eliminación de una fila, ¡ndentación de una fila, y/o indentación exterior de una fila en el grupo de vista de cliente jerárquico 110. Las operaciones de edición pueden realizarse mientras están en un modo de edición en donde se envían datos jerárquicos a un cliente en un formato que soporta operaciones de edición en las filas. Una ¡ndentación es el acto de aumentar un nivel de perfil de fila para hacer la fila un hijo de otra fila. La indentación de salida es el act,o de disminuir un nivel de perfil de fila para hacer a la fila un par de su fila padre.
El componente de compaginación 102 compagina el grupo de datos jerárquicos 104 para filas relevantes a la operación de fila basándose en filtración, clasificación, expansión de fila, y colapso de fila por ejemplo.
La Figura 2 ilustra un sistema de cliente y un servidor 200 para compaginar datos jerárquicos. El sistema 200 representa el componente de compaginación 102 y el componente de actualización 112 como parte de un sistema de servidor 202 para compaginar el grupo de datos jerárquicos 104 del sistema de servidor, y el grupo de vista de cliente jerárquico 110, fila(s) de vista 108 de la operación de fila 106 y operación de cambio de fila 114 mientras ocurre en un cliente 204. El componente de actualización 112 actualiza una jerarquía no filtrada basándose en operaciones de fila asociadas con un modo de edición.
El sistema 200 además ¡lustra los datos generados y clasificados en cada uno del cliente 204 y el servidor 202. El componente de compaginación 102 genera la vista del grupo de datos 206 y la vista de fila del lado de servidor 208. Entonces envía una copia de la vista de fila 208 al cliente 204 como la vista de fila del lado de cliente 210 para minimizar la cantidad de datos que de otra forma necesitaría enviarse entre el servidor 202 y el cliente 204. Una vista de cliente 212 entonces puede obtenerse desde la vista de la fila de lado de cliente 210.
El componente de compaginación 102 maneja una relación padre-hijo de filas en el grupo de vista de cliente jerárquico 110 que son relevantes para la operación de fila 106 y/o la operación de cambio de fila 114. El componente de compaginación 102 también crea un índice de estructura jerárquica (la vista de fila del lado de servidor 208) definido por un trazado ordenado de claves de fila y claves padre. El índice entonces envía al cliente 204 basándose en la operación de fila (por ejemplo, operación de fila 106, operación de cambio^ de fila 114) del grupo de vista del cliente jerárquico 110. Éstos y otros aspectos se describirán a aquí en mayor detalle a continuación.
La Figura 3 ilustra un mecanismo de rastreo empleado en el tinte 204 en cooperación con operaciones realizadas en la del grupo de vista de cliente jerárquico 110. Aquí, pueden realizarse diferentes tipos de operaciones de fila 300 (por ejemplo, sólo de lectura, edición) en la fila(s) 108 del grupo de vista de cliente 110. Con el fin de rastrear actividad de fila en el grupo de vista de cliente basado en cliente 110, se emplea un índice de convertidor de posición 302 y una lista de grupo colapsado 304. El índice de convertidor de posición 302 es un índice ordenado de las filas que se utilizan para rastrear el estado expandido/colapsado del grupo de vista de cliente jerárquico 110 y para cambiar entre una posición de vista y posición de datos. La posición de vista es la posición ordinal de una fila dentro del grupo de vista de cliente 110 con respecto a filas expandidas/colapsadas. La posición de datos (también denominado como el índice de fila) es la posición ordinal de una fila dentro del grupo de vista de cliente 110 que incluye todas las filas, sin importar si las filas están o no expandidas. La lista de grupo colapsada 304 es una lista de filas colapsadas que permiten a la cuadricula saber si se colapsará o expandirá una fila. La lista de grupo colapsada 304 está inicialmente vacía, pero a medida que se expanden/colapsan las filas en el cliente 106, está lista 304 se actualiza.
La Figura 4 ilustra una vista expandida 400 y una vista colapsada 402 de filas y rastrea información en el índice de convertidor de posición y la lista de grupo colapsada. La arquitectura minimiza la cantidad de datos que se envía entre el cliente y el servidor cuando se lee o editan los grupos de datos jerárquicos. El ejemplo ilustrado describe operaciones de lectura; sin embargo, los datos cambiados durante operaciones de edición también pueden minimizarse. Tanto las operaciones de lectura como de edición comienza con una solicitud de cliente al servidor para datos que se presentarán en una rejilla. El servidor consulta su base de datos y aplica uno o más de clasificación, filtración, o agrupación definida por el cliente para producir una recolección de filas. Esa recolección de filas entonces se procesa para generar grupos de datos para enviar al cliente.
Una jerarquía no filtrada es una estructura de jerarquía completa que sirve como un trazado de claves de fila y claves padre, en orden. Para entender lo que se pretende por el calificador 'no filtrado', considerar un ejemplo de tres filas, A, B, y C. B es un hijo de A, y C es un hijo de B. Puede ser que en el curso de filtración de fila, B no se incluya en la vista de fila, y de esa forma, C no tiene padre (antecesor inmediato) en la vista de fila. La jerarquía no filtrada es la relación jerárquica entre A, B y C. No hay necesidad de determinar el padre de C cuando se desplaza/expande/colapsa, pero esto es necesario cuando se realiza indentación/ indentación exterior/insertación/eliminación . De esa forma, durante las operaciones de edición, la jerarquía no filtrada se utiliza ya que la información deseada no puede construirse de examinar cada identificador padre del registro de vista de fila.
La estructura de jerarquía no filtrada es únicamente enviada al cliente durante la edición, y se utiliza para responder preguntas sobre filas como sea necesario en el cliente incluyendo un nivel de perfil de fila, ya sea que la fila es un padre, que la fila sean filas hijo, y que la fila sea hermano previo de esta fila, para soportar indentación/indentación exterior. El modo de edición, la estructura de jerarquía se utiliza para el cliente sin compaginación. La estructura de jerarquía completa se saca su superficie para soportar operaciones que afectan la jerarquía (por ejemplo, indentación/indentación exterior, inserción, o eliminación de fila).
Las filas son un grupo compaginado de claves de fila y datos asociados (en el caso de proyectos, esto puede ser una recolección de tareas por ID). Como se describe a continuación, esto incluye los siguientes campos. Nivel de perfil: el modo sólo de lectura, este campo sólo mitiga la necesidad de tener la estructura jerárquica no filtrada; en modo de edición, el sistema utiliza la jerarquía no filtrada. Una clave de fila padre: el modo sólo de lectura, este campo sólo mitiga la necesidad de tener la jerarquía no filtrada; en modo de edición, el sistema utiliza la estructura de jerarquía no filtrada. Cuenta descendente: el modo sólo de lectura, esto se calcula en el servidor y se envía al cliente; en modo de edición, la estructura de jerarquía no filtrada y la vista de filas se utilizan para calcular la cuenta descendente. Otros campos de datos también pueden emplearse como se reclama útil para el sistema.
Se debe notar que los grupos de datos jerárquicos completos no se incluyen en la lista anterior. La lista total de filas no se envía al cliente. Solamente las filas relevantes requeridas en el grupo de vista de cliente con respecto a filtración, clasificación, y jerarquía expandida/colapsadas se envían al cliente.
Como se muestra, la vista expandida 400 incluye columnas para un identíficador (ID), Nombre, Nivel de Perfil, Posición de Vista, Posición de Datos, y Cuenta Descendente. La cuenta descendente es el número total de filas hijo que son visibles con respecto a la vista de fila actual. En otras palabras, después de un filtro, esta es la cuenta de hijo, nieto, etc., las filas que posiblemente pueden enviarse al cliente. Una fila de resumen es una fila en la jerarquía que tiene hijos. En la vista expandida 400, T1 es una fila de resumen debido a que tiene filas hijo (HIJO A e HIJO B). Se debe entender que la vista 400 y la vista 402 son vistas de cliente, justo antes y después de instantáneas en un ejemplo de colapsar una fila individual. Puede ser coincidente que la vista 400 incluya el grupo exacto de filas que incluye la vista de fila.
Como se indicó previamente, la posición de vista (POSICION DE VISTA) es la posición ordinal de una fila dentro de la vista expandida actual 400 con respecto a filas expandidas/colapsadas, y la posición de datos (POSICION DE DATOS) es la posición ordinal de una fila dentro de la vista actual 400 que incluye todas las filas, sin importar si las filas están o no expandidas. El nivel de perfil se define de acuerdo con el nivel (por ejemplo, 1, 2, 3,...). Aquí, el nombre T1 es el nivel de perfil a la izquierda de 1, HIJO A se designa como nivel de perfil 2, HIJO C1 es además indentado a un nivel de perfil de 3, y así sucesivamente. Existen ocho filas en la vista expandida 400; de esa forma, los números de posición de vista 1-8 están asignados a ID correspondientes 1-8. El número de posición de datos está asignado a la fila y permite la fila ya sea expandida o colapsada. Se debe notar ahora que el colapso de T1 causó que las posiciones de vista cambiaran, pero la posición de datos para las filas permanece sin cambios.
La cuenta descendente para ID de fila 1 es doble debido a que ID de fila 1 tiene dos filas hijo (ID2 e ID3). Las filas hijo (ID2 e ID3) no tienen filas hijo; de esa forma, la cuenta descendente cero para cada una de estas filas (ID2 e ID3).
El índice de convertidor de posición 404 y la lista de grupo colapsada 406 se mantienen en el cliente para eficiencia. El índice de convertidor de posición 404 es un índice ordenado de las filas que se utiliza para arrastrar el estado expandido/colapsado de la jerarquía y para cambiar entre la posición de vista y la posición de datos. El índice de convertidor de posición 404 incluye un campo de clave de fila que es un GUID (ID globalmente único) que identifica la fila en la base de datos, un campo de posición de vista que es la posición de esta fila desde arriba de la vista con respecto a cualquiera de las filas expandidas/colapsadas, y una posición de datos que es la posición absoluta de esta fila desde arriba de la vista (ignorando filas colapsadas). El índice de convertidor de posición 404 permite una conversión rápida entre la posición de vista y la posición de datos para que únicamente las filas que están en el grupo de vista de cliente se recuperen desde el servidor, y que las filas se colocan en un orden visual correcto. Esta estructura de datos se crea en tiempo de funcionamiento en el cliente y se agregan a cuando se colapsan las filas. El estado inicial de esta tabla es aquel de sin filas, ya que la jerarquía se expande por omisión.
La lista del grupo colapsado 404 es la lista de filas colapsadas que permite a la cuadrícula saber si se colapsará o expandirá una fila. Esta lista 406 inicialmente está vacía, pero a medida que se expanden/colapsan las filas en el cliente, se actualiza esta lista.
En este ejemplo, los valores correspondientes en el índice de convertidor de posición 404 y la lista de grupo colapsado 406 rastrean la vista expandida 400 tal como las claves de fila (ID) son 1-8, la posición de vista es 1-8, y la posición de datos es 1-8. Ya que no hay filas colapsadas en la vista expandida (completamente) 400, la lista de grupo colapsada está vacía.
Continuando con la vista colapsada 402, la ID de fila 1 ahora está colapsado (como se indica por el símbolo " + "). Los valores correspondientes en el índice de convertidor de posición 408 y la lista de grupo colapsado 410 rastrean la vista colapsada 402. El colapso de las filas hijo (ID2 e ID3) resultan en valores de convertidor de las claves de fila (ID) como 1-8, la posición de vista como trazando los ID de clave de fila 2 y 3 al ID de fila 1 en donde las filas hijo se colapsan y también trazar las otras posiciones de vista para los ID de clave de fila restantes a la posición de vista actual. La posición de datos es como anteriormente 1-8. Ya que ahora hay filas colapsadas en la vista 402, la lista de grupo colapsado 410 enumera el ID de fila 1 como la fila colapsada.
Algunas o todas estas recolecciones se envían al cliente. El modo de lectura, la vista de fila y/o el subgrupo compaginado de filas que incluye tres campos extra para definir su relación jerárquica a otras filas puede enviarse. El modo de edición, la estructura de jerarquía no filtrada, la vista de fila, y/o el subgrupo compaginado de filas (que no incluye tres campos extra para definir su relación jerárquica a otras filas, ya que la información que proporciona estos campos puede derivarse de la estructura de jerarquía no filtrada).
El cliente entonces puede decidir que fila solicitar del servidor para llenar el grupo de vista de cliente en el modo de lectura siguiente y los eventos de modo de edición. En el modo de lectura y relacionado para colapsar, el grupo colapsado se actualiza para incluir la clave de fila indicada, y entonces el convertidor de posición se actualiza para incluir nuevas posiciones de vista. En el modo de lectura y relacionado con expansión, la fila expandida se remueve del grupo colapsado, seguido por el convertidor de posición que se actualiza para incluir nuevas posiciones de vista. El cliente entonces solicita filas que el cliente aún no tiene a partir del grupo de vista de cliente. Cuando se colapsa un nodo, y el modo incluye uno o más hijos colapsados, esas entradas de lista en el grupo colapsado se anexan a la entrada de la fila recientemente colapsada en el grupo colapsado. En modo de lectura y relacionado con desplazamiento (hacia abajo/hacia arriba), la cuadrícula utiliza la posición solicitada en el grupo de vista de cliente para solicitar un grupo compaginado de filas desde el cliente.
El modo de edición y relacionado con inserción, la jerarquía no filtrada se actualiza para incluir una nueva fila en la posición indicada, proporcionando a esa nueva fila el ID padre apropiado y el orden dentro de sus hermanos. El convertidor de posición se actualiza, y todas las posiciones de vista subsecuente se implementan por uno. Esta cuadrícula entonces guarda el cambio al servidor. El servidor no necesita enviar hacia abajo una actualización de jerarquía no filtrada debido a que la versión de cliente coincide con lo que el servidor mantiene como la jerarquía no filtrada, que incluye la adición.
El modo de edición y relacionado con la eliminación, se actualiza la jerarquía no filtrada para remover la fila indicada. El convertidor de posición se actualiza, y todas las posiciones de vista subsecuentes se disminuyen por uno. Como anteriormente, la estructura de jerarquía no filtrada en el que cliente es correcta. En modo de edición y relacionado con indentación, ya que la estructura de jerarquía no filtrada es un árbol, la cuadrícula revisa la fila indicada y mueve la fila a la ubicación correcta en el árbol. La posición de vista no cambia, también hay necesidad de actualizar el convertidor de posición. Se debe notar que la cuenta descendente se evalúa en una base como sea necesario; la cuadrícula pide a la fila contar sus hijos y entonces guarda en memoria caché los datos para la siguiente vez que se requiera la información, la revisión se vuelve disponible más fácilmente. En modo de edición y relacionado con indentación exterior, ya que la estructura de jerarquía no filtrada es un árbol, la cuadrícula revisa la fila indicada y mueve la fila a la posición correcta en el árbol.
El agrupamiento es un caso especial de jerarquía. Para agrupar, el servidor clasifica todos los datos, genera una jerarquía artificial, e inserta filas de resumen, ficticias para agrupar los encabezados. La nueva vista de fila se envía al cliente como cualquier otra vista. En una vista agrupada, el nivel de perfil es equivalente a la cuenta de cláusulas de agrupamiento.
A continuación está una serie de cuadros de flujo representativos de metodologías ilustrativas para realizar aspectos novedosos de la arquitectura descrita. Aunque, para propósitos de simplicidad de explicación, una o más metodologías aquí mostradas, por ejemplo, en la forma de un cuadro de flujo o diagrama de flujo, se muestran y describen como una serie de actos, se debe entender y apreciar que las metodologías no están limitadas por el orden de actos, ya que algunos actos pueden, de acuerdo con esto, ocurrir en un orden diferente y/o concurrentemente con otros actos a aquello mostrado y descrito aquí. Por ejemplo, aquellos expertos en la técnica entenderán y apreciarán que una metodología puede representarse alternativamente como una serie de estados o eventos interrelacionados, tal como en un diagrama de estado. Además, no todos los actos ilustrados en una metodología pueden requerirse para una implementación novedosa.
La Figura 5 ilustra un método para procesar datos. En 500, se recibe una solicitud de un cliente para datos relevantes para presentarse en un grupo de vista de cliente jerárquico basándose en una operación de fila de cliente. En 502, un grupo de datos jerárquicos se compagina para datos relevantes basándose en la solicitud. En 504, los datos relevantes se envían al cliente para actualización del grupo de vista de cliente jerárquico. El grupo de datos jerárquico puede compaginarse asincrónicamente basándose en la solicitud.
Además, el método puede optimizar manejar las relaciones de padre-hijo basándose en la operación de fila. La compaginación del grupo de datos jerárquico puede ser en respuesta a una operación de lectura que colapsa filas del grupo de vista de cliente jerárquico en una fila colapsada, expande una fila colapsada para mostrar una o más nuevas filas en el grupo de vista de cliente jerárquico, y agrega o remueve filas basándose en desplazamiento del grupo de vista de cliente jerárquico. Alternativamente, la compaginación del grupo de datos jerárquico puede ser en respuesta a una operación de edición asociada con la inserción de una fila, eliminación de una fila, indentación de una fila, indentación exterior de una f sila en una vista de fila jerárquica.
El método puede comprender crear una estructura de jerarquía no filtrada que define los datos relevantes relacionados con la paternidad de fila, nivel de perfil de fila, filas hijo, y operaciones de indentación/índentación exterior, pero también aplicar uno o más de filtración, clasificación, o agrupación para recibir los datos relevantes.
La Figura 6 ilustra un método para rastrear operaciones de vista del lado de cliente. En 600, el cliente envía una solicitud a un servidor relacionado con edición de filas en un grupo de vista del cliente jerárquico. En 602, se recibe una estructura de jerarquía no filtrada del servidor. En 604, el cliente rastrea información de clave de fila, información de posición de vista, e información de posición de datos basándose en cambios a la estructura jerárquica al utilizar un índice de convertidor de posición. En 606, el cliente rastrea operaciones de colapso de fila basándose en cambios a la estructura jerárquica al utilizar una lista de grupo colapsado. En 608, el cliente procesa el índice de convertidor de posición y la lista de grupo colapsada para solicitar únicamente las filas relevantes para una operación de fila desde el grupo de datos jerárquico.
Como se utiliza en esta solicitud, los términos "componente" y "sistema" pretenden hacer referencia a una entidad relacionada con computadora, ya sea hardware, una combinación de hardware y software, software, o software en ejecución. Por ejemplo, un componente puede ser, pero no está limitado a ser, un procedimiento que corre en un procesador, un procesador una unidad de disco duro, múltiples unidades de almacenamiento (de medio de almacenamiento óptico y/o magnético), un objeto, un ejecutable, una secuencia de ejecución, un programa, y/o una computadora. A manera de ilustración, tanto una aplicación que corre en un servidor como el servidor puede ser un componente. Uno o más componentes pueden recibir dentro de un procedimiento y/o secuencia de ejecución, y un componente puede localizarse en una computadora y/o distribuirse entre dos o más computadoras. La palabra "ilustrativo" puede utilizarse aquí para significar que sirve como un ejemplo, caso, o ilustración. Cualquier aspecto o diseño aquí descrito como "ilustrativo" no necesariamente va a interpretarse como preferido o ventajoso sobre otros aspectos o diseños.
Haciendo referencia ahora a la Figura 7, se ilustra un diagrama de bloques de un sistema de cómputo 700 operable para ejecutar procedimientos de compaginación y vista de acuerdo con la arquitectura descrita. Con el fin de proporcionar contexto adicional para varios aspectos de la misma, la Figura 7 y la siguiente discusión pretenden proporcionar una breve descripción general de un sistema de cómputo adecuado 700 en el cual pueden implementarse varios aspectos. Aunque la descripción anterior está en el contexto general de instrucciones ejecutables por computadora que pueden correr una o más computadoras, aquellos expertos en la técnica reconocerán que también puede implementarse una modalidad novedosa en combinación con otros módulos de programa y/o como una combinación de hardware y software.
Generalmente, los módulos de programa incluyen rutinas, programas, componentes, estructuras de datos, etc., que realizan tareas particulares o ¡mplementan tipos de datos abstractos particulares. Además, aquellos expertos en la técnica apreciarán que los métodos inventivos pueden practicarse sin otras configuraciones de sistema, incluyendo sistemas de computadora de procesador individual o multiprocesador, minicomputadoras, macrocomputadoras, así como computadoras personales, dispositivos de cómputo portátiles, electrónica de consumidor a base de microprocesador o programable, y similares, cada uno de los cuales puede acoplarse operativamente a uno o más dispositivos asociados.
Los aspectos ilustrados también pueden practicarse en ambientes de cómputo distribuidos en donde se realizan ciertas tareas mediante dispositivos de procesamiento remoto 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 localizarse en dispositivos de almacenamiento de memoria local y remota.
Una computadora típicamente incluye una variedad de medio legibles por computadora. Los medios legibles por computadora puede ser cualquier medio disponible que puede accederse por la computadora e incluye medios volátiles y no volátiles, medios removibles y no removibles. A manera de ejemplo, y no de limitación, los medios legibles por computadora incluyen medios volátiles y no volátiles, medios removibles y no removibles implementados en cualquier método o tecnología para almacenamiento de información tal como instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos. Los medios de almacenamiento por computadora incluyen, pero no están limitados a, RAM, ROM, EEPROM, memoria flash u otra tecnología de memoria, CD-ROM, disco de video digital (DVD) u otro almacenamiento de disco óptico, cassettes magnéticos, cinta magnética, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que puede utilizarse para almacenar la información deseada y que puede accederse por la computadora.
De nuevo con referencia a la Figura 7, el sistema de cómputo ilustrativo 700 para implementar varios aspectos incluye una computadora 702 que tiene una unidad de procesamiento 704, una memoria de sistema 706 y un conductor común de sistema 708. El conductor común de sistema 708 proporciona una intérfase para componentes de sistema que incluye, pero no se limita a, memoria de sistema 706 de la unidad de procesamiento 704. La unidad de procesamiento 704 puede ser cualquiera de varios procesadores comercialmente disponibles. Los microprocesadores dobles y otras arquitecturas de multiprocesador también pueden emplearse como la unidad de procesamiento 704.
El conductor común de sistema 708 puede ser cualquiera de varios tipos de estructura de conductor común que además pueden interconectarse a un conductor común de memoria (con o sin un controlador de memoria), un conductor común periférico, y un conductor común local que utiliza cualquiera de una variedad de arquitecturas de conductor común comercialmente disponibles. La memoria de sistema 706 puede incluir memoria no volátil (NO-VOL) 710 y/o memoria volátil 712 (por ejemplo, memoria de acceso aleatorio (RAM)). Un sistema de entrada/salida básico (BIOS) puede almacenarse en la memoria no volátil 710 (por ejemplo, ROM, EPROM, EEPROM, etc.), cuyo BIOS son las rutinas básicas que ayudan a transferir información entre elementos dentro de la computadora 702, tal como durante el arranque. La memoria volátil 712 también puede incluir una RAM de alta velocidad tal como RAM estática para guardar en memoria cache datos.
La computadora 702 además incluye una unidad de disco duro interna (HDD) 714 (por ejemplo, EIDE, SATA), cuyo HDD interno 714 también puede estar configurado para uso externo en una estructura adecuada, una unidad de disco flexible (FDD) magnético 716, (por ejemplo, para leer de o escribir a disquetes removibles 718) y una unidad de disco óptico 720, (por ejemplo, leer un disco CD-ROM 722 ó, para leer de o escribir a otro medio óptico de alta capacidad tal como un DVD). El HDD 714, FDD 716 es una unidad de disco óptico 720 que puede estar conectado al conductor común de sistema 708 mediante una interfase HDD 724, una interfase FDD 726 y una inferíase de unidad óptica 728, respectivamente. La interfase HDD 724 para im plementaciones de unidad externa puede incluir al menos una o ambas de Conductor Común en Serie Universal (USB) y tecnologías de interfase IEEE 1394.
Las unidades y medios de almacenamiento y medios legibles por computadora asociados proporcionan almacenamiento no volátil de datos, estructuras de datos, e instrucciones ejecutables por computadora, y así sucesivamente. Para la computadora 702, las unidades y medios adaptan el almacenamiento de cualquier dato en un formato digital adecuado. Aunque la descripción de medios legibles por computadora anterior se refiere a un HDD, un disquete magnético removible (por ejemplo, FDD), y un medio óptico removible tal como un CD o DVD, se debe apreciar por aquellos expertos en la técnica que otros tipos de medios que son legibles por una computadora, tal como unidades Zip, cassettes magnéticos, tarjetas de memoria flash, cartuchos, y similares, también pueden utilizarse en el ambiente operativo ilustrativo, y además, que cualquiera de tales medios . puede contener instrucciones ejecutables por computadora para realizar métodos novedosos de la arquitectura descrita.
Un número de módulos de programa puede almacenarse en las unidades y memoria volátil 712, incluyendo un sistema operativo 730, uno o más programas de aplicación 732, otros módulos de programa 734, y datos de programa 736. Como un sistema de cómputo de cliente, uno o más programas de aplicación 732, otros módulos de programa 734, y datos de programa 736 pueden incluir el grupo de vista de cliente jerárquico 110, filas 108, operación de fila 106, operación de cambio de fila 114, el cliente 204, vista de fila 210, vista de cliente 212, operaciones de fila 300, inicia de convertidor de posición 302, vista de grupo colapsado 304, vista expandida 400, vista colapsada 402, índices de convertidor de posición (404 y 408), vistas de grupo colapsado (406 y 410), y el método de la Figura 6, por ejemplo. Cuando se emplea la computadora 702 como un sistema de servidor, uno o más programas de aplicación 732, otros módulos de programa 734, y datos de programa 736 pueden incluir el componente de compaginación 102, componente de actualización 112, grupo de datos jerárquicos 104, servidor 202, vista de grupo de datos 206, vista de fila 208, y método de la Figura 5, por ejemplo.
Todo o divisiones del sistema operativo, aplicaciones, módulos, y/o datos también pueden guardarse en memoria caché en la memoria volátil 712. Se debe apreciar que la arquitectura descrita puede implementarse con varios sistemas operativos comercialmente disponibles o combinaciones de sistemas operativos.
Un usuario puede ingresar comandos e información en la computadora 702 a través de uno o más dispositivos de entrada por cable/inalámbrico. Por ejemplo, un teclado 738 y un dispositivo de señalamiento, tal como un ratón 740. Otros dispositivos de entrada (no mostrados) pueden incluir un micrófono, un control remoto IR, una palanca de mandos, una almohadilla de juegos, una pluma de aguja, una pantalla táctil, o similares. Estos y otros dispositivos de entrada frecuentemente están conectados a la unidad de procesamiento 704 a través de una interfase de dispositivo de entrada 742 que está acoplada al conductor común de sistema 708, pero que puede conectarse por otras interfases tal como un puerto paralelo, puerto en serie de IEEE 1394, un puerto de juegos, un puerto USB, una interfase IR, etc.
Un monitor 744 u otro tipo de dispositivo de presentación también está conectado al conductor común de sistema 708 a través de una interfase, tal como un adaptador de video 746. Además del monitor 744, una computadora típicamente incluye otros dispositivos de salida periféricos (no mostrados), tal como bocinas, impresoras, etc.
La computadora 702 puede operar en un ambiente en red que utiliza conexiones lógicas a través de comunicaciones por cable y/o inalámbricas a una o más computadoras remotas, tal como una' computadora(s) remota 748. La computadora(s) remota 748 puede ser una estación de trabajo, una computadora de servidor, un ehrutador, una computadora personal, computadora portátil, aparato de entretenimiento basado en microprocesador, un dispositivo par u otro nodo de red común, y típicamente incluye muchos o todos los elementos descritos relativos a la computadora 702, aunque, para propósitos de brevedad, solamente se ilustra un dispositivo de memoria/almacenamiento 750. Las conexiones lógicas ilustradas incluyen conectividad por cable/inalámbrica a una red de área local (LAN) 752 y/o redes más grandes, por ejemplo, una red de área ancha (WAN) 754. Tales ambientes en red LAN y WAN comúnmente están ubicados en oficinas y compañías, y facilita red de computadora extendidas en empresa, tal como intranets, todas de las cuales pueden conectarse a una red de comunicaciones global, por ejemplo, Internet.
Cuando se utiliza en un ambiente en red LAN, la computadora 702 está conectada a la LAN 752 a través de una interfase de red de comunicación por cable y/o inalámbrica o adaptador 756. El adaptador 756 puede facilitar comunicaciones por cable y/o inalámbricas a la LAN 752, que también pueden incluir un punto de acceso inalámbrico dispuesto en éstas para comunicarse con la funcionalidad inalámbrica del adaptador 756.
Cuando se utiliza en un ambiente en red WAN, la computadora 702 puede incluir un módem 758, o está conectado a un servidor de comunicaciones en la WAN 754, o tiene otros medios para establecer comunicaciones en la WAN 754, tal como a manera de Internet. El módem 758, que puede ser interno o externo y un dispositivo por cable y/o inalámbrico, está conectado al conductor común de sistema 708 a través de la interfase del dispositivo de entrada 742. En un ambiente en red, los módulos de programa ilustrados relativos a la computadora 702, o porciones de la misma, pueden almacenarse en el dispositivo de .memoria/almacenamiento remoto 750. Se apreciará que las conexiones en red mostradas son ilustrativas y pueden utilizarse otros medios para establecer un enlace de comunicaciones entre las computadoras.
La computadora 702 es operable para comunicarse con dispositivos por cable e inalámbricos o entidades que utilizan la familia de estándares IEEE 802, tal como dispositivos inalámbricos operativamente dispuestos en comunicación inalámbrica (por ejemplo, IEEE 802.11 en las técnicas de modulación en aire) con, por ejemplo, una impresora, escáner, computadora de escritorio y/o portátil, asistente digital personal (PDA), satélite de comunicaciones, cualquier pieza de equipo o ubicación asociada con una etiqueta inalámbricamente detectable (por ejemplo, un quiosco, puesto de periódicos, baños), y teléfono. Esto incluye al menos Wi-Fi (o fidelidad inalámbrica), WiMax, y tecnologías inalámbricas de Bluetooth™. De esa forma, la comunicación puede ser. una estructura predefinida, como con una convencional o simplemente una comunicación ad hoc entre al menos dos dispositivos. Las redes Wi-Fi utilizan tecnologías de radio llamadas IEEE 802.11x (a, b, g, etc.) para proporcionar conectividad inalámbrica segura, confiable, rápida. Una red Wi-Fi puede utilizarse para conectar computadoras entre sí, a Internet, y a redes por cable (que utilizan medios y funciones relacionadas con IEEE 802.3).
Haciendo referencia ahora a la Figura 8, se ilustra un diagrama de bloque esquemático de un ambiente de cómputo ilustrativo 800 para ejecutar procedimientos de compaginación y vista. El ambiente 800 incluye uno o más cliente(s) 802. El cliente(s) 802 puede ser hardware y/o software (por ejemplo, secuencias, procedimientos, dispositivos de cómputo). El cliente(s) 802 puede alojar cookie(s) y/o información contextual asociada, por ejemplo.
El ambiente 800 también incluye uno o más servidor(es) 804. El servidor(es) 804 también puede ser hardware y/o software (por ejemplo, secuencias, procedimientos, dispositivos de cómputo). Los servidores 804 pueden alojar secuencias para realizar transformaciones al emplear la arquitectura, por ejemplo. Una comunicación posible entre un cliente 802 y un servidor 804 puede estar en la forma de un paquete de datos adaptado para transmitirse entre dos o más procedimientos de computadora. El paquete de datos puede incluir una cookie y/o información contextual asociada, por ejemplo. El ambiente 800 incluye una estructura de comunicación 806 (por ejemplo, una red de comunicación global tal como Internet) que puede emplearse para facilitar comunicaciones entre el cliente(s) 802 y el servidor(es) 804.
Las comunicaciones pueden facilitarse a través de una tecnología por cable (incluyendo fibra óptica) y/o tecnología inalámbrica. El cliente(s) 802 puede estar operativamente conectado a uno o más almacenamiento(s) de datos de cliente 808 que pueden emplearse para almacenar información local al cliente(s) 802 (por ejemplo, cookie(s) y/o información contextual asociada). Similarmente, el servidor(es) 804 están operati amente conectados a uno o más almacenamiento(s) de datos de servidor 810 que pueden emplearse para almacenar información local para los servidores 804.
El cliente(s) 802 puede incluir el cliente 204 y el método de la Figura 6, y el servidor(es) puede incluir el servidor 202 y el método de la Figura 5.
Lo que se describió anteriormente incluye ejemplos de la arquitectura descrita. Por supuesto, no es posible describir toda combinación concebible de componentes y/o metodologías, pero un experto en la técnica puede reconocer que son posibles muchos cambios y combinaciones adicionales. Por consiguiente, la arquitectura novedosa pretende abarcar todas esas alteraciones, modificaciones y variaciones que caen dentro del espíritu y alcance de las reivindicaciones anexas. Además, a la extensión que se utiliza el término "incluye" en la descripción detallada a las reivindicaciones, tal término pretende ser inclusivo en una forma similar al término "que comprende" como "ya que "que comprende" se interpreta cuando se emplea como una palabra de transición en una reivindicación.

Claims (20)

REIVINDICACIONES
1.- Un sistema de procesamiento de datos implementado por computadora (100) que comprende: un componente de compaginación (102) para compaginar un grupo de datos jerárquico basándose en una operación de fila en una o más filas de un grupo de vista de cliente; y un componente de actualización (112) para actualizar el grupo de vista de cliente en respuesta a una operación de cambio de fila, la actualización al grupo de vista de cliente basándose en claves de fila asociadas con el grupo de datos jerárquico compaginado.
' 2.- El sistema de acuerdo con la reivindicación 1, en donde el componente de compaginación maneja una relación de padre-hijo de filas en el grupo de vista de cliente, las filas son relevantes para la operación de fila.
3. - El sistema de acuerdo con la reivindicación 1, en donde el componente de compaginación crea un índice de estructura de jerarquía definido por un trazado ordenado de claves de fila y claves padre, el índice enviado a un cliente en respuesta a la operación de fila del grupo de vista de cliente.
4. - El sistema de acuerdo con la reivindicación 1, en donde la operación de fila es una operación de lectura que colapsa filas de la vista jerárquica en una fila colapsada, expande una fila colapsada para mostrar una o más filas nuevas en la vista jerárquica, y agrega o remueve filas basándose en el desplazamiento del grupo de vista de cliente.
5. - El sistema de acuerdo con la reivindicación 1, en donde la operación de fila es una operación de edición asociada con la inserción de una fila, eliminación de una fila, indentación de una fila, o indentación exterior de una fila en el grupo de vista del cliente.
6. - El sistema de acuerdo con la reivindicación 1, en donde el componente de compaginación compagina el grupo de datos jerárquico de filas relevantes para la operación de fila basándose en filtración, clasificación, expansión de fila, y colapso de fila.
7.- El sistema de acuerdo con la reivindicación 1, en donde el componente de actualización actualiza una jerarquía no filtrada basándose en operaciones de fila asociadas con un modo de edición.
8. - El sistema de acuerdo con la reivindicación 1, en donde el componente de compaginación compagina el grupo de datos jerárquico asincrónicamente basándose en la operación de cambio de fila.
9. - Un sistema de procesamiento de datos implementado por computadora (200), que comprende: un componente de compaginación (102) de un servidor para obtener una página de un grupo de datos jerárquico en respuesta a una operación de fila en un grupo de vista de cliente de un cliente; y un componente de actualización (112) del servidor para actualizar el grupo de vista del cliente de acuerdo con una operación de cambio de fila, la página que incluye únicamente filas relevantes para la operación de cambio de fila.
10. - El sistema de acuerdo con la reivindicación 9, en donde el componente de compaginación maneja relaciones padre-hijo de filas en el grupo de vista de cliente.
11. - El sistema de acuerdo con la reivindicación 9, en donde el componente de compaginación crea un índice de estructura de jerarquía definido por un trazado ordenado de claves de fila y claves padre, y envía el índice a un cliente con el grupo de vista de cliente actualizado basándose en una operación de edición de fila.
12. - El sistema de acuerdo con la reivindicación 9, en donde la operación de fila es una operación de lectura, la operación de lectura asociada con colapsar el grupo de vista de cliente en una fila ' colapsada, expandir una fila para mostrar una o más nuevas filas en el grupo de vista de cliente, o agregar y remover filas basándose en desplazamiento del grupo de visita de cliente.
13.- El sistema de acuerdo con la reivindicación 9, en donde la operación de fila es una operación de edición asociada con la inserción de una fila, eliminación de una fila, indentación en la fila, o indentación exterior de una fila en el grupo de vista de cliente.
14.- Un método implementado por computadora para procesamiento de datos, que comprende: recibir una solicitud de un cliente para datos relevantes para presentarse en un grupo de vista de cliente basándose en una operación^de fila de cliente (500); obtener una página de un grupo de datos jerárquico para datos relevantes en respuesta a la solicitud (502); y enviar los datos relevantes al cliente para actualización del grupo de vista de cliente (504).
15. - El método de acuerdo con la reivindicación 14, que además' comprende manejar relaciones padre-hijo basándose en la operación de fila.
16. - El sistema de acuerdo con la reivindicación 14, que además comprende compaginar el grupo de datos jerárquico en respuesta a una operación de lectura que colapsa filas del grupo de vista de cliente en una fila colapsada, expandir una fila colapsada para mostrar una o más filas hijo en engrupo de vista de cliente, y mostrar/ocultar filas basándose en el desplazamiento del grupo de vista de cliente.
17. - El método de acuerdo con la reivindicación 14, que además comprende obtener una página del grupo de datos jerárquico en respuesta a una operación de edición asociada con la inserción de una fila, eliminación de una fila, indentación de una fila, o ¡ndentación exterior de una fila en el grupo de vista de cliente.
18. - El método de acuerdo con la reivindicación 14, que además comprende aplicar uno o más de filtración, clasificación, o agrupación para recibir los datos relevantes.
19. - El método de acuerdo con la reivindicación 14, que además comprende crear una estructura de jerarquía no filtrada que define los datos relevantes relacionados con la paternidad de fila, nivel de perfil - de fila, filas hijo, y operaciones de indentación/indentación exterior.
20.- El método de acuerdo con la reivindicación 14, en donde la página del grupo de datos jerárquico se obtiene asincrónicamente basándose en la solicitud.
MX2010012866A 2008-05-26 2009-04-13 Compaginacion de datos jerarquicos. MX2010012866A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/127,006 US8825700B2 (en) 2008-05-26 2008-05-26 Paging hierarchical data
PCT/US2009/040296 WO2009151763A1 (en) 2008-05-26 2009-04-13 Paging hierarchical data

Publications (1)

Publication Number Publication Date
MX2010012866A true MX2010012866A (es) 2010-12-14

Family

ID=41342840

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2010012866A MX2010012866A (es) 2008-05-26 2009-04-13 Compaginacion de datos jerarquicos.

Country Status (15)

Country Link
US (2) US8825700B2 (es)
EP (1) EP2304609B1 (es)
JP (1) JP2011524047A (es)
KR (1) KR101581980B1 (es)
CN (1) CN102047252B (es)
AU (1) AU2009258015B2 (es)
BR (1) BRPI0911183A2 (es)
CA (1) CA2722320C (es)
IL (1) IL208488A (es)
MX (1) MX2010012866A (es)
MY (1) MY162124A (es)
RU (1) RU2507574C2 (es)
SG (1) SG191597A1 (es)
WO (1) WO2009151763A1 (es)
ZA (1) ZA201007131B (es)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8001155B2 (en) * 2008-06-20 2011-08-16 Microsoft Corporation Hierarchically presenting tabular data
US20100199223A1 (en) * 2009-02-03 2010-08-05 Oracle International Corporation Hierarchy display
US8965866B2 (en) * 2009-12-17 2015-02-24 Business Objects Software Limited Optimizing data transfer time on graphics processor units
JP5337745B2 (ja) * 2010-03-08 2013-11-06 株式会社日立製作所 データ処理装置
US10666726B2 (en) 2012-05-08 2020-05-26 Wingarc1St Inc. Data processing system, and program for managing data
WO2014056201A1 (en) * 2012-10-12 2014-04-17 Mediatek Inc. Layout module for printed circuit board
US20150223169A1 (en) * 2014-02-06 2015-08-06 Nokia Corporation Method, apparatus, and computer program product for initial indication of block allocation within page for wireless networks
US10262075B2 (en) * 2014-12-05 2019-04-16 Sap Se Efficient navigation through hierarchical mappings
EP3035179A1 (en) * 2014-12-19 2016-06-22 Thomson Licensing Data processing apparatus and method for rendering a tree structure
JP6606436B2 (ja) * 2016-01-19 2019-11-13 ウイングアーク1st株式会社 情報可視化システム
CN107105500B (zh) * 2016-02-19 2019-09-17 电信科学技术研究院 一种通信方法及装置
US10353980B2 (en) 2016-11-30 2019-07-16 Sap Se Client-side paging for hierarchy data structures in restful web services
US11455079B2 (en) * 2018-11-05 2022-09-27 Sigma Computing, Inc. Nested pagination for presenting a data set in a graphical user interface
CN111190912B (zh) * 2019-12-27 2023-06-20 山大地纬软件股份有限公司 一种基于行变更的面向大事务的分片执行方法和装置

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4430701A (en) * 1981-08-03 1984-02-07 International Business Machines Corporation Method and apparatus for a hierarchical paging storage system
US5615325A (en) * 1994-09-29 1997-03-25 Intel Corporation Graphical viewer for heirarchical datasets
US5724577A (en) * 1995-06-07 1998-03-03 Lockheed Martin Corporation Method for operating a computer which searches a relational database organizer using a hierarchical database outline
US5696927A (en) 1995-12-21 1997-12-09 Advanced Micro Devices, Inc. Memory paging system and method including compressed page mapping hierarchy
US6028602A (en) * 1997-05-30 2000-02-22 Telefonaktiebolaget Lm Ericsson Method for managing contents of a hierarchical data model
US5974407A (en) 1997-09-29 1999-10-26 Sacks; Jerome E. Method and apparatus for implementing a hierarchical database management system (HDBMS) using a relational database management system (RDBMS) as the implementing apparatus
US6356920B1 (en) 1998-03-09 2002-03-12 X-Aware, Inc Dynamic, hierarchical data exchange system
US6430574B1 (en) * 1999-07-22 2002-08-06 At&T Corp. Method and apparatus for displaying and header scrolling a hierarchical data structure
US6711715B1 (en) * 1999-08-27 2004-03-23 Microsoft Corporation Method and system for efficient storage and restoration of display state data
US6559871B1 (en) * 1999-09-29 2003-05-06 International Business Machines Corporation Asynchronous tree navigator graphical user interface and associated methods
EP1397757A2 (en) 1999-12-20 2004-03-17 Acta Technology, Inc. Data restructurer for flattening hierarchies
US6859217B2 (en) * 2000-07-19 2005-02-22 Microsoft Corporation System and method to display and manage data within hierarchies and polyarchies of information
US6816061B1 (en) * 2000-09-15 2004-11-09 Keith K. Wong Communication system for communicating common data to a plurality of reception devices
US20020083073A1 (en) * 2000-12-22 2002-06-27 Vaidya Neelam N. Managing a layered hierarchical data set
US6961909B2 (en) * 2001-01-05 2005-11-01 Hewlett-Packard Development Company, L.P. System for displaying a hierarchical directory
US6898593B1 (en) 2001-07-10 2005-05-24 I2 Technologies Us, Inc. Sorted-paged retrieval of hierarchical data from relational databases
EP1552501A4 (en) 2002-06-12 2009-07-01 Jena Jordahl TOOLS FOR STORAGE, EXTRACTION, HANDLING AND VISUALIZATION OF DATA, PROVIDING MULTIPLE VIEWPOINTS OF HIERARCHICAL PERCEIVES
AU2002953555A0 (en) * 2002-12-23 2003-01-16 Canon Kabushiki Kaisha Method for presenting hierarchical data
US7305396B2 (en) * 2002-12-31 2007-12-04 Robert Bosch Gmbh Hierarchical system and method for on-demand loading of data in a navigation system
US7289990B2 (en) 2003-06-26 2007-10-30 International Business Machines Corporation Method and apparatus for reducing index sizes and increasing performance of non-relational databases
US7360175B2 (en) * 2003-10-03 2008-04-15 Lexisnexis, A Division Of Reed Elsevier Inc. Hierarchical, multilevel, expand and collapse navigation aid for hierarchical structures
US7827591B2 (en) * 2003-10-08 2010-11-02 Fmr Llc Management of hierarchical reference data
WO2005052810A1 (en) * 2003-11-28 2005-06-09 Canon Kabushiki Kaisha Method of constructing preferred views of hierarchical data
US20050187918A1 (en) * 2003-12-01 2005-08-25 George Fitzgerald Method of storing fast throughput experimentation information in a database
US7640497B1 (en) * 2003-12-22 2009-12-29 Apple Inc. Transforming a hierarchical data structure according to requirements specified in a transformation template
US20050154974A1 (en) * 2004-01-14 2005-07-14 International Business Machines Corporation Method, apparatus and program storage device for inline controlling of row and column sets in tabular displays
US7277885B2 (en) 2004-02-18 2007-10-02 Microsoft Corporation Systems and methods for filter processing using hierarchical data and data structures
US7360167B2 (en) * 2004-03-05 2008-04-15 International Business Machines Corporation User interface expander and collapser
EP1870814B1 (en) * 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
GB2413655A (en) * 2004-04-30 2005-11-02 Hewlett Packard Development Co Method and system for updating hierarchical data structures
US7769770B2 (en) * 2004-07-14 2010-08-03 Microsoft Corporation Secondary index and indexed view maintenance for updates to complex types
GB2418747A (en) * 2004-09-29 2006-04-05 Siemens Ag A data structure distributed over a number of pages
US7499939B2 (en) * 2004-10-18 2009-03-03 International Business Machines Corporation Method for efficiently managing membership in a hierarchical data structure
US7519923B2 (en) * 2004-10-20 2009-04-14 International Business Machines Corporation Method for generating a tree view of elements in a graphical user interface (GUI)
US7827499B2 (en) * 2004-10-29 2010-11-02 Hewlett-Packard Development Company, L.P. Hierarchical dataset dashboard view
US8296646B2 (en) * 2005-02-02 2012-10-23 International Business Machines Corporation Focusing on areas of the display of tabular data through hierarchical collapsing and expanding of cell areas
US7383516B2 (en) 2005-04-13 2008-06-03 Microsoft Corporation Systems and methods for displaying and editing hierarchical data
US20070050697A1 (en) * 2005-08-23 2007-03-01 International Business Machines Corporation Integrated spreadsheet expanding table with collapsable columns
RU2313824C2 (ru) 2005-09-26 2007-12-27 Михаил Васильевич Беляев Информационная система клиент - сервер и способ предоставления графического пользовательского интерфейса
US7543123B2 (en) 2005-11-07 2009-06-02 International Business Machines Corporation Multistage virtual memory paging system
US7533112B2 (en) 2006-03-27 2009-05-12 Microsoft Corporation Context hierarchies for address searching
GB0610571D0 (en) * 2006-05-27 2006-07-05 Ibm Managing distributed hierarchical data
US20090024590A1 (en) * 2007-03-15 2009-01-22 Sturge Timothy User contributed knowledge database
US9317494B2 (en) * 2007-04-03 2016-04-19 Sap Se Graphical hierarchy conversion

Also Published As

Publication number Publication date
EP2304609A4 (en) 2016-08-17
AU2009258015B2 (en) 2014-06-05
WO2009151763A1 (en) 2009-12-17
CA2722320A1 (en) 2009-12-17
EP2304609B1 (en) 2020-10-14
EP2304609A1 (en) 2011-04-06
KR101581980B1 (ko) 2015-12-31
RU2010148134A (ru) 2012-05-27
CA2722320C (en) 2015-06-30
CN102047252A (zh) 2011-05-04
CN102047252B (zh) 2014-07-02
US20140344218A1 (en) 2014-11-20
IL208488A0 (en) 2010-12-30
BRPI0911183A2 (pt) 2015-10-13
US20090292718A1 (en) 2009-11-26
KR20110010736A (ko) 2011-02-07
US8825700B2 (en) 2014-09-02
ZA201007131B (en) 2012-01-25
JP2011524047A (ja) 2011-08-25
SG191597A1 (en) 2013-07-31
MY162124A (en) 2017-05-31
IL208488A (en) 2016-07-31
AU2009258015A1 (en) 2009-12-17
RU2507574C2 (ru) 2014-02-20

Similar Documents

Publication Publication Date Title
MX2010012866A (es) Compaginacion de datos jerarquicos.
US11468103B2 (en) Relational modeler and renderer for non-relational data
US7315857B2 (en) Method and system for propagating annotations using pattern matching
RU2408061C2 (ru) Интерфейс прикладного программирования хранилища для общей платформы данных
KR101137170B1 (ko) 단층화된 계층적 구조에서 의미 있는 이름의 생성
RU2427896C2 (ru) Аннотирование документов в совместно работающих приложениях данными в разрозненных информационных системах
JP5710851B2 (ja) 影響分析のためのシステムおよび方法
US7890541B2 (en) Partition by growth table space
US9639542B2 (en) Dynamic mapping of extensible datasets to relational database schemas
US20170255709A1 (en) Atomic updating of graph database index structures
Rost et al. Distributed temporal graph analytics with GRADOOP
WO2015128756A1 (en) A method, system and computer program for scanning a plurality of storage regions within memory for a specified quantity of results
WO2018097846A1 (en) Edge store designs for graph databases
US20170255708A1 (en) Index structures for graph databases
US20040015486A1 (en) System and method for storing and retrieving data
Bleifuß et al. Exploring change: A new dimension of data analytics
US20230394009A1 (en) Data pruning based on metadata
EP3635580A1 (en) Functional equivalence of tuples and edges in graph databases
Liu et al. Using provenance to efficiently improve metadata searching performance in storage systems
US20180144060A1 (en) Processing deleted edges in graph databases
JP4825504B2 (ja) データ登録・検索システムおよびデータ登録・検索方法
Frazier et al. Computational representation of biological systems

Legal Events

Date Code Title Description
FG Grant or registration