views:

22

answers:

1

Hello,

I am developing a series of java web applications that will be deployed independently, possibly on separate application servers (with local network connectivity).

Apart from servicing incoming user requests, these applications need to be able to talk to each other. The format of this communication will be as a published service of some standard type (not language specific) that will enable substitution of an alternative provider, should that be required. Because of that there needs to be a central routing device (esb?) rather than the apps being directly aware of each other.

Communication between the applications needs to be

  1. transactional (i.e. they share the transaction, if one side rolls back, both do)

  2. request - reply; I call a method, and I need the result back, rather than just putting things on a queue for processing. Ideally synchronous.

  3. Fail safe

What is the best way of achieving this?

A: 

For distributed transactions you should take a look at JTA (Java Transaction API) and a XA-compliant database engine.

matt b