18 Using SOA Composites with BPM Projects

This chapter describes how to use SOA Composites to design a BPMN process and integrate it with other SOA components. SOA Composites show the dependencies between a BPMN process and the other components of your BPM project.

18.1 Introduction to SOA Composites

SOA Composites group interrelated components, enabling the integration of different technologies into a single application. The composite provides a single deployment and management model, end-to-end data security, and unified metadata management to the components it contains.

BPM projects use the SOA technology. All BPM projects are layered on top of an SOA Composite. They use this composite to store information that describes the relationship between the different components in your BPM project and the services they expose.

BPMN processes are a component in the SOA Composite. You can view how a BPMN process relates to the rest of the components in the SOA Composite, using the SOA Composite editor.

The SOA Composite of a BPM project shows the following:

The available SOA components to use in your BPM Project

The BPMN and BPEL processes in your BPM Project

The relationship between the SOA components and the processes

If the SOA Composite contains components or external references that expose services, then these appear in the business catalog. See Chapter 12, "Using the Business Catalog", for more information about the business catalog.

When you add a component to the SOA Composite, it automatically appears in the business catalog so that you can use it in your BPM project.

The SOA Composite is the unit that you use to deploy your BPM project. The components and dependencies that appear in the SOA Composite specify how to deploy a project. If you remove a process or a wire from the SOA Composite, then even if they still appear in the BPM Project they are ignored when you deploy the project.

18.1.1 Understanding the Relationship Between SOA Composites and SOA Components

When you run a BPM project the SOA engine creates a SOA composite instance. The SOA composite instance contains an instance of each of the components defined in the SOA composite. For example, if your SOA composite defines a BPMN process and a human Task, then the SOA composite instance contains a BPMN process instance and a human task instance.

The components in a SOA composite instance are independent from each other. When you terminate one of them, this does not affect the other components in the SOA composite instance. In a SOA composite instance that contains an instance of a BPMN process and an instance of a Human Task, terminating the BPMN process instance does not terminate the Human Task. After terminating the BPMN process, the Human Task instance is still available and you can access it using Oracle BPM Worklist application. But completing that Human Task does not have any effect on the terminated process.

In a similar way, when an interrupting timer or message boundary event arrives to a user task, the BPMN process instance leaves the user task but the associated Human Task remains available. Because the interrupting timer or message boundary event arrived before the user completes the user task, the human task remains unfinished, and you can still access it thought the Oracle BPM Worklist application. However running that human task does not have any effect on the BPMN process.

18.1.2 Working with SOA Components

All the SOA components and external references that are exposed as services in the SOA Composite appear in the business catalog in your Business Project.

If you created your BPM project based on an existing SOA project, then all the components and external references exposed as services in your SOA project automatically appear in the business catalog.

If there are activities in your BPMN process that use a component in their implementation, then the SOA Composite shows a wire between the BPMN process and the component.

Wires represent a relationship between a service and a reference. When you save a BPMN process Oracle BPM Studio automatically updates the wires between the BPMN process and the components it uses. Services represent the interface a component exposes. References represent the service interfaces a component requires. For more information about services and references, see Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.

To implement the activities in your BPMN process you must assign them an SOA component. To add these components to your BPM Project you must use the SOA Composite editor. From the SOA Composite editor you can add the following SOA components to your BPM Project:

Service Adapters

Human Tasks

Business Rules

Mediators

BPEL Processes

If the SOA component that you added to the SOA Composite exposes itself as a service, then the Component appears in the business catalog. You can use any of the components in the business catalog to implement the activities in your BPMN Process. For more information about how to implement BPMN activities, see the chapters in the following parts:

18.1.3 BPMN Process in SOA Composites

When you add a BPMN process it is automatically added to the SOA Composite. The BPM process appears as a component in the SOA Composite.

If the BPMN process contains a start event of type message, then the interface of the process appears as an exposed service.

The SOA Composite shows how your process depends on the different components your BPM Project uses. If an activity in your project uses a service exposed by an SOA component for its implementation, then the SOA component shows a line between the exposed service and the BPMN process. This line represents the wire that links the BPMN Process and the exposed service.

18.1.4 How Do BPMN Errors Affect the SOA Composite Status

The status of the components in the SOA composite determine the status of the SOA composite. If an exception occurs in a BPMN process, then the status of the SOA composite is marked as faulted. Even is the BPMN process handles the exception and finishes running successfully, the status of the SOA composite is marked as faulted.

