Switch to the store?

WS-BPEL 2.0 Beginner's Guide

More Information
Learn
  • Design and develop BPEL 2.0 executable business processes
  • Become familiar with BPEL 2.0 activities and the most important usage scenarios
  • Learn how to invoke and orchestrate services, manipulate data and use variables
  • Implement conditions and loops, and recognize fault-handling capabilities to avoid unexpected states
  • Understand message exchange patterns and learn about asynchronous communication channels and dynamic parallel invocations
  • Learn about human interactions, human tasks, events and event handling, and compensations
About

Business Process Execution Language (BPEL, also known as WS-BPEL) has become the de facto standard for orchestrating services in SOA composite applications. It enables the automation of business processes, reduces the gap between business requirements and applications, and allows better alignment between business processes and the underlying IT architecture. BPEL is an open specification and one of the most important pieces of SOA.

This book provides a fast-paced practical introduction to WS-BPEL, one of the centerpieces of SOA. It covers the most important features of BPEL 2.0 and provides several real-world examples to underline its concepts.

Features
  • Develop BPEL and SOA composite solutions with Oracle SOA Suite 12c and JDeveloper 12c
  • Understand Human interaction in BPEL and learn how to add human tasks to a BPEL processes
  • Automate business processes with WS-BPEL 2.0
  • Implement and develop compensation and compensation handlers in BPEL processes
Page Count 388
Course Length 11 hours 38 minutes
ISBN 9781849688963
Date Of Publication 21 Sep 2014
Introduction to BPEL
Installing Oracle JDeveloper and SOA Suite
Time for action – installing the JDK and setting environment
Time for action – installing JDeveloper and SOA Suite
Time for action – creating a default domain
Developing our first BPEL process
Time for action – creating the SOA composite application
Time for action – creating XML Schema for the BPEL process
Time for action – modifying WSDL
Time for action – implementing the BPEL process
Deploying the first BPEL process
Time for action – deploying the BPEL process
Testing our first BPEL process
Time for action – testing the BPEL process
Understanding the BPEL language
The BPEL structure
Bookstore BPEL process with branches
Time for action – more sophisticated BPEL process
Time for action – deploying and testing the second BPEL process
Summary
Service invocation and orchestration
Developing the book warehousing process
Time for action – creating the book warehousing process
Time for action – developing the book warehousing process
Understanding sequential invocation
Understanding partner links
Parallel service invocation
Time for action – developing parallel flows
Understanding a parallel flow
Summary
Variables in BPEL
Variables in BookWarehousingBPEL
Time for action – review of existing variables
Time for action – creating XML type variables
Time for action – creating XML element variables
Time for action – creating a message type variable
Data manipulation and assignments
Time for action – copying variables
Expressions
Time for action – copying variable parts
Manipulating data for external partner links
Time for action – creating the AnotherBookstoreBPEL process
Time for action – extending the BookWarehousing process
Validating variables
Time for action – validating variables
The XSLT transformations
Time for action – using XSLT transformations
Summary
Conditions
Time for action – selecting the bookstore with the lowest quantity
Time for action – implementing VintageBookstore
Time for action – selecting VintageBookstore
Loops
Adding loops to our example
Time for action – adding the BookOrderManagement process
Time for action – adding the loop
Time for action – the loop
Executing in parallel
Time for action – executing in parallel
Delays
Time for action – adding
Ending a process
Empty activities
Summary
Understanding asynchronous invocations
Time for action – implementing an asynchronous invocation
Understanding asynchronous service invocations
Time for action – creating an asynchronous BPEL process
Summary
Introducing scopes
Time for action – adding scopes
Time for action – the fault and termination handlers
Summary
Introducing dynamic parallel invocations
Time for action – adding a activity
Time for action – configuring the activity within a activity
Time for action – initializing the input variable within a activity
Initializing a dynamic partner link
Time for action – initializing a dynamic partner link
Time for action – appending multiple values to a variable
Summary
Understanding human tasks
Preparing an asynchronous example
Adding a human task to the BookWarehousingBPEL process
Time for action – creating a human task definition
Time for action – configuring the human task title
Time for action – specifying a human task payload
Time for action – assigning a human task
Time for action – configuring human task deadlines
Time for action – configuring human task notifications
Time for action – invoking a human task from the BPEL process
Time for action – configuring human task case branches
Time for action – creating human task forms
Deploying and testing human tasks
Time for action – deploying the human task
Time for action – testing the human task
Summary
Understanding events
Developing an event-driven BPEL process
Time for action – declaring a business event
Time for action – developing an event-driven book shelving BPEL process
Triggering a business event from a BPEL process
Time for action – triggering BookshelfEvent from the book warehousing BPEL process
Adding an event handler to the Book Warehousing BPEL process
Time for action – adding an event handler to the BPEL process
Time for action – adding onEvent to the callback interface
Time for action – specifying alarm event handler activities
Time for action – adding a message handler to the BPEL process
Time for action – declaring the cancel operation on the BPEL process interface
Time for action – specifying message event activities
Asynchronous invocations and events
Time for action – invoking the WarehousingConfirmation service
Time for action – waiting for callback
Time for action – waiting for onFault and onEvent callbacks
Time for action – adding an alarm event for callback
Summary
Introducing compensation in business processes
Time for action – adding compensation handlers
Time for action – triggering a fault within the BPEL process
Time for action – triggering compensation for the BPEL process
Summary

Authors

Matjaz B. Juric

Matjaz B. Juric holds a PhD in computer and information science. He is a full-time professor at the University of Ljubljana and heads the Cloud Computing and SOA Competence Centre (http://www.soa.si). Matjaz is an Oracle ACE Director and has been designated Java Champion and IBM Champion. He has more than 20 years of work experience.

He has authored and coauthored Do More with SOA Integration: Best of Packt, WS-BPEL 2.0 for SOA Composite Applications with IBM WebSphere 7, Oracle Fusion Middleware Patterns, Business Process Driven SOA using BPMN and BPEL, Business Process Execution Language for Web Services (both English and French editions), BPEL Cookbook (which was awarded the best SOA book in 2007 by SOA World Journal), SOA Approach to Integration, Professional J2EE EAI, Professional EJB, J2EE Design Patterns Applied, and Visual Basic .NET Serialization Handbook.

He has published chapters in More Java Gems, Cambridge University Press, and in Technology Supporting Business Solutions, Nova Science Publishers, Inc. His work has also been published in several journals and magazines and presented at conferences.

Denis Weerasiri

Denis Weerasiri is a Computer Science and Engineering student, pursuing his PhD at the University of New South Wales. Before this, he worked as a senior software engineer for WSO2, an open source SOA company. He obtained his BSc Engineering degree with first class honors in the year 2010 from the Department of Computer Science and Engineering, University of Moratuwa, Sri Lanka. His research interests are distributed systems, cloud resource configuration management, and business process management.