Book Image

SOA and WS-BPEL

By : Yuli Vasiliev
Book Image

SOA and WS-BPEL

By: Yuli Vasiliev

Overview of this book

<p>When utilized within a Service-oriented Architecture (SOA), Web Services are part of a business process determining the logical order of service activities &acirc;&euro;&ldquo; logical units of work performed by one or more services. Today, the most popular tool for organizing service activities into business processes is Web Services Business Process Execution Language (WS-BPEL), a language defining an execution format for business processes operating on Web Services. While it is not a trivial task to define a business process definition with WS-BPEL from scratch, using a graphical WS-BPEL tool can significantly simplify this process.<br /><br />Examples and practice are much more valuable than theory when it comes to building applications using specific development tools. Unlike many other books on SOA in the market, this book is not focused on architecture. Instead, through numerous examples, it discusses practical aspects of SOA and WS-BPEL development, showing you how to apply architecture in practice with the help of PHP, ActiveBPEL open-source engine, and ActiveBPEL Designer &acirc;&euro;&ldquo; powerful development tools available for free.</p>
Table of Contents (13 chapters)
SOA and WS-BPEL
Credits
About the Author
About the Reviewer
Preface
Free Chapter
1
Web Services, SOA, and WS‑BPEL Technologies

Preface

Web services, while representing independent units of application logic, of course, can be used as stand-alone applications fulfilling requests from different service requestors. However, the real power of web services lies in the fact that you can bind them within service compositions, applying the principles and concepts of Service-Oriented Architecture. Ideally, web services should be designed to be loosely coupled so that they can potentially be reused in various SOA solutions and used for a wide range of service requestors.

When utilized within an SOA, services are part of a business process determining the logical order of service activities—logical units of work performed by one or more services. Today, the most popular tool for organizing service activities into business processes is Web Services Business Process Execution Language (WS-BPEL), a language defining an execution format for business processes operating on services. While it is not a trivial task to create a business process definition with WS-BPEL from scratch, using a graphical WS-BPEL tool can significantly simplify this process.

It's fairly obvious that examples and practice are much more valuable than theory when it comes to discussions of how to build applications using specific development tools. Unlike many other books on SOA in the market, SOA and WS-BPEL: Composing Service-Oriented Solutions with PHP and ActiveBPEL is not focused on architecture. Instead, with the help of many examples, it discusses practical aspects of SOA and WS‑BPEL development, showing you how to apply architecture in practice. The examples in this book are presented in a way that anyone can understand and apply.

As the name implies, the main idea behind this book is to demonstrate how you can implement service-oriented solutions using PHP and ActiveBPEL Designer—free software products allowing you to effectively distribute service processing between the web/PHP server and ActiveBPEL orchestration engine. When it comes to building data-centric services, the book explains how to use MySQL or Oracle Database XE, the most popular free databases.

What This Book Covers

Chapter 1, Web Services, SOA, and WS-BPEL Technologies is an introductory chapter that provides an overview of the service-oriented technologies used throughout the book, explaining how these technologies can be utilized in a complementary way.

Chapter 2, SOAP Servers and Clients with PHP SOAP Extension begins with a simple example on how to use the PHP SOAP Extension to build a service requestor and service provider, using the request-response message exchange pattern. Then, it moves on to a complicated case study showing how the predefined classes of the PHP SOAP Extension can be extended when implementing complex message exchange patterns.

Chapter 3, Designing Data-Centric Web Services explains how to use the two most popular databases today, MySQL and Oracle, when building data-centric Web services, and how to move some part of the web service logic into the database to benefit from distributing the processing between the web/PHP and database servers.

Chapter 4, Building Web Services Applications shows how to combine a set of services into a composition without defining an orchestration process. It also provides an example of how message-level security can be implemented in a Web services application.

Chapter 5, Composing SOA Solutions with WS-BPEL discusses how to leverage the concepts behind service orientation with WS-BPEL, with an emphasis on how to implement service-oriented orchestrations. It shows how you can achieve better reusability by shredding business process logic into a series of primitive activities.

Chapter 6, ActiveBPEL Designer explains in detail how to compose service-oriented solutions with ActiveBPEL Designer—a free, fully-functional, graphical tool for WS‑BPEL process design, debugging, and simulation.

Chapter 7, WS-BPEL Process Modeling focuses on how to implement parallel processing of activities within a WS-BPEL process. It also discusses asynchronous communication as an efficient way to call partner services without blocking the execution of the calling WS-BPEL process.

Appendix A, Setting Up Your Working Environment walks through the steps needed to install and configure the software components required to follow the book examples.

Conventions

In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.

There are three styles for code. Code words in text are shown as follows: "We can include other contexts through the use of the include directive."

A block of code will be set as follows:

<?php
//File: SoapClient_typed.php
require_once "obj2Arr.php";
$wsdl = "http://localhost/WebServices/wsdl/po_imp.wsdl";

When we wish to draw your attention to a particular part of a code block, the relevant lines or items will be made bold:

<?php
//File purchaseOrder_typed.php
require_once 'obj2Dom.php';

class purchaseOrder {
function placeOrder($po) {

New terms and important words are introduced in a bold-type font. Words that you see on the screen, in menus or dialog boxes for example, appear in our text like this: "clicking the Next button moves you to the next screen".

Note

Important notes appear in a box like this.

Note

Tips and tricks appear like this.

Reader Feedback

Feedback from our readers is always welcome. Let us know what you think about this book, what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.

To send us general feedback, simply drop an email to, making sure to mention the book title in the subject of your message.

If there is a book that you need and would like to see us publish, please send us a note in the SUGGEST A TITLE form on www.packtpub.com or email.

If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide on www.packtpub.com/authors.

Customer Support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Downloading the Example Code for the Book

Visit http://www.packtpub.com/support, and select this book from the list of titles to download any example code or extra resources for this book. The files available for download will then be displayed.

The downloadable files contain instructions on how to use them.

Errata

Although we have taken every care to ensure the accuracy of our contents, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in text or code—we would be grateful if you would report this to us. By doing this you can save other readers from frustration, and help to improve subsequent versions of this book. If you find any errata, report them by visiting http://www.packtpub.com/support, selecting your book, clicking on the Submit Errata link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata added to the list of existing errata. The existing errata can be viewed by selecting your title from http://www.packtpub.com/support.

Questions

You can contact us at if you are having a problem with some aspect of the book, and we will do our best to address it.