Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske...

21
Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Aktive Datenbanken

Transcript of Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske...

Page 1: Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske Aktive Datenbanken.

Swiss Active Mechanism based Object-oriented Database

System

Aktive Datenbanken SS2007 Yves Laske

Aktive Datenbanken

Page 2: Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske Aktive Datenbanken.

Fahrplan

1 Grundsätzliches

2 Ereignisarten

3 Regeldefinition

4 SAMOS-Architektur

5 Kritische Wertung

Swiss Active Mechanism based Object-oriented Database System

Aktive Datenbanken SS2007 Yves Laske

Page 3: Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske Aktive Datenbanken.

1 Grundsätzliches

Swiss Active Mechanism based Object-oriented Database System

„60 Minuten nach Buchung auf dem Waren-eingangskonto, jedoch nur vormittags…“

Aktive Datenbanken SS2007 Yves Laske

Page 4: Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske Aktive Datenbanken.

1 Grundsätzliches

Swiss Active Mechanism based Object-oriented Database System

Aktive Datenbanken SS2007 Yves Laske

• SAMOS als Prototyp eines aDBS• Umfasst eigene Architektur/

Implementierung und Ereignissprache• Entwicklung an der Universität Zürich

seit 1991, Ende der 90er Jahre abgeschlossen

• Vertreter: Stella Gatziu, Klaus R. Dittrich

• Es erfolgte keine Veröffentlichung

Page 5: Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske Aktive Datenbanken.

1 Grundsätzliches

Swiss Active Mechanism based Object-oriented Database System

Aktive Datenbanken SS2007 Yves Laske

• SAMOS auf kommerziellen DBMS ObjectStore auf

• Läuft auf SUN-Rechnern unter UNIX• Objektorientierung in SAMOS:

– Aktive Mechanismen mit Obj.-or. Eigenschaften realisiert

– Ereignisse und Regeln sind Objekte

• Ziel: Ausdrucksstarkes Konzept zur Modellierung komplexer Umwelt-

situationen

Page 6: Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske Aktive Datenbanken.

2 Ereignisarten

Swiss Active Mechanism based Object-oriented Database System

Aktive Datenbanken SS2007 Yves Laske

a) Primitive Ereignisse• Zeitereignisse

Absolute: 07.06.21,09:30Wiederkehrende: EVERY [frequency]

(YEAR|DAY|HOUR|MINUTE) <time>

[interval] EVERY 10 DAY 20:00 06.01.-07.31.Implizite: Eintritt aufgrund anderer Ereignisse occ_point(event_name) end_execution(rule_name)

Page 7: Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske Aktive Datenbanken.

2 Ereignisarten

Swiss Active Mechanism based Object-oriented Database System

Aktive Datenbanken SS2007 Yves Laske

• Methodenereignisse– Objekte kommunizieren durch Nachrichten– Nachrichten lösen Methoden aus– Methoden brauchen Zeitdauer zur Ausführung– BEFORE oder AFTER als Schlüsselwörter

(BEFORE|AFTER).(class_name|object_name|*).method_name

Klasse Ort, Methode Freie_Zimmer():integer BEFORE.Siegmundsburg.Freie_Zimmer

• WertereignisseOperationen auf dem Wert eines Objektes(BEFORE|AFTER).(class_name|object_name).update(attr_name)

Page 8: Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske Aktive Datenbanken.

2 Ereignisarten

Swiss Active Mechanism based Object-oriented Database System

Aktive Datenbanken SS2007 Yves Laske

• TransaktionenereignisseZu Beginn oder Ende der TA(BOT|EOT|ABORT)[transaction_name]

• Abstrakte EreignisseFestlegung nicht automatisch erkennbarer EreignisseDEFINE EVENT Zimmer_AbgebranntRAISE Zimmer_Abgebrannt

Page 9: Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske Aktive Datenbanken.

2 Ereignisarten

Swiss Active Mechanism based Object-oriented Database System

Aktive Datenbanken SS2007 Yves Laske

b) Zusammengesetzte Ereignisse• Ereigniskonstruktoren

Möglichkeit der Ereigniskombination

Konjunktion (E1,E2) Beide eingetreten,

Reihenfolge beliebig

Disjunktion (E1|E2) Eines von beiden

Sequenz (E1;E2) Beide in der angegebenen Reihenfolge

Negation NOT E Nichteintritt

*-Operator *E Signalisierung nur beim ersten Auftritt

Page 10: Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske Aktive Datenbanken.

2 Ereignisarten

Swiss Active Mechanism based Object-oriented Database System

Aktive Datenbanken SS2007 Yves Laske

Historische Ereignisse:Bei Relevanz der Auftrittshäufigkeit

TIMES(n,E)

TIMES([n1,n2],E)

Page 11: Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske Aktive Datenbanken.

3 Regeldefinition

Swiss Active Mechanism based Object-oriented Database System

Aktive Datenbanken SS2007 Yves Laske

• Kommunikationsmedium des Anwenders (Entwicklers)

• Basiert auf spezieller Syntax zum Beschreiben von Szenarien

• Umsetzung der ECA-Regeln

• Zahlreiche Methoden zum Arbeiten mit Ereignissen bereitgestellt z.B. occ_point(event_name),…

Page 12: Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske Aktive Datenbanken.

3 Regeldefinition

Swiss Active Mechanism based Object-oriented Database System

Aktive Datenbanken SS2007 Yves Laske

