MX2007011690A - Sistemas y metodos para manipular datos en un sistema de almacenamiento de datos. - Google Patents

Sistemas y metodos para manipular datos en un sistema de almacenamiento de datos.

Info

Publication number
MX2007011690A
MX2007011690A MX2007011690A MX2007011690A MX2007011690A MX 2007011690 A MX2007011690 A MX 2007011690A MX 2007011690 A MX2007011690 A MX 2007011690A MX 2007011690 A MX2007011690 A MX 2007011690A MX 2007011690 A MX2007011690 A MX 2007011690A
Authority
MX
Mexico
Prior art keywords
data
article
component
storage system
data storage
Prior art date
Application number
MX2007011690A
Other languages
English (en)
Inventor
Nigel R Ellis
Jason T Hunter
Gregory S Friedman
Jeffrey T Pearce
Michael J Newman
Amit Shukla
Jack Richins
Richard L Negrin
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 MX2007011690A publication Critical patent/MX2007011690A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • 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/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging

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)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

La invencion en cuestion proporciona un sistema y/o metodo que facilita manipular datos asociados con un sistema de almacenamiento de datos, en donde el sistema de almacenamiento de datos tiene al menos una de una caracteristica y una limitacion asociada con un modelo de datos. El modelo de datos puede representar el sistema de almacenamiento de datos para que el sistema de almacenamiento de datos sea un sistema de archivo basado en base de datos. Un componente de manipulacion de datos puede manipular datos asociados con el modelo de datos e impone al menos una limitacion y la caracteristica para asegurar la integridad de tal sistema. Ademas, un componente API puede invocarse para proporcionar la manipulacion de datos dentro del sistema de almacenamiento de datos.

Description

