Book Image

WS-BPEL 2.0 for SOA Composite Applications with Oracle SOA Suite 11g

Book Image

WS-BPEL 2.0 for SOA Composite Applications with Oracle SOA Suite 11g

Overview of this book

Business Process Execution Language (BPEL, aka WS-BPEL) has become the de-facto standard for orchestrating services in SOA composite applications. BPEL reduces the gap between business requirements and applications and allows for better alignment between business processes and underlying IT architecture. BPEL is for SOA what SQL is for databases. Therefore learning BPEL is essential for the successful adoption of SOA or the development of composite applications. Although BPEL looks simple at first sight, it hides its large potential and has many interesting and advanced features. If you can get familiar with these features - you can maximize the value of SOA. This book provides a comprehensive and detailed coverage of BPEL, one of the centerpieces of SOA. It covers basic and advanced features of BPEL 2.0 and provides several real-world examples. In addition to BPEL specification the book provides comprehensive coverage of BPEL support in Oracle SOA Suite 11g, including security, transactions, human workflow, process monitoring, automatic generation of BPEL from process models, dynamic processes, and more. This book starts with an introduction to BPEL, its role with regard to SOA and the process-oriented approach to SOA. The authors give short descriptions of the most important SOA platforms and BPEL servers—the run time environments for the execution of business processes specified in BPEL—and compare BPEL to other business process languages. The book will then move on to explain core concepts such as invoking services, synchronous and asynchronous processes, partner links, role of WSDL, variables, flows, and more.Moving ahead you will become familiar with fault handling, transaction management and compensation handling, scopes, events and event handlers, concurrent activities and links. The authors also discuss the business process lifecycle, correlation of messages, dynamic partner links, abstract business processes and mapping from BPMN to BPEL. The book presents in detail, how to use BPEL with Oracle SOA Suite 11g PS2. It explains the development of BPEL and SCA assemblies, and demonstrates different approaches with some practical examples. It addresses security, transaction handling, and human workflow. Then, the book addresses entity variables, notification services, fault management framework, and business events in BPEL. It provides exhaustive coverage of monitoring BPEL processes and developing dashboards with Oracle BAM. It explains how to use BPEL processes with Oracle Service Bus and Oracle Service Registry. Using examples, the book also demonstrates how to transform business process models in BPMN (using Business Modeler) to BPEL, how to achieve round-tripping using BPA Suite and BPM Suite, and how to use Oracle Enterprise Repository to govern BPEL processes. The book also covers the complete BPM lifecycle from modeling through implementation, execution, monitoring, and optimization and presents advanced, real-world examples.
Table of Contents (17 chapters)
WS-BPEL 2.0 for SOA Composite Applications with Oracle SOA Suite 11g
Credits
Foreword
About the Authors
About the Reviewers
Preface

Asynchronous BPEL example


Our first BPEL business process example was synchronous because this was the easiest case. However, in the real world, we will mostly use asynchronous processes. Most business processes are long running. It makes no sense for a client to wait (and be blocked) for the entire duration of the process. A much better alternative is to model the BPEL process as asynchronous. This means that the client invokes the process, and when the process completes, it performs a callback to the client. This has a few consequences:

  • For the BPEL process to be able to perform a callback to the client, the client must be a service and implement a certain port type (usually defined by the BPEL process WSDL)

  • The partner link type for the client will have to specify two roles

  • The BPEL process will not<reply> to the client. Rather it will<invoke> the callback

Let us now focus on our business process and modify it for asynchronous invocation, presented in the next sequence diagram...