On 06/05/13 12:11, Gordon Sim wrote:

For my part, I am in favour of removing QMFv1 support, if necessary providing some sort of adapter or plugin to deal with any use cases for which this might prove problematic. I think QMFv2 is now firmly established as the current management mechanism for the c++ broker.
My take on this is that I'm more than happy to see the back of QMF1 but I'd be keen to understand whether or not this results in *breaking changes*.

A couple of things I mentioned on the dev group around this point are
a) The asynchronous python API - that's where this discussion started the problem is that the callbacks that have actually worked to date work for QMF1, there was a suggestion of an additional objectUpdate() call for QMF2 which is OK as it wouldn't break existing clients as long as QMF1 data was still pushed, but would if it was disabled. Forcing clients to change from statUpdate() and propUpdate() to objectUpdate() (and any changes regression testing that this involves) is clearly a breaking change. Parochially I've only got one tool that uses the async API but I'd prefer it not to be broken (mainly because I wrote it at home for a work use and I'm not responsible for supporting it and I'd end up having to explain the subtleties we're discussing here to someone with a lot less QMF experience than me :'( ). At a push as long as I have decent notice I can rewrite it myself, but others may not have that luxury - as Bill has mentioned previously he's a contractor so when he finishes up his contract and someone else takes over his work they won't have this background and it might "silently" stop working properly. b) If anyone has been writing Agents using QMF1 then clearly they are likely to break. Parochially this doesn't affect me, but I'm not sure quite how we can gauge how much it may affect others.

Perhaps rather like the automake to cmake change we start off by giving gentle nudges then get a bit more forceful, so disabling the QMF1 broker updates as Ken has suggested might be a start (along with some decent documentation and a deprecation notice in the qpidd -h text).

I'd personally quite like to see the python async API shim the QMF2 update to make it behave like statUpdate()/propUpdate() though I accept this might be difficult and would have to bow to people who know more about the implementation of this than me.


Ultimately I also think we should be starting to think about an AMQP 1.0 based management standard and how we would transition to that. That is however a larger question that shouldn't hold up the immediate decision regarding QMFv1 though it may inform it a little.

Yeah I totally agree, I hope that it's not too long before Rob is able to share the draft AMQP 1.0 Management Spec. It'd be good to have a "lively discussion" about this among a wider group. Rob and I had a couple of decent chats over Easter but I'm keen to start some proper thinking on how we can make this a reality. Unfortunately I suspect that the QMF1/QMF2 quirks are likely to be minor compared to moving to AMQP 1.0 Management, but hopefully not insurmountable, I'm hopeful that it should be possible to shim between ManagementAgent and ManagementNode and vice versa which should help with migration. As we've discussed a pluggable Management layer for the C++ broker would be good, it really helped in the Java broker - I was able to get QMF2 support up and working in a couple of weekends with no prior knowledge of the Java broker code base.

<rant>

As an aside the AMQP 1.0 Management specification is only covering the protocol as I understand it, but I'd be quite keen for us to get our act together with respect to APIs. Yes I know it's possible to write QMF2 using the protocol directly, but frankly it's not as interoperable as it might be (C++ binary strings versus UTF8 strings are a personal "favourite" of mine resulting in byte[] or String respectively in Java - ClassCastException hell :-)). So I think it's useful to have a decent API, however the four or five APIs that we seem to have for QMF is less helpful :-D - can we agree on one when we start looking at AMQP 1.0 Management?

</rant> :-)

Cheers,
Frase




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to