Processes

Processes capture and describe the flow of business information in an enterprise between different data sources and destinations.

Processes comprise of activities that accomplish tasks. The flow of data between activities in a process is represented using transitions, conditions, and mappings. TIBCO Business Studio™ provides design palettes containing activities and transitions that can be used to develop business processes.

Parent Process
A process can call another process. The calling process is referred to as a caller process or a parent process.
Subprocess
A process can be called by another process. The called process is referred to as a subprocess or a child process.
There are two types of subprocesses a parent process can call: a direct subprocess or a service subprocess.
  • A direct subprocess does not require a WSDL to define subprocess details. Instead, details are set on the Start and End activities in the process interface.
  • A service subprocess requires a WSDL, and can be configured to use SOAP or REST binding.
There are two ways for a parent process to call a subprocess: inline and non-inline.
At runtime, inline subprocesses are executed based on their configurations:
  • If an inline subprocess is configured for a one way operation, a separate job is not spawned. The job is executed in the same engine thread.
  • If an inline subprocess is configured for a one way operation, and contains an asynchronous activity, a separate job is not spawned, but the job is executed on a separate engine thread.
  • If an inline subprocess is configured to send reply and wait for a request, a separate job is not spawned, and the job is executed on the same engine thread. Main processes and subprocesses do not execute in parallel.
At runtime, non- inline subprocesses are executed based on their configurations:
  • If a non-inline subprocess sends a one way request, a separate job is spawned and executed in a separate engine thread with parallel processing.
  • If a non-inline subprocess is configured to send reply and wait for a request, a separate job is spawned, and the job is executed on a separate engine thread. Main processes and subprocesses do not execute in parallel.
Component Process
The execution of a process is triggered by various events. Often the business logic that is designed to react to a particular event is spread across multiple processes. One of the processes is special and it reacts to the original event and triggers the execution of the other processes. This special process is referred to as the component process or main process. A component process is responsible for initiating the job at run time.

A component process is designed to react to various events and these events are triggered by Bindings.

Stateless Process
A process that does not require the BusinessWorks™ engine to maintain its state across invocations is called a stateless process. If needed, a developer can design a stateless process to manually maintain the process state by using an external persistence store.

Process Services
A process can provide services to other processes. A process service exposes the operations provided by the process and is implemented using a WSDL or a JSON file. When the process is implemented by a component, the process services are exposed as component services, which then need to be configured using bindings.
Process References
A process can consume services provided by other processes or by external service providers. A process reference exposes the operations consumed by the process and is implemented using a WSDL or a JSON file. A process reference can be configured to invoke a process or an external service.

When the process is implemented by a component, the process references that are not configured to call a process or an external service through a binding are exposed as component references, which then need to be configured using bindings.

Activator Process
An activator process is a special process that can be used to perform pre-processing and post-processing tasks when the application is started and stopped respectively. The activator process contains a process service with two operations: OnStartup and OnShutDown.

The OnStartup operation is called when an application is started, but before executing any other processes in the application. The OnStartup operation can be used to implement any pre-processing tasks that must be performed for the application before the regular processing starts. For example, the OnStartup operation can be used to check if the database tables required by an application exist, and create them if they do not exist. If this process instance faults due to an unhandled exception, the application does not start.

The OnShutDown operation is called when an application is stopped, but after stopping and completing all other processes in the application. The OnShutDown operation can be used to implement any post-processing tasks that must be performed for the application after the regular processing is complete. For example, the OnShutDown operation can be used to send an email to administrators notifying them that the application is being stopped.

The activator process can only be configured for an application module. There can be only one activator process per application module. However, the activator process can invoke one or more sub-processes.

A simple business process can be developed by adding activities in sequence, and the connecting the activities using transitions with or without conditions. Developing a complex business process typically involves developing a component process and one or more subprocesses. Use of subprocesses makes the complex business process easier to understand and debug. At runtime, the in-line subprocesses do not create a new job, but are executed on the job created by their calling process.

Note: See Design-time Concepts for details about the TIBCO Business Studio™ development environment.