Runtime Concepts

Runtime refers to the AppNode and the TIBCO BusinessWorks™ Container Edition engine that host and execute TIBCO BusinessWorks™ Container Edition application.

AppNode

An AppNode (also called bwappnode) is an operating system process (JVM) that hosts and executes TIBCO BusinessWorks™ Container Edition application. An AppNode consists of two key layers: the OSGI Framework and TIBCO BusinessWorks™ Container Edition 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. The engine layer is responsible for the executing the application. The engine is multi-threaded and can execute multiple jobs for the same application concurrently.

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

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

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 (HTTP, JMS, etc), or simply by messages sent by other processes.

The TIBCO BusinessWorks™ Container Edition 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 an 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 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 of the process instances that are part of the same job will 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.