• Keine Ergebnisse gefunden

6.1 Metamodell

6.1.3 Fenster

Eine Ereignisregel kann in EPMN optional mit genau einem Fenster versehen werden, um den darin eingehenden Ereignisstrom auf eine endliche Menge zu begrenzen. Darüber hinaus kann ein

Fens-246vgl. Crockford 2006; Crockford 2011

ter wesentlich zur Ausdrucksfähigkeit des komplexen Ereignismusters insbesondere im Kontext von Echtzeitanforderungen beitragen. Ist ein Fenster vorgesehen, so wird die in der Ereignisregel formulierte Bedingung aus eingehenden Ereignissen und Operatoren nur dann evaluiert, wenn ei-ne aktive Fensterinstanz existiert, die den Ausschnitt des Ereignisstroms bereits geöffei-net, aber noch nicht geschlossen hat, und dieser Ausschnitt übereinstimmende Ereignisinstanzen beinhaltet.

Wie in Abbildung 6.3 in UML-Notation dargestellt, repräsentiert das EPMN-Element Fenster

eine abstrakte Basisklasse, von welcher die ElementeFestesFenster,GleitendesZeitfensterund

GleitendesLängenfensterals drei Arten von möglichen Fenstern abgeleitet werden.

Fenster

FensterStart 1 FensterEnde

EingehendesEreignis 1

Zeitspanne

GleitendesZeitfenster

Länge

GleitendesLängenfenster

Wert

Zeitdauer Wert

Zeitpunkt Zeitbeschränkung [0..1]

Intervall [0..1]

Wiederholungen [0..1]

FestesFenster

Abbildung 6.3:Fenster im Metamodell

Tabelle 6.4 skizziert die jeweilige Bedeutung dieser drei Fensterarten des EPMN-Metamodells.

Element Beschreibung

FestesFenster Besitzt einen Startauslöser, der eine aktive Fensterinstanz öffnet, und einen Endauslöser, der diese wieder schließt, wobei das Fenster zwischen diesen bei-den Auslösern als fester Ausschnitt aus dem Ereignisstrom fixiert bleibt

GleitendesZeitfenster Besteht aus einer definierten Zeitspanne, die von der Vergangenheit bis zum aktuellen Zeitpunkt reicht und mit Fortschreiten der Zeit gleitet, sodass stets ein aktueller Ausschnitt des Ereignisstroms betrachtet wird

GleitendesLängenfenster Besteht aus einer definierten Anzahl von Ereignissen bis zum aktuellen Zeit-punkt, wobei das Fenster erst mit einem neu eintreffenden Ereignis gleitet, in-dem nach in-dem FIFO-Prinzip dafür das älteste Ereignis aus in-dem Fenster fällt

Tabelle 6.4:Arten von Fenstern im Metamodell

Festes Fenster

Das EPMN-ElementFestesFenster enthält laut Abbildung 6.3 jeweils ein Element FensterStart

und FensterEnde, die abstrakte Basisklassen und demnach eine Art von Platzhaltern für unter-schiedliche Elemente als Start- und Endauslöser für das feste Fenster repräsentieren. Als konkrete Umsetzung einesFensterStart-Elements kann entweder einEingehendesEreignis oder ein fest-gelegterZeitpunktfungieren, deren Eintreffen jeweils eine aktive Fensterinstanz und damit einen Ausschnitt aus dem Ereignisstrom für die betrachtete Ereignisregel öffnet. Bei einem Zeitpunkt

als Startauslöser können auch periodische Wiederholungen des festen Fensters angegeben werden.

Geschlossen wird das Fenster mit demFensterEnde-Element, welches entweder durch ein weiteres

EingehendesEreignis, einen weiterenZeitpunktnach dem Startauslöser oder durch eine festgeleg-teZeitdauerab dem Startauslöser des Fensters umgesetzt werden kann. Für einFestesFenster kön-nen demnach die in Tabelle 6.5 aufgeführten Kombinatiokön-nen vonFensterStart- undFensterEnde -Elementen als Start- und Endauslöser spezifiziert werden.

Startauslöser Endauslöser Bezeichnung

EingehendesEreignis EingehendesEreignis Festes Ereignisfenster

