View • Attachments (6) • Info
The development of AMQP1.0 will follow the process developed by the Process SIG and the specification will meet the requirements of the User SIG.
Initial materials are being prepared by the members of the AMQP1.0 SIG for distribution to the PMC (see below). The materials will be reviewed by the PMC and also by formal Reviewers (who have signed the [RLA|AMQP Reviewer License Agreement]). As a result of these reviews the DRAFT will be modified until the PMC agrees it has a specification fit for release as the AMQP 1.0 Committee Draft. The Committee Draft should be used as the basis of implementations.
The Committee Draft will only be promoted to AMQP 1.0 Final once two materially independent implementations have been developed and demonstrated to interoperate. It is expected that the implementers will discover Errata on the specification, which will be considered and appropriately applied to the specification. The Errata will not lead to major changes in the Committee Draft specification unless the implementers can convince the PMC of the merit of such change.
Once implementations are proven to interoperate, the PMC will consider voting on the release of AMQP 1.0 Final.
Subversion Repository for AMQP1.0 Work![]()
Read in the order "illustrations", "model", "transport". All documents are "works in progress".
| Name | Size | Creator | Date | Comment | ||
|---|---|---|---|---|---|---|
| 312 kb | Rob Godfrey | Dec 03, 2008 | ||||
| 49 kb | Rob Godfrey | Dec 03, 2008 | ||||
| 43 kb | Rob Godfrey | Dec 04, 2008 | ||||
| 144 kb | Rob Godfrey | Dec 04, 2008 | ||||
| 428 kb | Rob Godfrey | Dec 15, 2008 | ||||
| 62 kb | Rob Godfrey | Dec 15, 2008 |
The following notes are intended to help people familar with AMQP 0-8/0-9/0-10 to come up to speed with changes in 1.0 DRAFT.
Even though Global Addressing is only a mandatory user requirement for AMQP 1.1 we need to know up front the addressing scheme for communicating between organisations because this has an impact on the protocol down the line.
The "obvious" address scheme adopted by email and XMPP fits the bill pretty well and has the immediate benefit of having a world pre-trained in how to use it.
So we have:
queue_name@machine.dns.name
and, importantly:
queue_name@example.com
This last one has important implications. In email it works because DNS contains "MX" (mail exchanger) records that say to your mail relay "example.com can really be found at mail.example.com". AMQP uses a standard DNS extension to achieve the same effect - the SRV (service location) record. In the example above there would be an SRV DNS record pointing to, say, amqp.example.com:5672 (yes, it includes the port number) where my AMQP client (or broker) can learn how to talk to your server. This also integrates very neatly with X509 CA checking. JOH CHECK THIS.
There were issues with Exchanges:
This has led to the conversion of Exchange into two logical components - an inbound queue + a exchange service. Clients would enqueue messages, and then the "exchange" would dequeue the message apply all the bindings to forward the message to other queue(s) in an internal broker operation. This solves some problems very well:
Requires some involved description. It's all about flow control.
There was no clear way of doing administration in the previous AMQP versions. The nearest thing was a custom extension to an Exchange. However, this has problems (not meta-circular, cannot be relayed over the MOM, different ACL scheme, not asynchronous).
The proposed mechansim uses a queue to which admin commands are send, and the results get returned to a user supplied reply-queue and correlated as expected. This queue is proposed as "amqp$admin".
There was some debate as to whether admin commands should be part of Transactions or not. A long history of RDBMS technology shows that DDL is almost never part of a transaction and presents many challenges (like rolling back the deletion of a full queue). Consequently, we have taken the RDBMS lead of keeping queue administration outside and in-flight transacation. This has led to the concept of queues and links which never take part in any current transaction - non-transacted queues and links. The amqp$admin queue is such a queue and the reply queue should be likewise adorned. Admin commands take place rapidly, but asynchronously.
Virtual hosting can now be emulated entirely within the scope of an implementation.
Upon Open, a peer will assert the FQDN which it thinks it is commecting to. This allows the Broker process to support multiple IP addresses and DNS names and multi-homed interfaces. The Broker can decide how to behave based on what the client asserts.
As per RFC 2782 "A DNS RR for specifying the location of services (DNS SRV)"
See global addressing above.
After considerable debate, it has been decided to abandon the "amqps" idea. There will only be one amqp port, and TLS encryption will be negotiated on it like any other security (albeit with the special, but proven, incantations required to get a TLS session negotiated).
The compelling reason is that a plain AMQP port can be encrypted, even if TLS is not used - see Kerberos, which is supported by SASL. So the amqps moniker is at best inaccurate and at worst could cause alarm at a plain amqp connection.
STARTTLS if used, MUST come before SASL auth.
|
Browse Space |
Explore Confluence |
Your Account |
Add Content |
|
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5.5 Build:#811 Jul 25, 2007) |
Please add comments.