1 Seminar Aktive Datenbanken REACH A Real-Time Active and Heterogeneous Mediator System Yvonne...

Preview:

Citation preview

1

Seminar Aktive Datenbanken

REACH

A Real-Time Active and Heterogeneous Mediator System

Yvonne UtterodtLehrstuhl für Datenbanken und Informationssysteme

Prof. Dr. Küspert

2

REACHGliederung

• Einführung• Architektur • Regeldefinition• REACH-Komponenten• Administrationswerkzeuge• Fazit• Quellen

3

Einführung

• Was ist REACH?– 1992, TU Darmstadt– Forschungsprototyp eines aktiven objektorientierten DBMS– Plattform für die Entwicklung von Anwendungen

• Ziele – Robustes System mit vollständiger aktiver Funktionalität– kommerzielles OODBMS nutzen– alle Ereignisse, Kopplungsmodi und Werkzeugset

4

Übersicht

• Einführung• Architektur • Regeldefinition• REACH Komponenten• Administrationswerkzeuge• Fazit• Quellen

5

ArchitekturGrad der Integration

Welches Architekturprinzip?

• Schichtenarchitektur– Basiert auf passivem DBMS – Darauf aufbauend gesamte Regelverwaltung als zusätzliche Schicht – Zügige Implementierung

• Integrierte Architektur– Komponenten des DBMS sind auf aktive Funktionalität abgestimmt– Varianten:

• Vollständige Neuentwicklung• Kooperation mit DBMS Hersteller• Verwendung DBMS Forschungsprototyp

6

Architektur Lösung bei REACH

REACH mit OpenOODB und Exodus

Solaris

EXODUSStorage Manager

SunProC++

daVinci Tcl/TkOpenOODB

REACH

7

Architektur 2-Schichten Architektur von OpenOODB

Basismodule

Meta-Architektur

Persistenz-PM Transaktions-PM Anfragen-PM ...

Adress-management

Übersetzung Kommunikation DataDictionary

REACH

8

Architektur Bibliotheken und Datenbanken für REACH

REACHAnwendung

RegelnEreignisse

Anwendungsdaten

DBx

libO3DB

libsm_client

libREACHlibRules

REACH

OpenOODB

Exodus

9

Architektur Probleme für REACH

• Method-Wrapping

• Debugger

• Gekaufte Fremdbibliotheken

• Clusterfähigkeit

10

Architektur Was ist bei ObjectStore anders?

OpenOODB ObjectStore

Kommerziell nein ja

Code veränderbar ja nein

Datenbanken eine mehrere

Clustering nein ja

Präcompiler ja nein

Persistenzkonzept einfacher fehleranfälliger

11

Übersicht

• Einführung• Architektur • Regeldefinition• REACH Komponenten• Administrationswerkzeuge• Fazit• Quellen

12

RegeldefinitionEntwurfsmethode OMT+

R3

R1R4

R5R2

PumpTurbine

TurbineX

Power Plant

updateWaterflowcheck

chec

kupdateOilTemp

Reduce RPM updatePressure

upda

tePres

sure

updateWaterflow

Every 4 weeks

13

RegeldefinitionRegelsprache REAL

# include „Reactor.hh“rule /powerplant/reactor/r1 {

prio 5;decl River* river;

int x;Reactor* rtor named „BlockA“;

event after river->updateWaterLevel(x)

cond imm x < 3 && river->getTemp() > 24.5 && rtor->getHeatOutput() > 1000000;

action imm rtor->reducePlannedPower(0.05);};

14

RegeldefinitionRegelsprache REAL

Kopplungsmodi:

REAL [BBKZ93]imm immediate immediatedef deferred deferred

ind independent -dep dependent sequential causally dependentexc exclusive -

pind parallel independent detachedpdep parallel dependent parallel causally dependentpexc parallel exclusive exclusive causally dependent

15

Übersicht

• Einführung• Architektur• Regeldefinition• REACH Komponenten• Administrationswerkzeuge• Fazit• Quellen

16

REACH Komponenten

Trace Fehlerbehandlung

Transaktion

Regel

Triggern

Verwaltung

VisualisierungSchnittstellen

API Regelsprache Werkzeuge

Ereignis

Ereignis-parameter

Ereignis-historie

Ereignis-komposition

PrimitiveEreignisse

Zeit-ereignisse

Ereignis-basis

OpenOODB

17

REACH KomponentenRegelkomponente

• Speicherorganisation von Regeln• Speicherung mit der Semantik der Regeln verbinden• Lösung: hierarchische Namensräume

Regel i Regel j... ... ... ...

/

Turbinentriebwerk

ÖlkreislaufUmgebung

18

REACH KomponentenRegelkomponente

• Teilkomponente Regelauslösung:– Abarbeitung von ausgelösten Regeln