SISTEMAS Y MÉTODOS PARA MANIPULAR DATOS EM UM S1STEI DE ALMACENAMIENTO DE DATOS CAMPO TÉCNICO La presente invención generalmente se refiere a bases datos, y más particularmente a sistemas y/o métodos que facilitan manipular datos basándose en un modelo de datos y/o implementación de seguridad asociada con un sistema de almacenamiento de datos respectivo.
ANTECEDENTES DE LA INVENCIÓN Los avances en la tecnología de la computadora (por ejemplo, velocidad de microprocesador, capacidad de memoria, banda ancha de transferencia de datos, funcionalidad de software, y similares) generalmente contribuyeron a aplicación de computadora aumentada en varias industrias. Sistemas de servidor siempre más poderosos, que frecuentemente se configuran como un orden de servidores, comúnmente se proporcionan para dar servicio a solicitudes que se originan de fuentes externas tal como la Web Amplia Mundial, por ejemplo. Mientras la cantidad de datos electrónicos disponibles crece, se hace más importante almacenar datos tales de una forma manejable que facilite al usuario búsquedas y recuperación de datos condescendiente y rápida. Hoy en día, un acercamiento común es almacenar datos electrónicos a una o más bases de datos En general, una base de datos típica puede denominarse como una colección organizada de información con datos estructurados para que un programa de computadora pueda buscar y seleccionar rápidamente piezas deseadas de datos, por ejemplo Comúnmente, los datos dentro de una base de datos se revisa a través de una o más tablas. Tales tablas se ordenan como un orden de filas y columnas También, las tablas pueden comprender un grupo de registros, en donde un registro incluye un grupo de campos Los registros comúnmente se indexan como filas dentro de una tabla y los campos de registro típicamente se indexan como columnas, para que un par de fila/columna de índice pueda preferenciar a un dato particular dentro de una tabla Por ejemplo, una fila puede almacenar en registro de datos completos que se relaciona a una transacción de ventas, una persona, o un proyecto De forma similar, las columnas de la tabla pueden definir porciones separadas de las filas que tienen el mismo formato de datos general, en donde las columnas pueden recluir campos de los registros Cada pieza individual de datos, aislada, generalmente no es muy informativa Las aplicaciones de base de datos hacen a los datos más útiles debido a que ayudan a los usuarios a organizar y procesar los datos Las aplicaciones de base de datos permiten al usuario comparar, clasificar, ordenar, fusionar, separar e interconectar los datos, para que la información útil pueda generarse de los datos. La capacidad y versatilidad de base de datos a crecido increíblemente para permitir bases de datos que utilizan capacidad de almacenamiento virtualmente imprimidas. Sin embargo, las bases de datos típicas ofrecen capacidad de consulta limitada con el tiempo, extensión de archivo, ubicación y tamaño. Por ejemplo, con el fin de buscar las vastas cantidades de datos asociadas con una base de datos, una búsqueda típica se limita a un nombre de archivo, tamaño de archivo, una fecha de creación, etc., en donde tales técnicas son deficientes e ineptas. Con una creación continúa y aumento de datos de usuarios finales, los problemas y dificultades que rodean encontrar, relacionar, manipular, y almacenar tales datos aumentan. Los usuario finales escriben documentos, almacenan fotografías, copian música de discos compactos, reciben correos electrónicos, retienen copias de correos electrónicos enviados, etc. Por ejemplo, en el procedimiento simple de crear un disco compacto de música, el usuario final puede crear megabytes de datos. Copiar la música del disco compacto, convertir el archivo a un formato adecuado, crear una cubierta de caja de joya, y diseñar una etiqueta de disco compacto, todos requieren la creación de datos. No solo son las complicaciones que rodean a los usuarios, si no que los desarrolladores tienen temas similares con los datos. Los desarrolladores crean y escriben un gran número de aplicaciones que varían de aplicaciones personales a aplicaciones de empresa altamente desarrolladas. Mientras crean y/o desarrollan, los desarrolladores frecuentemente, si no es que siempre reúnen datos. Cuando tienen tales datos, los datos necesitan almacenarse. En otras palabras, los problemas y dificultades que rodean encontrar, relacionar, manipular, y almacenar datos afectan tanto el desarrollador como al usuario final. En particular, la integridad de datos debe asegurarse con cualquier manipulación de tales datos sin interrumpir y/o invocar cualquiera de las condiciones inestables dentro de los sistemas y/o bases de datos convencionales.
BREVE DESCRIPCIÓN DE LA 1NVENCIOÍ Lo siguiente presenta un compendio simplificado de la invención con el fin de proporcionar un entendimiento básico de algunos aspectos de la invención. Este compendio no es una revisión extensiva de la invención. No se pretende ni identificar elementos clave o elemento críticos de la invención ni delinear el alcance de la invención. Su único propósito es presentar algunos conceptos de la invención en una forma simplificada como un preludio a la descripción más detallada que se presenta posteriormente. La invención en cuestión se refiere a sistemas y/o métodos que facilitan la manipulación de datos con base al menos en parte en un modelo de datos asociado con características y/o restricciones. Un modelo de datos puede representar un sistema de almacenamiento de datos (por ejemplo, un sistema de almacenamiento de archivo basado en base de datos), en donde tal modelo es un modelo jerárquico de entidades persistidas y subventiladas que pueden representar ¡nformación dentro de un sistema de almacenamiento de datos como casos de tipos complejos. Con el fin de facilitar la manipulación de datos, un componente de manipulación de datos puede proporcionar procedimientos de manipulación de datos asociados con el sistema de almacenamiento de datos mientras impone y/o implementa al menos una de una característica y/o restricción. En otras palabras, el componente de manipulación de datos persiste datos dentro del sistema de almacenamiento de datos durante cualquier manipulación de datos adecuada. De acuerdo con un aspecto de la invención en cuestión, el componente de manipulación de datos puede incluir un componente de procedimiento que proporciona al menos un procedimiento, en donde el procedimiento manipula los datos. Procedimiento en datos puede incrementar una copia, una actualización, un reemplazo, una obtención, un grupo, una creación, una eliminación, un movimiento, una modificación, etc. Además, el componente de manipulación de datos puede incluir un componente impositor que impone y/o incrementa una característica y/o restricción asociada con el modelo de datos que representa un sistema de almacenamiento de datos. Al utilizar una característica y/o restricción la asociación con la manipulación de datos, la integridad del modelo de datos se mantiene a través del sistema de almacenamiento de datos. De acuerdo con otro aspecto de la invención en cuestión, el componente de manipulación de datos puede utilizar una interfase de programación de aplicación (API). La API puede exponerse a clientes (ya sea, un llamador)m en donde la aplicación es un área de superficie pública que puede llamar una o más rutinas de implementación privadas que llevan a cabo una solicitud de cliente. En un aspecto, la API puede proporcionar las rutinas (por ejemplo, no pueden involucrarse ninguna subrutina). La API puede utilizarse para permitir a un usuario y llamar y/o utilizar un procedimiento asociado con manipular datos dentro del sistema de almacenamiento de datos mientras mantiene al menos una característica y/o restricción asociada con este. La aplicación además puede utilizar un componente de definición de API que puede definir varias funciones y/o procedimientos que permiten que se realicen las operaciones adecuadas dentro del sistema de almacenamiento de datos. De acuerdo incluso con otro aspecto, el componente de manipulación de datos puede incluir un componente de cierre que facilita soportar múltiples llamadores concurrentes, mientras al mismo tiempo elimina los puntos muertos. Por ejemplo, imagine un escenario en donde existen múltiples llamadores concurrentes que solicitan la propiedad de un grupo común de recursos de tal forma que ninguna de las solicitudes puede satisfacerse debido a que el llamador espera al otro, de esa forma puede ocurrir un punto muerto. En tal caso, el componente de cierre puede cerrar (por ejemplo, los llevadores se bloquean), en donde la única forma de salir del caso es desalojar a uno de los llamadores. El componente de cierre también puede soportar múltiples llamadores concurrentes para que una lógica de cierre compleja pueda garantizar solicitudes individuales para tener éxito o fallar atómicamente. Además, el componente de manipulación de datos puede incluir un componente de concurrencia optimista que utiliza una técnica de concurrencia optimista, en donde tal técnica asume que la probabilidad de un primer procedimiento haga un cambio en el tiempo substancialmente similar como un segundo procedimiento es baja y un cierre no se emplea hasta que se compromete al sistema de almacenamiento de datos. En donde un acceso concurrente por múltiples llamadores causa suposiciones de un llamador particular sobre un estado del almacenamiento para ser inválido, las suposiciones inválidas pueden detectarse y se rechaza a solicitudes de cambio de datos por el sistema hasta que el llamador vuelve a sincronizar el entendimiento del estado de sistema y vuelve a enviar la solicitud. Está técnica puede mejorar el desempeño del sistema al eliminar la necesidad de ejecutar las instrucciones para sacra un cierre. Además, está técnica puede reducir los puntos muertos en el sistema, al eliminar la necesidad de sacar cierres a largo plazo. De acuerdo con otro aspecto de la invención en cuestión, el componente de manipulación de datos puede incluir un componente de seguridad que proporciona técnicas de seguridad que pueden corresponder a las varias manipulaciones de datos empleadas por tal sistema. El componente de seguridad puede utilizar un perfil de usuario y/o varias medidas de seguridad tal como, pero sin limitarse a, un registro, una contraseña, indicio biométpco (por ejemplo, una huella digital, una revisión de retina, inductancia, ), reconocimiento por voz, etc para asegurar la integridad y validez de los datos de manipulación de entidad particulares Además, el componente de manipulación de datos puede incluir un componente de error que proporciona un código de error en el caso que la manipulación de datos conlleve a que no se imponga una característica y/o restricción El código de error puede implementarse para significar que la manipulación de datos está completa, en donde el código de error puede corresponder a texto que describe un error En otros aspectos de la invención en cuestión, los métodos se proporcionan para facilitar manipular datos mientras conforman un modelo de datos La siguiente descripción y los dibujos anexos mencionan el método y ciertos aspectos ilustrativos de la invención Estos aspectos son indicativos, sin embargo de algunas de las varias formas en las cuales los principios de la invención pueden emplearse y la invención en cuestión pretenden incluir todos los aspectos y sus equivalentes Otras ventajas y características novedosas de la invención serán evidentes a partir de la siguiente descripción detallada de la invención cuando se consideran en conjunto con los dibujos BREVE DESCRIPCIÓN DE LOS DIBUJOS La Figura 1 ¡lustra un diagrama de bloque de un sistema ilustrativo que facilita manipular datos con base al menos en parte en un modelo de datos con características respectivas. La Figura 2 ilustra un diagrama de bloque del sistema ilustrativo que facilita manipular datos dentro de la característica de un sistema de almacenamiento de datos. La Figura 3 ¡lustra un diagrama de bloque de un sistema ilustrativo que facilita implementar integridad y seguridad de datos con la manipulación de datos asociados con un sistema de almacenamiento de datos. La Figura 4 ilustra un diagrama de bloque de un sistema ilustrativo que facilita implementar una API que manipula datos asociados con un sistema de almacenamiento de datos. La Figura 5 ilustra un diagrama de bloque de un sistema ilustrativo que facilita invocar una API que manipula datos dentro de las características de un sistema de almacenamiento de datos. La Figura 6 ilustra un diagrama de bloque de un sistema ilustrativo que facilita invocar una API que manipula datos dentro de las características de un sistema de almacenamiento de datos. La Figura 7 ilustra un diagrama de bloque de un sistema ilustrativo que facilita manipular datos dentro de un sistema de almacenamiento de datos que utiliza un componente API. La Figura 8 ilustra un diagrama de bloque de un sistema ilustrativo que facilita manipular datos con base al menos en parte en un modelo de datos La Figura 9 ilustra una metodología ilustrativa para invocar una manipulación de datos con base al menos en parte en un sistema basado en base de datos mientras impone al menos una restricción de un modelo La Figura 10 ilustra una metodología ilustrativa para manipular datos con base al menos en in modelo de datos con característica respectivas que se imponen La Figura 11 ilustra un ambiente en red ilustrativo, en donde los aspectos novedosos de la invención en cuestión pueden emplearse La Figura 12 ilustra un sistema cooperativo ilustrativo que puede emplearse de acuerdo con la invención en cuestión DESCRIPCIÓN DE LA INVENCIÓN Como se utiliza en esta solicitud, los términos "componentes", "sistemas", "interfases", y similares pretenden denominar una entidad relacionada con computadora, ya sea hardware, software (por ejemplo, en ejecución), y/o firmware Por ejemplo, un componente puede ser un procedimiento que corre en un procesador, un procesador, un objeto, un ejecutable, un programa, y/o una computadora A manera de ilustración tanto una aplicación que corre en un servido como el servidor pueden ser un componente Uno o mas componentes pueden recibir dentro de un procedimiento y un componente puede localizarse en una computadora y/o distribuirse entre dos o más computadoras Las invención en cuestión se describe con referencia a los dibujos, en donde números de referencia similares se utilizan para denominar elementos similares a través de esta En la siguiente descripción, para propósitos de explicación, numerosos detalles específicos se mencionan con el fin de proporcionar un entendimiento completo de la invención en cuestión Sin embrago, puede ser evidente que la invención en cuestión puede practicarse sin estos detalles específicos En otros casos, las estructuras y dispositivos bien conocidos se muestran en forma de diagrama de bloque para facilitar describir la invención en cuestión Ahora cambiando a las Figuras, la Figura 1 ilustra un sistema 100 que facilita manipular datos con base al menos en un modelo de datos con una característica respectiva del mismo Un modelo de datos 102 puede ser un modelo complejo con base al menos en una estructura de base de datos, en donde un artículo, un sub artículo, una propiedad, y una relación se definen para permitir la representación de información dentro de un sistema de almacenamiento de datos como casos de tipos complejos El modelo de datos 102 puede utilizar un grupo de bloques de construcción básicos para crear y manejar objetos persistidos, ricos y similares entre objetos Un artículo puede definirse como la unidad más pequeña de consistencia dentro del modelo de datos 102, que puede asegurarse, ponerse en serie, sincronizarse, copiarse, recuperarse/restaurarse independientemente, etc. El artículo es de un caso de un tipo, dentro de todos los artículos en el modelo de datos 102 pueden almacenarse en una extensión global individual de artículos. El modelo de datos 102 puede estar basado al menos en un artículo y/o estructura de contenedor. Además, el modelo de datos 102 puede ser una plataforma de almacenamiento que expone inventa datos ricos que se entierran en archivos como artículos. Se debe apreciar que el modelo de datos 102 puede representar un sistema de almacenamiento de archivo basado en base de datos para soportar la funcionalidad antes discutida, en donde cualquier característica y/o atributos adecuados pueden implementarse. Además, el modelo de datos 102 puede presentar un sistema de almacenamiento de archivo basado en base de datos que utilizan una estructura jerárquica de contenedor, en donde un contenedor es un artículo que puede contener cero ó más artículos. El concepto de conclusión se implementa a través de una propiedad de ID de contenedor dentro de la clase asociada. Un almacenamiento también puede ser un contenedor para que el almacenamiento pueda ser una unidad de organización y/o maneja habilidad física. Además, el almacenamiento representa un contendor de raíz a través de los contendores dentro de la estructura jerárquica. Además, el modelo de datos 102 puede representar un sistema de almacenamiento de datos que es un sistema basado en base de datos que define un modelo jerárquico de al menos una entidad persistida y 0 ó más subentidades por cada entidad para representar información como un tipo complejo Un componente de manipulación de datos 104 puede manipular datos relacionados con el modelo de datos 102 mientras asegura la integridad de datos y estabilidad asociada con características de tal modelo de datos 102 El modelo de datos 102 puede incluir cualquiera de las características y/o vías adecuadas asociadas con el sistema de almacenamiento de archivo basado en base de datos. El componente de manipulación de datos 104 puede proporcionar un movimiento, una eliminación, una copia, una creación, una actualización, un reemplazo, etc para al menos un objeto mientras asegura un sistema estable (por ejemplo, que conforma cualquiera de las características asociadas con el sistema de almacenamiento de archivo basado en base de datos representado por el modelo de datos 102) Por ejemplo, un modelo de datos 102 puede representar un sistema de almacenamiento de archivo basado en base de datos que tiene la característica en donde cada ID para un contenedor es única Continuando con el ejemplo, el componente de manipulación de datos 104 puede emplear cualquier manipulación de datos adecuada (por ejemplo, copiar, actualizar, reemplazar, obtener, establecer, crear, eliminar, mover, .) mientras impone y/o mantiene la cualidad única de la ID para los contenedores Se debe apreciar que las funciones apreciadas anteriormente no se observan para limitar en la invención y que cualquier manipulación de datos adecuada involucra el modelo de datos 102 puede involucrase mientras sostiene cualquiera de las características adecuadas que se relacionan con esto. Además, se debe entender que el componente de manipulación 104 puede manipular datos que corresponden a la estructura jerárquica (por ejemplo, que utilizan al menos un o de un almacenamiento y contenedor,...) basándose en el modelo de datos 102. De acuerdo con un aspecto de la invención en cuestión, la manipulación de datos puede basarse al menos en parte en una entrada de un usuario al utilizar, por ejemplo como una interfase de programación de aplicación (API) (no mostrada). Al emplear la API, las interacciones y/o manipulaciones que involucran el modelo de datos 102 y que corresponden al sistema de almacenamiento de archivo basado en base de datos puede implementarse mientras sostiene/impone cualquiera de las características asociadas con él. Se debe apreciar y entender que la API puede invocarse por el componente de manipulación de datos 104, un componente separado, incorporado en el componente de manipulación y datos 104, y/o cualquier combinación del mismo. El sistema 100 además incluye un componente de interfase 106, que proporciona varios adaptadores, conectores, canales, trayectorias de comunicación, etc. para integrar el componente de manipulación de datos 104 virtualmente en cualquier sistema (s) operativo y/o base de datos. Además. El componente de interfase 106 puede proporcionar varis adaptadores, conectores, canales, trayectorias de comunicación etc. que se proporcionan para interacción de datos y el componente de manipulación de datos 104. Se debe apreciar que aunque el componente de interfase 106 se incorpora en el componente de manipulación de datos 104, tal implementación no se limita. Por ejemplo, el componente de interfase 106 puede ser un componente aislado para recibir o transmitir los datos en relación al sistema 100. La Figura 2 ilustra un sistema 200 que facilita manipular datos dentro de las características de un sistema de almacenamiento de datos. El sistema de almacenamiento de datos 202 puede ser un sistema de almacenamiento de archivo basado en base de datos que representa casos de datos como tipos complejos al utilizar al menos una estructura jerárquica. El sistema de almacenamiento de datos 202 puede incluir al menos una característica que se impone para asegurar las características del sistema de almacenamiento de datos 202 mientras se manipulan los datos. Se debe apreciar que un modelo de datos (no mostrado) puede representar el sistema de almacenamiento de datos 202. Además, un artículo, un subartículo, una propiedad, y una relación puede definirse entre el sistema de almacenamiento de datos 202 para permitir la representación de información como casos de tipos complejos. El sistema de almacenamiento de datos 202 puede ser un modelo de datos que puede describir una forma de datos, declarar restricciones para implicar cierta consistencia semántica en los datos, y definir asociaciones semánticas entre los datos. El sistema de almacenamiento de datos 202 puede utilizar un grupo de bloques de construcción básico para crear y manejar objetos persistidos, ricos y enlaces entre objetos. Por ejemplo, el bloque de construcción puede incluir un "artículo" una "Extensión de Artículo", un "Enlace", y un "Fragmento de Artículo". Un "Artículo" puede definirse como la unidad más pequeña de consistencia dentro del sistema de almacenamiento de datos 202, que puede asegurarse, tenerse en serie, sincronizarse, copiarse, recuperarse/restaurarse, independientemente etc. Por ejemplo, los artículos pueden ser la unidad más pequeña de consistencia, pero él limite presentado alrededor de un artículo puede incluir enlaces, extensiones de artículo, fragmentos de artículo que pueden obtenerse lógicamente por un artículo. De esa forma, un artículo puede ser una dila en una tabla, pero también se refiere a una fila de artículo y todas sus partes secundarias. En otras palabras, el artículo puede eliminarse, copiarse, etc. con una garantía que tal operación se aplica atómicamente al artículo y a todas sus partes. El artículo es un caso de un tipo, en donde todos los artículos en el sistema de almacenamiento de datos 202 pueden almacenarse en una extensión global individual de artículos. Una "Extensión de Artículo" es un tipo de artículo que se extiende la utilizar una extensión de entidad. Las extensiones de entidad pueden definirse en un esquema con atributos respectivos (por ejemplo, un nombre, un tipo de artículo extendido, una declaración de propiedad,...). La "extensión de Artículo" puede implementarse para agrupar un grupo de propiedades que puede aplicarse al tipo de articulo que se extiende El "enlace" es un tipo de entidad que define una asociación entre dos casos de articulo, en donde los enlaces se dirigen (por ejemplo, un artículo es una fuente del enlace y el otro es el objetivo del enlace) Un "Fragmento de Artículo" es un tipo de entidad que permite la declaración de grandes colecciones en tipos de artículo y/o extensiones de artículo, en donde los elemento de colección pueden ser una entidad Se debe apreciar y entender que el sistema de almacenamiento de datos 202 puede representar cualquier sistema de almacenamiento de archivo con base de base de datos adecuado que proporciona la representación de datos como caso de tipos complejos y la descripción anterior no se observa como limitando la invención en cuestión El sistema de almacenamiento de datos 202 puede ser substancialmente similar a la representación del modelo de datos 102 ilustrado en la Figura 1 Un componente de manipulación de datos 204 puede proporcionar la manipulación de datos dentro del sistema de almacenamiento de datos 202 mientras impone al menos una característica asociada con tal sistema de almacenamiento 202 El componente de manipulación de datos 204 puede proporcionar una manipulación tal como, pero que no se limita a, una copia, una actualización, un reemplazo, una obtención, un grupo, una creación, una eliminación, un movimiento, etc en datos (por ejemplo, representados por casos de tipos complejos) Se debe apreciar que el componente de manipulación de datos 204 puede ser substancialmente similar del componente de manipulación de datos 104 como se ilustra en la Figura 1 El componente de manipulación de datos 204 puede incluir un componente de procedimiento 206 que proporciona funciones especificas para manipular datos de acuerdo con características asociadas con el sistema de almacenamiento de datos 202 En otras palabras, el componente de procedimiento 206 puede proporcionar técnicas de manipulación relacionadas con el sistema de almacenamiento de datos 202 Por ejemplo, el componente de procedimiento de datos 206 puede incluir una copia, un movimiento, un reemplazo, un grupo, una eliminación, una creación, una tensión, una actualización, en datos y/o representación de datos como casos de tipos complejos Se debe apreciar que el componente de procedimiento 206 puede proporcionar cualquier técnica de manipulación de datos adecuada y/o función que puede implementarse con el sistema de almacenamiento de datos 202 Aunque el componente de procedimiento 206 se ilustra como incorporado en el componente de manipulación de datos 204, la invención en cuestión no se limita El componente de procedimiento 206 también puede ser un componente aislado o incorporado en el sistema de almacenamiento de datos 202 (por ejemplo, que puede ser una ejemphficación de un concepto de modelos de datos) El componente de manipulación de datos 204 además puede incluir un componente potenciador 208 para incorporar al menos una característica de un sistema de almacenamiento de datos 202 con la manipulación de datos Como se discutió anteriormente, el sistema de almacenamiento de datos 202 puede incluir cualquier número adecuado de características que puede proporcionar guía en la manipulación de datos dentro de tal sistema de almacenamiento de datos 202 En otras palabras, el componente potenciador 208 permite la manipulación de datos dentro del sistema de almacenamiento de datos 202 sin interrumpir las restricciones de modelo de datos relacionadas con el sistema de datos 202 Se debe apreciar que el componente potenciador 208 puede incorporarse con el componente de manipulación de datos 204 (como se muestra), un componente aislado, incorporado en el sistema de almacenamiento de datos 202, y cualquier combinación de los mismos Por ejemplo, el sistema de almacenamiento de datos 202 puede utilizar un artículo como un contenedor y una jerarquía de estructura de almacenamiento (como se discutió anteriormente) El componente potenciador 208 puede implementar características que se relaciona a una ID de contendor asociada con el sistema de almacenamiento de datos 202 Por ejemplo, el componente potenciador 208 puede proporcionar al menos no de los siguientes (1) la ID de contendor para contener una ID de articulo no nula de un artículo en el almacenamiento (por ejemplo, esto puede implementarse con las funciones y/o técnicas de manipulación "Crear Artículo", "Crear Artículos Complejos", "Mover Artículo", y "Reemplazar Artículo" discutidos anteriormente), (2) la ID de contendor no se actualiza al utilizar la función y/o técnica de manipulación "Actualizar Artículo" (discutido anteriormente), y (3) la ID de contendor puede cambiarse a través de una llamada para "Mover Artículo". Se debe apreciar y entender que la invención en cuestión no se limita a los nombre de referencia de las funciones y/o técnicas anteriores. En otro ejemplo, el componente potenciador 208 puede ¡mplementar una semántica de transacción en conjunto con la manipulación de datos. El componente potenciador 208 puede implementar las siguientes semánticas de transacción: (1) Si no está activa la transacción, un código de error puede regresarse y no procesa a un grupo; y (2) se hace un intento para validar y aplicar la operación. Si validar o aplicar la operación tiene éxito, el control puede regresarse al llamador por los efectos de la operación no comprometida en la aplicación proporcionada por el llamador. Si validar o aplicar la operación falla, la transacción falla y surge un error, y el control puede regresarse al llamado. Una transacción fallida significa que el llamador puede emitir consultas en esa transacción pero no puede comprometer la transacción (por ejemplo, una llamada para comprometer puede resultar en un error). Se debe apreciar que la solicitud de API puede tener éxito atómicamente o fallar completamente. Una API compleja puede hacer al menos un cambio a una tabla de almacenamiento subyacente y puede implementar un grupo complejo de consistencia y/o pruebas de integridad. Además, se debe apreciar que el sistema 200 nunca se dejará en un estado inconsistente y/o inválido. La Figura 3 ilustra un sistema 300 que facilita implementar integridad de datos y seguridad y seguridad con la manipulación de datos asociados con un sistema de almacenamiento de datos. Un sistema de almacenamiento de datos 302 puede ser un sistema de almacenamiento de archivo basado en base de datos con base al menos en parte en un modelo de datos, en donde los datos se representan como casos de tipos complejos. Un componente de manipulación de datos 304 puede proporcionar manipulación de datos asociado con el sistema de almacenamiento de datos 302. El componente de manipulación de datos 304 puede incluir un componente de procedimiento 306 que puede proporcionar al menos una función y/o involucrada con manipular datos dentro del sistema de almacenamiento de datos 302. Además, el componente de manipulación de datos 304 puede incluir un componente potenciador 308 que instituye al menos una característica y/o guía respectiva de almacenamiento de datos 302, en donde tal característica asegura una restricción de módulo de datos para ¡mplementarse con la manipulación de datos. Se debe apreciar y entender que el sistema de almacenamiento de datos 302, el componente de manipulación de datos 304, el componente de procedimiento 306, y el componente potenciador 308 pueden ser substancialmente similares al sistema de almacenamiento de datos 202, el componente de manipulación de datos 204, el componente de procedimiento 206, y el componente potenciador 308 es respectivamente en la Figura 3. El componente de manipulación de datos 304 puede incluir un almacenamiento de datos 310 para facilitar almacenamiento y/o acceder al menos un procedimiento asociado con manipular datos dentro del sistema del almacenamiento de datos 302. Por ejemplo, el almacenamiento de datos 310 puede almacenar un procedimiento (por ejemplo, código) que puede utilizarse por una API, en donde una manipulación de datos puede recibirse por un usuario e invocarse mientras mantiene al menos una característica asociada con el sistema de almacenamiento de datos 302. En un ejemplo, el almacenamiento de datos 310 puede almacenar varias características asociadas con el sistema de almacenamiento de datos 302 y/o varios datos API (por ejemplo, subrutinas, etc.). En un ejemplo, el almacenamiento de datos 310 puede ser una unidad dura. El almacenamiento de datos 310 puede ser, por ejemplo, ya sea memoria volátil o memoria no volátil, o puede incluir tanto memoria volátil como no volátil. A manera de ilustración, y no de limitación, la memoria no volátil puede incluir memoria solo de lectura (ROM), ROM programable (PROM), ROM eléctricamente programable (EPROM), ROM eléctricamente borrable y programable (EEROM), o memoria flash. La memoria volátil puede incluir memoria de acceso aleatorio (RAM), que actúa como una memoria caché externa. A manera de ilustración y no de limitación, la RAM está disponible en muchas formas tal como RAM estática (SRAM), RAM dinámica (DRAM), DRAM sincrónica (SDRAM), SDRAM de velocidad de datos doble (DDR SDRAM), SDRAM aumentada (ESDRAM), DRAM de enlace sincrónico (SLDRAM), RAM directa de conductor común Ram (RDRAM), RAM dinámica de conductor común Ram directa (DRDRAM), y RAM dinámica de conductor común Ram (RDRAM). El almacenamiento de datos 310 de los sistemas y métodos en cuestión pretende comprender, sin limitarse a, estos y otros tipos de memoria adecuados Además, se debe apreciar que el almacenamiento de datos 310 puede ser un servidor y/o base de datos El componente de manipulación de datos 304 además puede incluir un componente de segundad 312 para proporcionar al menos un atributo de segundad al sistema 300 Por ejemplo, el componente de segundad 304 puede utilizar un perfil de usuario para que las funciones de manipulación de datos particulares y/o técnicas estén asociados con este Ademas, el componente de segundad 304 puede utilizar vanas medidas de segundad tal como, pero sin limitarse a, un registro, una contraseña, indicio biométpco (por ejemplo, una huella digital, una revisión de retina, inductancia, ), reconocimiento por voz, etc para asegurar la integridad y validez de los datos de manipulación de entidad particulares El componente de segundad 312 además puede emplear cualquier atributo de segundad adecuado asociado con el sistema de almacenamiento de datos 302 En otras palabras, el componente de segundad 302 puede implementar regulaciones de segundad para que se impongan las restricciones de segundad del sistema de almacenamiento de datos 302 La Figura 4 ilustra un sistema 400 que facilita implementar una API que manipula datos asociados con el sistema de almacenamiento de datos El sistema de almacenamiento de datos 402 puede ser un sistema de almacenamiento de archivo basado en base de datos que tiene al menos una característica asociada con el, en donde el sistema de almacenamiento de datos 402 puede representarse por un modelo de datos (no mostrado). El componente de manipulación de datos 404 puede permitir una manipulación de datos que incluye, pero no se limita a, una copia, un movimiento, un reemplazo, un grupo, una eliminación, una creación, una tensión, neutralización a datos respectivos al sistema de almacenamiento de datos 402. Se debe apreciar que el sistema de almacenamiento de datos 402 del componente de manipulación de datos 404 puede utilizar substancialmente funcionalidad similar mientras el sistema de almacenamiento de datos 302, el sistema de almacenamiento de datos 202, el componente de manipulación de datos 304, y el componente de manipulación de datos 204, en las Figuras 2 y 3 respectivamente. El componente de manipulación de datos 404 además puede incluir un componente de API 406 (denominado aquí como "API 406") que permite a una entidad manipular datos en el sistema de almacenamiento de datos 402. La entidad puede ser, pero no está limitada a, un usuario, una computadora, una base de datos... La API 406 puede recibir al menos una entrada de usuario para que la entrada de usuario sea un comando y/o función que involucra a la manipulación de datos dentro del sistema de almacenamiento de datos 402. Aunque se ilustra como incorporado en el componente de manipulación de datos 404, se debe apreciar qua la API 406 puede ser un componente aislado, incorporado en el sistema de almacenamiento de datos 402, y/o una combinación de los mismos.
Además, la API 406 puede utilizar varios componentes previamente descritos para proporcionar la manipulación de datos que utiliza procedimientos particulares mientras impone características respectivas al sistema de almacenamiento de datos 402. La Figura 5 ilustra un sistema 500 que facilita invocar una ¡nterfase de programación de aplicación (API) aunque manipula datos dentro de las características de un sistema de almacenamiento de datos. Un sistema de almacenamiento de datos 502 puede ser un sistema de almacenamiento de archivo basado en base de datos con al menos una característica de definición, en donde el sistema de almacenamiento de datos 502 puede estar basado al menos en parte de un modelo de datos (no mostrado). El componente de manipulación de datos 504 puede permitir una manipulación de datos que incluye, pero no se limita a, una copia, un movimiento, un reemplazo, un grupo, una eliminación, una creación, una obtención, una actualización a datos respectivos para el sistema de almacenamiento de datos 502. Se debe apreciar que el sistema de almacenamiento de datos 502 del componente de manipulación de datos 504 puede ser substancialmente similar al sistema de almacenamiento de datos 402, el sistema de almacenamiento de datos 302, el sistema de almacenamiento de datos 202, el componente de manipulación de datos 404, el componente de manipulación de datos 304, y componente de manipulación de datos 204, en la Figura 4, Figura 3, y Figura 2 respectivamente. El componente de manipulación de datos 504 puede incluir un componente API 504 (denominado como "API 506"). La API 506 puede proporcionar las manipulaciones de datos (por ejemplo, crear, actualizar, y eliminar los datos dentro de un almacenamiento) al ejecutar los procedimiento almacenados. La API 506 puede permitir, por ejemplo, a un usuario implementar la manipulación de datos mientras asegura la integridad y/o pureza de las características asociadas con el sistema de almacenamiento de datos 502. La manipulación de datos puede basarse al menos en parte en una entrada de un usuario y utilizar, por ejemplo, la API 506. Al emplear la API 506, las interacciones y/o manipulaciones que involucran el sistema de almacenamiento de datos 502 pueden implementarse mientras sostienen/imponen cualquiera de las características asociadas con él. Se debe apreciar y entender que la API 506 puede invocarse por el componente de manipulación de datos 504, un componente separado, incorporado en el componente de manipulación de datos 504, y/o cualquier combinación de los mismos.
El componente de manipulación de datos 504 además puede incluir un componente de cierre 508 que facilita acceder concurrentemente a datos con una o más aplicaciones al utilizar estrategias de cierre apropiadas que garantizan la integridad. Por ejemplo, imagine un escenario en donde existen múltiples llamadores que solicitan propiedad de un grupo común de recursos de tal forma que ninguna solicitud individual puede satisfacerse debido a que cada llamado está esperando por otro (por ejemplo, puede ocurrir un punto muerto). En tal caso, el componente de cierre 508 puede permitir a los llamadores bloquearse (por ejemplo, cierre), en donde la única forma de salir de tal caso es desalojar a uno de los llamadores. Para evitar está situación, el componente de cierre 508 puede soportar múltiples llamadores concurrentes para que una lógica de cierre compleja pueda garantizar solicitudes individuales para tener éxito o fallar automáticamente. Además, el componente de cierre 508 puede detectar y reaccionar a puntos muertos. El componente de cierre 508 puede mantener los datos consistentes al emplear accesos en serie a ciertas partes del sistema de almacenamiento de datos (por ejemplo, un almacenamiento) a través de cierre. El cierre puede hacerse en un nivel granular, en donde Los recursos en el sistema de almacenamiento de datos (por ejemplo, el almacenamiento) que se afectan por una manipulación y/o operación dada pueden cerrarse por la duración de tal manipulación y/o operación. Se debe apreciar que diferentes operaciones y/o substancialmente operaciones similares pueden tomar los cierres en diferente orden, puede ocurrir el punto muerto. Por ejemplo, el componente de cierre 508 puede evitar un punto muerto con una pérdida significativa para desempeño. Además, el componente de cierre 508 puede proporcionar la API 506 con un código de error de punto muerto para informar de tal situación. El componente de manipulación de datos 504 puede incluir un componente de concurrencia optimista 510. La API 506 puede utilizar concurrencia optimista para aplicar manipulación y/o cambios a datos dentro del sistema de almacenamiento de datos 502. La concurrencia ocurre cuando al menos dos procedimientos intentan actualizar substancialmente datos similares en un tiempo substancialmente similar. El componente de concurrencia optimista 510 utiliza la concurrencia optimista, en donde en la concurrencia optimista asume la probabilidad de que otro procedimiento haga un cambio en el tiempo substancialmente similar es baja, así que no toma un cierre hasta que el cambio está listo para comprometerse en el sistema de almacenamiento de datos (por ejemplo, almacenamiento). Al emplear tal técnica, el componente de concurrencia optimista 510 reduce el tiempo de cierre y ofrece mejor desempeño de base de datos. En donde el acceso concurrente por múltiples llamadores causa suposiciones de llamador particular sobre un estado del almacenamiento para ser inválido, las suposiciones inválidas pueden detectarse y las solicitudes de cambios de datos se rechazan por el sistema hasta que el llamador vuelve a sincronizar el entendimiento del estado del sistema y reenvía la solicitud. Por ejemplo, el compuesto de concurrencia optimista 510 puede mantener una señal asociada con el artículo que cambia con cada modificación del artículo. La señal se pasa al llamador cuando los datos se leen en la memoria. El llamador puede pasar la señal de regreso para almacenarse como un parámetro para una operación de actualización. El almacenamiento puede comparar la señal pasada con el valor de señal actual en el almacenamiento. Si las señales son iguales después la escritura tendrá éxito y se implementará. Incluso, si la versión del llamador en la memoria es un valor diferente después el del almacenamiento, significa que el artículo se modifico por otra aplicación y la escritura fallará. En otro ejemplo, una falla debido al acceso concurrente por dos aplicaciones se examina. En el cuadro posterior, existen dos aplicaciones que corren concurrentemente en el sistema de almacenamiento de datos 502 que se implementar para modificar al artículo.
La API 506 puede soportar está técnica al regresar está información de señal en cada operación de creación y/o actualización. Por ejemplo, el parámetro de señal de salida de la función de creación puede nombrarse "Señal de Concurrencia". La API 506 puede también tomar la información de señal como un parámetro de entrada en operaciones de actualización y/o eliminación. La información de señal basadas en las operaciones de actualización y/o eliminación también pueden denominarse como una "Señal de Concurrencia". Se debe apreciar que el parámetro puede ser tanto un parámetro de entrada como uno de salida. Una entrada, la "Señal de Concurrencia" es el valor que se recibe cuando el objeto se lee en una caché, crea, y/o actualiza. Esto puede ser el "valor esperado" en el almacenamiento si no hay que escribir al objeto. En la salida, el almacenamiento puede regresar la nueva "Señal de Concurrencia" del objeto después que se completa la operación exitosamente. El parámetro de "Señal de Concurrencia" puede escribirse como BIGINT (por ejemplo, un entero de 64 bits). Se debe apreciar que el parámetro puede hacer una estampa de tiempo de base de datos, e incluso puede no aumentar el valor. Restaurar un artículo de la recuperación puede causar un estado que está en el pasado en la relación a tiempo. La única operación soportada entre dos "Señales de Concurrencia" es para evaluar y/o inequidad. Este valor también puede estar disponible en las varias vistas soportadas por el almacenamiento. El nombre de columna en las vistas es "TS local de última actualización" para artículos, extensiones de artículo, enlaces, y fragmentos de articulo Para descriptores de segundad el nombre de columna es "TS Local de Última Actualización SD" La Figura 6 ilustra un sistema 600 que facilita invocar una API que manipula datos dentro de las características de un sistema de almacenamiento de datos Un sistema de almacenamiento de datos 602 puede ser un sistema de almacenamiento de archivo basado en base de datos basado al menos en parte en un modelo de datos, en donde los datos se representan como casos de tipos complejos Un componente de manipulación de datos 604 puede proporcionar manipulación de datos asociada con el sistema de almacenamiento de datos 602. El componente de manipulación de datos 604 puede invocar un componente de API 606 (denominado aquí como la "API 606") La API 606 puede proporcionar las manipulaciones de datos (por ejemplo, crear, actualizar, y eliminar los datos dentro de un almacenamiento) al ejecutar los procedimientos almacenados La API 606 puede permitir, por ejemplo, a un usuario implementar manipulación de datos mientras asegura la integridad y/o pureza de las características asociadas con el sistema de almacenamiento de datos 602 El sistema de almacenamiento de datos 602, el componente de manipulación de datos 604, y la API 606 puede ser substancialmente similar al sistema de almacenamiento de datos 502, 402, 302, y 202, el componente de manipulación de datos 504, 404, 304, y 204, la API 506, 406 en las Figuras 5, 4, 3, y 2 respectivamente El componente de manipulación de datos 604 puede incluir un componente de estructura de datos 608 que puede emplear al menos una estructura de datos utilizada por la API 606 Por ejemplo, el componente de estructura de datos 608 puede utilizar vanos sinónimos y/o tipos de lista genéricos En un ejemplo, los siguientes cuadros pueden definir el sinónimo y con tipo de lenguaje de consulta estructurado (SQL), y un tipo de lista y un tiempo de funcionamiento de lenguaje (CLR) correspondiente Se debe apreciar que los siguientes cuadros son ejemplo y la invención en cuestión no se limita El componente de estructura de datos 608 puede emplear un tipo de definición de cambios La API 606 y el componente de manipulación de datos 604 pueden proporcionar operaciones de actualización y/o modificaciones en el nivel de granulapdad de propiedad Al utilizar tal técnica, un llevador puede pasar los datos cambiados al método de actualización mientras mantiene le tamaño de la operación proporcionada al tamaño de datos cambiados Las actualizaciones granulares pueden describirse al utilizar el tipo de definición de Cambio En el sistema de almacenamiento de datos 602, los objetos se persisten en un almacenamiento, en donde una celda particular de una tabla un caso almacenado del Contacto de algún otro tipo complejo que tiene propiedades que podrían ser complejas Se debe apreciar y entender que el tipo de definición de Cambio puede moldear un grupo de cambios que pueden aplicarse a un objeto estructurado Por ejemplo, para actualizar el campo el nombre de un contacto, el llamador puede crear un caso de objeto de Definición de Cambió, llenar el objeto con dos nodos (por ejemplo, uno que describe el tipo de artículo y uno que contiene el obre de campo) Un cliente después puede pasar al menos a una versión recopilada de la definición de cambio y una lista de los valores correspondientes al método de Actualizar articulo que hace as modificaciones en el almacenamiento Se debe apreciar que el patrón substancialmente similar puede aplicar para modificar un campo en una extensión de articulo y/o vehículo Un caso de definición de Cambió moldea cada cambio de propiedad al utilizar una estructura de árbol en donde cada nivel en el árbol puede corresponder a un nivel a unidades de propiedades dentro del tipo de objeto Un cambio a un valor de propiedad se representa por un nodo de hoja, que se llama un nodo de asignación. El tipo de nodo de asignación puede ser la asignación. Estos nodos puede representar una asignación para una propiedad y contener un nombre de propiedad. Los nodos no de hoja (excepto la raíz) representan un tipo anidado que es un miembro de cualquier propiedad de nivel superior y/o otra propiedad de tipo anidadas. Esto puede denominarse como un lado transversal. Los nodos transversales contienen una lista de nodos (asignación o transversal) y opcionalmente un tipo que se utiliza por el almacenamiento para implementar la transmisión apropiada. El tipo de nodo transversal es el Componente de Trayectoria. El componente de estructura de datos 608 puede construir una Definición de Cambio al crear nuevos transversales y de asignación. Por ejemplo, los nodos pueden agregarse por la Definición de Cambio, en donde la clase de Definición de Cambio tiene métodos para crear modos y caminar en el árbol. En un ejemplo, la clase de definición de Cambio no es un tipo definido por usuario (UDT): en otro ejemplo, son definidos los siguientes tipos de asignación: 1) asignar un valor en escala a una profundidad; 2) asignar un caso de tipo anidado en la profundidad; y 3) asignar una colección (por ejemplo, un grupo múltiple y/o Lista sql) a una profundidad. Se debe apreciar y entender que las propiedades en la escala (por ejemplo, propiedades XML y de Corriente de Archivo) pueden reemplazarse. En otro ejemplo, tales propiedades a escala se actualizan parcialmente. Una vez que el árbol está completo, el componente y la estructura de datos 608 puede utilizar un método de recopilar, que puede regresar una descripción de propiedades que pueden cambiarse en un formato binario (por ejemplo, también denominado como una definición de cambio recopilado). En un ejemplo, el valor puede pasarse como el parámetro de Cambio de definición en el método de Actualización. El siguiente es un ejemplo de una implementación del componente de estructura de datos 608, y no se observa como una limitación de la invención en cuestión. Un llamador puede ser responsable de construir la lista de valores que corresponden a las propiedades descritas en el árbol de Cambiar Definición. Cuando el usuario agrega un nodo de asignación a árbol de Cambiar Definición, un índice puede asignarse en nodo de asignación. El índice puede ser igual a n-1 (en donde n es el número de inserciones en el árbol hasta ahora). Por ejemplo, el primer nodo de asignación obtiene índice 0, el segundo nodo de asignación obtiene índice 1, etc. el índice también podrá regresarse al llamador de agregar Asignación. El llamador después construye un objeto de Valor de Asignación que contiene el valor de la propiedad agregado al árbol de Cambiar definición. El valor de Asignación después se agrega en la Lista de Valor de Asignación para que su ubicación en la Lista de Valor de Asignación pueda delinear el índice en el nodo de asignación del árbol de Cambiar definición. El nodo de asignación puede agregarse a Cambiar definición y un objeto de Valor de Asignación correspondiente puede agregarse a la Lista de Valor de Asignación que utiliza el método de agregar, que anexa el objeto de Valor de asignación al final de la lista. La Lista de valor de asignación resultante es el valor que pasa al parámetro de Lista de Valor de los Métodos de Actualización. El componente de manipulación de datos 604 además puede incluir un componente de error 610 para controlar un error asociado con una operación y/o manipulación de datos que tiene conflicto con una característica del sistema de almacenamiento de datos 602. Por ejemplo, la API 606 asegura el dominio de artículo actual, en donde el dominio de artículo es un área lógica que el artículo define y/o incluye con propiedades, entidades, y/o sus entidades asociadas. Si se hace referencia a un artículo (por ejemplo, ya sea a través de un artículo o a través de un enlace, extensión de artículo, o fragmentos de artículo) que está fuera del dominio de artículo, el artículo parecerá como si no existiera. En otras palabras, el código de error "el artículo no existe" pueda emplearse. El componente de error 610 puede invocar códigos de error. El código de error puede implementarse para significar la manipulación de datos incompleto, en donde el código de error puede corresponder a texto que describe un error. Los procedimientos y/o operaciones que se relacionan con al manipulación de datos dentro del sistema de almacenamiento de datos 602 puede regresar a un valor de entero que puede ser el código de regreso para la función (por ejemplo, eliminar, acoplar, mover, obtener, establecer, actualizar,...). En un ejemplo, el valor puede ser cero si la operación es exitosa o un valor no cero si la operación fallo Cada procedimiento/operación y/o función la manipulación respectiva puede asociarse con un código de error Por ejemplo, la API 606 puede regresar un código de error, mas que presentar texto El código de error después puede enlazarse a un mensaje de texto correspondiente, en donde los mensajes de texto puede recuperarse si es necesario de una tabla en una base de datos La Figura 7 ilustra un sistema 700 que facilita manipular datos dentro de un sistema de almacenamiento de datos que utiliza un componente API Un sistema de almacenamiento de datos 702 puede ser un sistema de almacenamiento de archivo basado en base de datos basado al menos en parte en un modelo de datos, en donde los datos se representan como casos de tipos complejos Un componente de manipulación de datos 704 puede proporcionar manipulación de datos asociada con el sistema de almacenamiento de datos 702 mientras asegura la imposición de al menos una característica asociada con el sistema de almacenamiento de datos 702 el componente de manipulación de datos 704 puede invocar un componente de API 706 (denominado aquí como la "API 706") La API 706 puede proporcionar las manipulaciones de datos (por ejemplo, copiar, actualizar, reemplazar, obtener, establecer, crear, eliminar, mover, ) al ejecutar los procedimientos almacenados respectivos a una entrada de usuario recibida LA API 706 puede recibir una entrada de usuario respectiva a una solicitud/comando de manipulación de datos, en donde la entrada de usuario se ejecuta mientras asegura la integridad y/o pureza de las características asociadas al sistema de almacenamiento de datos 702 Se debe apreciar que el sistema de almacenamiento de datos 702, el componente de manipulación de datos 704, y la API 706 puede ser substancialmente similar al sistema de almacenamiento de datos 602, 502, 402, 302, y 202, el componente de manipulación de datos 604, 504, 404, 304, y 204, la API 606, 506, 406, en las Figuras 6, 5, 4, 3 y 2 respectivamente El componente de manipulación de datos puede incluir un componente de definición de API 708 que define procedimientos y/o operaciones que permiten a un usuario manipular datos asociados con el sistema de almacenamiento de datos 702 sin invalidar ninguna de las indicaciones de modelo de datos (utilizadas para desarrollar el sistema de almacenamiento de datos 702) El componente de definición de API 708 puede implementar cualquier función adecuada y/o procedimiento en relación con la manipulación de datos dentro del sistema de almacenamiento de datos 702 Se debe apreciar que la siguiente descripción de procedimiento es un ejemplo y la invención en cuestión no está limitada Además, el siguiente procedimiento hace referencia a nombres, funcionalidad, propiedades, y descripciones que no se limitan en la invención en cuestión El componente de definición API 708 puede utilizar un procedimiento para crear un articulo dentro del sistema de almacenamiento de datos 702 y mas particularmente para crear un artículo dentro de un almacenamiento dentro del sistema de almacenamiento de datos 702 Por ejemplo, el siguiente cuadro proporciona los parámetros asociados con el procedimiento de crear artículo.
Como se ilustra anteriormente, el procedimiento de crear artículo puede tener vanos códigos de error asociados con él basados al menos en parte en asegurar las limitaciones relacionadas con el sistema de almacenamiento de datos 702 Tales códigos de error pueden ser cualquier formato adecuado en donde el código puede representar un mensaje de texto que describe el error correspondiente. Por ejemplo, un código de error puede generarse cuando un usuario intenta crear una carpeta recuperada de archivo en otro ejemplo, un código de error puede generarse si un artículo del archivo genérico de tipo no es recuperado de archivo Siguiendo el procedimiento de ejemplo de crear artículo, cada artículo tiene una propiedad llamada Id de contenedor, que es la Id de Artículo del Artículo de contenedor El artículo de contendor ya debe existir en el almacenamiento puede ser alcanzable desde el punto de conexión del cliente. Si el llamador no proporciona un Tiempo de Creación (por ejemplo proporciona un valor de nulo) en el tiempo, el almacenamiento establecerá el tiempo de creación en tiempo actual Si el llamador no proporciona un Tiempo de Última Modificación (por ejemplo, proporciona un valor de nulo) en el artículo el almacenamiento establecerá el Tiempo de Última Modificación al tiempo actual Si no se proporcionan ambos valores, de almacenamiento al proporcionar el artículo El Tiempo de Creación y Tiempos de Artículo Última Modificación generados son substancialmente similares En otro ejemplo, el componente de definición de API 708 puede emplear un descriptor de Segundad La inclusión de un descriptor de segundad opcional satisface el requerimiento de un cliente para ser capaz de crear automáticamente un nuevo artículo y explícitamente establecer parámetros de segundad y de verificación Se debe apreciar que el descriptor de Segundad puede trabajar en conjunto con un componente de segundad (no mostrado) como discutido anteriormente Además, el componente de definición API 708 puede definir la implementación de un artículo duro. Sí existe un artículo duro en el almacenamiento que tiene exactamente la misma id de artículo como el que paso del procedimiento, el procedimiento no fallará. El artículo duro resurgirá y los nuevos datos pasados en está llamada al Crear Artículos se pondrán ene I tiempo de resurgimiento. Como se discutió anteriormente, la Señal de Concurrencia se regresa para permitir a los clientes utilizar detección de concurrencia optimista en actualizaciones subsecuentes al artículo. La Señal de Concurrencia regresada es la señal para el artículo. En otro ejemplo, cuando un agente de sistema de archivo llama al Crear Artículo, el componente de API 706 no generara una revisión. La llamada se hará en el contexto del usuario (por ejemplo, ejecutar_como_señal) y a revisión de acceso se hará en la API 706. Un sistema de archivo (por ejemplo, un sistema de almacenamiento de archivo tradicional, en donde un sistema basado en bit emplea una API de tamaño de bit similar en conjunto con un sistema operativo) se generara la revisión para este evento por el agente de sistema de archivo. Además, el componente de definición de API 708 puede proporcionar varias imposiciones en relación a un artículo recuperado de archivo. Por ejemplo, si el artículo es un artículo recuperado de archivo (por ejemplo, si se establece una bandera de Recuperado de Archivo a verdadero), después puede aplicar los siguiente; 1) Artículo recuperado de Archivo no puede contenerse en otro árbol de artículo recuperado de archivo (por ejemplo, para el sistema padre, Estado de Entidad. Id de artículo recuperado de archivo de raíz debe ser NULO), y 2) solo a los artículo que se van a declarar para ser de tipo "Artículo compuesto" pueden recuperarse de archivo El componente de definición API 708 puede implementar un procedimiento para crear al menos un artículo complejo El procedimiento puede crear múltiples artículos en el almacenamiento asociado con el sistema de almacenamiento de datos 702 Se debe apreciar que el componente de definición de API 708 puede crear un grupo de extensiones de artículo y un grupo de enlaces con cada artículo. El tipo Artículo complejo es un UDT y notable Es esencialmente un contendor para pasar los datos asociados con la operación/procedimiento El siguiente es una definición de ejemplo de un Artículo complejo Artículo Complejo de Clase Pública { Artículo complejo público (Artículo artículo, Sqllnt32estado de promoción, SqlBolean es recuperado de archivo, Sql Fila Nombre de Espacio de Nombre, SqlBolean es Fantasma, Información de Sincronización de Versión de Entidad de Sincronización, Metadatos de Sincronización de Metadato de sincronización de Artículo); Vacío público Agregar enlace (Enlace enlace, Información de Sincronización de Información de entidad de sincronización, Metadatos de sincronización de metadatos de sincronización de datos); Agregar extensiones de Artículo de Vacío Público (Extensión de Artículo Extensión de Artículo, Información de Sincronización de Versión de Entidad de Sincronización); Agregar Fragmento de Artículo de Vacío Público (Fragmento de Artículo Fragmento de Artículo, Información de sincronización de Versión de entidad de Sincronización); } Además, el siguiente cuadro proporciona un ejemplo de los parámetros asociados con el procedimiento de crear artículo complejo.
Se debe apreciar que el componente de definición de API 708 puede proporcionar la siguiente funcionalidad. Las semánticas de transacción son tales que todos los artículos se agregan atómicamente. Si existe cualquiera de las fallas durante la función, ninguno de los artículos complejos se insertan en el almacenamiento. Si la lista de Artículos complejos esta vacía entonces la operación es noop y regresa el éxito. Si existe un artículo de arena de almacenamiento que tiene de la misma Id de Artículo que cualquiera de los que paso en el procedimiento, el procedimiento fallará. La lista de extensiones de artículo puede ser nula o no nula con cero o más entidades. La lista de enlaces puede ser nula o nula con cero o más entidades. La lista de fragmentos de artículo puede ser nula o no nula con cero o más entidades. Una Señal de Concurrencia se regresa para permitir a los clientes utilizar detección de concurrencia optimista en las actualizaciones subsecuentes. El valor de Señal de concurrencia aplicara todos los artículos, enlaces, y extensiones de artículo creadas como un resultado de esta operación. Con respecto a un artículo recuperado de archivo, puede aplicar lo siguiente: 1) el artículo recuperado de Archivo no puede contenerse en otro árbol de artículo recuperado de archivo (por ejemplo, para el artículo padre, estado de entidad. Id de Artículo recuperado de Archivo de Raíz debe ser NULO); y 2) solo los artículos que se declaran para ser de tipo "Articulo compuesto" pueden recuperarse por archivo. El componente de definición de API 708 puede implementar un procedimiento para crear un enlace en el almacenamiento dentro del sistema de almacenamiento de datos 702. Por ejemplo, el siguiente cuadro puede ilustrar varios parámetros asociados con el procedimiento utilizados para crear un enlace.
Se debe apreciar que le componente de definición API 708 asegura vanas características asociadas con el sistema de almacenamiento de datos 702 Por ejemplo, la id de artículo objetivo puede señalarse a un artículo válido de tipo correcto (como se específica en el esquema para este tipo de enlace) y/o la id de artículo objetivo debe ser nula El Crear Enlaces puede utilizarse para crear un enlace entre artículos de sistema de almacenamiento de datos existentes 702 Se debe apreciar que si existe un enlace duro en el almacenamiento que tiene la id de enlace substancialmente similar y la id de artículo de fuente como el que paso en el procedimiento, el procedimiento no fallará. El enlace dura puede resurgir y los datos nuevos pasarse en está llamada a Crear Enlace lo pondrá en el enlace resurgido Adicionalmente, una Señal de concurrencia puede regresarse para permitir a los clientes utilizar detección de concurrencia optimista en actualizaciones subsecuentes a este enlace El componente de definición API 708 puede emplear un procedimiento para crear un extensión de artículo dentro del almacenamiento Por ejemplo, el siguiente cuadro puede ilustrar vanos parámetros asociados con el procedimiento utilizado para crear la extensión de artículo La Señal de Concurrencia utilizada anteriormente, puede regresarse para permitir a un cliente utilizar detección de concurrencia optimista en actualizaciones subsecuentes a está expresión de artículo El componente de definición de API 708 puede invocar un procedimiento para modificar un articulo dentro del almacenamiento, en donde el almacenamiento persiste datos relacionados con el sistema de almacenamiento de datos 702 El cuadro posterior es un ejemplo de parámetros y descripciones que corresponden a la modificación de un procedimiento de artículo El componente de definición de API 708 puede invocar un procedimiento para modificar un enlace dentro del almacenamiento. El cuadro posterior es un ejemplo de parámetros y descripciones que corresponden a la modificación de un procedimiento de enlace.
La fuente de un enlace es inmutable, y no puede cambiarse al utilizar este procedimiento almacenado El objetivo del enlace es mutable y puede cambiarse al llamar el enlace Actualizado El tipo de id de artículo objetivo puede ser nulo o ninguno Si no es nulo, puede señalar un articulo que existe en el almacenamiento puede concordar el tipo declarado en el enlace Además, el componente de definición de API 708 puede modificar una Extensión de Artículo en el almacenamiento El siguiente cuadro es un ejemplo de un procedimiento utilizado por el componente de definición API 708 e ilustra vanas propiedades y/o descripciones asociadas con el Además, el componente de definición API 708 puede invocar un procedimiento con la API 706 que permite a un artículo eliminarse dentro del almacenamiento Posteriormente está un cuadro con parámetros y descripciones ilustrativos del procedimiento para eliminar un artículo del almacenamiento En el caso que no se encuentra el artículo, el procedimiento regresará al éxito Cualquiera de los artículos en el almacenamiento que tiene el objetivo el artículo pueden tener la propiedad de Id de Artículo objetivo establecida a nulo. Establecer la Id de artículo de objetivo nulo puede tener éxito a pesar de los permisos efectivos que el llamador tiene los enlaces. Cuando se elimina un artículo, los enlaces originarios del artículo, Extensiones de Artículo y Fragmentos de Artículo asociados con el artículo pueden eliminarse. La eliminación puede ser exitosa si el artículo no tiene hijos (por ejemplo, no existen artículos con una id de contenedor igual a la id de artículo). En un ejemplo, no hay forma de forzar una eliminación de cascada de un árbol de artículos. Esto puede implementarse por el llamador. Si la id de artículo es dura, el éxito se regresa sin importar el estado de valores de concurrencia de Señal/ultima TS de actualización. Si la señal de concurrencia no concuerda con un artículo No es Dura, puede regresarse a un código de error. El agente de sistema de archivo puede llamar a la Artículo de eliminación en su propio contexto. No se harán revisiones de acceso o auditorias en la API 706. El componente de definición de API 708 puede invocar un procedimiento para eliminar un enlace en el almacenamiento. El cuadro más adelante es un ejemplo de parámetro y descripciones que corresponden a la eliminación de un procedimiento.
El componente de definición API 708 puede emplear un procedimiento para eliminar una extensión de artículo en el almacenamiento dentro del sistema de almacenamiento de datos 702. El siguiente cuadro es un ejemplo de parámetros y descripciones que corresponde a la eliminación de un procedimiento de extensión de articulo utilizado con la invención en cuestión Además, el componente de definición API 708 puede emplear un procedimiento para emplear un Fragmento de Artículo en el almacenamiento. El siguiente cuadro es un ejemplo de parámetros y descripciones que corresponden al procedimiento que permite a un usuario crear un Fragmento de artículo El componente de definición de API 708 puede invocar un procedimiento para modificar un Fragmento de artículo en el almacenamiento Este procedimiento almacenado puede generarse por tipo para que el nombre por tipo de nombre de la propiedad de Fragmento de artículo se contengan en el nombre del procedimiento almacenado. Para más claridad, referencia a "creado Fragmento de Artículo" como se discutió anteriormente El siguiente cuadro es un ejemplo de parámetros y descripciones que corresponden a la modificación por un Fragmento de artículo en el almacenamiento El componente de definición API 708 puede definir y/o implementar un procedimiento para eliminar un Fragmento de artículo en el almacenamiento. Posteriormente está un cuadro que ilustra varios parámetros como un ejemplo del procedimiento para eliminar el Fragmento de Artículo dentro del sistema de almacenamiento de datos 702.
Además, el componente de definición API 708 puede emplear un procedimiento que obtiene le descriptor de segundad de un artículo El cuadro posterior es un ejemplo de vanos parámetros asociados con un procedimiento para obtener el descriptor de segundad de un artículo dentro del sistema de almacenamiento de datos 702 La Señal de Concurrencia se regresa para permitir a los clientes utilizar la detección de concurrencia optimista en actualizaciones subsecuentes al descriptor de segundad La Señal de Concurrencia puede asociarse con el descriptor de segundad En un ejemplo, la Señal de Concurrencia para descriptor de segundad no se relaciona con el valor de Señal de Concurrencia del artículo que corresponde a la Id de Artículo El agente de sistema de archivo puede llamar a la Obtener Segundad de Artículo en su propio contexto El componente de definición API 708 puede establecer el descriptor de segundad de un artículo en el almacenamiento. El siguiente cuadro es un ejemplo de un procedimiento para obtener el descriptor de segundad optimizado por la API 706 o ilustra vanas propiedades y/o descripciones asociadas con esta El componente de definición API 708 puede emplear un procedimiento que mueve un artículo de un contenedor a otro y/o cambia el nombre de espacio de nombre del artículo El cuadro posterior es un ejemplo de vanos parámetros asociados con tal procedimiento Si cualquier artículo va a moverse o el nuevo contendor no es alcanzable desde el punto de conexión actual, el procedimiento puede regresar a un error Esta operación puede fallar si el artículo con le mismo nombre ya existe en el contenedor objetivo Estás son tres formas válidas para utilizar está función. Estos usos se capturan en el cuadro posterior Sin importar cómo se llame Mover Artículo (por ejemplo, ya sea para mover el artículo y/o renombrar el artículo) el valor de TS de ultima actualización (como se regresa en la Señal de Concurrencia) para un Artículo puede actualizarse El agente de sistema de archivo puede llamar a Mover Articulo del Contexto del usuario No se renombran valores y acceso o auditorias en el archivo/directorio Las revisiones de acceso y auditorias hechas en el nuevo padre determinan si el usuario tiene acceso para mover el artículo al nuevo destino El componente de definición API 708 puede emplear un procedimiento que reemplaza un Artículo con un nuevo Artículo, que puede ser de un tipo diferente Gel cuadro posterior es un ejemplo de vanos parámetros asociados con tal procedimiento La operación de Reemplazar artículo puede utilizarse para reemplazar un objeto de Artículo con otro objeto de artículo. Estos objetos pueden denominarse como el Artículo antiguo y artículo nuevo. El Artículo antiguo y el Artículo nuevo pueden tener la misma Id de artículo, pero pueden tener diferentes tipos. Por ejemplo, una aplicación en donde está operación se utilizará es promoción de Propiedad. La siguiente descripción puede asociarse con la operación de reemplazar artículo: 1) en la Id de Contenedor no puede cambiarse (para obtener está funcionalidad el llamado debe llamar Mover Artículos); 2) el Nombre de Espacio de Nombre Existente no cambiara; 3) siempre eliminar todos los artículos que se originan del Artículo que se reemplaza si el artículo es recuperado de archivo; 4) Si la operación de reemplazar artículo causa que a un enlace que tiene el artículo como objetivo sea válida (debido a que la limitación de tipo de objetivo ya no es válida), reemplazar artículo falla; 5) si la operación de reemplazar artículo causara que el enlace que se origina del artículo sea inválido (debido a que la limitación de tipo de fuente ya no es válida), reemplazar artículo falla; 6) Las unidades de cambio de nuevo artículo todas se establecen a valores predeterminados. Pueden haber al menos dos excepciones. Si el artículo participa en la sincronización después puede llevar a cabo el valor de Cambiar Información. Sincronizar Información. Versión de sincronización de creación del artículo antigua al artículo nuevo. Además, si el artículo participa en la sincronización y el archivo se regresa a la unidad de cambio para la corriente de archivo se transporta sobre el articulo antiguo al nuevo artículo, 7) todas las propiedades basadas en archivo tienen que especificarse Diferente a Crear Artículo, no hay herencia de propiedades de Archivo de la carpeta padre si no se establecen por un usuario, 8) Para artículos recuperados de archivo, cualquier dato de corriente de archivo no se modifica a menos que se especifique la bandera de eliminar contenido obtenido de artículo (ver cuadro posterior), y 9) reemplazar artículo no permite que un articulo tipo de un tipo de Articulo Genérico a un tipo de artículo compuesto o viceversa (ver cuadro posterior) La Figura 8 ilustra un sistema 800 que emplea inteligencia para facilitar la manipulación de datos basándose al menos en parte en un modelo de datos con características respectivas. El sistema 800 puede incluir un sistema de almacenamiento de datos 802 (que puede representar sobre un representación de modelo de datos), un complemento de manipulación de datos 804, y una interfase 106 que todos pueden substancialmente similares a componentes respectivos descritos en las Figuras previas. El sistema 800 además incluye un componente inteligente 806. el componente inteligente 806 puede utilizarse por componente de manipulación de datos 804 para facilitar manipular datos (por ejemplo, una copia, una actualización, un reemplazo, una obtención, un grupo, una creación, una eliminación, un movimiento,...) de acuerdo con al menos una característica asociada con el sistema de almacenamiento de datos 802. Por ejemplo, componente inteligente 806 puede utilizarse para analizar características asociadas con el sistema de almacenamiento de datos 802 y/o asegurar la integridad de las características respectivas al sistema de almacenamiento de datos 802. Se debe entender que el componente inteligente 806 puede proporcionar razonamiento sobre o inferir estado del sistema, ambiente, y/o usuario y un grupo de observaciones como se captura a través de eventos y/o datos. La diferencia puede emplearse para identificar un contexto o acción específica, o puede generar una distribución de probabilidad sobre estados, por ejemplo. La diferencia puede ser probabilística, es decir, el cálculo de la distribución de probabilidad sobre estados de interés basándose en una consideración de datos y eventos. A diferencia también puede de referirse a técnicas empleadas para componer eventos de nivel superior de un grupo de eventos y/o datos. La diferencia resulta en la construcción de nuevos eventos o acciones de un grupo de eventos observados y/o datos de eventos almacenados si o no los eventos se correlacionan en proximidad temporal cercan, y si los eventos y datos vienen en una o varios eventos y fuentes de datos. Varios esquemas de clasificación (explícitamente y/o implícitamente entrenados) y/o sistemas (por ejemplo, máquina de vector de soporte, redes neurales, sistemas expertos, redes de creencia bayesiana, lógica confusa, motores de fusión de datos...) puede emplearse en conexión con realizar acción automática y/o inferior en conexión con la invención en cuestión. Un clasificador es una función que delinea un vector de atributo de entrada x = (x1, x2, x3, x4, xn), a una confidencia que de entrada pertenece a una clase, y decir, r(x) = confidencia (clase). Tal clasificación puede emplear un análisis basado en probabilística y/o estadística (por ejemplo, dividiéndose en utilidades y costos de análisis) para pronosticar o inferir una acción que un usuario desee que se realice automáticamente. Una máquina de vector de soporte (SVM) es un ejemplo de un clasificador que puede emplearse. La SVM opera a no encontrar una hipersuperficie en el espacio de entradas posibles, y de ahí por superficie intenta dividir los criterios de activación de los eventos de no activación. Intuitivamente, esto hace la clasificación correcta para probar datos que están cerca, pero no idénticos a datos de entrenamiento. Otros acercamientos de clasificación de modelo dirigido y no dirigido incluyen , por ejemplo, Bayes simple, redes Bayesianas, árboles de decisión, redes neurales, modelos de lógica confusa, y modelos de clasificación probabilística que proporcionan diferentes patrones de independencia pueden emplearse. La clasificación como se utiliza aquí también es inclusiva de regresión estadística que se utiliza para desarrollar modelos de prioridad. Las Figuras 9-10 ilustran metodologías de acuerdo con la invención en cuestión. Para simplicidad de explicación, las metodologías se ilustran y describen como una serie de actos. Se debe entender y apreciar que la invención en cuestión no se limita por los actos ilustrados y/o por el orden de actos, por ejemplo los actos pueden ocurrir en varios ordenes y/o concurrentemente, y con otros actos no presentes y descritos aquí. Además, no todos lo actos ilustrados pueden requerirse para implementar las metodologías de acuerdo con a invención en cuestión. Además, aquellos expertos en la técnica entenderá y apreciarán que las metodologías puede representarse alternativamente como una serie de estados interrelacionados a través de un diagrama de estado o eventos. La Figura 9 ilustra una metodología 900 que facilita invocar una manipulación de datos dentro de un sistema basado en base de datos mientras impone al menos una limitación de modelo. En el número de referencia 902, puede utilizarse un modelo de datos para representar un sistema de almacenamiento de datos. El modelo de datos puede ser un modelo complejo basado al menos en parte en una estructurad e base de datos, en donde un artículo, un sub-artículo, una propiedad, y una relación se definen para permitir la representación de información dentro de un sistema de almacenamiento de datos como casos de tipos complejos. El modelo de datos puede utilizar un grupo de bloques de construcción básicos para crear y manejar objetos persistidos, ricos y enlaces entre objetos. Se debe apreciar que el modelo de datos puede incluir al menos una característica que se refleja en la estructura y/o funcionalidad del sistema de almacenamiento de datos representado. En otras palabras, el modelo de datos puede contener limitaciones que pueden imponerse para asegurar la integridad del modelo de datos, el sistema de almacenamiento de datos, y los datos asociados con estos. En el número de referencia 904, puede determinarse una característica asociada con el sistema de almacenamiento de datos (basándose en el modelo de datos). La característica, por ejemplo, puede consistir de guías, restricciones, diseños, etc. para proporcionar el sistema de almacenamiento de datos de acuerdo con tales características. Al emplear tales características, puede asegurarse la integridad y precisión del modelo de datos correspondiente. En el número de referencia 906, puede invocarse una manipulación de datos al implementar al menos un procedimiento. Mientras proporciona cualquier manipulación de datos adecuada en relación con el sistema de almacenamiento de datos, la característica de tal sistema de almacenamiento de datos se impone para proporcionar un ambiente estable. En un ejemplo, puede emplearse una API para permitir cualquier manipulación de datos adecuada en conjunto con el sistema de almacenamiento de datos. Por ejemplo, la API puede utilizarse por el usuario, en donde el usuario puede modificar datos. Se debe apreciar que la manipulación de datos puede incluir, pero no se limita a, una copia, una actualización, un reemplazo, una obtención, un grupo, una creación, una eliminación, un movimiento, etc. Por ejemplo, el sistema de almacenamiento de datos puede incluir un sistema jerárquico de contenedor, en donde tal característica se impune durante cualquier procedimiento utilizado para manipular datos dentro del sistema de almacenamiento de datos. La Figura 10 ¡lustra una metodología 1000 para manipular datos basados al menos en parte en un modelo de datos con características respectivas que se imponen. El número de referencia 1002, un modelo de datos puede utilizarse para representar un sistema de almacenamiento de datos. El sistema de almacenamiento de datos puede ser un sistema de archivo basado en base de datos, en donde la información se representa como casos complejos de tipos. En el número de referencia 1004, una característica asociada con el sistema de almacenamiento de datos representados se determina. La característica puede incluir, pero no se limita a, una restricción, una guía, una regla, una meta, un diseño, y/o cualquier otro método adecuado asociado con el sistema de almacenamiento de datos que alienta la implementación precisa. En el número de referencia 1006, la manipulación de datos puede invocarse al utilizar al menos un procedimiento. La manipulación de datos puede proporcionarse por una API, en donde un usuario puede llamar al menos un procedimiento, en donde el procedimiento puede corresponder al menos a una manipulación de datos. Se debe apreciar que la manipulación de datos se invoca mientras mantiene y/o impulsa la característica (s) asociada con el sistema de almacenamiento de datos. En el número de referencia 1008, un código de error puede utilizarse y/o puede emplearse seguridad. El código de error puede generarse y utilizarse, por ejemplo, cuando la manipulación de datos infringe las características del sistema de almacenamiento de datos. Se debe apreciar que el código de error puede presentarse a un usuario a través de la API, en donde el código puede corresponde a una tabla de revisión que relaciona el código a un mensaje de texto. La seguridad asociada con las manipulaciones de datos y/o la API pueden incluir varios niveles de autorización y/o registros y/o contraseñas. En otras palabras, cada manipulación de datos puede relacionarse con un nivel de seguridad, en donde solo cierto nivel de seguridad puede ¡mplementar tales procedimientos y/o un registro y contraseña se requieren. En un número de referencia 1010, la concurrencia optimista y/o punto muerto puede implementarse en relación con las manipulaciones de datos dentro del sistema de almacenamiento de datos. La concurrencia optimista asume la probabilidad que otro procedimiento haga un cambio en el tiempo substancialmente similares baja, y no toma un cierre hasta que el cambio este listo para comprometer al sistema de almacenamiento de datos (por ejemplo, almacenamiento). Al emplear tal técnica, el tiempo de cierre se reduce y ofrece mejor desempeño de base de datos. En un ejemplo, una señal puede mantenerse para asociar con el artículo los cambios con cada modificación del artículo. En otras palabras, la concurrencia optimista puede facilitar acceder datos entre dos aplicaciones concurrentes. Además, el cierre puede facilitar soportar múltiples llamadores concurrentes. Por ejemplo, no origina un escenario en donde existen múltiples llamadores concurrentes que solicitan la propiedad de un grupo común de recursos de tal forma que ningunas de las solicitudes puede satisfacerse debido a que el llamador está esperando en el otro. En tal caso, el sistema puede bloquear a los llamadores (por ejemplo, bloquea los llamadores), en donde la púnica forma de salir de tal caso es desalojar a uno de los llamadores. Para evitar está situación, el cierre puede soportar múltiples llamadores concurrentes para que una lógica de cierre compleja pueda garantizar solicitudes individuales para tener éxito o fallar automáticamente. Además, múltiples llamadores concurrentes pueden soportarse para que una lógica de cierre compleja pueda garantizar solicitudes individuales para tener éxito o fallar automáticamente. Con el fin de proporcionar contexto adicional para implementar varios aspectos de la invención en cuestión, las Figuras 11-12 y la siguiente discusión pretenden proporcionar una breve descripción general de un ambiente de cómputo adecuado en el cual pueden impenetrase los vanos aspectos de la invención en cuestión Mientras la invención no se describió anteriormente en el contexto general instrucciones ejecutables por computadora de un programa de computadora que corre una computadora local y/o computadora remota, aquellos expertos en la técnica reconocerán que la invención también puede implementarse en combinación con otros módulos de programa Generalmente, los módulos de programa incluyen rutinas, programas, componentes, estructuras de datos, etc , que realizan tareas particulares y/o implementan tipos de datos abstractos particulares Además, aquellos expertos en la técnica apreciaran que los métodos inventivos pueden practicarse con otras configuraciones de sistemas de computadora, que incluyen sistemas de computadora de procesador individual o de procesador múltiple, minicomputadoras, macrocomputadoras, así como computadoras personales, dispositivos de computo portátiles, electrónica a base de microprocesador y/o programable para el consumidor, y similares, cada una que puede comunicarse operativamente con uno o más dispositivos asociados Los aspectos ilustrados de la invención también pueden practicarse en ambientes de cómputo distribuidos en donde ciertas tareas se realizan por dispositivos de procesamiento remoto que se enlazan a través de una red de comunicaciones Sin embargo, algunos, si no es que todos, los aspectos de la invención pueden practicarse en computadoras aisladas En un ambiente de computo distribuido, los módulos de programa pueden localizarse en dispositivos de almacenamiento de memoria local y/o remota. La Figura 11 es un diagrama de bloque esquemático de un ambiente de cómputo de muestra 1100 cuadro pude interactuar la invención en cuestión. Un sistema 1100 incluye uno o más cliente(s) 1110. El cliente(s) 1110 puede ser hardware y/o software (por ejemplo, filas, procedimientos, dispositivos de cómputo). El sistema 1100 también incluye uno o más servidor (es) 1120. El servidor(es) 1120 puede ser hardware y/o software (por ejemplo, filas, procedimientos, dispositivos de cómputo). Los servidores 1120 pueden alojar filas para realizar transformaciones al emplear la invención en cuestión por ejemplo. Una comunicación posible entre un cliente 1110 y un servidor 1120 puede estar en la forma de un paquete de datos adaptado para transmitirse entre dos o más procedimientos de computadora. El sistema 1100 incluye una estructura de trabajo de comunicación 1140 que puede emplearse para facilitar comunicaciones entre el cliente(s) 1110 y el servidor(es) 1120. El cliente(s) 1110 puede conectarse operativamente a uno o más almacenamiento(s) de datos de cliente 1150 que puede emplearse para almacenar ¡nformación local al cliente(s) 1110. Similarmente, el servidor(es) 1120 se conecta operativamente a uno o más almacenamientos(s) de datos de servidor 1130 que puede emplearse para almacenar información local al servidor 1140. Con referencia a la Figura 12, un ambiente ilustrativo 1200 puede implementar varios aspectos de la invención incluye una computadora 1212. La computadora 1212 incluye una unidad de procesamiento 1214, una memoria de sistema 1216, y un conductor común de sistema 1218. El conductor común de sistema 1218 acopla componentes de sistema que incluyen, pero nos e limitan a, la memoria de sistema 1216 a la unidad de procesamiento 1214. La unidad de procesamiento 1214 puede ser cualquiera de varios procesadores disponibles. Los microprocesadores dobles y otras arquitecturas de multiprocesador pueden emplearse con la unidad de procesamiento 1214. El conductor común de sistema 1218 puede ser cualquiera de varios tipos de estructura(s) de conductor común que incluyen el conductor común de memoria o controlador de memoria, un conductor común periférico o conductor común externo, y/o un conductor común local que utiliza cualquiera de una variedad de arquitecturas de conductor común disponibles que incluyen, pero no se limitan a, Arquitectura de Estándar Industrial (ISA), Arquitectura de Microcanal (MSA), ISA Extendido (EISA), Electrónica de Conducción Inteligente (IDE), Conductor Común Local de VESA (VLB), Interconexión de Componente Periférico (PCI), Conductor Común de Tarjeta, Conductor Común en Serie Universal (USB), Puerto de Gráficos Avanzado (AGP), Conductor Común de Asociación Internacional de Tarjeta de Memoria de Computadora Personal (PCMCIA), Firewire (IEEE 1394), y Interfase de Sistemas de Computadora Pequeña (SCSI).
La memoria de sistema 1216 incluye memoria volátil 1220 y memoria no volátil 1222. El sistema de entrada/salida básico (BIOS), que contiene las rutinas básicas para transferir información entre elementos dentro de la computadora 1212, tal como durante el arranque, se almacena la memoria no volátil 1222. A manera de ilustración, y no de limitación, la memoria volátil 1222 puede incluir memoria solo de lectura (ROM), ROM programable (PROM), ROM eléctricamente programable (EPROM), ROM eléctricamente programable borrable (EEPROM), o memoria flash. La memoria volátil 1220 incluye memoria de acceso aleatorio (RAM), que actúa como memoria caché externa. A manera de ilustración y no de limitación, la RAM está disponible en muchas formas tal como RAL estática (SRAM), RAM dinámica (DRAM), DRAM sincrónica (SDRAM), SDRAM de velocidad de datos dobles (DDR SDRAM), SDRAM aumentada (ESDRAM), DRAM de enlace sincrónico (SLDRAM), RAM directa de conductor común de RAM (RDRAM), RAM dinámica de conductor común RAM directa (DRDRAM), y RAM dinámica de conductor común RAM (RDRAM). La computadora 1212 también incluye medios de almacenamiento de computadora removibles/no removibles, volátiles/no volátiles. La Figura 12 ilustra, por ejemplo un almacenamiento de disco 1224. El almacenamiento de disco 1224 incluye, pero nos e imita a, dispositivos como una unidad de disco magnético, unidad de disco flexible, unidad de cinta, unidad Jaz, unidad Zip, unidad LS-100, tarjeta de memoria flash o barra de memoria. Además, el almacenamiento de disco 1224 puede incluir medios de almacenamiento de forma separada o en combinación con otros medios de almacenamiento que incluyen, pero no se limitan a, una unidad de disco ótico tal como un dispositivo ROM de disco compacto (CD-ROM), unidad grabable de CD (Unidad CD-R), Unidad rescribible de CD (Unidad CD-RW) o una unidad ROM de disco versátil digital (DVD-ROM). Para facilitar la conexión al dispositivo de almacenamiento de disco 1224 al conductor común de sistema 1218, típicamente se utiliza una interfase removible o no removible tal como interfase 1226. Se debe apreciar que la Figura 12 describe software que actúa como un intermediario entre usuarios y los recursos de computadoras básicos descritos en el ambiente operativo adecuado 1200. Tal software incluye un sistema operativo 1228. El sistema operativo 1228, que puede almacenarse en almacenamiento de disco 1224, actúa para controlar y distribuir recursos del sistema de computadora 1212. Las aplicaciones de sistema 1230, ventaja del manejo de recursos por el sistema operativo 1228 a través de módulos de programa 1232 y datos de programa 1234 almacenados en memoria de sistema 1216 con almacenamiento de disco 1224. Se apreciará que la invención en cuestión puede implementarse con varios sistemas operativos o combinaciones de sistemas operativos. Un usuario ingresa comandos o información en la computadora 1212 a través del dispositivo(s) de entrada 1236. Los dispositivos de entrada 1236 incluyen, pero no se limitan a, un dispositivo de señalamiento tal como un ratón, seguibola, aguja, almohadilla sensible al tacto, teclado, micrófono, palanca de mandos, almohadilla de juegos, antena parabólica, escáner, tarjeta de sintonizador de TD, cámara digital, cámara de video digital, cámara web, y similares Estos y otros dispositivos de entrada se conectan a la unidad de procesamiento 1214 a través del conductor común de sistema 1218 a través del puerto(s) de interfase 1238 El puerto(s) de interfase 1238 incluye, por ejemplo, un puerto en sene, un puerto paralelo, un puerto de juegos, y un conductor común en sene universal (USB) El dispositivo (s) de salida 1240 utiliza algunos del mismo tipo de puertos como dispositivo (s) de entrada 1236 De esa forma, por ejemplo, un puerto (USB) puede utilizarse para proporcionar entrada a la computadora 1212, y para sacar información de la computadora 1212 a un dispositivo de salida 1240 El adaptador de salida 1242 se proporciona para ilustrar que existen algunos dispositivos de salida 1240 similares a monitores, bocinas, e impresoras, entre otros dispositivos de salida 1240, que requieren adaptadores especiales Los adaptadores de salida 1242 incluyen, a manera de ejemplo y no de limitación, tarjetas de video y de ese modo que proporcionan un medio de conexión entre el dispositivo de salida 1240 y el sistema de conductor común 1218 Se debe notar que otros dispositivos y/o sistemas de dispositivos proporcionan tanto capacidades de entrada como de salida tal como computadora (s) remota 1244 La computadora 1212 puede operar en un ambiente en red que utiliza conexiones lógica a una o más computadoras remotas, tal como computadora(s) remota 1244. La computadora(s) remota 1244 puede ser una computadora personal, un servidor, un enrutador, una PC de red, una estación de y trabajo, una aplicación a base de microprocesador, un dispositivo par u otro nodo de red común y similares, y típicamente incluye muchos o todos los elementos descritos en relación a la computadora 1212. Para propósitos de brevedad, solo se ilustra un dispositivo de almacenamiento de memoria 1246 con la computadora(s) remota 1244. La computadora(s) remota 1244 se conecta lógicamente a la computadora 1212 a través de una interfase de red 1248 y después se conecta físicamente a través déla conexión de comunicación 1250. La interfase de red 1248 abarca redes de comunicación mediante cables y/o inalámbricas tal como redes de área local (LAN) y redes de área ancha (WAN). Las tecnologías de LAN incluyen Interfase de datos distribuida de fibra (FDDI), Interfase de Datos distribuida de cobre (CDDI), Ethernet, Red de Anillo Similares. Las tecnologías WAN incluyen, pero no se limitan a, enlaces de punto a punto, redes de comunicación de circuito como Redes Digitales de Servicios Integrados (ISDN) y variaciones en los mismos, redes de cambio de paquete, y Líneas de Suscriptor Digital (DSL). La conexión(es) de comunicación 1250 se refiere al hardware/software empleado para conmutar interfase de red 1248 al conductor común 1218. Mientras la conexión de comunicación 1250 se muestra para claridad ilustrativa dentro de la computadora 1212, también puede ser externa a la computadora 1212 El hardware/software necesario para conexión a la interfase de red 1248 incluye, para propósitos ilustrativos solamente, tecnologías internas y externas, tal como modems que incluyen módems de grado de teléfono regular, módems de cable y módems DSL adaptadores ISDN, y tarjetas de Ethernet Lo que se describió anteriormente incluye ejemplos de la invención en cuestión Por supuesto, no es posible describir cada combinación y componentes concebibles o metodologías para propósitos de describir la invención en cuestión, pero un experto en la técnica puede reconocer que son posibles muchas otras combinaciones y cambios de la invención en cuestión Por consiguiente, la invención en cuestión pretende abarcar todas tales alteraciones como modificaciones, y variaciones que caen dentro del espíritu y alcance de las reivindicaciones anexas En particular y con respecto a las vanas funciones realizadas por los componentes, dispositivos, circuitos y sistemas antes descritos y similares, los términos (que incluyen una referencia a un "medio") utilizados para describir tales componentes pretenden corresponder, a menos que se le indique de otra forma, a cualquier componente que realiza la función especificada del componente descrito (por ejemplo, un equivalente funcional), incluso aunque no es estructuralmente equivalente a la estructura descrita, que realiza la función en los aspectos ilustrativos aquí ¡lustrados de la invención Con respecto a estos, también se reconocerá que la invención incluye un sistema así como un medio legible por computadora que tiene instrucciones ejecutables por computadora para realizar los actos y/o eventos de los vanos métodos de la invención Además, mientras se describió una característica particular de la invención con respecto solo a una de las vanas implementaciones, tal característica puede combinarse con una o más de otras características de las otras implementaciones como puede desearse y es ventajoso para cualquier aplicación dada o particular. Además, hasta la extensión que los términos "incluyen", y "que incluye" y vanantes de los mismos se utilizan en la descripción detallada en las reivindicaciones, estos términos pretenden ser inclusivos dentro de una forma simulada del término que "comprende"

