350 likes | 518 Views
Seminar Aktive Datenbanken. REACH A Re al-Time Ac tive and H eterogeneous Mediator System Yvonne Utterodt Lehrstuhl für Datenbanken und Informationssysteme Prof. Dr. Küspert. REACH Gliederung. Einführung Architektur Regeldefinition REACH-Komponenten Administrationswerkzeuge Fazit
E N D
Seminar Aktive Datenbanken REACH A Real-Time Active and Heterogeneous Mediator System Yvonne Utterodt Lehrstuhl für Datenbanken und Informationssysteme Prof. Dr. Küspert
REACHGliederung • Einführung • Architektur • Regeldefinition • REACH-Komponenten • Administrationswerkzeuge • Fazit • Quellen
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
Übersicht • Einführung • Architektur • Regeldefinition • REACH Komponenten • Administrationswerkzeuge • Fazit • Quellen
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
REACH OpenOODB daVinci Tcl/Tk EXODUSStorage Manager SunProC++ Architektur Lösung bei REACH REACH mit OpenOODB und Exodus Solaris
REACH Persistenz-PM Transaktions-PM Anfragen-PM ... Adress-management Übersetzung Kommunikation DataDictionary Architektur 2-Schichten Architektur von OpenOODB Meta-Architektur Basismodule
REACH libREACHlibRules DBx RegelnEreignisseAnwendungsdaten OpenOODB libO3DB Exodus libsm_client Architektur Bibliotheken und Datenbanken für REACH REACHAnwendung
Architektur Probleme für REACH • Method-Wrapping • Debugger • Gekaufte Fremdbibliotheken • Clusterfähigkeit
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
Übersicht • Einführung • Architektur • Regeldefinition • REACH Komponenten • Administrationswerkzeuge • Fazit • Quellen
RegeldefinitionEntwurfsmethode OMT+ Power Plant R3 updateOilTemp updateWaterflow Reduce RPM R1 updatePressure check Turbine Pump R4 check updatePressure R5 TurbineX R2 updateWaterflow Every 4 weeks
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); };
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
Übersicht • Einführung • Architektur • Regeldefinition • REACH Komponenten • Administrationswerkzeuge • Fazit • Quellen
Schnittstellen API Regelsprache Werkzeuge Visualisierung Regel Triggern Verwaltung Ereignis PrimitiveEreignisse Ereignis-basis Zeit-ereignisse Ereignis-parameter Ereignis-historie Ereignis-komposition Trace Fehlerbehandlung OpenOODB REACH Komponenten Transaktion
/ Turbinentriebwerk Umgebung Ölkreislauf ... Regel i ... ... ... Regel j REACH KomponentenRegelkomponente • Speicherorganisation von Regeln • Speicherung mit der Semantik der Regeln verbinden • Lösung: hierarchische Namensräume
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
Ereignis Primitives Ereignis komposites Ereignis Methodenereignis Relatives Zeitereignis BOT EreignisEOT EreignisCommit EreignisAbort Ereignis Transaktionsereignis Periodisches Zeitereignis RegelerzeugungRegelentfernungRegeländerungRegeladministration Regelereignis Absolutes Zeitereignis REACH Komponenten – Ereigniskomponente- spezialisierte Detektoren und direktes Triggern Klassenhierarchie der Ereignisse
triggern kompositer Ereignis- detektor Regel komponieren Primitiver Ereignis- detektor triggern Signal EOT BOT Primitives Ereignis REACH Komponenten – Ereigniskomponente- spezialisierte Detektoren und direktes Triggern Prinzip des direkten Triggerns Periodischer Zeit- Relativer Zeit-
REACH Komponenten – Ereigniskomponente- Teilkomponenten • Primitive Ereignisse: • gemeinsame Funktionalität aller primitiven Ereignisse • Methodenereignisse after river->updateWaterLevel(x) • TransaktionsereignisseBOT(TA-Name), EOT(TA-Name) COMMIT(TA-Name), ABORT(TA-Name) • Persistenzereignisse • Abstrakte Ereignisse • Regeladministrationsereignisse
REACH Komponenten – Ereigniskomponente- Teilkomponenten • Zeitereignisse • Absolute Zeitereignisseat 2000/03/13/12/00/00 • Relative Zeitereignisse30 minutes after <<event>> • Periodische Zeitereignisse start{stop} 2000/03/13/12/00/00, every 30 minutes
Transaktion Programm 1 PE PE Ereigniskomposition PE PE Programm 2 Transaktion REACH Komponenten – Ereigniskomponente- Teilkomponente Ereigniskomposition
REACH Komponenten – Ereigniskomponente- Teilkomponente Ereigniskomposition Operationen der Ereignisalgebra Sequenz E1 then E2 Konjunktion E1 and E2 Disjunktion E1 or E2 Negation not E2 in E1, E3 Hülle all E2 in E1, E3 Vielfachereignis n times E2 in E1,E3 Beispielafter river->updateWaterLevel(x) then reactor->updateTemp(t)
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)
Übersicht • Einführung • Architektur • Regeldefinition • REACH Komponenten • Administrationswerkzeuge • Fazit • Quellen
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
Übersicht • Einführung • Architektur • Regeldefinition • REACH Komponenten • Administrationswerkzeuge • Fazit • Quellen
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
Quellen Jürgen Zimmermann: Konzeption und Realisierung eines aktiven Datenbanksystems: Architektur, Schnittstellen und Werkzeuge, 2001 Jürgen Zimmermann, Alejandro P. Buchmann, Active Rules in Database Systems, REACH, 1999 Alejandro P. Buchmann, Architecture of Active Database Systems, 1998