DEFINE RULE <rule_name>ON <event_clause>IF <condition>DO <action>COUPLING MODE (<coupling>,<coupling>)PRIORITIES (BEFORE | AFTER) <rule_name>

I.d.R. wird jedes Ereigniss vorab deklariert:

DEFINE EVENT <event_Name><event_clause>

Page 13: Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske Aktive Datenbanken.

3 Regeldefinition

Swiss Active Mechanism based Object-oriented Database System

Aktive Datenbanken SS2007 Yves Laske

„60 Minuten nach Buchung auf dem Wareneingangs-konto, jedoch nur vormittags erfolgt Parallelbuchung auf Konto K1“

DEFINE EVENT PB

Einkauf.Buchung_erfolgt

DEFINE RULE R1

ON PB

IF if((occ_point(PB)+01:00) < 12:00)

DO Einkauf.PB_K1

COUPLING MODE (immediate,deferred)

Page 14: Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske Aktive Datenbanken.

3 Regeldefinition

Swiss Active Mechanism based Object-oriented Database System

Aktive Datenbanken SS2007 Yves Laske

Coupling ModeWann Bedingungsauswertung bzw. Aktionsausführung beginnen• Immediate: direkt nach Ereignisauslösung, nach

Bedingungsauswertung• Deferred: Am Ende der auslösenden TA, nach

Bedingungsauswertung• Decoupled: Ausweisung in separate TA

COUPLING MODE (<coupling1>,<coupling2>)

coupling1: Wann wird Bedingung ausgeführt?

coupling2: Wann wird Aktion ausgeführt?

Page 15: Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske Aktive Datenbanken.

4 SAMOS-Architektur

Swiss Active Mechanism based Object-oriented Database System

Aktive Datenbanken SS2007 Yves Laske

3-SchichtenarchitekturVorteil der Schichtenarchitektur:

schnellere Implementierung

Schichten:• Objektorientiertes DBMS• SAMOS-Kern• Toolschicht

Page 16: Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske Aktive Datenbanken.

4 SAMOS-Architektur

Swiss Active Mechanism based Object-oriented Database System

Aktive Datenbanken SS2007 Yves Laske

Untere Schicht: DBMS-Ebene als Black-Box• DBMS ObjectStore (Object Design)• C++-Implementierung• Regeldefinitionen sind Instanzen der Klasse rule• Speicherung von Regeln und Ereignissen in

ObjectStore als Objekt

Page 17: Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske Aktive Datenbanken.

4 SAMOS-Architektur

Swiss Active Mechanism based Object-oriented Database System

Aktive Datenbanken SS2007 Yves Laske

Mittlere Schicht: SAMOS-Kern• Funktionale Elemente zur

Ereigniserkennung • Ausführung zur Laufzeit

Page 18: Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske Aktive Datenbanken.

4 SAMOS-Architektur

Swiss Active Mechanism based Object-oriented Database System

Aktive Datenbanken SS2007 Yves Laske

Obere Schicht: Toolebenea) Vorabtools zur Regeldefinition

– Editor/Compiler– Termination Analyzer– Browser

b) Laufzeittools– Testing Component (vollst. Testumgebung)– Explanation Component (Visualisierung aktueller

Vorgänge)

Page 19: Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske Aktive Datenbanken.

4 SAMOS-Architektur

Swiss Active Mechanism based Object-oriented Database System

Aktive Datenbanken SS2007 Yves Laske

„SAMOS in Hindsight: Experiences in Building an Active Object-Oriented BDMS“

Page 20: Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske Aktive Datenbanken.

5 Kritische Wertung

Swiss Active Mechanism based Object-oriented Database System

Aktive Datenbanken SS2007 Yves Laske

• Ereignissprache mächtig, teilw. Zu komplex

• Beast-Benchmark als Indikator zur Performancesteigerung

• Event-Detector ist maßgebend für Performance

• Abhängigkeit vom DBMS problematisch

Page 21: Swiss Active Mechanism based Object- oriented Database System Aktive Datenbanken SS2007 Yves Laske Aktive Datenbanken.

Literatur

Swiss Active Mechanism based Object-oriented Database System

Aktive Datenbanken SS2007 Yves Laske

S. Gatziu, A. Geppert, K.R. Dittrich. The SAMOS Active DBMS Prototype (Demonstration). Proc. ACM SIGMOD Int’l Conf. on Management of Data, San Jose, CA, May 1995.

S. Gatziu, K.R. Dittrich: Events in an Active Object-Oriented Database System. In N.W. Paton, H.W. Williams (eds): Proc. Workshop on Rules in Database Systems, Edinburgh, UK, September 1993 (Workshops in Computing, Springer-Verlag, 1994).

S. Gatziu, K.R. Dittrich: Detecting Composite Events in an Active Database Systems Using Petri Nets. Proc. of the 4th Intl. Workshop on Research Issues in Data Engineering: Active Database Systems, Houston, February 1994.

K.R. Dittrich, H. Fritschi, S. Gatziu, u.a.: SAMOS in Hindsight: Experiences in Building an Active Object-Oriented DBMS. Database Technology Research Group. Technical Report 2000.05, Zurich, 2000.

S. Gatziu, K.R. Dittrich: Eine Ereignissprache für das aktive, objektorientierte Datenbanksystem SAMOS. Datenbanksysteme in Büro, Technik und Wissenschaft, 1993.