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: