Publicado el 28 de Julio del 2017
800 visualizaciones desde el 28 de Julio del 2017
743,5 KB
114 paginas
Creado hace 19a (28/11/2005)
Centro de Investigación y de Estudios Avanzados
del IPN
Departamento de Ingeniería Eléctrica
Sección de Computación
Diseño y Construcción de un Lenguaje y Modelo para Bases
Activas de Documentos XML
Tesis que presenta
Anahi Ramírez Hernández
para obtener el grado de
Maestro en Ciencias
en la especialidad de
Ingeniería Eléctrica,
Opción Computación
Dirigida por el
Doctor José Oscar Olmedo Aguirre
México, D.F.
Diciembre de 2005
II
Resumen
Actualmente XML es el principal medio para almacenar, buscar y extraer información en
un gran número de aplicaciones Web. Con el propósito de agregar mayor funcionalidad a las
bases de documentos XML, la comunidad de bases de datos activas ha propuesto extenderlas
para que soporten reglas ECA. También se han incorporado módulos de razonamiento deductivo
que permiten derivar consecuencias lógicas a partir del contenido de la base de documentos. Los
servicios Web son otra tecnología que está surgiendo para construir aplicaciones Web, en este
contexto XML tiene un papel importante. Por lo anterior, los repositorios de documentos XML
requieren cada vez mayor funcionalidad.
En esta tesis se hicieron dos extensiones al lenguaje ADM. Antes de este trabajo, ADM tenía
características activas y deductivas para bases de documentos, sin embargo no consideraba la in-
teracción con bases de datos relacionales. Las extensiones que se hicieron son dos: se agregó inter-
operabilidad entre aplicaciones que usan BD relacionales y se incorporó la tecnología de servicios
Web. Para presentar la nueva funcionalidad del lenguaje se desarrolló como caso de estudio un
servidor proxy de páginas Web.
La interacción de ADM con bases de datos relacionales se hizo empleando ODBC como méto-
do estándar de acceso a bases de datos. Cada ODBC se relaciona directamente con un conec-
tor [Agu00]. La idea principal para incorporar servicios Web al lenguaje, consistió en crear pri-
mitivas que permitan enviar y recibir fragmentos de documentos XML en el cuerpo de mensajes
SOAP. La programación se hizo en Java debido a su portabilidad y las facilidades que brinda
para la manipulación de documentos XML.
De las ventajas que ofrece el trabajo hecho en esta tesis se pueden considerar las siguientes: se
extiende el ámbito de aplicación de las reglas ECA a la Web, se pueden invocar servicios Web de
forma automática y pueden invocarse entre si. En concecuencia crece el dominio de aplicaciones
de ADM, con nuestro trabajo ahora es posible automatizar workflows en Internet.
iii
IV
Índice general
Resumen
Índice General
Índice de figuras
Índice de tablas
1. Introducción
1.1. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Antecedentes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3. Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4. Solución propuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5. Objetivos generales y específicos
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.1. Objetivo general
1.5.2. Objetivos particulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6. Metodología . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.7. Contribuciones
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.8. Estructura del documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
III
IV
VII
X
1
1
2
3
4
5
5
5
6
6
7
2. Bases activas de documentos XML
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.
2.2. XML dentro de los lenguajes de marcado . . . . . . . . . . . . . . . . . . . . . . .
2.2.1. XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
9
9
9
2.3. Reglas ECA en sistemas de bases de datos . . . . . . . . . . . . . . . . . . . . . . . 10
Introducción a la reglas ECA . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.1.
2.3.2. Lenguajes de reglas de bases de datos
. . . . . . . . . . . . . . . . . . . . . 11
2.3.3. Vinculación entre eventos, condiciones y acciones . . . . . . . . . . . . . . . 15
2.3.4. Ordenamiento de reglas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.5. Semánticas de procesamiento de reglas . . . . . . . . . . . . . . . . . . . . . 15
2.3.6. Arquitectura de programación . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4. Trabajo Relacionado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4.1. Servicios Web y Repositorios Activos de documentos XML . . . . . . . . . 17
2.4.2. Uso de servicios reactivos con reglas activas en repositorios XML . . . . . . 18
2.4.3. Análisis y optimización de Reglas ECA en XML . . . . . . . . . . . . . . . 19
2.5. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
v
VI
ÍNDICE GENERAL
3. Descripción Formal de ADM
23
3.1. Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2. Modelo de Reglas Deductivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3. Modelo de Reglas Activas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.1. Ambito de una regla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.2. Selección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.3. Activación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3.4.
. . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.5. Secuencialidad y Concurrencia . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3.6. Comunicación Asíncrona
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3.7. Comunicación Síncrona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.4. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Interacción entre Reglas Activas
4. Caso de estudio: Proxy http
35
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.
4.2. Descripción del proxy http en ADM . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.3. Reglas ECA del proxy http . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.3.1. Reglas del proxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.3.2. Reglas del Servidor Interno . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.4. Análisis del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.4.1. CASO 1: Página no disponible en el proxy . . . . . . . . . . . . . . . . . . . 55
4.4.2. CASO 2: Solicitud de página actualizada disponible en el proxy . . . . . . . 56
4.4.3. CASO 3: Solicitud de página no actualizada disponible en el proxy . . . . . 58
4.4.4. CASO 4: Página no existente . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5. Implementación del lenguaje
63
5.1. Descripción del Administrador de Eventos . . . . . . . . . . . . . . . . . . . . . . . 63
5.2. Conector para comunicaciones (mensajería SOAP) . . . . . . . . . . . . . . . . . . 63
. . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.2.1. Envío y recepción de objetos
. . . . . . . . . . 64
5.2.2. Envío y recepción de objetos asociados a un identificador
5.2.3. Envío asíncrono . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.2.4. Suscripción por objetos específicos . . . . . . . . . . . . . . . . . . . . . . . 64
5.2.5. Recepción síncrona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.2.6. Aceptación de eventos compuestos . . . . . . . . . . . . . . . . . . . . . . . 65
5.2.7. Aceptación selectiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.2.8. Aceptación transaccional
5.2.9.
. . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.2.10. Estructuras de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.3. Conector para colecciones (bases de datos) . . . . . . . . . . . . . . . . . . . . . . . 72
Inserción, eliminación y búsqueda de objetos
. . . . . . . . . . . . . . . . . 73
5.3.1.
Inserción, eliminación y búsqueda de objetos con identificador . . . . . . . . 73
5.3.2.
Inserción y eliminación de objetos (generadora de eventos) . . . . . . . . . . 73
5.3.3.
5.3.4.
Inserción y eliminación silenciosa . . . . . . . . . . . . . . . . . . . . . . . . 73
5.3.5. Suscripción para recibir objetos de un tipo dado . . . . . . . . . . . . . . . 73
5.3.6. Aceptación síncrona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.3.7. Aceptación selectiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.3.8. Aceptación transaccional
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.3.9. Aceptación de eventos compuestos . . . . . . . . . . . . . . . . . . . . . . . 74
5.3.10. Interacción tipo cliente-servidor . . . . . . . . . . . . . . . . . . . . . . . . . 74
Interacción cliente-servidor
ÍNDICE GENERAL
VII
5.3.11. Estructuras de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.4. Detalles de implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.4.1. Tecnología . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6. Conclusiones y trabajo futuro
Bibliografía
Anexos
77
80
81
A. Introducción del lenguaje
83
A.1. Reglas deductivas en ADM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
A.1.1. Elementos XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
A.1.2. Términos XML . . . . . . . . . . . . . . . . . . . . .
Comentarios de: Diseño y Construcción de un Lenguaje y Modelo para Bases Activas de Documentos XML (0)
No hay comentarios