- WS-BPEL 2.0 Beginner's Guide
- Matjaz B. Juric Denis Weerasiri
- 542字
- 2021-08-05 18:01:27
Introduction to BPEL
Business Process Execution Language (BPEL) is a language for composing, orchestrating, and coordinating the flow of services. BPEL is a programming-in-the-large language, used for service composition. It differs from programming-in-the-small languages, such as Java, C#, or C++, which are used to implement specific functionalities. BPEL is used to compose (orchestrate) functionalities exposed through services (service interfaces) into composite applications.
For example, let's consider that we have a bookstore. In this bookstore, we have an application that provides support for the bookstore operations, among them the stock management. Let's assume that this application provides a web service interface through which we can query the number of books in stock. If the number of books in stock is lower than anticipated, our bookstore would need to buy more books. It would need to make the purchase order with the book publisher. Again, let's assume that the publisher provides a web service through which the bookstore can make the purchase order.
BPEL allows us to implement the previously-mentioned process in an easy and straightforward way, as we will see very shortly. BPEL is a language specialized for process orchestrations; it provides specific language constructs for business processes. BPEL, therefore, provides several important advantages as follows:
- Implementing business processes with BPEL is easier and more straightforward when compared to traditional programming languages.
- Business processes implemented with BPEL still look like processes. Maintaining, updating, and modifying them in the future will be much easier when compared to using traditional programming languages.
- BPEL tends to bridge the huge gap between business executives and software developers, as business people can visually comprehend what goes on in the business processes.
- BPEL separates defining business process from coding the actual functionality in programming language thereby leading developers to use the same code for multiple processes. In other words, it promotes reuse.
There are two ways we can write the BPEL code. One is to write the code directly. BPEL uses an XML-based vocabulary that allows us to specify and describe business processes. Writing the BPEL XML code directly requires quite a lot of knowledge. The other simpler approach is to use a visual editor. Using an editor allows us to construct the BPEL processes using a drag-and-drop approach where we select the appropriate BPEL activity and drop it to the process flow. BPEL is today widely supported in development environments, such as JDeveloper, WebSphere Integration Designer, or Eclipse. Visual editors in these tools might differ. However, the BPEL code generated by all Integrated Development Environments (IDEs) is the same. This is because BPEL is an industry standard and is defined as OASIS specification (https://www.oasis-open.org/). The current version of BPEL is 2.0, although the previous version BPEL 1.1 is still widely used. As long as we stick with the standard BPEL without vendor-specific extensions, BPEL code is portable between different environments.
To execute a BPEL process, we need a process server. There are several commercial and open source BPEL process servers available. Most well-known are Oracle SOA Suite, IBM WebSphere BPM, ActiveVOS, and Apache ODE.
Note
In this book, we will develop examples using Oracle JDeveloper 12c and Oracle SOA Suite 12c. However, please bear in mind that the BPEL code is universally portable to other tools and environments.
- 在你身邊為你設計Ⅲ:騰訊服務設計思維與實戰(zhàn)
- 數(shù)據(jù)可視化:從小白到數(shù)據(jù)工程師的成長之路
- Python數(shù)據(jù)分析與挖掘?qū)崙?zhàn)
- Test-Driven Development with Mockito
- 數(shù)據(jù)之巔:數(shù)據(jù)的本質(zhì)與未來
- 新型數(shù)據(jù)庫系統(tǒng):原理、架構與實踐
- 工業(yè)大數(shù)據(jù)分析算法實戰(zhàn)
- 云計算與大數(shù)據(jù)應用
- Hadoop與大數(shù)據(jù)挖掘(第2版)
- 數(shù)據(jù)驅(qū)動設計:A/B測試提升用戶體驗
- 數(shù)亦有道:Python數(shù)據(jù)科學指南
- The Game Jam Survival Guide
- 大數(shù)據(jù)技術入門
- 爬蟲實戰(zhàn):從數(shù)據(jù)到產(chǎn)品
- 從實踐中學習sqlmap數(shù)據(jù)庫注入測試