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.
This chapter includes the following sections:
For detailed information about SOA Composites, see Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.
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 9, "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.
Reusable processes do not appear in the SOA Composite. When you modify a business process and transform it into a reusable process, it disappears from the SOA Composite. For more information about reusable subprocesses, see Section 20.8, "Introduction to Invoking a Process Using Call Activities".
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.
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.
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:
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:
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.
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.
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.
You can open the SOA Composite contained in your BPM project to add new SOA components or edit the existing ones.
Select the Application window.
Double-click the composite.xml file located in the SOA Content directory of your project.
The SOA Composite editor opens.
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.
You can open a BPMN process from the SOA Composite without having to switch to the BPM Project Navigator.
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.
You can add new BPMN processes directly from the SOA Composite editor without having to switch to the BPM Project Navigator.
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.
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.
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.
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.
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.
To use a BPMN process from a BPEL process, you must first add the BPMN process as a partner link in the 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.
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 21, "Defining the Process Interface".
To connect to a BPMN process using a custom web service client you need the following information:
Web Service Location
List of Composites
Table 15-1 describes the information used to construct the previous URLs.
The server where the BPMN Service Engine is running.
The port to connect to the BPMN Service Engine.
The MDS partition where the SOA composite resides.
The name of the SOA Composite.
The revision number that indicates the version of the composite. This field is optional. If you do not specify the revision, then the BPMN Service Engine uses the default revision of the composite.
The name of the BPMN process.
You must build your BPM project before deploying it to a BPMN Service Engine. You can build your BPM project from Oracle JDeveloper.
After you build the BPM project, the Compiler Log window displays the results. If the build is successful, then you can deploy to the BPMN Service Engine.
If there are any errors, you can select the Compiler tab and click the errors to open the corresponding editor and correct them.
Open the BPM project.
Click the Application Navigator window.
Right-click the file that corresponds to your project.
Select Make Project.
Oracle JDeveloper compiles the BPM Project. The Compiler Log window displays the results of the compilation.
After you successfully build a BPM Project you can deploy it to a BPMN Service Engine. The process of deploying a BPM Project is identical to deploying a SOA Project.
For more information on how to deploy a SOA Project, see Deploying SOA Composite Applications in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.