Claims (20)

EIVINDiCACIONES
1.- Un sistema que facilita manipular datos, que comprende: un modelo de datos que en parte representa casos complejos de tipos e incluye al menos una limitación y una característica; y un componente de manipulación de datos que manipula datos asociados con el modelo de datos e impone al menos una limitación y la característica.
2.- El sistema de acuerdo con la reivindicación 1, en donde el modelo de datos representa un sistema de almacenamiento de datos que es un sistema basado en base de datos que define un modelo jerárquico de al menos una entidad persistida y cero o más sub-entidades por cada entidad para representar información tal como un tipo complejo.
3.- El sistema de acuerdo con la reivindicación 1, en donde la manipulación de datos es la menos uno de una copia, una actualización, un reemplazo, una obtención, un grupo, una creación, una eliminación, un movimiento, y una modificación.
4.- El sistema de acuerdo con la reivindicación 1, que además comprende un componente de seguridad que puede emplear una técnica de seguridad que corresponde a la manipulación de datos para invocar el sistema de almacenamiento de datos.
5.- El sistema de acuerdo con la reivindicación 4, en donde la técnica de seguridad es al menos una de un registro, una contraseña, un indicio biométrico, un reconocimiento por voz, y un nivel de seguridad asociado con un usuario.
6.- El sistema de acuerdo con la reivindicación 2, que además comprende un componente API que persiste datos asociados con el sistema de almacenamiento de datos dentro de una base de datos, en donde al menos un procedimiento se utiliza para imponer al menos una limitación de modelo de datos y característica.
7.- El sistema de acuerdo con la reivindicación 2, que además comprende un componente de procedimiento que proporciona al menos un procedimiento para manipular datos de acuerdo con al menos una limitación y característica asociada con el sistema de almacenamiento de datos.
8.- El sistema de acuerdo con la reivindicación 2, que además comprende un componente forzador que incorpora al menos una de una característica y limitación del sistema de almacenamiento de datos con la manipulación de datos.
9.- El sistema de acuerdo con la reivindicación 2, que además comprende un componente de cierre que proporciona una lógica de cierre compleja para garantizar uno de los siguientes: una solicitud individual para tener éxito atómicamente; y una solicitud individual para fallar atómicamente.
10.- El sistema de acuerdo con la reivindicación 2, que además comprende un componente de concurrencia optimista que utiliza una técnica de concurrencia optimista, en donde tal técnica asume la probabilidad de un primer procedimiento para hacer un cambio en el tiempo substancialmente similar como un segundo procedimiento es baja y un cierre no se emplea hasta que se compromete el cambio al sistema de almacenamiento de datos.
11.- El sistema de acuerdo con la reivindicación 2, que además comprende un componente de error que puede proporcionar un código de error cuando la manipulación de datos no imponga al menos una característica y limitación, en donde el código de error puede corresponde a texto que describe un error y el procedimiento no se implementa.
12.- El sistema de acuerdo con la reivindicación 3, que además comprende un componente de estructura de datos que puede emplear al menos una estructura de datos para implementarse por el componente API.
13.- El sistema de acuerdo con la reivindicación 12, el componente de estructura de datos utiliza al menos uno de un tipo de sinónimo y un tipo de lista genérica.
14.- El sistema de acuerdo con la reivindicación 12, en donde el componente de estructura de datos emplea un tipo de definición de cambio que proporciona una actualización granular, en donde un usuario puede pasar los datos cambiados a un método de actualización mientras mantiene el tamaño del procedimiento proporcional al tamaño de los datos cambiados.
15.- El sistema de acuerdo con la reivindicación 3, que además comprende un componente de definición API que define al menos uno de los siguientes procedimientos para emplearse con el componente API: 1) un artículo de crear; 2) un artículo de crear complejo; 3) un enlace de crear; 4) una extensión de artículo de crear; 5) un artículo de actualizar; 6) un enlace de actualizar; 7) una extensión de artículo de actualizar; 8) un artículo de eliminar; 9) un enlace de eliminar; 10) una extensión de artículo de eliminar; 11) un fragmento de artículo de crear; 12) un fragmento de artículo de actualizar; 13) un fragmento de artículo de eliminar; 14) una seguridad de artículo de obtener; 15) una seguridad de artículo de establecer; 16) un artículo de mover; y 17) un artículo de reemplazar.
16.- El sistema de acuerdo con la reivindicación 3, en donde el componente API recibe una entrada de un usuario para manipular datos.
17.- Un medio legible por computadora que tiene almacenados en él los componentes del sistema de acuerdo con la reivindicación 1.
18.- Un método implementado por computadora que facilita manipular datos, que comprende: utilizar un modelo de datos para representar un sistema de almacenamiento de datos que es un sistema de archivo basado en base de datos; determinar al menos una de una característica de la limitación asociada con el sistema de almacenamiento de datos; manipular datos dentro del sistema de almacenamiento de datos mientras se impone al menos una de una característica y limitación; y invocar una API para permitir a un usuario manipular los datos.
19.- Un paquete de datos que se comunica entre el componente de manipulación de datos y una interfase, el paquete de datos facilita el método de acuerdo con la reivindicación 18.
20.- Un sistema implementado por computadora que facilita manipular datos, que comprende: medios para representar un sistema de almacenamiento de datos con al menos una de una característica y una limitación con un modelo de datos; medios para manipular datos asociados con el modelo de datos impone al menos una de la limitación de característica; y medios para invocar una API para manipular datos.
MX2007011690A 2005-04-21 2006-03-09 Sistemas y metodos para manipular datos en un sistema de almacenamiento de datos. MX2007011690A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/111,557 US20060242104A1 (en) 2005-04-21 2005-04-21 Systems and methods for manipulating data in a data storage system
PCT/US2006/008268 WO2006115589A2 (en) 2005-04-21 2006-03-09 Manipulating data in a data storage syste

