There are many situations when building composite SOA services where we need to invoke several backend services in parallel for performance reasons. Your first thought may be to use a flow activity in your BPEL process and this is correct, although to have the services truly invoked in parallel there are a few more steps that must be done. A BPEL process is executed using a single thread, even when a flow is reached. Each branch of the flow will then be executed sequentially. The solution to this is to enable the nonBlockingInvoke property on your partner links.
In SOA Suite 11g, Enterprise Manager provides a wide variety of monitoring and management functions to an administrator. At most customers I have worked at this level of control is not given to all users, especially in QA/UAT or Production environments. Fortunately, Enterprise Manager provides functionality to provide different levels of access to different users and groups. At a current customer we need to provide a group of users and developers access to view service status and health, composite instances, and audit trails.
During a recent project at a customer I was designing and building several stateful and possibly long running BPEL processes that all interacted with each other in SOA Suite 11g. These processes would be required to read and write data to many different DB tables as well as integrate into 6+ web services and 1-2 MQ services. We decided that separating out the DB data access and service integration into different composites from the processes would provide several benefits such as:
As discussed in my previous post, using Oracle BPM to consume services exposed through Oracle Service Bus is the most common type of integration. In the diagram below you can see the highlighted path that is taken in this case. All of the communication is between the BPM execution engine, Service Bus, and the back end web services.
Over the past few years we have seen many of our customers use a combination of Oracle BPM/Aqualogic BPM and Oracle Service Bus/Aqualogic Service Bus. These two products are very complimentary within a company's SOA environment. OSB can provide the service aggregation, transformation, and security while OBPM can provide the orchestration of the services that OSB exposes. This blog post will describe the different use cases for integrating OBPM and OSB and in follow up posts each integration will be covered in more detail.
Avio Consulting, LLC
5600 Tennyson Parkway
Suite 340
Plano, TX 75024
Email: info@avioconsulting.com
Phone: +1 (972) 608-4777