- Oracle SOA BPEL Process Manager 11gR1:A Hands-On Tutorial
- Ravi Saraswathi Jaswant Singh
- 950字
- 2021-08-20 16:47:03
An introduction to BPEL
BPEL stands for Business Process Execution Language. The standard body for BPEL is Organization for the Advancement of Structured Information Standards (OASIS) that produces worldwide standards incorporating industry consensus. The syntax of BPEL is XML-based and the current specification is WSBPEL Version 2.0.
BPEL is a programming language that has a mix of structured (blocks) and unstructured (control-links and events). BPEL is used for designing business processes that integrate web services into end-to-end process flow, and for the orchestration of business services. BPEL is mainly used for orchestrating services. The following figure shows the sample structure of a BPEL process:

A brief description of BPEL is given as follows:
- BPEL is one of the leading specifications to standardize orchestration logic and process automation between web services.
- The key benefit of BPEL is about leveraging more from existing application assets. BPEL enables legacy applications to be deployed as web services and orchestrated across platforms.
- Identifying and documenting both the existing and new required high-level business process is a time-consuming but essential job.
- BPEL enables developers to develop processes quickly by defining the order in which services will be invoked and provide an easy interface to connect processes from external systems.
- Business Process Execution Language for web services provides a means to formally specify business processes and interaction protocols. BPEL is acting as a glue to bind web services into a cohesive business solution and facilitating their orchestrated interaction within and between enterprises.
- Web service is an integration model created for allowing integration of systems built using heterogeneous tools and technologies. BPEL is one of the core components for defining composite web services to perform complex business functions.
BPEL syntax is based on XML. Therefore, it may not be a good idea to design and develop BPEL code by using a text/XML editor. A visual BPEL editor under JDeveloper IDE helps to develop and validate BPEL code easily without memorizing the BPEL specifications line by line. The following figure shows the interaction between a BPEL process and other services:

To deploy and execute BPEL processes, one needs Oracle Business Process Manager Engine. Currently Business Process Manager is part of Oracle SOA Suite. This book covers Version 11.1.1.16 of Oracle SOA Suite.
The following figure shows details of the components that interact with a sample BPEL service:

OASIS Web Services Business Process Execution Language (WSBPEL) is a vendor-neutral specification.
BPEL process manager is one of the components of the Oracle SOA Suite. The Oracle SOA Suite is a combination of multiple applications created by Oracle developers and deployed in a WebLogic container. For example, SOA Infra.ear, Adaptors, B2B, and so on.
Four separate main components/engines are included in SOA Suite. Each of these components has been created by Oracle developers using JSP, Servlets, EJB, JMS, RDBMS, and other system components.
- BPEL Processes
- Mediator
- Business Rules
- Human Task
BPMN (BPM Suite) is another component that can configure along with SOA Suite. SOA Infra is the core application. Similar to any enterprise web application, SOA Suite uses a database for storing the metadata information. For example, SOA Infra application uses database schemas for storing all the application information.
Oracle SOA Suite, along with JDeveloper IDE, enables the following:
- Design and develop business services
- Manage business services
- Orchestrate services in to SOA composite applications
- Provide a runtime engine for deploying and managing SOA composite applications
The following figure shows different service components of an SOA Suite:

JDeveloper packages various SOA components as SOA composite applications. SOA composite applications may contain some or all of the following components:
- BPEL processes for process orchestration
- Human workflows for modeling human interactions such as approving a salary increment for an HR system
- Mediator for routing and transforming the messages (Oracle Service bus can be used for the same purpose
- Spring framework for integrating Java interfaces to SOA Composite applications
- Business rules for acting as a simple rules engine
Since Oracle SOA Suite runs on top of WebLogic container, you can deploy normal J2EE components as part of SOA composite applications; however, it may not be a good idea to use SOA Suite as a normal J2EE container. Separate the J2EE components and deploy it in another instance of WebLogic instances. Some of the J2EE components are listed as follows:
- Oracle Application Development Framework (ADF) is a Java framework initiated from the original Model View Controller (MVC) framework
- EJB service for adding enterprise services
- J2EE technologies such as JSP, Servlet, and JSF for web applications
- JMS for messaging
Following are the Oracle SOA Suite management applications and services as part of the SOA Suite installation:
- Welcome Page:
http://{hostname}:{port}
- Admin Server:
http://{hostname}:{port}/console
- Enterprise Manager (EM):
http://{hostname}:{port}/em
- Dynamic Monitoring Service (DMS):
http://{hostname}:{port}/dms
- B2B:
http://{hostname}:{port}/b2bconsole
- Web Services Inspection Language (WSIL):
http://{hostname}:{port}/inspection.wsil
- Web Services Manager (WSM):
http://{hostname}:{port}/wsm-pm
- Composer:
http://{hostname}:{port}/soa/composer
- DefaultToDo:
http://{hostname}:{port}/workflow/DefaultToDoTaskFlow
- Worklist:
http://{hostname}:{port}/integration/worklistapp
- MessagingService endpoint:
http://{hostname}:{port}/ucs/messaging/webservice
- MessagingServices preferences:
http://{hostname}:{port}/sdpmessaging/userprefs-ui
- SOA-Infra:
http://{hostname}:{port}/soa-infra/
Note
Please note, that for all the service endpoints, you need to replace the hostname and port. For example:
http://{hostname}:{port}/console
Where
{hostname}
is a parameter that you replace with the hostname or IP address of your installation,{port}
is the port number on which the server is listening for requests (7001
by default).Example of the personal installation URL is as follows:
http://localhost:7001/console/
The concept of composition is to create enterprise solutions by assembling instead of building from scratch. Object-oriented programming allows for reusing the code within the applications. The concept of composite applications allows for reusing the existing applications.
As shown in the following figure, a brand new building is created by assembling pre-built components to cut down the construction time. Similar to creating a new building by assembling components, BPEL allows for creating business processes from existing services:

- Java程序設計(慕課版)
- Java 9 Concurrency Cookbook(Second Edition)
- Power Up Your PowToon Studio Project
- 新一代通用視頻編碼H.266/VVC:原理、標準與實現
- 劍指Offer(專項突破版):數據結構與算法名企面試題精講
- C語言程序設計實踐教程
- 零基礎學MQL:基于EA的自動化交易編程
- Learn WebAssembly
- Python算法從菜鳥到達人
- 可解釋機器學習:模型、方法與實踐
- C語言程序設計教程
- Swift Playgrounds少兒趣編程
- Java網絡編程核心技術詳解(視頻微課版)
- Python機器學習:預測分析核心算法
- HTML+CSS+JavaScript網頁設計從入門到精通 (清華社"視頻大講堂"大系·網絡開發視頻大講堂)