[TASK] Generic commit.

This commit is contained in:
Jan Philipp Timme 2016-09-27 10:57:42 +02:00
parent ebead39e63
commit edb5b29928

View File

@ -391,7 +391,8 @@ Von Transaktionen im Handel über Messereignisse von Sensoren bis hin zu Benutze
Um Complex Event Processing durchführen zu können, wird eine CEP-Engine benötigt. Eine CEP-Engine ist eine Software, welche Ereignisdatenströme konsumiert und durch die Auswertung benutzerdefinierter CEP-Regeln verarbeitet. Aufgrund der großen Datenvolumen, die eine CEP-Engine verarbeiten muss, werden Ereignisse nur für die Dauer der Verarbeitung im Speicher gehalten\footnote{Dieser Parameter hängt meist von der Größe der verwendeten Sliding Windows ab.} und nicht persistiert.
\paragraph{CEP-Regeln}
Eine CEP Regel definiert Bedingungen, die in einem Ereignisdatenstrom gesucht werden sollen, gefolgt von Aktionen, die bei zutreffenden Bedingungen ausgeführt werden sollen. Passen Ereignisse aus dem Datenstrom auf die Bedingungen, so matcht die Regel. Die in der Regel definierten Aktionen werden dann ausgeführt --- die Regel feuert\cite{hsh:cep}.
Eine CEP Regel besteht aus zwei Teilen: Der erste Teil definiert Bedingungen, die nach bestimmten Mustern in einem Ereignisdatenstrom suchen sollen. Der zweite Teil definiert eine Reihe von Aktionen, die ausgeführt werden sollen, sobald die Bedingungen der Regel eintreffen. Passen Ereignisse aus dem Datenstrom auf die Bedingungen, so matcht die Regel. Die in der Regel definierten Aktionen werden dann ausgeführt --- die Regel feuert\cite{hsh:cep}.
Um eine effiziente Ereignisverarbeitung durchführen zu können, beziehen sich CEP-Regeln immer nur auf Inhalte von Sliding- oder Tumbling Windows, da somit nur eine endliche, überschaubare Menge von Daten ausgewertet werden muss.
\paragraph{Ereignisse}
Ein Ereignis trägt neben inhaltlichen Informationen über den Vorgang durch den es ausgelöst wurde auch eine eindeutige ID sowie einen Zeitstempel mit sich. Während der Zeitstempel den Zeitpunkt der Ereignisauslösung angibt, dient die ID zur eindeutigen Abgrenzung von anderen Ereignisssen, die vom selben Ereignistyp sind oder zum selben Zeitpunkt entstanden sind. Da es bedingt durch Übertragunglatenz und weitere technische Randbedingungen möglich ist, dass die Ereignisdaten zeitverzögert bei der CEP-Engine ankommen, wird der Zeitstempel ebenfalls benötigt, um die zeitlichen Beziehungen zwischen den Ereignissen zu erhalten.
@ -407,6 +408,8 @@ Um die großen Mengen von Ereignisdaten aus einem Datenstrom effizient verarbeit
Ein \emph{Sliding Window} wird in regelmäßigen Intervallen um eine festgelegten Größe verschoben, um aktuellere Ereignisse zu betrachten, wobei die älteren Ereignisse zugunsten der neuen Ereignisse aus dem Fenster herausfallen. Ein \emph{Tumbling Window} hingegen wird nicht verschoben sondern \enquote{umgeklappt}, sodass alle zuvor in ihm enthaltenen Ereignisse herausfallen und aktuellere Ereignisse in das nun leere Fenster gefüttert werden.
Nur die Ereignisse, die in diesen Ereignisfenstern enthalten sind, werden somit von CEP-Regeln ausgewertet.
\todo{GRAFIK: Sliding Window vs Tumbling Window}
\paragraph{Aggregation von Ereignissen}
@ -518,19 +521,14 @@ Wie aus Listing~\ref{lst:sample_abstract_event_data} zu erkennen ist, ist jedes
\section{Sprachkonzepte für CEP-Regeln}
Um die Ereignisdatenströme von RDF-Quadrupeln nun in der C-SPARQL-Engine verarbeiten zu können, werden im Verarbeitungsprozess CEP-Regeln benötigt, um die Ereignisdaten auszuwerten. Im Fall der C-SPARQL-Engine sind CEP-Regeln als CSPARQL-Queries zu formulieren. Anhand einer abstrakten Sprache soll dieses Kapitel veranschaulichen, wie die einzelnen Aspekte eines CSPARQL-Queries zur Verarbeitung von Ereignisdaten verwendet werden können.
Um die Ereignisdatenströme von RDF-Quadrupeln nun in der C-SPARQL-Engine verarbeiten zu können, werden im Verarbeitungsprozess CEP-Regeln benötigt, um die Ereignisdaten auszuwerten. Im Fall der C-SPARQL-Engine sind CEP-Regeln als CSPARQL-Queries zu formulieren. Anhand einer abstrakten CEP-Regelsprache soll dieses Kapitel veranschaulichen, wie die einzelnen Aspekte eines CSPARQL-Queries zur Verarbeitung von Ereignisdaten verwendet werden können.
\begin{lstlisting}[label={},caption={}]
CONDITION
WITHIN LAST 10min STEPPING 10s
PICK FooEvent AS f, BarEvent AS b
CHECK
f.threshold > 42
AND f.value >= b.otherValue
AND TIMESTAMP(f) > TIMESTAMP(b)
\begin{lstlisting}[mathescape=true,label={lst:sample_abstract_cep_rule},caption={Beispiel für abstrakte CEP-Regelsprache}]
CONDITION (SomeEvent AS e $\longrightarrow$ AnotherEvent AS a $\longrightarrow \neg$NoEvent)[Window:15min,SlideInterval:15s]
$\wedge$ e.foo = a.foo
$\wedge$ e.threshold > 42
ACTION
log(f, b),
create new FooBarEvent(baz=f.threshold+5, bar=f.value)
new FooEvent(Bla=42, Blubber=5)
\end{lstlisting}