• Teilkomponente Regeladministration:– Regeln erzeugen, verändern und löschen – Organisation der Regelverzeichnisse – Ein- und Ausschalten von Regeln

19

REACH Komponenten – Ereigniskomponente- spezialisierte Detektoren und direktes Triggern

Klassenhierarchie der Ereignisse

EreignisPrimitives Ereignis komposites Ereignis

• Methodenereignis

• Transaktionsereignis

• Regelereignis

• Absolutes Zeitereignis

BOT EreignisEOT EreignisCommit EreignisAbort Ereignis

• Relatives Zeitereignis

• Periodisches Zeitereignis

RegelerzeugungRegelentfernungRegeländerungRegeladministration

20

Periodischer Zeit-Relativer Zeit-

REACH Komponenten – Ereigniskomponente- spezialisierte Detektoren und direktes Triggern

Prinzip des direkten Triggerns

BOT EOTPrimitives EreignisSignal

Primitiver Ereignis- detektor

Regel

triggern

triggernkompositer Ereignis- detektor

komponieren

21

• Primitive Ereignisse:

– gemeinsame Funktionalität aller primitiven Ereignisse– Methodenereignisse

after river->updateWaterLevel(x)– Transaktionsereignisse

BOT(TA-Name), EOT(TA-Name)COMMIT(TA-Name), ABORT(TA-Name)

– Persistenzereignisse– Abstrakte Ereignisse– Regeladministrationsereignisse

REACH Komponenten – Ereigniskomponente- Teilkomponenten

22

REACH Komponenten – Ereigniskomponente- Teilkomponenten

• Zeitereignisse

– Absolute Zeitereignisseat 2000/03/13/12/00/00

– Relative Zeitereignisse30 minutes after <<event>>

– Periodische Zeitereignissestart{stop} 2000/03/13/12/00/00, every 30 minutes

23

REACH Komponenten – Ereigniskomponente- Teilkomponente Ereigniskomposition

PE PE

PEPE

Ereigniskomposition

Programm 1 Transaktion

Programm 2 Transaktion

24

REACH Komponenten – Ereigniskomponente- Teilkomponente Ereigniskomposition

Operationen der Ereignisalgebra

Sequenz E1 then E2Konjunktion E1 and E2Disjunktion E1 or E2 Negation not E2 in E1, E3Hülle all E2 in E1, E3Vielfachereignis n times E2 in E1,E3

Beispielafter river->updateWaterLevel(x) then reactor->updateTemp(t)

25

REACH Komponenten – Ereigniskomponente- Teilkomponente Ereigniskomposition

• Kopplungsmodus– immediate nicht möglich– deferred nur wenn die auslösenden Ereignisse aus der gleichen

Transaktion kommen

• Garbage Collection– Löschen von angefangenen Kompositionen – Sequenz, Konjunktion und Disjunktion spätestens beim

Commit/Abort (bei same trans)

26

Übersicht

• Einführung• Architektur• Regeldefinition• REACH Komponenten• Administrationswerkzeuge• Fazit• Quellen

27

AdministrationswerkzeugeKommandozeile

• Zur Regelmanipulation– Anlegen, Löschen von Regelverzeichnissen– Löschen, umbenennen, verschieben von Regeln– Zugriffsrechte setzen ...

• Regelinspektion– Auflisten von Regeln und Verzeichnissen– Inhalt einer Regel ausgeben

• Organisation der Ereignisse– History anschauen– Löschen von Ereignissen

28

AdministrationswerkzeugeRegelbrowser

29

AdministrationswerkzeugeRegelbrowser

30

AdministrationswerkzeugeEreignisbrowser

History

31

AdministrationswerkzeugeBrowser für Triggergraphen

32

AdministrationswerkzeugeTracemodus

33

Übersicht

• Einführung• Architektur• Regeldefinition• REACH Komponenten• Administrationswerkzeuge• Fazit• Quellen

34

Fazit

• Prototyp mit Demonstrationsanwendung Kraftwerk– REACH als Prototyp nicht vollständig

• Bei Schichtenarchitektur Probleme mit Recovery• Handhabung von Ereignissen bei verteilten

Datenbankclients nicht vollständig untersucht• REAL stark an C++ angelehnt, daher prozedural, besser

wäre deklarative Regelsprache• Noch keine kommerziellen Systeme mit kommerziellen

Anwendungen

35

Quellen

Jürgen Zimmermann: Konzeption und Realisierung eines aktiven Datenbanksystems: Architektur, Schnittstellen und Werkzeuge, 2001

Jürgen Zimmermann, Alejandro P. Buchmann, Active Rules in DatabaseSystems, REACH, 1999

Alejandro P. Buchmann, Architecture of Active Database Systems, 1998

Recommended