Post on 23-Jan-2016
description
1
CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS
CINVESTAV
“Desarrollo de Reglas ActivasUn Enfoque de Red de Petri”
Alumno:Joselito Medina MarínAsesor: Dra. Xiaoou Li
México, D.F., Noviembre de 2003.
TESIS
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
• Bases de datos pasivas.
• Bases de datos activas (BDA).
updateinsert
delete
BD
reglas activas
BDA
+BD
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:on eventoif condiciónthen acción
Ejemplo:on insert empleadoif empleado.salario > gerente.salariothen abort
5
A1
C1
E1
Proceso de ejecución de reglas activas
Fuente de eventos
E2
C2
A2
E3
C3
A3
En
Cn
An
. . .
BD
E1
E1
A1
A1
6
Bases de datos activas existentes
• Startburst
• POSTGRES
• Ariel
• SQL-3
Relacionales
• HiPAC• EXACT• NAOS• Chimera• Ode• Samos• Sentinel• Reach
Orientadas a Objetos
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
Análisis de reglas activas
Terminación R1
R4
R3R2
Confluencia
S1
S4
S3S2
Ri Rj
**
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 activaDatos
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 Condicional con 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ón nodo. 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 Condicional con Tiempo (TCCPN)
Regla ECA:on eventoif condiciónthen acción
acción
CCPNevento
condición
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)}
16
Relación entre reglas ECA en una TCCPN
Evento
Condición
Acción
a)
Evento
Condición 1
Acción 1
Condición 2
Acción 2
Copia evento Copia evento
Copy
b)
Condición 2
Acción 2
Evento 1
Condición 1
Acción 1 = Evento 2
c)
17
Disparo de transiciones de la TCCPN
Un elemento token contiene la estampa de tiempo en que fue generado.
Transición tipo Regla Transición tipo Copy Transición tipo EventoCompuesto
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.00 where 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 TCCPNinicio
EVENTS[m]RULES[n]
i = 1j = 1
fin
no
p1 .type = primitive;
si
es compuestoEVENT[i]?
i++;
no
p1.type = compuesto;Crear transición t1 Tcomp;Conectar t1 with p1;k = 1;totalC = | EVENT[i].consEvents |;
si
Crear p1;p1.eventIndex = i;
k < totalCno
Crear lugar p2 para la acciónp2 = RULE[j].action;
si
i m
p2 yaes un lugar de
entrada?
p2 = EVENT[i].constEvents[k]
si
p3 = Copyof(p2)Conectar p3 con t1
Conectar p2 con t1no
k++;
j nCrear transición t1 Trule;t1 = RULE[j].conditionConectar p1 with t1;//
?t1 p{ =1}
no
si
Existe unlugar para
?la action
no
si
Conectar t1 con p2;;++j
Asignar lugar existentea p2
22
Barra de edición
Barra de ejecución
Opcionesde archivo
Opciones de Zoom
Propiedades
Velocidad
Panel de visualización
Ambiente del ECAPNSim [3]
23
• Apple G4
• Sistema Operativo MAC OS X Server
• JDK 1.3
• PostgreSQL ver. 7.1
Ambiente de desarrollo de la interfaz
24
Arquitectura de ECAPNSim
Base de datos
Detector deeventos compuestos
Transaccionesde ECAPNSim
Administradorde TCCPN
Editor de reglas
Análisis deTerminación
Convertidor ECA - TCCPN
Componente deexplicación
Tools Environment
editor/visualizadorTCCPN
Desarrollador de reglas ECA
ECAPNSim Kernel
Base de TCCPN
Consola
Componente deEjecución de reglas
señal de evento acceso a TCCPN evento ejecución de reglas
Usuario
25
Herramientas para generar la TCCPN en ECAPNSim
EditorReglas ECA
ConvertidorECA - TCCPN
Editor / Visualizadorde la TCCPN
Desarrollador dereglas ECA
Kernel de ECAPNSim
TCCPNbase
Análisis de TerminaciónGenerador de
matriz de incidencia
Buscadorde rutas
Analizadorde rutas
Detector de rutas cíclicas
Refinamientode ciclos
Administradorde TCCPN
Compiladorreglas ECA
Desarrollador dereglas ECA
Base dereglasECA
Herramientas estáticas
Flujo de datos
Recuperación y Almacenamiento de los elementos de la TCCPN
Componente de explicación
26
Herramienta de ECAPNSim en tiempo de ejecución
Componente de Ejecución de reglas
BD
Detector deeventos
Administradorde la TCCPN
Modo de simulación
editor/visualizador
de la TCCPN
Usuario
Modo real
TCCPN
Consola
Flujo de datos en tiempo de ejecución
Evaluaciónde condición
Ejecuciónde la Acción
con información del token
evaluaciónaleatoria
Evaluador de conditión
Animatción detokens
Kernel de ECAPNSim Herramientas estáticas
Desarrollador dereglas ECA
ECAPNSim
27
Análisis de TerminaciónSoluciones 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 una transició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
aij =
-1
0
1
El lugar pj P es 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
Para m, n 1
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.
p4
t3
p5
p0
p1 p2
t1 t2
p3
Definición2: Un nodo terminal NT es un lugar que representa solo a la acción de una o varias reglas.
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 relacionadosDefinición4: Una ruta cíclica RC es una ruta R donde el último par ordenado (y,z) ya se encuentra listado en R.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.
t0
31
Algoritmoinicio
valor, índice
si
bandera = falso;i=1;
no
fin
Función siguienteNodo(valor,índice)
valor = -1
i m
A[i][indice] = valor
si
no
bandera = verdadero;Agregar (i,índice) a R;
si
no
si nosiguienteNodo(1,i);
eliminaUltimoNodo();
Existe nodo(i,índice)?
write ‘Ruta cíclica’;ImprimeRuta();
i++;~bandera
ImprimeRuta();
si
no
j=1;
j n
si
no
A[indice][j]= valor
si
no
Agregar (indice,,j) a R;siguienteNodo(-1,,j);eliminaUltimoNodo();
Vector de Rutas R
Amxn
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 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.
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%.
34
Caso de estudio
emp.salario += 10
If ventas.n úmero > 50emp.rango = emp.rango+1
p0
t0
p1
update_PRIMA_cantidad
update_EMP_rango
p2
t1 copy
p3
CopyOf_update_EMP_rango
CopyOf_update_EMP_rango
If (new.cantidad-old.cantidad) > 100
t2
If emp. rango = 15
t3
If (verdadero)
p4
CopyOf_insert_VENTAS
insert_VENTAS
t4 copy
p5 p6 p7
t5
t6
t7
p8 update_EMP_salarioemp.salario = emp.salario*1.1
If ventas.nú mero > 100
emp.rango += 1If ventas. número > 50AND emp.rango < 15
prima. cantidad -= 100
prima .cantidad +=(emp. rango*10)
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:0 1 2 3 4 5 6 7 8
0 -1 1 0 0 0 0 0 0 0
1 0 -1 1 1 0 0 0 0 0
2 1 0 -1 0 0 0 0 0 0
3 0 0 0 -1 0 0 0 0 1
4 0 0 0 0 -1 1 1 1 0
5 0 0 0 0 0 -1 0 0 1
6 0 1 0 0 0 0 -1 0 0
7 1 0 0 0 0 0 0 -1 0
A =
Indices de transiciones
Indices de lugares
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
emp.rango = emp.rango+1
p0
t0
p1
update_PRIMA_cantidad
update_EMP_rango
p2
t1 copy
CopyOf_update_EMP_rango
If (new.cantidad-old.cantidad) > 100
t2
If (verdadero)
prima .cantidad +=(emp. rango*10)
Disparo infinito de reglas si:- El incremento es mayor de $100.- El rango del empleado es mayor de 9.
a) Ocurrencia evento p0:
Disparo infinito de reglas si:- El rango del empleado es mayor de 10.
b) Ocurrencia evento p1:
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ó.
ec = e1 e2
e1 e2
ec
ec = e1 e2
e1 e2
ec
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.
39
Eventos Compuestos
ec = ~e1 en Int(sp, ep)sp : tiempo inicialep : tiempo final
e1
ec
Inhibitor arc
Negación : not e en Int, ocurre cuando el evento e no sucedió durante el intervalo Int.
ec = sec(e1, e2)
e1 e2
ec
if ( time(E1) < time(E2) )
Secuencia: seq(e1, e2), ocurre cuando sucede primero e1 y posteriormente e2.
ec = sim (e1, e2)
e1 e2
ec
if ( time(E1) = time(E2) )
Simultáneo: sim(e1, e2), ocurre cuando sucede al mismo tiempo e1 y e2.
40
Eventos Compuestos
ec = *e1 en Int(sp, ep)
e1
ec
ec = last(e1) en Int(sp, ep)
e1
ec
ec = times(n, E1) en Int(sp, ep)
e1
ec
n
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.
Historia: times(n, e) en Int, ocurre cuando el evento e ha sucedido n veces durante el intervalo Int.
41
Eventos Compuestos
ec = ANY(m, e1, e2, …, en)
etmp
ec
m
e1 e2 e3 en…….
…….
Alguno: any(e1, e2, ..., en, m), ocurre cuando han sucedido m eventos ei de n posibles. n m.
42
Algoritmo para la generación de eventos compuestos
Reglas.ecaTabla1 (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;. . . .
0: ---
1: ---
------
0: ---
1: ---
------
0: ---
1: ---
------
Reglas.obj
Tablas Eventos
Reglas
Reglas.pn
e1 e2
ec AND(e1,e2)
Condición
Acción
43
Algoritmo para la generación de eventos compuestos
inicio
ECA[n]
indEvento = 1i = 1
i nfinno
regla.indEvento = crearEvento(ECA[i]);regla.condicion = ECA[i].condicion;regla.accion = ECA[i].accion;REGLAS[i] = regla;i++;
si
inicio
evento
evento es un evento compuesto?
si
no
objEvento = null
objEvento.tipo =eventoPrimitivo
objEvento.tipo =tipoDe(evento);j=1;
Hay mas eventos componentes?
posEvent = indEventoEVENTOS[posEvent] = objEventoindEvento++;return posEvent;
objEvento.componente[j] =crearEvento(evento.componente[j])j++;
no
si
fin
Función crearEvento
44
Publicaciones
1. 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)
2. 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
3. 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
4. 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
5. 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
6. 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
7. 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.