18.2 Opening the SOA Composite in a BPM Project

BPM projects are layered on top of a SOA project. The SOA project contains an SOA Composite. You must use the SOA Composite editor to add SOA components to your BPM project. The SOA components you add to the SOA Composite automatically appear in the business catalog of your BPM project.

18.2.1 How to Open the SOA Composite in a BPM Project

You can open the SOA Composite contained in your BPM project to add new SOA components or edit the existing ones.

To open the SOA Composite in a BPM project:

Select the Application window.

Double-click the composite.xml file located in the SOA Content directory of your project.

The SOA Composite editor opens.

18.3 Opening BPMN Processes from the SOA Composite in a BPM Project

BPM projects use the SOA technology, therefore they contain an SOA Composite. You can use the SOA Composite editor to view the dependencies of your BPM processes with other components in your BPM project, or to add new components to your BPM project.

18.3.1 How to Open a BPMN Process from the SOA Composite in a BMP Project

You can open a BPMN process from the SOA Composite without having to switch to the BPM Project Navigator.

To open a BPMN process from SOA Composite in a BPM Project:

Open the SOA Composite editor.

Double-click the BPMN process you want to open.

The BPMN process editor appears. Any changes you make to a process appear on the SOA Composite.

18.4 Adding a BPMN Process from the SOA Composite Editor

You can add new BPMN processes directly from the SOA Composite editor without having to switch to the BPM Project Navigator.

18.4.1 How to Add a BPMN Process from the SOA Composite Editor

If you identify the need of a BPMN process while analyzing the business application infrastructure, then you can directly add it without leaving the SOA Composite editor.

To add a BPMN process from the SOA Composite Editor:

Open the SOA Composite editor.

Select BPMN Process from the Service Components section in the Component Palette.

Drag the selected component to the Components area in the SOA Composite editor.

18.4.2 What Happens When You Add a BPMN Process from the SOA Composite Editor

The BPMN process appears as a component in the SOA Composite editor. The new process appears in the Processes folder in the BPM Project Navigator.

To edit the BPMN process right-click it and select edit, or double click the BPMN process.

18.5 Integrating with BPEL Processes Using the SOA Composite

The SOA Composite editor shows the BPEL processes and the BPMN processes in your project. You can use the Composite editor to design the integration between a BPEL process and a BPMN process.

To use a BPMN process from a BPEL process you must add the BPMN process as a partner link in the BPEL process. To add the BPM process as a partner link in the BPEL process you must use the SOA Composite editor. After adding the BPMN process as a partner link, you can use the BPEL editor to link the BPMN process to the activities in the BPEL process. For more information about editing BPEL processes, see Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.

To use a BPEL process from a BPMN process you must add the BPEL process to the SOA Composite. After you do this the BPEL process appears in the business catalog. You can use the BPEL processes in the business catalog to implement the activities in your BPMN process.

18.6 Adding a BPMN Process as a Partner Link in a BPEL Process

To use a BPMN process from a BPEL process you must add it as a partner link. Then you can use the BPEL editor to invoke the BPMN process from the activities in the BPEL process.

18.6.1 How to Add a BPMN Process as a Partner Link in a BPEL Process

To use a BPMN process from a BPEL process, you must first add the BPMN process as a partner link in the BPEL process.

To add a BPMN process as a partner link in a BPEL process:

Open the SOA Composite editor.

Place the mouse pointer over the BPEL process component.

Orange arrows appear to the sides of the BPEL process component. The arrow on the left enables you to add a new service. The arrow on the right enables you to add a new reference.

Click the right arrow and drag.

A green link appears and all the services exposed by the components in the composite, including those exposed by BPMN processes, turn green.

Drop the link on the service of the BPMN process you want to add as a partner link.

18.6.2 What Happens When You Add a BPMN Process as a Partner Link in a BPEL Process

The BPMN process appears as a partner link in the BPEL process and you can invoke the BPMN process from the BPEL process.

18.7 Connecting to a BPMN Process Using Web Services

If a BPMN process defines a process interface, then you can connect to that process using web services. All the BPMN processes that define a process interface appear in the SOA Composite. For more information about defining a process interface, see Chapter 23, "Defining the Process Interface".

To connect to a BPMN process using a custom web service client you need the following information: