The Event System
The event system is used if nevisDataPorter is run as a standalone daemon. The overall architecture of the event system is illustrated in the figure below.
Event messages are generated by Event Sources. An EventSource is an additional type of plugin that implements the EventSource interface.
The current version of nevisDataPorter provides several EventSources:
- TimeEventSource: Generate event messages at given times.
- JmsEventSource: Receive event messages through a JMS queue or topic.
- WsEventSource: Receive event messages through a SOAP web service.
- RsEventSource: Receive event messages through a REST web service.
- SoapEventSource: Receive event messages from arbitrary SOAP messages.
Event messages contain the source of the event and can contain additional data which is made available to the modules of nevisDataPorter through the runtime-configuration repository. The EventSources broadcast the generated messages to the EventDispatcher. It relays the event to a configured module of nevisDataPorter which is executed if a configured condition is met. The module is executed in parallel through the DataPorterPool. It executes module exports in parallel using a pool of DataPorter instances. Concurrency is controlled using a tag. It is ensured that jobs with the same tag are executed serially and in the order submitted.