views:

126

answers:

3

I went to Jim Webber presentation and in the middle of his apresentation he stated that ATOM is a good replace for JMS in many cases. Since JMS is a messaging service, I'm curious about that. Are you guys using ATOM as a messaging service? Is it reliable and scalable?

The greatest advantage of JMS is that it uses the push method (the server notify new messages) rather than the pull method (the clients keep asking for new messages each X milliseconds). I think for "Web 2.0" applications, this method is cool, but for "enterprise" applications, the push method are far more scalable. What do you guys think?

+1  A: 

Why do you think that push is "far more scalable" then pull for starters?

Second it's a pretty broad question, some real time applications have to use push if the polling intervals don't make sense (I need sub-second response times and don't want to poll every 100 ms). But for the most part I've always found pull more scalable and easier to implement. We use Atom Pub/Syndication format for a "messaging" type infrastructure - that allows clients to catch up to older messages they may have missed (much harder to do with JMS). Publish messages to an Atom Collection (feed) and then whenever a user starts up their client they can poll the feed and see what's new. Maybe they only care to see updates every hour, every day - all much easier to do on the client side - without any interaction between the server(s) publishing the messages and the clients consuming them.

Gandalf
I think it's far more scalable because I think it's better have a server to notify 1000 customers when a new message arrive than 1000 customer ask to the server every 1 second if a new message had arrived.
razenha
I can see why you would think that, I used to - but it practice I've found it not to be true. Both solutions have their pluses and minuses, but the WWW is all about polling and it's seemed to scale pretty well. Like I stated above, publishing your messages and letting client's consume them at their own leisure is a way more decoupled solution, and is much simpler to write. Your server will be very lightweight and therefor much more performant that a "push"ing server.
Gandalf
A: 

Whether Push or Pull is appropriate for a given problem depends greatly on the latency requirements, the amount of data being transferred, node availability, and other specific attributes of the problem. Don't let anyone tell you that either one is always better than the other.

Avi Flax
A: 

You're comparing apples with oranges.

JMS is the standard API for Java programs to make use of reliable point-to-point and pub-sub messaging brokers.

Atom is an XML-based data format for representing news feeds.

You could use JMS to send messages that contain data in the Atom format, if you so wanted. However, there would not be much point because the content of Atom feeds includes information to let clients determine which feed items are new and which they have already downloaded last time they polled. A pub-sub broker does that for you, so a pub-sub notification can just contain the new information that is of interest to subscribers.

Nat
I'm sorry to say, but you cleary did not understood what's all about. You can use ATOM for messaging service.
razenha
No, you use HTTP + ATOM for messaging. HTTP is the transport, ATOM is just the format used for representing events.
Nat