E - Institut für Informatik III

Werbung
Ereignisorientiertes Programmieren
E.3
E.3
E.3 Ereignisorientiertes
Ereignisorientiertes
Programmieren
Programmieren
©
2001 Prof. Dr. Rainer Manthey
Informatik I
1
Ereignisorientierte Programmierung - ein neues Paradigma der Informatik?
E.3
• in verschiedensten Gebieten der Informatik zu beobachten:
Entstehung neuer Programmiertechniken zur komfortableren
Programmierung reaktiver Systeme
• zentrales Konzept all dieser Ansätze: Ereignis (engl.: "event")
• Beispiele für Ereignisse:
• Aufruf oder Abschluss bestimmter Prozeduren/Methoden
• Eintreten bestimmter Konstellationen im Speicher
• Eintreffen externer Signale oder Eingaben
• Eintreten bestimmter Zeitpunkte
• Auftreten von Ausnahme- oder Fehlersituationen
•
©
gemeinsames Programmierkonzept zur "Behandlung" solcher Ereignisse: Reaktionsregel, die festlegt, welche Aktion ausgelöst werden
soll (engl.: "to trigger")
ON
event> DO
reaction>
ON <<event>
DO <<reaction>
2001 Prof. Dr. Rainer Manthey
Informatik I
2
Reaktive Systeme (1)
E.3
Ereignisorientierte
EreignisorientierteProgrammierung
Programmierung == Programmierung
Programmierungreaktiver
reaktiverSysteme
Systeme
Sensoren
Sensoren
stimulierende
Ereignisse
ausgelöste
(Re-)Aktionen
Effektoren
Effektoren
©
2001 Prof. Dr. Rainer Manthey
Informatik I
3
Mobile, autonome Roboter: Beispiele reaktiver Systeme
E.3
Sensoren
Sensoren
Beispiel eines
"reaktiven Systems":
Effektor
Effektor
RHINO,
der mobile Roboter
der Informatik III
©
2001 Prof. Dr. Rainer Manthey
Informatik I
4
Aktive Datenbanksysteme: ebenfalls reaktive Systeme
E.3
Auch
Auchaktive
aktiveDB-Systeme
DB-Systemesind
sindspezielle
spezielleFormen
Formenreaktiver
reaktiverSysteme.
Systeme.
DBMS
DB
Regelbasis
(ON . . DO)
©
2001 Prof. Dr. Rainer Manthey
Informatik I
5
Reaktive Systeme (2)
E.3
stimulierte
stimulierteZustände
Zustände
reagierende
reagierendeZustände
Zustände
interne
interneZustände
Zustände
interne
interneZustandsübergänge
Zustandsübergänge
©
2001 Prof. Dr. Rainer Manthey
Informatik I
6
Reaktive Systeme (3)
E.3
"reaktives
"reaktivesProgramm":
Programm":
Festlegung der Reaktionen
des Systems auf bestimmte
Ereignisse
©
2001 Prof. Dr. Rainer Manthey
Informatik I
...
7
Reaktive Systeme (4)
E.3
introvertierte
introvertierte
Reaktionen
Reaktionen
exogene
exogeneEreignisse
Ereignisse
extrovertierte
extrovertierte
Reaktionen
Reaktionen
endogene
endogeneEreignisse
Ereignisse
"von {außen|innen} erzeugt"
©
2001 Prof. Dr. Rainer Manthey
"nach {außen|innen} gerichtet"
Informatik I
8
Aktive DB-Regeln: Beispiel
E.3
Exogene, introvertierte Reaktion auf DB-Änderungen in aktiven Datenbanken:
von
vonaussen
aussenangestossen
angestossen
define
defineimmediate
immediatetrigger
triggerAdjustSalary
AdjustSalaryfor
foremployee
employee
events
events create,
create,modify(salary)
modify(salary)
condition
condition Self.salary
Self.salary>>Self.mgr.salary
Self.mgr.salary
actions
actions modify(employee.salary,
modify(employee.salary,Self,
Self,Self.mgr.salary)
Self.mgr.salary)
after
department.raiseBudget
after
department.raiseBudget
end;
end;
Chimera
(objektorientiert)
interne
interneReaktion
Reaktion(Folgeänderung)
(Folgeänderung)
CREATE
CREATE TRIGGER
TRIGGER reinsertDel
reinsertDel
BEFORE
BEFORE DELETE
DELETE ON
ON copy
copy
REFERENCING
REFERENCING OLD
OLD ROW
ROW AS
AS deleted
deleted
FOR
FOR EACH
EACH ROW
ROW
WHEN
WHEN deleted.copycol
deleted.copycol BETWEEN
BETWEEN 10
10 AND
AND 20
20
INSERT
INSERT INTO
INTO main
main
VALUES
VALUES deleted
deleted
©
2001 Prof. Dr. Rainer Manthey
Informatik I
SQL 3
(relational)
9
Reaktive Systeme (5)
E.3
Reaktionen
,
Reaktionenkönnen
könnenselbst
selbstwieder
wiederEreignisse
Ereignissedarstellen
darstellen,
auf
aufdie
diedas
dasSystem
Systemreagieren
reagierenkann
kann
Mehrstufigkeit
Mehrstufigkeit
Rückkopplung/feedback
Rückkopplung/feedback
©
2001 Prof. Dr. Rainer Manthey
Informatik I
10
Reaktive Systeme (6)
E.3
Systemtakt
synchrone
synchroneEreignisse
Ereignisse
asynchrone
asynchrone
Ereignisse
Ereignisse
©
2001 Prof. Dr. Rainer Manthey
Informatik I
11
Imperativ versus reaktiv
E.3
begin
A1
imperatives Programm:
A2
begin
begin
AA1 ;;
1
AA2 ;;
2
AA3 ;;
3
ifif CC
then
then AA4a4a
else
else AA4b4b;;
AA5
5
end
end
A3
C
A4b
A4a
A5
end
©
2001 Prof. Dr. Rainer Manthey
Informatik I
12
Imperativ versus reaktiv (2)
E.3
reaktives Programm:
E1
A1
on
on EE11 do
do AA11. .
E2
on
on (E
(E11or
orEE22)) do
do AA22. .
on
on EE33 do
do (A
(A33;;AA44).).
E3
on
on EE44 do
do
if CCthen
((if
thenAA44else
elseAA55).).
E4
wesentlicher Unterschied:
• andere Aktivierungsart
• anderes Ablaufschema
als bei imperativen Programmen
©
2001 Prof. Dr. Rainer Manthey
A2
A3
A4
C
A4
Informatik I
13
Reaktives System: generelle Systemfunktionalität
E.3
Ereignisorientierte Sprachen müssen durch eine "intelligente" Kontrolle
zur Laufzeit realisiert werden:
Kontrollmodul wartet auf relevante Ereignisse und
reagiert dann gemäss seinem reaktiven Programm.
"Oberflächenprozeß" (z.B. Programmablauf, DB-Transaktion, Aussenwelt)
...
(suspendiert)
...
beobachten
?
reagieren
"Hintergrundaktivität"
(ggf. auch nebenläufig)
prüfen
©
2001 Prof. Dr. Rainer Manthey
Informatik I
14
Othello-Spiel
E.3
1. Zug von Schwarz
(exogen)
sehr simples Beispiel eines
reaktiven Programms:
Spielprogramm für
Othello
Systemreaktion
Systemreaktion
(extrovertiert)
(extrovertiert)
Gegenzug von Weiß
(exogen)
©
2001 Prof. Dr. Rainer Manthey
Informatik I
15
Ereignisorientierung in der Programmierung: Stand heute
E.3
• Ereignisorientierte Programmierkonstrukte findet man bereits heute
in vielen Sprachen und Anwendungsgebieten.
• Am weitesten verbreitet (und am bekanntesten):
• Graphikprogrammierung (ON mouse_click DO . . .)
• Webseitengestaltung (HTML-Ereignisse)
• ältestes Anwendungsgebiet (?): Künstliche Intelligenz
• Expertensysteme (Produktionsregeln, OPS5)
• Robotik, Agentensysteme
• Programmiersprachlich am weitesten entwickelt: Sprachen zur Spezifikation von Signalverarbeitungs- und Telekommunikationssystemen
(meist für verteilte, parallele Systeme): Esterel, SDL, LOTOS u.a.
• Weitgehende Untersuchungen von Syntax- und Semantikformen:
aktive Datenbanken
2.2.Semester:
Semester: Ereignisse
Ereignissein
inJava
Java
©
2001 Prof. Dr. Rainer Manthey
Informatik I
16
Herunterladen