Using Processes as Services

A process can expose service operations that external clients or other processes can invoke - for example, to start an instance of a process, to inject a piece of data into an existing process instance, or to trigger an event in an existing process instance.

Exposed services are defined by Web Service Definition Language (WSDL) documents, which describe the services offered by a supplier and the messages that a client must use to access those services.

An external client can use the WSDL to consume the service provided by the process, without requiring any knowledge of the process itself - such as the process name or process id.

Note: TIBCO Business Studio supports both contract-first and contract-last styles of service development for processes
  • Contract-last - TIBCO Business Studio automatically generates a WSDL document for any process that exposes a service operation.
  • Contract-first - A process can import a WSDL document and define/map events and tasks for the operations and messages defined in the WSDL.

See the TIBCO Business Studio BPM Implementation guide for more information about how to expose or invoke service operations from a process.

This facilitates the easy integration of processes into enterprise-wide SOA solutions, as shown in the example below.

Processes as Services- an Example

In this example, MortgageManager is an external application that provides web-based mortgage services to customers. ValidateApp and ProcessApp are process-based applications hosted by TIBCO ActiveMatrix BPM.

Communication between MortgageManager, ValidateApp and ProcessApp is controlled by WSDL documents.

When a customer applies for a mortgage online:
  1. A customer fills in the forms provided by MortgageManager.
  2. MortgageManager passes the details of the application to ValidateApp.
  3. The WSDL file that defines the required message exchange is provided by the ValidateApp process. For example:
    Note that MortgageManager requires no internal knowledge of the ValidateApp process. It can interact with the process by using familiar business concepts (Application, Customer and Status) and business operations (RequestMortgage).
  4. ValidateApp determines if the application is valid and returns the status to MortgageManager. If the application is valid, ValidateApp passes it to ProcessApp, which processes the application, generates a mortgage offer and sends that to the customer.
  5. Similarly, ValidateApp communicates withProcessApp using the WSDL file provided by ProcessApp. Neither process requires any internal knowledge of the other process.
    Note: All access to TIBCO ActiveMatrix BPM must be by an authenticated user. This means that when MortgageManager invokes the ValidateApp service, and when ValidateApp invokes the ProcessApp service, the message header in each case must include the encoded username and password of an authenticated user. If it does not, the service invocation will fail. (See Authentication .)