JMS, MQ and overall messaging architecture

Hello,

I understand that the JMS API and the MQ API expose about the same amount of functionality, if that is the case, I am wondering why I should a spend lot of money on MQ.... doesn't it make much more sense to develop a messaging infrastructure directly using JMS? can someone explain to me what are the reasons for investing in MQ? (or indeed other vendors MOM solutions)

[390 byte] By [adamopolisa] at [2007-11-26 19:11:39]
# 1
Unless you can find some MQ feature you really depend on that is only available via the MQ API, I'd recommend sticking to the JMS API so you can switch providers at any time without having to change any of your application code.James http://logicblaze.com/Open Source
strachaja at 2007-7-9 21:09:10 > top of Java-index,Enterprise & Remote Computing,Enterprise Technologies...
# 2
I recommend something else:Don't use JMS when God create something useful like Web services. Because they are standard and widly supported by all most developement environments.
RezaRavasizadeha at 2007-7-9 21:09:10 > top of Java-index,Enterprise & Remote Computing,Enterprise Technologies...
# 3
Yeah web services are great. They get round firewalls, have less cross platform issues and all manner of other goodness. However when you want asychronous transactional behaviour, or pub/sub JMS is a much better fit.
SteveNaivea at 2007-7-9 21:09:10 > top of Java-index,Enterprise & Remote Computing,Enterprise Technologies...
# 4
And there's a lot less plumbing involved in writing a JMS system so it's quicker when creating something smallish where you don't need to talk to non-Java systems.
jwentinga at 2007-7-9 21:09:10 > top of Java-index,Enterprise & Remote Computing,Enterprise Technologies...
# 5

Agreed. A message oriented middleware (MOM) supporting JMS is normally (the good ones at least) easy to make highly available in a cluster with failover that may even be transparent to the client. Its easier to create this service that is shared than try and ensure all your web services have the same QOS. Clustering , the hardware needed, the careful attention to non single points of failure etc are all expensive in time, boxes and support so its wise to pick with care where you spend your $$$. Databases and MOMs are the core storage points in your business flows so spend it there.

A webservice is just one example of endpoint integration, a decent MOM gives you a manageable and scalable backbone for enterprise messaging. Others may disagree but having had to use and implement products for real messaging, WS-* is a bit of a joke in investment banking for example. At the moment MOMs are internal to organizations with WS-* stuff or FIX or whatever externally. http://amqp.org is an interesting and positive move towards a standard for MOMs that would work on public networks too. All decent MOMs provide non-Java bindings in C#, C++, C and scripting languages.

That said, WS-* are in use to interface to EAI tools (e.g. WebMethods) or third party applications, you can bridge to them from MOMs using opensource tools like Mule and ServiceMix (I've had good experiences with Mule) and most of the commercial offerings will let you do the same too.

I think its fair to say its often more complex at first sight than it should be :-(

Good luck....

Regards,

Colin.

http://hermesjms.com

colincrista at 2007-7-9 21:09:10 > top of Java-index,Enterprise & Remote Computing,Enterprise Technologies...