Events Terminology and Concepts

This topic terminology and concepts pertaining to events.

Event

Note: An event was referred to as a mashup event or an ALF event in previous releases of SBM.

An event is a Web services message signaling a meaningful change from an application or external product. For example, an issue defect management application in SBM might generate an event every time a user enters a new defect, or an external product might raise an external event named BuildCompleted. When an event is received by the Event Manager, the SBM Orchestration Engine is called to execute the orchestration workflow linked to the event.

Events are SOAP messages. SBM supports both HTTP and e-mail transports for event SOAP messages. The Event Manager provides RPC/literal messaging and document/literal messaging services to accept event requests. It does not support RPC/encoded messaging.

Important: While events can be raised using either RPC/literal or document/literal messaging format, they are defined using RPC/literal messaging format (see Defining an Event Definition.)

Extensions that come with particular event types must be defined so an orchestration workflow can access the extension data in the event. However, the same event can also be handled by an orchestration workflow that only understands the base event.

To accomplish this, schema restriction-based derived types are defined that allow for tightening of the value range or other restrictions on certain elements in a complex type. In this way, a type that is an ALFEventType can be declared that only allows, for example, an EventType of ThingCreated and an ObjectType of either Thing1 or Thing2.

For large events (for example, events with a large amount of BASE64 data) SBM can accept compressed events that are sent in Gzip format.

Event Manager

The Event Manager is a component in Solutions Business Manager that responds to events sent by applications and products. The Event Manager calls orchestration workflows implemented as BPEL processes.

Event Map

The Event Manager dispatches events according to a configured map, called the event map. The event map relates events to the orchestration workflows that should run when an event occurs. Products that can raise events can declare their events by means of a specific WSDL format called an event definition. (See Defining an Event Definition.) The event definition can be used by a product, such as Solutions Business Manager, to construct an event map and to deploy the event map to the Event Manager. At runtime, the Event Manager receives the event, and if the event appears in a deployed event map, it invokes the associated orchestration workflow or workflows, passing on the event data.

Orchestration Workflow

An orchestration workflow is a sequenced arrangement of Web service calls designed using SBM Composer. Orchestration workflows combine Web services using loops and decision branches and define the way data is mapped between the Web services. The final arrangement is saved as a BPEL process. Orchestration workflows can be linked to application workflows in a process app through actions on both transitions and states. Orchestration workflows can run asynchronously using an event, or they can be called synchronously, where the action waits for the orchestration workflow to return some data. When designed to be used with an event, orchestration workflows can also be invoked by external systems.

SBM Orchestration Engine

The SBM Orchestration Engine is the component in Solutions Business Manager that executes orchestration workflows. Using SBM Composer, Web services can be sequenced and then executed in response to an event or by transitions in applications.

Object

In Solutions Business Manager, an object is identified in the event structure by the values of ObjectType and ObjectId. In other words, the ObjectType and ObjectId are used to refer to the object that originated the event. An event typically originates due to a change in an object. The ObjectType/ObjectId identifies the source of the event within the product and the EventType/EventId identifies the type of change that caused the event.