JMS
Posted by mtwinkle on July 7, 2006
Q. What is JMS?
Ans. Java Messaging service. It is asynchronous.
Q. Difference between JMS and RPC?
Ans. In RPC, the method invoker waits for the method to finish execution and return the control back to the invoker. i.e it is synchronous in nature.
In JMS, the message sender just sends the message to the destination and continues its own processing. It does not wait for the receiver to respond. i.e asynchronous.
Q. What are the advantages of JMS?
Ans. It is asynchronous in nature. Thus, not all the pieces need to be up all the time for the application to function as a whole. Even if the receiver is down, the MOM will store the messages and will send them once the receiver comes back up.
Q. Example of JMS products available.
Ans. IBM’s MQ series
Q. What are the different types of messages available in the JMS API?
Ans. Message, TextMessage, BytesMessage, StreamMessage, ObjectMessage, mapMessage
Q. Difference between Topic and Queue?
Ans.
Topic: Used for one to many messaging – Supports Publish-subscribe messaging- unreliable but fast
Queue: Used for one to one messaging – Supports Point to Point messaging – highly reliable
Q. Role of JMS in enterprise solution development?
Ans.
1. Enterprise application integration: Where a legacy application is integrated with a new application via messaging
2. B2B: Business can interact with each other via messaging because JMS allows organisations to co-operate without tightly coupling their business systems.
3. Geographically dispersed units: JMS can ensure safe exchange of data amongst the geographically dispersed units of any organisation.
4. One to many applications: The applications that have to push data in packet to huge number of clients in a one to many fashion are good candidate for the JMS use. eg. auction sites, stock quote services etc.
righteous said
JMS combined with JNDI is truly awsome. Also there are many JMS vendors with standalone queues such as Active MQ, Open JMS. Then you get the ones that come with the app servers such as glassfish and weblogic.