1 / 48

CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV

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.

rolf
Download Presentation

CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS CINVESTAV

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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.

  2. 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

  3. Antecedentes delete • Bases de datos pasivas. • Bases de datos activas (BDA). insert update BD BDA BD + reglas activas

  4. 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

  5. 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

  6. Bases de datos activas existentes Relacionales Orientadas a Objetos • Startburst • POSTGRES • Ariel • SQL-3 • HiPAC • EXACT • NAOS • Chimera • Ode • Samos • Sentinel • Reach

  7. 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.

  8. R1 R2 R3 S1 Ri Rj R4 S2 S3 * * S4 Análisis de reglas activas Terminación Confluencia

  9. 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. . . . .

  10. Nuestra propuesta Modelo de red de Petri extendido Base de datos activa Datos Reglas

  11. 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.

  12. Elementos de una PN Lugares. Transiciones. Arcos de entrada. Arcos de salida. Tokens. P T I(t,p) O(t,p) M()

  13. 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.

  14. 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 = TruleTcopy 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.

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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;

  20. 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.

  21. Conversión de Reglas ECA a TCCPN

  22. Opciones de Zoom Opciones de archivo Propiedades Barra de edición Barra de ejecución Panel de visualización Velocidad Ambiente del ECAPNSim [3]

  23. Ambiente de desarrollo de la interfaz • Apple G4 • Sistema Operativo MAC OS X Server • JDK 1.3 • PostgreSQL ver. 7.1

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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 tiT con su lugar de salida pjP, y aij-= w(j,i) es el peso del arco que conecta una transición tiT con su lugar de entrada pjP.

  29. Matriz de Incidencia de una TCCPN Para m, n  1 El lugar pjPes un lugar de entrada a la transición tiT No existe un arco que conecta al lugar pjP con la transición tiT y viceversa. El lugar pjP es un lugar de salida de la transición tiT -1 0 1 aij =

  30. 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

  31. 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();

  32. 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.

  33. 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.

  34. 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

  35. 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

  36. 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)

  37. 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)

  38. 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

  39. 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

  40. 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

  41. 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

  42. 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: --- ------

  43. 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

  44. 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

  45. 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

  46. 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.

  47. 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.

  48. 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.

More Related