Publications (1)

Publication Number Publication Date
MX2007011690A true MX2007011690A (es) 2007-11-15

Family

ID=37188257

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2007011690A MX2007011690A (es) 2005-04-21 2006-03-09 Sistemas y metodos para manipular datos en un sistema de almacenamiento de datos.

Country Status (12)

Country Link
US (1) US20060242104A1 (es)
EP (1) EP1872280A4 (es)
JP (1) JP5108749B2 (es)
KR (1) KR20070121664A (es)
CN (1) CN101617290B (es)
AU (1) AU2006240541B2 (es)
BR (1) BRPI0609007A2 (es)
CA (1) CA2598592A1 (es)
MX (1) MX2007011690A (es)
RU (1) RU2413984C2 (es)
TW (1) TW200701018A (es)
WO (1) WO2006115589A2 (es)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7454435B2 (en) * 2005-05-03 2008-11-18 Microsoft Corporation Systems and methods for granular changes within a data storage system
US8087088B1 (en) 2006-09-28 2011-12-27 Whitehat Security, Inc. Using fuzzy classification models to perform matching operations in a web application security scanner
US7769789B2 (en) * 2007-05-11 2010-08-03 Oracle International Corporation High performant row-level data manipulation using a data layer interface
US8032548B2 (en) * 2007-07-31 2011-10-04 Oracle International Corporation Efficient network data transfer
US8880564B2 (en) * 2007-10-11 2014-11-04 Microsoft Corporation Generic model editing framework
JP4612699B2 (ja) * 2008-03-11 2011-01-12 株式会社東芝 監視診断装置及び遠隔監視診断システム
US20090241134A1 (en) * 2008-03-24 2009-09-24 Microsoft Corporation Remote storage service api
US8863092B2 (en) * 2011-02-10 2014-10-14 Microsoft Corporation Mechanism for compatibility and preserving framework refactoring
US8538934B2 (en) * 2011-10-28 2013-09-17 Microsoft Corporation Contextual gravitation of datasets and data services
US9098269B2 (en) * 2013-01-04 2015-08-04 Microsoft Technology Licensing, Llc System and method to ensure resource access safety with immutable object types
CN103268321B (zh) * 2013-04-19 2016-04-27 中国建设银行股份有限公司 高并发交易数据处理方法和装置
CN103336789A (zh) * 2013-06-06 2013-10-02 华为技术有限公司 一种数据库系统的锁操作方法及设备
US9176801B2 (en) 2013-09-06 2015-11-03 Sap Se Advanced data models containing declarative and programmatic constraints
US9619552B2 (en) 2013-09-06 2017-04-11 Sap Se Core data services extensibility for entity-relationship models
US9442977B2 (en) 2013-09-06 2016-09-13 Sap Se Database language extended to accommodate entity-relationship models
US9575819B2 (en) 2013-09-06 2017-02-21 Sap Se Local buffers for event handlers
US9361407B2 (en) 2013-09-06 2016-06-07 Sap Se SQL extended with transient fields for calculation expressions in enhanced data models
US9639572B2 (en) 2013-09-06 2017-05-02 Sap Se SQL enhancements simplifying database querying
US9354948B2 (en) 2013-09-06 2016-05-31 Sap Se Data models containing host language embedded constraints
US9430523B2 (en) 2013-09-06 2016-08-30 Sap Se Entity-relationship model extensions using annotations
US10482417B2 (en) 2014-02-04 2019-11-19 Hewlett-Packard Development Company, L.P. Item identifier assignment
EP3170100A4 (en) 2014-07-15 2017-12-06 Microsoft Technology Licensing, LLC Data model change management
WO2016008088A1 (en) 2014-07-15 2016-01-21 Microsoft Technology Licensing, Llc Data retrieval across multiple models
CN105518670B (zh) 2014-07-15 2021-09-07 微软技术许可有限责任公司 用于模型查询的数据模型索引
CN105518671B (zh) 2014-07-15 2019-09-03 微软技术许可有限责任公司 在数据存储系统上管理多个数据模型
US20160042097A1 (en) * 2014-08-07 2016-02-11 Brigham Young University System and method for concurrent multi-user analysis of design models
US10409835B2 (en) * 2014-11-28 2019-09-10 Microsoft Technology Licensing, Llc Efficient data manipulation support
US10599662B2 (en) * 2015-06-26 2020-03-24 Mcafee, Llc Query engine for remote endpoint information retrieval
CN105159966A (zh) * 2015-08-25 2015-12-16 航天恒星科技有限公司 创建目录实体的方法、装置和目录实体处理系统
US11157517B2 (en) 2016-04-18 2021-10-26 Amazon Technologies, Inc. Versioned hierarchical data structures in a distributed data store
US10671639B1 (en) 2017-03-30 2020-06-02 Amazon Technologies, Inc. Selectively replicating changes to hierarchial data structures
US10423342B1 (en) 2017-03-30 2019-09-24 Amazon Technologies, Inc. Scaling events for hosting hierarchical data structures
US10860550B1 (en) 2017-03-30 2020-12-08 Amazon Technologies, Inc. Versioning schemas for hierarchical data structures
CN110008031B (zh) * 2018-01-05 2022-04-15 北京金山云网络技术有限公司 设备操作方法、集群系统、电子设备及可读取存储介质
CN109240848A (zh) * 2018-07-27 2019-01-18 阿里巴巴集团控股有限公司 一种数据对象标识生成方法及装置
RU2715524C1 (ru) * 2019-08-23 2020-02-28 Федеральное государственное унитарное предприятие "Центральный институт авиационного моторостроения имени П.И. Баранова" Способ автоматизированного формирования электронной информационной модели силовой установки и устройство для его реализации
US12093414B1 (en) * 2019-12-09 2024-09-17 Amazon Technologies, Inc. Efficient detection of in-memory data accesses and context information
CN111897818B (zh) * 2020-07-31 2024-08-23 深圳市优联创达科技有限公司 数据存储方法、装置、电子设备及存储介质
US20230185940A1 (en) * 2021-12-13 2023-06-15 Docusign, Inc. Batch processing of audit records

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5230073A (en) * 1986-07-21 1993-07-20 Bell Communications Research, Inc. System and method for accessing and updating a continuously broadcasted stored database
US5448726A (en) * 1989-10-23 1995-09-05 International Business Machines Corporation Data base management system with data dictionary cache including a single loadable object descriptor
JP2575543B2 (ja) * 1990-04-04 1997-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 同時アクセス管理方法
US5263155A (en) * 1991-02-21 1993-11-16 Texas Instruments Incorporated System for selectively registering and blocking requests initiated by optimistic and pessimistic transactions respectively for shared objects based upon associated locks
US5956715A (en) * 1994-12-13 1999-09-21 Microsoft Corporation Method and system for controlling user access to a resource in a networked computing environment
JPH09297684A (ja) * 1996-03-05 1997-11-18 Fujitsu Ltd オブジェクト・ネットワークによる情報処理装置
JPH09259018A (ja) * 1996-03-25 1997-10-03 Nippon Telegr & Teleph Corp <Ntt> データエントリ装置及びデータエントリ方法
JPH09319629A (ja) * 1996-05-27 1997-12-12 Hitachi Ltd データベース設計支援ツール
US6185574B1 (en) * 1996-11-27 2001-02-06 1Vision, Inc. Multiple display file directory and file navigation system for a personal computer
US6240413B1 (en) * 1997-12-22 2001-05-29 Sun Microsystems, Inc. Fine-grained consistency mechanism for optimistic concurrency control using lock groups
US6327343B1 (en) * 1998-01-16 2001-12-04 International Business Machines Corporation System and methods for automatic call and data transfer processing
US6507662B1 (en) * 1998-09-11 2003-01-14 Quid Technologies Llc Method and system for biometric recognition based on electric and/or magnetic properties
US6370537B1 (en) * 1999-01-14 2002-04-09 Altoweb, Inc. System and method for the manipulation and display of structured data
US7464147B1 (en) * 1999-11-10 2008-12-09 International Business Machines Corporation Managing a cluster of networked resources and resource groups using rule - base constraints in a scalable clustering environment
US6772154B1 (en) * 2000-11-16 2004-08-03 Sun Microsystems, Inc. Implementation of nested databases using flexible locking mechanisms
DE10058391C2 (de) * 2000-11-24 2003-06-18 Siemens Ag Vorrichtung zur Objektbearbeitung
US6922694B2 (en) * 2001-11-14 2005-07-26 Sun Microsystems, Inc. Lock delegation with space-efficient lock management
US6910039B2 (en) * 2001-11-14 2005-06-21 Sun Microsystems, Inc. Validation technique for bulk lock delegation
US7590643B2 (en) * 2003-08-21 2009-09-15 Microsoft Corporation Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system
US7483923B2 (en) * 2003-08-21 2009-01-27 Microsoft Corporation Systems and methods for providing relational and hierarchical synchronization services for units of information manageable by a hardware/software interface system
US7349913B2 (en) * 2003-08-21 2008-03-25 Microsoft Corporation Storage platform for organizing, searching, and sharing data
US20060059127A1 (en) * 2004-09-15 2006-03-16 International Business Machines Corporation Method, system, and storage medium for facilitating application development
US20060095332A1 (en) * 2004-09-30 2006-05-04 Sap Aktiengesellschaft System and method for providing access to an application through a common interface for application extensions
US7516122B2 (en) * 2004-12-02 2009-04-07 Computer Associates Think, Inc. System and method for implementing a management component that exposes attributes

