Guaranteed Message Delivery Introduction to Composite Business Processes How to Implement the CBP as a BPEL Service

Completing ABCS Development 13-33 Figure 13–12 Transaction Boundary in Asynchronous MEP

13.6.5.3 Asynchronous Operation from an ABCS in the Same Thread but in a Different Transaction

When an ABCS has to invoke an asynchronous operation on a process, which must be executed in the same thread as that of ABCS but in a different transaction, set the following configuration in the called BPEL composite: property name=bpel.config.oneWayDeliveryPolicysyncproperty Note that, in this case, the transaction configuration, bpel.config.transaction, need not be set in the called BPEL composite because the called BPEL should be executed in a transaction different from that of the Caller.

13.7 Guaranteed Message Delivery

Guaranteed message delivery means that a message being sent from a producer to a consumer is not lost in the event of an error. AIA uses queues for asynchronous and reliable delivery of messages. For example, ■ PeopleSoft CRM, upon occurrence of a business event, can either push the message directly into a queue or send a SOAP message over HTTP to a JMS 13-34 Developers Guide for Oracle Application Integration Architecture Foundation Pack message producer a JMS transport adapter that is responsible for entering the message in the queue. PeopleSoft CRM can consider the message as sent as soon as the message is dropped into the queue. With this mechanism, the PeopleSoft CRM application can keep sending new messages regardless of whether the CRM on Premises is available or not. ■ A JMS consumer another JMS transport adapter is responsible for dequeuing the messages and invoking PeopleSoft CRM ABCSs. Having the PeopleSoft CRM ABCSs, the EBS, the CRM on Premises ABCS and the Web services as part of the transaction initiated by JMS message producer ensures that the message is removed from the queue only after the successful completion of the task in the CRM on-premise application.

13.8 Versioning ABCS

Versioning of a service means: ■ A new service with Version suffix in the name of the Composite and name of the Service Component. ■ The target namespace of the WSDL of the Service Component indicates a new version. For more information about AIA naming standards, see Chapter 29, Oracle AIA Naming Standards for AIA Development .

13.8.1 Guidelines for Versioning

During the preparatory phase, be aware of the following guidelines: ■ An ABCS is used across multiple PIPs. It is not PIP-specific. For example, EBizRequesterCreateItemABCS is used by ISCM PIP as well as Agile PLM - Ebiz Integration PIP. ■ Use the Oracle Enterprise Repository to discover the existence of a service. Service definition annotations are persisted in Oracle Enterprise Repository. Oracle Enterprise Repository documents the various conceptual and physical assets depicting the PIP and constituting services. ■ Inline changes made to ABCS without changing the version suffix should be backward compatible. ■ Multiple versions for a service with semantically and technically incompatible contracts among versions are not acceptable. It is not permissible to version an existing ABCS when the contract is totally different, even though the operation to be performed or the verb is same. ■ ABCS is versioned independently of an application version. ABCS is not bound to a specific application version. So, when an application undergoes a version change, it is not binding on ABCS to undergo a similar version change. Thus, ABCS is designed to be agnostic of version changes of the application. ■ Avoid concurrent multiple versions of an ABCS. Completing ABCS Development 13-35 For example, Team A owns Version 1; Team B does not like the contract and creates Version 2 with a different MEPContract. Now Team A is creating Version 3 with a contract that contradicts the previous one. ■ The system does not allow more than one service for an application to perform a single business activity using a specific role RequesterProvider. ■ Do not have more than one service with same logic but different names, either a different name for composite, for service, or having a different portType in the WSDL. ■ Do not have more than one service with different logic but the same names. The operation defined on the EBS determines the implementing ABCS. The operation defined on an EBS is dictated by the business activitybusiness task. Variations of business activity, business task, or both are possible. These are passed in the form of context and implemented by different ABCSs. Multiple teams involved in producing, consuming, or both producing and consuming an ABCS for a specific application and a business activity must reach consensus regarding the contracts. 13-36 Developers Guide for Oracle Application Integration Architecture Foundation Pack 14 Designing and Constructing Composite Business Processes 14-1 14 Designing and Constructing Composite Business Processes This chapter includes the following sections: ■ Section 14.1, Introduction to Composite Business Processes ■ Section 14.2, How to Define the Contract for a CBP ■ Section 14.3, How to Create the Contract for a CBP ■ Section 14.4, How to Implement the CBP as a BPEL Service

