2016/05/28 - Apache Tuscany has been retired.

For more information, please explore the Attic.

 Apache Tuscany > Home > SCA Overview > SCA Java > Java SCA Documentation Menu > SCA Java Event Processing User List | Dev List | Issue Tracker  

This page is the top level page for information relating to the SCA Java Event Processing work.

There is a Prototype project for SCA Event processing being carried out in a Sandbox associated with the SCA Java project (sandbox/event). These pages help to describe the work taking place in that sandbox.

Event Processing Compared with Service Processing

Currently SCA describes a programming model which is concerned with Service Processing - business function is developed as a series of services, which are implemented by components. Each service may have one or more operations. Each operation typically has (zero or more) request message and optionally some response message. One important aspect of a service operation is that the client invokes a specific operation, providing the necessary request message, and the client knows that a specific service implementation will execute the operation - and the operation usually has some implied business semantics associated with it. SCA provides a model for writing services and service clients at the implementation language level (eg in Java) and also an Assembly level model for composing sets of components together, satisfying service references made by one component by wiring them to a component that provides the service.

Event processing is a different approach to programming business applications, offering a more loose coupled approach to application design. In event processing, one component can produce a message, called an Event, which it makes available for other components to consume. The Producer component produces the event whether or not there are actually any Consumer components listening for that event. The event can be received by zero, one or many Consumer components. When a Producer produces an event, no semantics are implied for what processing should happen if the event is consumed - a consumer component is free to do what it wants with the event. A Consumer may consume only one type of event, or it may consume many different types of events.  A consumer may consume events from only one producer or it may consume events from many different producers.

As for Service Processing, SCA Event Processing is described at two levels:

  1. The programming model for writing component implementations with event consumers and/or event producers
  2. The Assembly model for combining multiple components into an application, linking producers with consumers

These are extensions to the standard SCA Service Processing model - not replacements, so that components may offer or use services alongside the producing or consuming of events.

The following page describes the Event Processing model for Java implementations:
Java Implementation Model for Event Processing

The following page describes the Event Processing Assembly model:
Assembly Model for Event Processing

The following page describes the sandbox implementation of the SCA Event Processing Model:
Sandbox Implementation of SCA Event Processing

website stats