On 24 March 2011 14:47, Rafael Schloming <[email protected]> wrote: > On 03/24/2011 09:42 AM, Robert Godfrey wrote: > > I think one of the most important factors to consider is how we build out > protocol support in a way that avoids some of the significant > maintainability issues we’ve had with our previous approach. It’s pretty > clear that one of our primary pain points has been with client support. The > practice of transcoding wholesale from one client language into another has > resulted in a significant number of write-only implementations that have > proven impractical to maintain. > > IMHO, one of the key elements of our 1-0 strategy going forward has to be > to share the minimum possible number of protocol implementations between as > many different client and broker environments as possible. This goal has in > fact been a key principle in the design of the 1-0 version of the protocol. > Its symmetry and layering is specifically designed to allow for the majority > of the protocol machinery to be encapsulated within a single transport layer > with a simple interface that can be embedded within a wide variety of > environments. > > I agree with this. The idea of a common transport layer is one that has been raised before and which I think had broad support. To me, the primary goal of the Apache Qpid Project must be to aim to be the de facto standard implementation of AMQP. In order to achieve this goal we need to be able to provide client APIs across as many languages as possible (and across OS and machine architectures as well). We can already see that our current approach to this is not sustainable - we’ve had suggestions that we should drop a number of client API artefacts from the 0.10 release as they are no longer able to be maintained.
Having said that I think we need a little more clarity in defining what we mean by a “common transport layer”. Firstly, at what level do you see the API here - is it simply an implementation of the AMQP 1-0 protocol, or are we aiming at a higher abstraction that will allow us to have implementations of the “transport layer” which use AMQP 0-10, 0-9-1 etc. as their protocol? Secondly, if we are looking to share the transport layer between “clients” and “brokers” it will need to be designed in such a way that the very different programming models (by which I really mean threading models) work. Lastly, and I guess most crucially, how do we see this work being incorporated into our current Qpid implementations? -- Rob > --Rafael > > --------------------------------------------------------------------- > Apache Qpid - AMQP Messaging Implementation > Project: http://qpid.apache.org > Use/Interact: mailto:[email protected] > >