EingehendesEreignis Zeitpunkt Festes Ereigniszeitfenster

EingehendesEreignis Zeitdauer Festes Ereigniszeitfenster

Zeitpunkt EingehendesEreignis Festes Zeitereignisfenster (auch periodisch wiederholend)

Zeitpunkt Zeitpunkt Festes Zeitfenster (auch periodisch wiederholend)

Zeitpunkt Zeitdauer Festes Zeitfenster (auch periodisch wiederholend)

Tabelle 6.5:Kombinationen von Auslösern für feste Fenster im Metamodell

Ein EingehendesEreignisin einem festen Fenster ist immer inklusiv zu verstehen, sodass es zu-gleich dem betrachteten Ausschnitt des Ereignisstroms angehört und bei der Evaluierung der Er-eignisregel berücksichtigt wird. AlsEingehendesEreignismuss es vollständig spezifiziert werden (siehe Abschnitt 6.2.2) und kann einenFilteroperatorund/oder einenKardinalitätsoperator be-inhalten. BeimKardinalitätsoperator(siehe Abschnitt 6.1.4) kann an dieser Stelle allerdings kein Kardinalitätsbereich für die Anzahl an eingehenden Ereignisinstanzen angegeben werden, sondern lediglich ein einzelner Wert >1, sodass beim Auftreten genau dieser Anzahl an Ereignisinstanzen das feste Fenster unmittelbar geöffnet oder geschlossen wird.

Ein Zeitpunkt-Element besitzt im EPMN-Metamodell lediglich das Attribut Wert, welches in Tabelle 6.6 charakterisiert wird.

Attribut Datentyp Beschreibung

Wert Instant Spezifiziert einen Zeitpunkt, dessen Format sich nach ISO 8601 mit Datum und Uhrzeit richtet

Tabelle 6.6:Attribut eines Zeitpunkts im Metamodell

Das Format für den Werteines Zeitpunkt-Elements orientiert sich an der standardisierten Defini-tion von Zeitpunkten mit Datum und Uhrzeit aus ISO 8601, die bis auf Millisekunden angegeben werden können und deren exakte Spezifikation in der weiterführenden Literatur verfügbar ist.247 Als Beispiel für die Nutzung dieses Formats wird etwa der 8. November 2013, 9:32 Uhr, acht Sekun-den und zwölf MillisekunSekun-den mitteleuropäischer Zeit folgendermaßen angegeben:

2013-11-08T09:32:08.012+01:00

In der Ecore-Umsetzung wird hierfür einEDataType-Element mit der BezeichnungZeitpunktTyp de-finiert, das als Datentyp für das AttributWertdesZeitpunkt-Elements fungiert. Dieser neue Daten-typ wird durch die Java-HilfsklasseInstantaus der Standard-Bibliothekorg.joda.timeumgesetzt, die eine dedizierte programmiertechnische Behandlung von zeitbezogenen Formaten basierend auf ISO 8601 zur Verfügung stellt.248

Ein Zeitdauer-Element beinhaltet im EPMN-Metamodell ebenfalls lediglich das Attribut Wert, dessen Datentyp und Bedeutung in Tabelle 6.7 aufgeführt sind.

Attribut Datentyp Beschreibung

Wert Period Spezifiziert eine Zeitdauer, deren Format sich nach ISO 8601 für eine zeitliche Dau-er richtet

Tabelle 6.7:Attribut einer Zeitdauer im Metamodell

Das Format für denWerteinesZeitdauer-Elements folgt der standardisierten Definition von zeitli-chen Dauern aus ISO 8601, deren genaue Spezifikation ebenfalls in der Literatur nachzulesen ist.249 Beispielhaft für die Nutzung dieses Formats wird etwa eine zeitliche Dauer von zwei Tagen, drei Stunden, acht Sekunden und vier Millisekunden folgendermaßen angegeben:

P0Y0M2DT3H0M8.004S(oder verkürztP2DT3H8.004S)

Auch hierfür wird in der Ecore-Umsetzung ein neuer Datentyp alsEDataTypedefiniert. Dieser trägt die BezeichnungZeitdauerTypund referenziert die Java-HilfsklassePeriodder bereits genannten Standard-Bibliothekorg.joda.time.

