WS-BusinessActivity and BPEL


I was reading a bit of details about transactions, locking, distributed transaction etc till I stumbled upon a specification named WS-BusinessActivity / WS-BA. (Refer specification at this link)

On first read it seemed to have a big functional overlap with BPEL in terms of ability to support long running transactions(LRT) using activities and compensation.

But dig a little deeper, and it is interesting to note that BPEL and WS-BA have to alternate approaches for solving the problem.

While in BPEL the orchestrating service (application flow) is responsible for managing the ensuring the consistency of the LRT by performing compensation activities. The BPEL and thus the application needs to know the semantics of both the business activities and  compensation/cancel activities of any remote services it is invoking.

On  the other hand in WS-BA all  participants share the responsibility of ensuring the LRT consistency by registering with a central transaction coordinator and performing a compensation when the coordinator directs them to do so.  Thus none of the parties involved in the global transaction need to be aware of the semantics of transaction specific complete, compensation/cancel operations of other parties.

In fact, by leveraging WS-BA as an underlying protocol,  BPEL flows with long running transactions can be designed with no significant compensation flows involving external services.

Advertisements

About saratnathb

Building SOA solutions using Oracle Fusion Middleware technology stack.
This entry was posted in Uncategorized and tagged , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s