Runtime Concepts

Runtime refers to the AppNode and the ActiveMatrix BusinessWorks™ engine that host and execute ActiveMatrix BusinessWorks™ applications.

AppNode

An AppNode (also called bwappnode) is an operating system process (JVM) that hosts and executes ActiveMatrix BusinessWorks™ applications. An AppNode consists of two key layers: the OSGI Framework and ActiveMatrix BusinessWorks Engine. The high level architecture of an AppNode is shown in the following figure:

Application Node Architecture

The framework layer performs application life cycle operations, ensures that dependencies required by the application are satisfied, and interacts with the Administrator (TIBCO® Enterprise Administrator or bwadmin utility). The engine layer is responsible for executing the application. The engine is multi-threaded and can execute multiple jobs for the same or different applications concurrently.

At runtime, an AppNode launches the framework to validate and identify dependencies. After the framework validates the modules and the application is deployed, the ActiveMatrix BusinessWorks™ engine starts the underlying processes.

The binary file named bwappnode is packaged under the TIBCO_HOME/bw/version/bin directory.

Each AppNode is associated with an AppSpace. For more information about AppSpaces, see Administration Concepts.

Process Instance

Execution of any process creates an execution scope for the activities that are a part of the process and this scope is called a process instance. Each process instance has a unique id which is referred to as "ProcessInstanceId".

The execution of a process is triggered by various events. For example, events can be generated by a Timer that is scheduled to trigger at specific time intervals, or by changes that occur in the file system, or by messages that are sent by a client over a specific protocol (for example, HTTP, JMS, etc), or simply by messages sent by other processes.

The ActiveMatrix BusinessWorks™ engine is a multi-threaded engine capable of triggering the execution of the same process multiple times, concurrently, once for each event. When the events that trigger the execution of a process occur concurrently, the engine executes the same process multiple times, concurrently, once for each event. And for each execution, the engine creates a process instance that provides an execution scope for the activities that are a part of the process.

Job

Execution of a component process is called a job. Each job has a unique id referred to as JobId.

When the business logic is spread across multiple processes, multiple process instances are created and executed in conjunction with a particular event. Even though these are separate process instances they are work together and can be executed as part of the same job. A job can spawn multiple process instances and can provide the execution context for activities that are part of multiple processes. The engine always executes a job in one engine thread.

All the process instances that are part of the same job have the same JobId. A component process instance and all of its in-line subprocess instances are also considered to be a part of the same job. Non in-line subprocesses spawn a new engine thread and are executed on a different job.