qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gordon Sim <g...@redhat.com>
Subject Re: [c++] AMQP 1.0 support: 0.20 milestones
Date Wed, 10 Oct 2012 21:01:53 GMT
On 10/03/2012 10:14 PM, Gordon Sim wrote:
> --------------------------------------------------------------------
> Oct 3rd:
> * cyrus sasl integration
> * SSL support for client
> Oct 10th:
> * make AMQP 1.0 (broker) connection, sessions and links visible through
> management

The attached patch makes the connection and session visible through 
management, as well as outgoing links through a subscription. The schema 
does not have anything (as yet) to cover incoming links. The only change 
I've made is to add a protocol description string to the connection 

Some of the data that is set for 0-10 connections cannot be set yet for 
1.0 connections as the proton engine does not expose sufficient detail 
from the underlying protocol (see PROTON-61).

The connection statistics for 0-10 include the number of bytes and 
frames received and sent on a connection. That level of detail is I 
think quite rightly masked behind the engine. I have hooked in the 
message counts but will ignore the frame counts for 1.0 (unless anyone 
has a compelling reason for figuring out a way to record them). I 
propose to reinterpret the bytes in and out as including only those 
bytes comprising the actual messages (again, unless there are objections 
to that approach).

The current management schema identifies a session by a name, though 
commonly that is in fact a stringified UUID. There wasn't an ideal 
property from a 1.0 session to use here (the channel is not exposed by 
the engine), so I just use the address of the proton session object for now.

> * durable messaging; broker acknowledges only after async store
> operation completes

Also included in the patch is persistence support for the 1.0 message 
format and hooking in of asynchronous enqueue completion to the update 
of the disposition of the transfer.

> Oct 17th (0.20 Alpha):
> * support for address options in qpid::messaging (depends on PROTON-9)
> * support for 'legacy filters' (i.e. pre 1.0 exchange matching) (also
> depends on PROTON-9)
> * structured content messages

I think I will slightly change tack again for the next weeks work and 
while I wait for PROTON-9 I will focus instead in splitting out some of 
this work into patches to be committed to the trunk. Specifically I'll 
try and separate all the changes to the existing codepaths from the new 
additions, since the former are the more risky.

I still plan to include this work in 0.20. As mentioned previously, both 
on broker and client, the 1.0 support is built directly into the broker 
and messaging lib respectively. On the broker I believe it is vital to 
be able to turn 1.0 off. That reduces risk/impact of bugs in the new 
codepaths. Given the likely lack of ACL support it also prevents 1.0 
becoming a security hole.  One way of achieving this optionality would 
be to make it a separate loadable module but it could also just be a 
configuration option. I'll be revisiting that also.

Thoughts and opinions on all of this are welcome as always.

View raw message