14.1 Introduction to Composite Business Processes

Composite Business Processes CBPs are the implementation of process services. Process services orchestrate a series of human and automated steps, including enterprise-wide policies captured in business rules. These services run the implementations of the business processes in the Oracle Application Integration Architecture AIA Reference Process Models. AIA recommends using BPEL for implementing CBPs. CBPs are long-running processes that may run from few seconds to days. A CBP has an interface and message structure that is detailed enough to capture all of the information about the source of the triggering event. In most cases, the event is triggered by customer-facing applications. For more information about detailed definition and high-level design and development guidelines, see The AIA Shared Service Inventory in the Oracle Fusion Middleware Concepts and Technologies Guide for Oracle Application Integration Architecture Foundation Pack.

14.2 How to Define the Contract for a CBP

The AIA methodology for designing and implementing a CBP is contract first methodology. Therefore, the contract must be defined and created before the CBP is implemented. To define the contract for a CBP: 1. Identify the CBP. 2. Identify the pattern for the CBP. 14-2 Developers Guide for Oracle Application Integration Architecture Foundation Pack

14.2.1 How to Identify the CBP

The first task involved in designing a new service is to verify whether it is necessary. Once the need for the CBP is established, review each of the services as well as the description of the operation and any metadata in the Oracle Enterprise Repository before deciding to create a new service or an operation. A CBP may be needed when an enterprise-wide business process is needed for a business event. This process is described in the Reference Process Model and spans multiple operational units for enterprises. To identify a CBP: 1. From the BPA Reference Process Model, identify the business process to implement. 2. Click the link to Oracle Enterprise Repository OER, and review the details in the OER. 3. If no link is available, create a definition for the CBP as part of the relevant AIA Project in the AIA Project Lifecycle Workbench application.

14.2.2 How to Identify the Message Pattern for a CBP

The CBP is always modeled to implement a single operation with one-way patterns. No responses to the client are made. Any error situation or response is modeled as an update operation back to the client.

14.3 How to Create the Contract for a CBP

To create the contract for a CBP: 1. Identify the message structure. 2. Construct the WSDL for the CBP. 3. Annotate the service interface. See Chapter 9, Annotating Composites . 4. Ensure WS-1 basic profile conformance.

14.3.1 How to Construct the WSDL for the CBP

The CBP development starts with constructing a WSDL, and the end result of the technical design process is a CBP WSDL.

14.4 How to Implement the CBP as a BPEL Service

To implement the CBP: 1. Create a new WSDL. Create a WSDL for the CBP following the CBP naming standards and the WSDL templates provided. 2. Implement the CBP as a one-way BPEL process. For more information about the details of creating BPEL projects in Oracle JDeveloper, see the Oracle BPEL Process Manager Developers Guide. Designing and Constructing Composite Business Processes 14-3 Refer to Chapter 12, Constructing the ABCS for details about implementing a one-way pattern 3. Enable error handling and logging. Enterprise Business Services EBSs should handle errors to allow clients or administrators to resubmit or re-trigger processes. This is accomplished using a central error handler. For more information, see Chapter 24, Configuring Oracle AIA Processes for Error Handling and Trace Logging . 4. Enable extensibility points in CBP. For more information, see Section 13.1, Developing Extensible ABCS . 14-4 Developers Guide for Oracle Application Integration Architecture Foundation Pack 15 Designing and Constructing Enterprise Business Flows 15-1 15 Designing and Constructing Enterprise Business Flows This chapter describes how to define and implement Enterprise Business Flows EBFs. This chapter includes the following sections: ■ Section 15.1, Introduction to Enterprise Business Flows