An Introduction to Service-Oriented Architecture from a Java Developer Perspective
Subject:   How about transactions?
Date:   2005-02-23 21:33:04
From:   Arislan
Quick question about SOA, how are transactions handled ? if we are in an heterogenous environment where each service (although exposed via XML and SOAP) can potentially be implemented in a different technology, how are we suppose to manage transactions in this case in a distributed manner?

For example, if the task i need requires calling 5 different service in a chain and at each node in the chain a business state is persisted to that particular node's persistent store, how can I guarantee that when an error occurs at the last node in the chain, i can rollback the persistent state changes in the previous node or if the operation completes successfully, i can commit all persistent state changes in all nodes?

How about concurrency control? If another client/user starts the same chain of execution acting on the same dataset instance as I am, how do we ensure atomicity? What about intersecting chains ? i.e. another operation that starts out at a different chain but intersects one of the node in mine acting on the same dataset at that node.

How would say different locking strategies fit into this ? i.e. since we're in a heterogenious environment, the locking strategies at each node may be different..

I would really like some information on this... are these issues already tackled in the SOA domain? I would think these are really pertinent issues.... Is there a book somewhere that covers these in more detail?

1 to 1 of 1
1 to 1 of 1