views:

42

answers:

1

Hi, my plan is to develop or use a Java-based integration framework (ESB, SOA whatever) that deals with services, with the following constraints:

  • a Service can be deployed on multiple machines but doesn't have to be present on every one of them
  • a Service can be deployed and re-deployed (with a newer version) separately
  • a Service is connected to other services either by:
    • in-memory connections
    • (async / sync) remoting to other machines
  • the routing logic of the Service connections should be configurable on the fly, without re-deploying or restarting anything

I know that OpenESB is close to these requirements, however it requires redeployment of the service to change the routing (suppose the connections are HTTP BC based), but I'm unfamiliar in this regard with MuleESB, WSO2, JBossESB, whatever open source ESB... Is there any good solution for this (e.g. configurable in-memory and/or remoting routing)? I don't really care about clustering as I plan to use the servers separately, and the designated (if required) JMS solution would be HornetQ if that matters.

A: 

You mention several different concepts, but a combination of an ESB pattern, Apache Load Balancer and Maven should get you close. Do not get to hung up on the product, settle on a paradigm/pattern and the decision of the product will be easy, it either does things the way you like or does not.

Here is the pattern I use. SOA Design Patterns

This may also interest you SOA for executives

Cheers

MetalLemon