qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Arnaud Simon <asi...@redhat.com>
Subject Re: [java] 0.10 support
Date Fri, 29 Jun 2007 07:21:02 GMT
Hi,

I have attached a design document (I hope Rupert will be pleased :)).
The aim is to quickly provide 0.10 support by maximizing code reuse. We
will then incrementally update the design and the code for improving
management/clustering/performance enhancement/backward
compatibility/AMQP API/etc. 
I am sure you'll have some useful comments and ideas that will impact
this design. However, keep in mind that for now on I really aim at
maximizing code reuse. 

Arnaud

On Tue, 2007-06-19 at 15:41 +0100, Rupert Smith wrote:
> Presumably you mean for the Java? This is the Java version of a scope
> of work drawn up for the C++ by Gordon?
> 
> It would be nice to see this grow into a reasonably clean 'design
> document' for the Java going forward to 0.10. I'm a big fan of the
> design first, code later approach, rather than trying to divy up work
> for such a complex thing on the basis of a high level summary. The
> result will be more coherent, I feel, if we get a chance to establish
> a reviewed design first. Nice work, and I think it will provide a very
> good framework for the Java F2F to work around. 
> 
> Can I suggest this forms the starting point of a Wiki for the 0.10
> design?
> 
> Rupert
> 
> On 19/06/07, Arnaud Simon <asimon@redhat.com> wrote:
>         Hello,
>         
>         Even if we have agreed on meeting in Glasgow sometime between
>         the 21rst 
>         and the 23rdf of August, I would like us to establish a plan
>         for
>         migrating to 0.10. I have added a list of tasks for migrating
>         to 0.10
>         (it is based on what Gordon has done for C++). It would be
>         nice to put
>         estimate on those tasks and also to allocate them to people
>         (note that 
>         some tasks may be missing). More generally it would be good to
>         know what
>         people involvement for the 0.10 migration is.
>         
>         ==model:==
>         * new query methods for exchange and binding (and possibly
>         queue)
>         * minor changes to method arguments etc 
>             - separation of 'auto-delete' from 'exclusive' in
>         queue.declare
>             - removal of responses and no-wait field from several
>         methods
>             - 'reject-unroutable' flag
>         * new flow control for message transfer 
>         * new acking method for deliveries
>         * dtx - expose basic functionality through client
>         * changes to encoding of transfer
>         
>         ==execution layer:==
>         * track execution mark for outgoing requests
>         * manage execution mark for incoming framesets 
>         * generic correlation support (details still vague)
>         
>         ==session layer:==
>         * session abstraction
>             - Channel should be Session
>             - channel exceptions are now session aborts
>             - channel open and close should be altered 
>             - ack and hwm exchange
>         * session management
>             - maintain map of detached sessions, with timeouts
>             - simple case: sessions destroyed on detach
>             - failover: re-attach session to a channel on a new
>         connection 
>             - manage requested timeout
>         * replay buffer management
>             - record all outgoing frames along with a sequence number
>             - on receipt of an ack, delete as appropriate
>         * session re-establishment & replay 
>             - implement session resumption (broker side only)
>             - re-establish connection (client side only)
>             - send any frames not seen by peer
>         
>         ==framing:==
>         * new field table encoding (including lots of new value
>         types) 
>         * new uuid type
>         * new type for 'long sets' (for ack structures)
>         * revised frame encoding
>         * decoding from (& encoding to?) discontinuous data
>         * revised architecture (chains, assembly of segments &
>         framesets, 
>           memory management etc)
>         
> 

Mime
View raw message