Event Engine Architecture

Typical event flow through the ECS is from a threaded source, through an implicit threaded adapter (which is unseen on the GUI or in the ECA, but which provides an additional event buffering layer between sources and filter stacks), into a threaded filter stack(s) to an output destination, which is threaded and able to handle communication delays with external devices because of its contained queue.

The threaded event processor consists of a processing thread and a large queue, which implements the producer/consumer design pattern. Events are received by an object via submit() from a predecessor, pulled off its queue, processed, and sent on to a destination as rapidly as possible. There are four flavors of event processors:

  1. Synchronous (com.eventgnosis.system.SynchronousEventProcessor):
    one element queue, totally synchronous. Is base class of the event processors, containing event & queue statistics for runtime analysis and debug.
  2. Threaded (com.eventgnosis.system.ThreadedEventProcessor):
    simple thread, inheriting from the Synchronous version and adding a larger queue.
  3. ThreadedSource: like threaded, but can only introduce events into the system. Other SystemObjects cannot submit to this type of object.
  4. ThreadedDestination:
    like Threaded, but can only receive events from the system.

A SystemObject contains an EventProcessor iff (if and only if) the object processes events. Examples of SystemObjects that do not process events are the root RuntimeController and its children, the managers for the various System Object categories.

ecs_tec/event_engine_architecture.txt · Last modified: 2007/02/09 18:53 by teofana
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki