480 likes | 648 Views
CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV. TESIS. “Desarrollo de Reglas Activas Un Enfoque de Red de Petri”. Alumno:Joselito Medina Marín Asesor: Dra. Xiaoou Li. México, D.F., Noviembre de 2003. Presentación.
E N D
CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV TESIS “Desarrollo de Reglas Activas Un Enfoque de Red de Petri” Alumno:Joselito Medina Marín Asesor: Dra. Xiaoou Li México, D.F., Noviembre de 2003.
Presentación • Bases de datos activas (BDA). Soportan mecanismos que le permiten responder automáticamente a eventos que ocurren dentro o fuera de la BD. • BD + reglas activas = BDA • Reglas activas Timed Conditional Colored Petri Net (TCCPN) • BD + TCCPN = BDA
Antecedentes delete • Bases de datos pasivas. • Bases de datos activas (BDA). insert update BD BDA BD + reglas activas
Antecedentes • Reglas Activas • Modelo de reglas ECA (Evento-Condición-Acción). • Evento: es algo que ocurre en un instante en el tiempo. • Condición: predicado que evalúa el estado de la BD. • Acción: es la reacción a un evento y se ejecuta cuando la regla se dispara y la condición se cumple. Regla ECA: onevento ifcondición thenacción Ejemplo: on insert empleado ifempleado.salario > gerente.salario then abort
A1 E1 A1 Proceso de ejecución de reglas activas Fuente de eventos E1 . . . E1 E2 E3 En C1 C2 C3 Cn A1 A2 A3 An BD
Bases de datos activas existentes Relacionales Orientadas a Objetos • Startburst • POSTGRES • Ariel • SQL-3 • HiPAC • EXACT • NAOS • Chimera • Ode • Samos • Sentinel • Reach
Problemas con las BDA existentes • No existe un modelo general para la definición de reglas activas. • Difícil de rastrear el comportamiento de una secuencia de reglas. • No es posible llevar a cabo una simulación previa a la implementación de las reglas. • Difícil detectar problemas como No terminación y Confluencia. • El análisis de reglas se realiza en un entorno diferente al de la modelación de la base de reglas. • Eventos complejos.
R1 R2 R3 S1 Ri Rj R4 S2 S3 * * S4 Análisis de reglas activas Terminación Confluencia
Eventos complejos Conjunción: (E1, E2), ocurre cuando se presentan los eventos E1 y E2, en cualquier orden. Disyunción: (E1 | E2), ocurre cuando toma lugar cualquiera de los eventos E1 ó E2. Secuencia: seq(E1,E2), ocurre cuando sucede primero E1 y posteriormente E2. Simultáneo: sim(E1,E2), ocurre cuando sucede al mismo tiempo E1 y E2. Negación : not E en Int, ocurre cuando el evento E no sucedió durante el intervalo Int. . . . .
Nuestra propuesta Modelo de red de Petri extendido Base de datos activa Datos Reglas
Red de Petri (PN), herramienta de simulación • Herramienta de modelación gráfica y matemática. • Simulación de Sistemas manejados por eventos (EDS). • Análisis del comportamiento del EDS. • Fácil de observar el estado en el EDS. • Herramientas de análisis para detectar los problemas de las ADB.
Elementos de una PN Lugares. Transiciones. Arcos de entrada. Arcos de salida. Tokens. P T I(t,p) O(t,p) M()
Datos adicionales a la PN Conjunto finito de tipos de datos. Una función que asigne un tipo de dato a cada lugar. Una función de condición. Una función de para asignar intervalos de tiempo a transiciones. Una función de asignación de estampas de tiempo. Una función de inicialización de los valores de los tokens.
Red de Petri Coloreada Condicionalcon Tiempo (TCCPN) Es una 11-tupla, TCCPN = { , P, T, A, N, C, Cond, Acción, D, , I } Donde: es un conjunto finito de tipos de dato ó conjunto de colores. P es un conjunto finito de lugares. T es un conjunto finito de transiciones. T = TruleTcopy Tcomp A es un conjunto finito de arcos, tales que P T = P A = T A = . N es una funciónnodo. Está definida desde A hacia P × T T × P. C es una función color. Está definida desde P hacia. Cond es una función de condición. Acción es una función que asocia cada transición con su lugar de salida. D: Es una función que asocia un intervalo de tiempo con una transición. : Es una función que asocia cada token con un instante en el tiempo. I es una función de inicialización.
Red de Petri Coloreada Condicionalcon Tiempo (TCCPN) TCCPN = { , P, T, A, N, C, Cond, Acción, D, , I } = {tipos de datos} P = {evento, acción} T = {condición} A = {(evento,condición), (condición,acción)} CCPN evento Regla ECA: onevento ifcondición thenacción condición acción
Relación entre reglas ECA en una TCCPN a) b) c) Evento 1 Evento Evento Condición 1 Copy Condición Copia evento Copia evento Acción Acción 1 = Evento 2 Condición 2 Condición 1 Condición 2 Acción 1 Acción 2 Acción 2
Disparo de transiciones de la TCCPN Un elemento token contiene la estampa de tiempo en que fue generado. Transición tipo Evento Compuesto Transición tipo Regla Transición tipo Copy Evalúa condición de la Regla Condición verdadera Evalúa estampa de tiempo de los tokens
Modelación de reglas ECA con TCCPN Eventos y Acciones • Generados por los comandos SQL: insert, update, delete. • Se representan por lugares de PN. • Nomenclatura: • insert_TABLA insert_empleado • update_TABLA_CAMPO update_empleado_salario • delete_TABLA delete_empleado
Modelación de reglas ECA con TCCPN Tokens • La presencia de un token en un lugar indica la ocurrencia del evento representado por el lugar. • Almacena información sobre el evento. • Estructura de los tokens: • empleado(id, nombre, salario) • insert into empleado values (123, ‘Juan Pérez’, 5230.50); • update empleado set salario = 5500.00where id = 123; • delete from empleado where id = 123;
Modelación de reglas ECA con TCCPN Condición • Se almacena en una transición tipo Trule. • La transición tipo Trule almacena información sobre la acción de la regla ECA.
Opciones de Zoom Opciones de archivo Propiedades Barra de edición Barra de ejecución Panel de visualización Velocidad Ambiente del ECAPNSim [3]
Ambiente de desarrollo de la interfaz • Apple G4 • Sistema Operativo MAC OS X Server • JDK 1.3 • PostgreSQL ver. 7.1
Arquitectura de ECAPNSim Desarrollador de reglas ECA Tools Environment Editor de reglas Análisis de Terminación Convertidor ECA - TCCPN editor/visualizador TCCPN Componente de explicación Usuario ECAPNSim Kernel Consola Detector de eventos compuestos Base de TCCPN Administrador de TCCPN Transacciones de ECAPNSim Componente de Ejecución de reglas Base de datos acceso a TCCPN evento ejecución de reglas señal de evento
Herramientas para generar la TCCPN en ECAPNSim Análisis de Terminación Generador de matriz de incidencia Buscador de rutas Analizador de rutas Detector de rutas cíclicas Refinamiento de ciclos TCCPN base Administrador de TCCPN Desarrollador de reglas ECA Editor / Visualizador de la TCCPN Desarrollador de reglas ECA Compilador reglas ECA Editor Reglas ECA Kernel de ECAPNSim Convertidor ECA - TCCPN Herramientas estáticas Base de reglas ECA Flujo de datos Componente de explicación Recuperación y Almacenamiento de los elementos de la TCCPN
Herramienta de ECAPNSim en tiempo de ejecución Usuario Consola Modo real Detector de eventos Componente de Ejecución de reglas Modo de simulación Evaluador de conditión BD Administrador de la TCCPN Evaluación de condición con información del token Animatción de tokens Ejecución de la Acción evaluación aleatoria editor/ visualizador de la TCCPN TCCPN Desarrollador de reglas ECA ECAPNSim Flujo de datos en tiempo de ejecución Kernel de ECAPNSim Herramientas estáticas
Análisis de Terminación Soluciones propuestas por otros autores • Algoritmo de propagación. • Hipergráfica de disparo. • Gráfica de disparo refinado • Arbol de alcanzabilidad de PN. • Arbol de cobertura en PN. • Red de Petri con restricciones
Análisis de Terminación usando la Matriz de Incidencia Definición: Para una red de Petri N, con n transiciones y m lugares, la matriz de incidencia A = [ aij] es una matriz de números enteros de n x m. El valor para cada elemento de la matriz está dado por: aij = aij+ - aij- Donde: aij+ = w(i,j) es el peso del arco que conecta unatransición tiT con su lugar de salida pjP, y aij-= w(j,i) es el peso del arco que conecta una transición tiT con su lugar de entrada pjP.
Matriz de Incidencia de una TCCPN Para m, n 1 El lugar pjPes un lugar de entrada a la transición tiT No existe un arco que conecta al lugar pjP con la transición tiT y viceversa. El lugar pjP es un lugar de salida de la transición tiT -1 0 1 aij =
Algunos conceptos necesarios Definición1: Un lugar es un nodo inicial NI si la columna presenta solamente valores 0's y un solo valor de -1. p0 t0 Definición2: Un nodo terminal NT es un lugar que representa solo a la acción de una o varias reglas. p1 p2 Definición3: Una ruta R es una secuencia de pares ordenados (i,j), obtenidos a partir de la matriz de incidencia de la CCPN, describiendo una lugares y transiciones relacionados t1 t2 p3 Definición4: Una ruta cíclica RC es una ruta R donde el último par ordenado (y,z) ya se encuentra listado en R. p4 t3 Definición5: Una ruta acíclica RA es aquella donde la última pareja ordenada (i,j) de la ruta es diferente de sus antecesoras, es decir, que RA tiene un nodo terminal. p5
inicio Algoritmo Función siguienteNodo(valor,índice) valor, índice valor = -1 no Vector de Rutas R j=1; si no bandera = falso; i=1; j n si ~bandera no i m A[indice][j] = valor no no i++; si si A[i][indice] = valor no si ImprimeRuta(); Agregar (indice,,j) a R; siguienteNodo(-1,,j); eliminaUltimoNodo(); si Amxn bandera = verdadero; Agregar (i,índice) a R; Existe nodo (i,índice)? si no siguienteNodo(1,i); write ‘Ruta cíclica’; ImprimeRuta(); fin eliminaUltimoNodo();
Teorema y Colorario Teorema: Si todas las rutas R de una TCCPN son acíclicas, entonces el disparo de las reglas termina. Corolario: Si existen rutas cíclicas RC en la CCPN, y existe al menos una transición t Trule, donde Cond(t)=false dentro de cada RC, entonces el disparo de las reglas ECA termina.
Caso de estudio Regla 1: Cuando la prima de un empleado se modifica, si es incrementada en más de $100.00, entonces el rango del empleado se incrementa en uno. Regla 2: Cuando el rango de un empleado se modifica (supongamos que se incrementa), entonces la prima del empleado se incrementa diez veces el nivel del nuevo rango. Regla 3: Cuando se obtienen las ventas del mes y el número de éstas es superior a 50, entonces se incrementan $10.00 al salario del empleado. Regla 4: Cuando se obtienen las ventas del mes y el número de éstas es superior a 100, entonces el rango del empleado se incrementa en un nivel. Regla 5: Cuando el nivel del rango de un empleado se modifica y el rango alcanzó el nivel 15, entonces el salario del empleado se incrementa en un 10%. Regla 6: Cuando se obtienen las ventas del mes y el número de éstas es superior a 50 y el rango de empleado que las obtuvo es menor de del nivel 15, entonces el monto de su prima se decrementa $100.00.
p4 insert_VENTAS p0 update_PRIMA_ cantidad t4 copy If (new.cantidad-old.cantidad) > 100 prima. cantidad -= 100 CopyOf_insert _VENTAS p5 p6 p7 t0 emp.rango = emp.rango+1 If ventas.n úmero > 50 prima .cantidad += (emp. rango*10) t5 p1 update_EMP_ rango If ventas.nú mero > 100 t1 copy t6 emp.rango += 1 CopyOf_update_ EMP_rango If ventas. número > 50 AND emp.rango < 15 CopyOf_update_ EMP_rango p3 p2 emp.salario += 10 t7 If emp. rango = 15 t3 t2 If (verdadero) p8 update_EMP_ salario emp.salario = emp.salario*1.1 Caso de estudio
Caso de estudio Las tablas que forman parte de la BD son: EMPLEADO(emp_id, nombre, rango, salario) PRIMA(emp_id, cantidad) VENTAS(emp_id, mes, numero) La matriz de incidencia correspondiente es: Indices de lugares A = Indices de transiciones
Caso de estudio Las rutas encontradas en la matriz de incidencia son: R[0]: (4,4), (4,5), (5,5), (5,8) R[1]: (4,4), (4,6), (6,6), (6,1), (1,1), (1,2), (2,2), (2,0), (0,0), (0,1), (1,1) R[2]: (4,4), (4,6), (6,6), (6,1), (1,1), (1,3), (3,3), (3,8) R[3]: (4,4), (4,7), (7,7), (7,0), (0,0), (0,1), (1,1), (1,2), (2,2), (2,0), (0,0) R[4]: (4,4), (4,7), (7,7), (7,0), (0,0), (0,1), (1,1), (1,3), (3,3), (3,8)
Caso de estudio a) Ocurrencia evento p0: p0 update_PRIMA_ cantidad Disparo infinito de reglas si: - El incremento es mayor de $100. - El rango del empleado es mayor de 9. If (new.cantidad-old.cantidad) > 100 t0 emp.rango = emp.rango+1 prima .cantidad += (emp. rango*10) p1 update_EMP_ rango b) Ocurrencia evento p1: t1 copy Disparo infinito de reglas si: - El rango del empleado es mayor de 10. CopyOf_update_ EMP_rango p2 t2 If (verdadero)
Eventos Compuestos Las transiciones t Trule almacenan el intervalo de tiempo, el cual está compuesto por un tiempo inicial y un tiempo final. Los tokens almacenan el valor de un punto en el tiempo (timestamp), el cual se refiere al momento en que el evento ocurrió. Conjunción: (e1, e2), ocurre cuando se presentan los eventos e1 y e2, en cualquier orden. Disyunción: (e1 | e2), ocurre cuando toma lugar cualquiera de los eventos e1 ó e2. ec = e1 e2 ec = e1 e2 e1 e2 e1 e2 ec ec
Eventos Compuestos Negación : not e en Int, ocurre cuando el evento e no sucedió durante el intervalo Int. Secuencia: seq(e1, e2), ocurre cuando sucede primero e1 y posteriormente e2. ec = ~e1 en Int(sp, ep) sp : tiempo inicial ep : tiempo final ec = sec(e1, e2) e1 e2 e1 Simultáneo: sim(e1, e2), ocurre cuando sucede al mismo tiempo e1 y e2. if ( time(E1) < time(E2) ) Inhibitor arc ec ec = sim (e1, e2) ec e1 e2 if ( time(E1) = time(E2) ) ec
Eventos Compuestos Cerradura: cerradura e en Int, ocurre solo una vez cuando ocurre la primera vez el evento e durante el intervalo Int. Ultimo: last e en Int, toma la última ocurrencia de e en el intervalo Int. ec = last(e1) en Int(sp, ep) ec = *e1 en Int(sp, ep) e1 e1 ec ec e1 Historia: times(n, e) en Int, ocurre cuando el evento e ha sucedido n veces durante el intervalo Int. n ec = times(n, E1) en Int(sp, ep) ec
Eventos Compuestos Alguno: any(e1, e2, ..., en, m), ocurre cuando han sucedido m eventos ei de n posibles. n m. ec = ANY(m, e1, e2, …, en) ……. e1 e2 e3 en ……. etmp m ec
Algoritmo para la generación de eventos compuestos Reglas.eca Reglas.pn Tabla1 (campo11 tipoDato11, campo12 tipoDato12, ...); Tabla2(campo21 tipoDato21, campo22 tipoDato22, ...); . . . . e1 : eventoPrimitivo1; e2 : eventoPrimitivo2; ec1 : eventoCompuesto1; . . . . On and(e1,e2), If condición, Then acción; . . . . e2 e1 AND(e1,e2) ec Reglas.obj Condición Tablas Eventos Acción 0: --- 1: --- ------ 0: --- 1: --- ------ Reglas 0: --- 1: --- ------
inicio ECA[n] indEvento = 1 i = 1 i n no fin si regla.indEvento = crearEvento(ECA[i]); regla.condicion = ECA[i].condicion; regla.accion = ECA[i].accion; REGLAS[i] = regla; i++; Algoritmo para la generación de eventos compuestos inicio Función crearEvento evento objEvento = null evento es un evento compuesto? objEvento.tipo = tipoDe(evento); j=1; si no Hay mas eventos componentes? objEvento.tipo = eventoPrimitivo no posEvent = indEvento EVENTOS[posEvent] = objEvento indEvento++; return posEvent; objEvento.componente[j] = crearEvento(evento.componente[j]) j++; si fin
Publicaciones • Joselito Medina Marín and Xiaoou Li, Modeling and Simulation of Event-Condition-Action Rules in Active Database, International Conference on Information Technology: Research and Education(ITRE03),Newark, New Jersey, USA, August 10-13, 2003 (accepted) • Xiaoou Li, Joselito Medina Marín, and Sergio V. Chapa, A Structural Model of ECA Rules in Active Database, Mexican International Conference on Artificial Intelligence (MICAI’02), Mérida, Yucatan, México, April 22-26, 2002, pp. 486-493 • Joselito Medina Marín y Xiaoou Li, ECAPNSim, un simulador para reglas ECA, el XIII Congreso Interuniversitario de Electrónica, Computación y Eléctrica (CIECE), Zacatepec, México, Abril, 9-11, 2003 • Joselito Medina Marín y Xiaoou Li, Análisis de terminación de reglas, un enfoque con red de Petri, el 4º Congreso Nacional de Computación (CORE 2003), México, D.F., México, Mayo 6-7, 2003, pp.56-67
Publicaciones • Joselito Medina Marín y Xiaoou Li, Red de Petri Coloreada Condicional y su Aplicación en Sistemas de Bases de Datos Activas, VIII Conferencia de Ingeniería Eléctrica (CIE’02), México D.F., 2002, pp. 238-245 • Xiaoou Li, Sergio V. Chapa Vergara, Joselito Medina Marín, and Jovita Martínez Cruz, Using Conditional Colored Petri Nets in Active Database System, submitted to Asian Journal of Control, Ref. DS-07-15, June, 2003 • Xiaoou Li, Joselito Medina Marín, Active Database Systems Design via Conditional Colored Petri Nets: An Application-Independent Platform, submitted to Information Systems, Ref. IS 246, July, 2003
Resultados • Red de Petri Coloreada Condicional con Tiempo (TCCPN) • Algoritmo de conversión de reglas ECA a CCPN • Prototipo de ECAPNSim • Conexión de ECAPNSim con Postgres • Algoritmo de Análisis de Terminación • Implementación del Algoritmo de generación de patrones para la detección de eventos compuestos.
Conclusiones • Es factible el uso de una red de Petri extendida en BDA para modelar bases de reglas ECA. • La modelación, simulación, análisis, y ejecución de las reglas ECA puede realizarse en un solo medio. • La simulación de la base de reglas se realiza antes de implementarla en una BD. • Es posible modelar los eventos compuestos como TCCPN. • El análisis de terminación puede realizarse a partir de la matriz de incidencia de la CCPN.
Trabajo Futuro • Implementar en ECAPNSim el algoritmo de análisis de No terminación. • Realizar análisis de confluencia en el modelo CCPN, aprovechando las propiedades de PN • Casos de estudio: • Base de datos de Micro 500, • y alguna otra. • Conectar ECAPNSim a diferentes manejadores de bases de datos • Progress, • Oracle, • Access.