AMQP - An Interesting Start
A few days ago the AMQP spec was announced on TSS. I quickly downloaded the spec and I have some initial impressions.
#1: I think it's unfortunate that the "AMQP" sounds too much like it has something to do with ActiveMQ which most folks abbreviate to AMQ, as in, "Have you downloaded AMQ 4?". This along with the fact that AMQ and AMQP are both related technologies, the first is a mom provider and the second is a wire protocol for mom providers.
#2: This is nice spec. I like the client specified "binding" concepts introduced in this spec. Perhaps these concepts can be introduced in higher level APIs like JMS one day.
#3: It seems that one of the goals of the spec is for vendors to be able to interoperate with each other. I have got a feeling that specs like WS-Notification or STOMP have a better chance at accomplishing this. Binary wire protocols are hard to implement and I doubt there will be many implementations of it. If a good open source reference implementation becomes available then this would become more plausible.
#4: It does not go into details of how the content of the messages should be encoded. This effectively means that JMS implementations will not be able to interoperate using AMQP since different implementations would encodes the content of a JMS Message differently. Even for simple things like TextMessage, would they use UTF-8 or ASCII? And it gets even more complex for messages lke StreamMessage and MapMessage.
#5: I may be wrong, but it seems like messages are always sent asynchronously. In some cases the JMS spec requires messages to be sent synchronously. Perhaps transactions can be used to simulate a synchronous send, but wouldn't that add substantial of overhead?
#1: I think it's unfortunate that the "AMQP" sounds too much like it has something to do with ActiveMQ which most folks abbreviate to AMQ, as in, "Have you downloaded AMQ 4?". This along with the fact that AMQ and AMQP are both related technologies, the first is a mom provider and the second is a wire protocol for mom providers.
#2: This is nice spec. I like the client specified "binding" concepts introduced in this spec. Perhaps these concepts can be introduced in higher level APIs like JMS one day.
#3: It seems that one of the goals of the spec is for vendors to be able to interoperate with each other. I have got a feeling that specs like WS-Notification or STOMP have a better chance at accomplishing this. Binary wire protocols are hard to implement and I doubt there will be many implementations of it. If a good open source reference implementation becomes available then this would become more plausible.
#4: It does not go into details of how the content of the messages should be encoded. This effectively means that JMS implementations will not be able to interoperate using AMQP since different implementations would encodes the content of a JMS Message differently. Even for simple things like TextMessage, would they use UTF-8 or ASCII? And it gets even more complex for messages lke StreamMessage and MapMessage.
#5: I may be wrong, but it seems like messages are always sent asynchronously. In some cases the JMS spec requires messages to be sent synchronously. Perhaps transactions can be used to simulate a synchronous send, but wouldn't that add substantial of overhead?

6 Comments:
You can read more interesting comments on the original announcement news ;-).
./alex
--
.w( the_mindstorm )p.
---
(http://themindstorms.blogspot.com)
By
the_mindstorm, At
2:22 PM
The details about how JMS messages are sent needs to be there. Maybe in an appendix to the spec or something.
What do you mean by the JMS spec's "synchronous send"? I can't find it
By
Steve, At
8:09 AM
This post has been removed by a blog administrator.
By
Hiram Chirino, At
9:47 AM
We had an interesting discussion about if it was in the spec or not.
Eventaully we all came to agree that, yes, its in there.
By
Hiram Chirino, At
9:50 AM
Question: AMQ :) would allow any number of AMQP based transports to be developed and used? So then couldn't developers who are knowledgable of creating AMQ transports be able to create the various versions of the AMQP protocol?
By
robottaway, At
11:07 AM
Yes.. actually I have started a AMQP implementation for ActiveMQ already. If anybody wants to help out the code is checked in at:
https://svn.apache.org/repos/asf/incubator/activemq/sandbox/qpid/
By
Hiram Chirino, At
12:18 PM
Post a Comment
<$I18N$LinksToThisPost>:
Create a Link
<< Home