Also Published As

Publication number Publication date
US20060242104A1 (en) 2006-10-26
JP2008538632A (ja) 2008-10-30
AU2006240541A1 (en) 2006-11-02
RU2413984C2 (ru) 2011-03-10
WO2006115589A2 (en) 2006-11-02
BRPI0609007A2 (pt) 2010-01-12
KR20070121664A (ko) 2007-12-27
CN101617290B (zh) 2012-09-05
RU2007138949A (ru) 2009-04-27
AU2006240541B2 (en) 2011-10-27
EP1872280A4 (en) 2010-03-17
EP1872280A2 (en) 2008-01-02
JP5108749B2 (ja) 2012-12-26
CA2598592A1 (en) 2006-11-02
TW200701018A (en) 2007-01-01
CN101617290A (zh) 2009-12-30
WO2006115589A3 (en) 2009-06-04

Similar Documents

Publication Publication Date Title
MX2007011690A (es) Sistemas y metodos para manipular datos en un sistema de almacenamiento de datos.
US7467163B1 (en) System and method to manipulate large objects on enterprise server data management system
US7346628B2 (en) Time in databases and applications of databases
US5592661A (en) Detection of independent changes via change identifiers in a versioned database management system
US5504879A (en) Resolution of relationship source and target in a versioned database management system
US7454435B2 (en) Systems and methods for granular changes within a data storage system
US5890166A (en) Versioned-database management system in which tasks are associated with promote groups which comprise a set of parts whose changes are to be promoted
US8533169B1 (en) Transactional replication
US10866865B1 (en) Storage system journal entry redaction
KR20200096309A (ko) 분산된 데이터 스토어 내의 버젼형 계층 데이터 구조
US20080140629A1 (en) Time in databases and applications of databases
US20060248128A1 (en) Efficient mechanism for tracking data changes in a database system
US20180260411A1 (en) Replicated state management using journal-based registers
US12099486B2 (en) Schema management for journal-based storage systems
US11100129B1 (en) Providing a consistent view of associations between independently replicated data objects
WO2016159819A1 (en) System and method for data search in a graph database
MXPA05006260A (es) Sistemas y metodos para extensiones y herencia para unidades de informacion manejables a traves de un sistema de interfaz de sistemas de componentes fisicos de computacion y programas y sistemas de programacion.
US11657088B1 (en) Accessible index objects for graph data structures
Goodman et al. Semantically-based concurrancy control for search structures
US12093289B2 (en) Relationship-based display of computer-implemented documents
US11599520B1 (en) Consistency management using query restrictions in journal-based storage systems
Lawrence Automatic Conflict Resolution to Integrate Relational Schema
US7209919B2 (en) Library server locks DB2 resources in short time for CM implicit transaction
EP4244731B1 (en) Storing and searching for data in data stores
Smith Managing rules in active databases

Legal Events

Date Code Title Description
FC Refusal