When the Realeyes analysis engine starts, the Manager
process begins initialization. When it has read its own
configuration file and started memory managment, it
starts the defined plugins.
There are five levels of analysis plugins, and an external
communications process. Each level of analysis operates on
a specific type of data:
-
Collector: This plugin operates on the raw data. It may
set some identification information, but primarily allocates
a Data structure with a buffer for the data, and puts it on
a queue.
-
Stream Handler: This plugin takes a Data structure from the
queue, determines which Stream it belongs to, adds it to the
Stream, and updates the state of that Stream.
-
Stream Analyzer: These plugins analyze the data, searching for
the Triggers defined in the configuration file for each plugin.
When a Trigger is found, a Trigger Element is created and put
on a queue for that Stream.
-
Action Analyzer: When a Stream is designated as complete, this
plugin cross references all Triggers that have been detected
with the Actions that have been defined. If the Triggers for
a particular Action meet the required threshold, an Action
Element is created and put on a queue for the Stream.
-
Event Analyzer: This plugin cross references all Actions that
have been detected with the Events that have been defined. If
the Actions for a particular Event meet the required threshold,
an Event Element is created and put on a queue for the Stream.
When this processing is complete and there are Events detected
for the Stream, the plugin creates an Analysis Record which
describes the Events, Actions, and Triggers detected and includes
a window of the data (which is a configurable size) of all
associated Streams.
The external communication is handled by the Spooler. It is
customized for the specific application, but essentially takes
the Analysis Record provided from the Event Analyzer plugin,
and sends it to an external destination. It may also handle
automatic configuration updates and status reporting.
|