Evaluate Weigh the pros and cons of technologies, products and projects you are considering.

Why is there a need for BPEL4WS for orchestrating Web services?

Why is there a need for BPEL4WS for orchestrating Web services? Why not simply use Java and JAX-RPC?
BPEL4WS (like other flow abstractions) is driven by the need to coordinate asynchronous message exchanges across services distributed over the net. This means that you have to be able not only to invoke a Web service (a la JAX-RPC) but also wait to receive an asynchronous callback prior to invoking the next service. More sophisticated use cases include parallel flow of execution, join patterns, exception management and compensating business transactions. These constructs and such semantics don't exist in traditional languages like Java and request/reply mechanisms such as JAX-RPC. To implement the above requirements, the programmer has to write a lot of code.

BPEL4WS solves that problem by offering a base set of activities and semantics to glue them into a flow. <receive>, for example, is an activity that allows you to define a rule where execution of flow is suspended until a message is received. Implementing this in Java is more than a trivial task. To summarize, asynchronous message-driven interactions drive the need for flow coordination. BPEL4WS offers a standard approach to implementing the flow logic. Orchestration servers offer *containers* where BPEL-based flow logic is executed, monitored and managed.

Here is a link to an example of the kind of applications/long-running processes that can be build by stringing together asynchronous services.

Dig Deeper on Topics Archive

Have a question for an expert?

Please add a title for your question

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.