In our last post of Oracle SOA Series, we have discussed about SCA. This post talks about the BPEL Language.
BPEL or BPEL4WS is a language used for the definition and execution of business processes using Web services. BPEL enables the top-down realization of Service Oriented Architecture (SOA) through composition, orchestration, and coordination of Web services. BPEL provides a relatively easy and straightforward way to compose several Web services into new composite services called business processes.
BPEL builds on the foundation of XML and Web services; it uses an XML-based language that supports the Web services technology stack, including SOAP, WSDL, UDDI, WS-Reliable Messaging, WS-Addressing, WS-Coordination, and WS-Transaction.
The Business Process Execution Language (BPEL) is an XML-based language for enabling task (services) sharing across multiple enterprises using a combination of Web services.
The BPEL language enables you to define how to:
- Send XML messages to, and asynchronously receive XML messages from, remote services
- Manipulate XML data structures
- Manage events and exceptions
- Design parallel flows of process execution
- Undo portions of processes when exceptions occur
Web services usually expose operations of certain applications or information systems. Consequently, combining several Web services actually involves the integration of the underlying applications and their functionalities.
Web services can be combined in two ways:
In orchestration, which is usually used in private business processes, a central process (which can be another Web service) takes control of the involved Web services and coordinates the execution of different operations on the Web services involved in the operation. The involved Web services do not “know” (and do not need to know) that they are involved in a composition process and that they are taking part in a higher-level business process. Only the central coordinator of the orchestration is aware of this goal, so the orchestration is centralized with explicit definitions of operations and the order of invocation of Web services.
Choreography, in contrast, does not rely on a central coordinator. Rather, each Web service involved in the choreography knows exactly when to execute its operations and with whom to interact. Choreography is a collaborative effort focusing on the exchange of messages in public business processes. All participants in the choreography need to be aware of the business process, operations to execute, messages to exchange, and the timing of message exchanges.
From the perspective of composing Web services to execute business processes, orchestration is a more flexible paradigm and has the following advantages over choreography:
Oracle BPEL Process Manager provides a framework for easily designing, deploying, monitoring, and administering processes based on BPEL standards. Oracle BPEL Process Manager provides support for the following features:
- Web service standards such as XML, SOAP, and WSDL
- Dehydration (enables the states of long-running processes to be automatically maintained in a database) and correlation of asynchronous messages
- Parallel processing of tasks
- Fault handling and exception management during both design time and run time
- Event timeouts and notifications
- Compensation mechanisms for the implementation of long-running transactions
- Scalability and reliability of processes
- Management and administration of processes
- Audit trails for tracing business flow history
- Oracle BPEL Process Manager adds value and ease of use to BPEL functionality by providing support for the following in JDeveloper BPEL Designer:
- Transformations, workflows, worklists, notifications, and sensors
- Technology adapters (file, FTP, database, advanced queuing (AQ), and Java
Messaging Service (JMS))
Oracle BPEL Process Manager is part of Oracle SOA Suite. The other components of Oracle SOA Suite are
- Oracle Enterprise Service Bus
- Human Task
- Oracle Business Activity Monitoring
- Oracle Complex Event Processing
- Oracle User Messaging Service
- Separately Licensed Products
In our post, we will start developing the Web services which will be required for our BPEL Process development. Stay tuned !!!