EinFestesFenster-Element besitzt die optionalen AttributeZeitbeschränkung,Intervallund

Wiederholungen, die in Tabelle 6.8 mit ihren Datentypen und Bedeutungen charakterisiert werden.

Wie das AttributWertdesZeitdauer-Elements basieren auch beimFestesFenster-Element die bei-den optionalen AttributeZeitbeschränkungundIntervallauf der nach ISO 8601 standardisierten Definition für zeitliche Dauern. Dementsprechend wird für beide Attribute in der Ecore-Umsetzung wieder die HilfsklassePeriodaus der Java-Standard-Bibliothekorg.joda.timeüber den behelfsmä-ßig definierten DatentypZeitdauerTypverwendet.

247vgl. ISO 2004, S. 18 f.

248siehehttp://www.joda.org/joda-time

249vgl. ISO 2004, S. 20 f.

Attribut Datentyp Beschreibung

Zeitbeschränkung Period Optionale Angabe einer maximalen Zeitdauer für eine offene Fens-terinstanz, um bei Nichteintreffen des Endauslösers innerhalb die-ser Zeitdauer einen Speicherüberlauf zu verhindern

Intervall Period Optionale Angabe eines periodischen Wiederholungsintervalls bei einemZeitpunktals Startauslöser, das ab diesem Zeitpunktgilt und das Format für eine zeitliche Dauer nach ISO 8601 annimmt

Wiederholungen PositiveInteger Bei gesetztem Intervalloptionale Angabe der Anzahl von peri-odischen Wiederholungen (ein nicht gesetztes Attribut entspricht dann unbegrenzten periodischen Wiederholungen)

Tabelle 6.8:Attribute eines festen Fensters im Metamodell

Gleitende Fenster

Diese Art der Fenster gleitet entweder mit fortschreitender Zeit alsGleitendesZeitfensteroder mit neu eingehenden Ereignissen im Ereignisstrom als GleitendesLängenfenster, sodass der be-trachtete Ausschnitt des Ereignisstroms stets lediglich die aktuellsten Ereignisse bezüglich der Zeit oder einer festgelegten Anzahl an Ereignissen enthält. Je nach Größe des gleitenden Fensters wer-den ältere Ereignisse bei der Evaluierung der zugehörigen Ereignisregel nicht mehr berücksichtigt.

Gleitende Fenster betonen somit die Aktualität und Echtzeitorientierung der Ereignisverarbeitung.

Tabelle 6.9 führt die Attribute von gleitenden Fenstern im EPMN-Metamodell mit ihren Datenty-pen und Bedeutungen auf.

Attribut Element Datentyp Beschreibung

Zeitspanne GleitendesZeitfenster Period Spezifiziert die Größe des Fensters als Zeit-dauer basierend auf ISO 8601

Länge GleitendesLängenfenster PositiveInteger Spezifiziert die Größe des Fensters als An-zahl von enthaltenen Ereignissen

Tabelle 6.9:Attribute von gleitenden Fenstern im Metamodell

Für das AttributZeitspanne wird wieder der behelfsmäßig definierte DatentypZeitdauerTyp ver-wendet, der durch die Java-Hilfsklasse org.joda.time.Period umgesetzt wird, um eine zeitliche Dauer nach ISO 8601 zu repräsentieren. Aufgrund der Betonung der Echtzeitorientierung werden typischerweise Zeitspannen im Minuten- oder Sekundenbereich definiert, bei hohen Echtzeitanfor-derungen gar im Millisekundenbereich. Der durch ein GleitendesZeitfenster betrachtete Aus-schnitt aus dem Ereignisstrom kann je nach Durchsatzrate an Ereignissen während der definierten Zeitspanne entweder eine Vielzahl an Ereignissen oder überhaupt keine Ereignisse beinhalten.

Ein GleitendesLängenfenster füllt sich hingegen vom Beginn der Ereignisverarbeitung an so lange mit Ereignissen aus dem Ereignisstrom, bis die im AttributLängedefinierte Anzahl erreicht ist.

Ab dann enthält es stets diese konstante Anzahl an Ereignissen, da jedes neu eingehende Ereignis das älteste nach dem FIFO-Prinzip aus dem Fenster verdrängt.