Hi,

I'd like to get some feedback on how to deploy ServiceMix 3 in the following scenario.

What I've got:

An "accidental architecture" of about 5 spring-based webapps, most of which expose some kind of service to each other (using spring httpinvoker) or external systems (using axis). Their services are already encapsuled in a service layer and some of them are accessible rpc-style through httpinvoker/axis in addition to the web ui. There's about 3 external systems (more coming), which are beyond my control and ususally not java-based.


What I want and why:

Reliable messaging: All communication is currently non-reliable, e.g. messages could get lost if a service is called while the app is down for maintenance.

Message-based communication: The rpc-style communication leads to tight coupling between apps, e.g. when a service interface needs to change.

Better monitoring: By sending all communication through a single channel (the bus), monitoring should become a lot easier.

All the other goodies, eventually.


Options I can think of:

Run SM decentralized: Embed SM in each webapp, extract the services from the webapp and plug them into the embedded SM. Not sure what that would buy me though.

Run a single central instance of SM (add another instance for failover later), extract the services from their webapps and plug them into SM. Since I'm already familiar with spring, I guess I could write a spring (web?) app that embeds both SM and all the services (I'd prefer a lightweight approach over literally following the JBI spec). If the webapps would talk to the bus via JMS, it looks like I've met all my goals.

For the communication between webapp and bus, is it possible to reuse the ActiveMQ running embedded in SM?

What about running SM standalone (instead of embedded in a spring app), deploying the services as one or separate spring apps outside the bus and having them communicate via the same JMS broker that the webapps use already? Probably less efficient, but maybe a little simpler conceptually (since all participants talk to the bus in the same fashion)?

Finally, what are the benefits of running SM inside Geronimo?


If all of this sounds like I'm thinking out loud, it's because I am. I still need to get my head wrapped around many of these concepts, and I hope this is the right place for questions like these. Anyway, I'd appreciate all feedback.

Thanks,
Dan




Reply via email to