qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gordon Sim <g...@redhat.com>
Subject Re: Mixing up AMQP QPID and JMS
Date Wed, 19 Aug 2009 14:11:15 GMT
Leglise Yann wrote:
> Hello,


> I had sent a previous mail in the beginning of July concerning an AMQP version problem
between client and broker.
> It is OK for this point, but now I am realizing that the things are still not so clear
for me.
> Here are some assertions I believe as being true (please tell me if I am wrong):
> *	AMQP is mainly inspired by JMS, and specifiy an implentation independent protocol for
queue messaging,

Correct; AMQP is an implementation independent protocol for message 
queueing applications.

I'm not sure whether all those behind AMQP would say they were 
'inspired' by JMS(!). However I think it's fair to say that JMS has 
always been an important use case for AMQP.

> *	QPID is an implementation of AMQP available for several languages (i.e. C++, java,
python ...),


> *	It is possible to write a QPID java client using JMS objects only (i.e. writing a java
program with not a single org.apache.qpid.* import, even if the qpid jars are necessary for
execution at least for the JNDI initialization that refer to org.apache.qpid.jndi.PropertiesFileInitialContextFactory),


> *	QPID java examples make use, in majority, of JMS,

The java examples do, yes.

> *	For QPID java example that does not make use of JMS (amqpexample package), the client
and the broker must use the same AMQP version (I mean, if the broker does not handle the AMQP
version used by the client, no communciation can take place),


> So here are my questions:
> 1.	What is the links between QPID and JMS (How is it that using only JMS objects, QPID
libraries are used)?

I'm not entirely sure I understand the question, so forgive me if I 
state the obvious or go off in the wrong direction!

JMS is an implementation independent API. A JMS client library will 
implement all the interfaces required by JMS and will map those to some 
underlying network protocol used to communicate with a broker.

The Qpid JMS client library maps the interface to particular 
interactions using AMQP. (If you are looking for details of that 
mapping, I'll leave that to another mail and perhaps another person...)

> 2.	Is the AMQP version negociation allowed by JMS and not by QPID?

AMQP defines a simple version check that can be used to ensure the 
client and server are agreed on the version to be used. It may well be 
that there are some bugs around that but expected behaviour is that you 
can point the Qpid JMS client at an AMQP broker and it will negotiate 
which of the supported versions it will use.

Hope this helps, if not please keep asking questions! Thanks for your 


Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org

View raw message