
Morning Sam, On Thu, May 7, 2009 at 12:42 AM, Sam Johnston <samj@samj.net> wrote:
Morning all,
So I've been on the road for the last half a dozen hours watching somewhat of a debate has kick off as to whether we should continue to use angle brackets (XML) to dice our data or start from scratch with curly braces (JSON).
We did agree to come back to the data formats, so I don't think we are starting from scratch.
I'm not particularly religious about the matter either way (my only vested interest is in the time I've volunteered to date and what little I have left in which to deliver results) but I do think the model is far more important and worthy of detailed discussion than the protocol.
+1 The model is really important. But that does not mean the formats discussion is a bikeshed discussion. Well, maybe it is. I am not sure. But several strong advocates have emerged for JSON which at least is consistent with our approach of keeping data formats flat and simple. So let's work this out.
I've seen neither XML nor Atom impinge on anything we've needed to codify so far and once you have to reach for a library (as you do in both cases) the machines could talk pig latin to each other for all we care.
Now there's an API I would like to see ;-) http://3.bp.blogspot.com/_w55opxuxeX8/RgBBr8FpH0I/AAAAAAAAAQs/W3OwpT_LRF8/s3...
The primary (and only valid IMO) objection to XML is that it tends to be abused more often than not, but zero examples of such abuse in our designs have been given and we've agreed to limit ourselves to an essentially flat structure (that must be able to be cleanly represented in alternative formats including JSON and TXT) so this is a non-issue anyway.
I'd like to hear more about why Sun moved off XML onto JSON. That said, the issue is not whether we abuse our own design, it's about whether we make it easy for end users to do so. That could be worse.
Looking at the practicalities, XML is very mature with plenty of expertise and tools (from editors to application accelerators/firewalls) available for it while JSON is a rapidly developing new kid on the block (or is at least perceived to be by enterprise users - and perception/marketing is half of the battle).
Personally I disagree with this. JSON is not rapidly developing. I have not encountered any enterprise that objects to JSON in my own experience with RabbitMQ, possibly because enterprise users are also (usually) humans.
There are a lot of things we can do today with XML that we can't [and may never be able to] do with JSON such as transparently embedding supporting formats like OVF (which like it or not is going to have its time in the sun), transforming it to whatever format(s) we like in a mechanical, platform independent fashion and serialising, encrypting and signing it (for storage, queueing, etc).
I think this is the point we need to consider. Our charter talks about playing nicely with OVF. Richard --- how would you feel about OVF-JSON? I note that the OVF spec XML appears to be flat. Perhaps a machine could rewrite it as JSON ;-) I am only half joking. We did this with AMQP, which condensed the spec down to just a few pages, see e.g. http://hg.rabbitmq.com/rabbitmq-codegen/file/1e6ad9a9cd37/amqp-0.8.json
Atom itself is already arguably the single most successful "cloud" standard with Google using it for pretty much every public facing interface (protocol buffers are used under the covers for efficiency) and every feed on the web is using it (or something like it).
This argument carries weight if we need FEEDS for OCCI. I have a hunch that feeds would be useful but it would really help if you could make the argument that they are necessary. You also made the point that Atom gives us a way of dealing with metadata and it would be helpful to spell that out again.
There is a good deal of overlap with whatever domain specific language we might have invented ourselves (I know because I tried this before [re]discovering Atom) and it is a better fit than you might first think - feel free to go through the exercise if you need to see for yourself.
It would be much easier if you took us through the exercise ;-)
In terms of the future it's also far more extensible in that adding new resources et al to a domain specific language would almost certainly require us to reconvene to create OCCI 2.0, while extensions can be safely implemented (and validated) without risk to the rest of the spec; this is not something I see as being particularly well handled with JSON now or any time soon. Furthermore, things we currently take for granted behind the scenes with XML (like being able to pass around a DOM object and have different components update it as necessary before handing the result to a renderer) are not possible unless you happen to be writing JavaScript (one of the only languages where JSON is a first class citizen rather than a third party extension).
Sure ... but why is it necessary to mess with DOM objects. I am not saying you are wrong, I am just trying to understand what use case this solves. I have no problem with reconvening for OCCI 2.0 or 1.1 ... but that won't happen unless 1.0 is good.
Given the current plan is to support multiple formats (even if we only actually require one of them) while maintaining the ability to move losslessly between them, there is nothing stopping us from shifting our weight to the other foot if and when JSON matures.
I think Tim has come forward with a strong counterargument to our initial view. As I understand it, he makes the point that we as a community do not have a strong basis for understanding interop which casts doubt on the value of standards work at this time. Yet, by giving people a way to see if interop can be achieved in any sense at all, based on some common and open interface, we can deliver value. In order to make interop maximally likely, one format is desirable. Allowing format flexibility *at this time* could compromise the main goal of being able to show interop using an open interface, which is the justification of OCCI.
The web never mandated the use of a single format so I don't see why we should start now (though telling implementors they must support all of them is a tall order). In terms of reaching a loose consensus I think the EH/GG guys will be satisfied if we can get clean[er] transforms, Sun ought to be happy if we follow their methodologies if not their exact protocol (e.g. single entry point, "buttons" for state changes, etc.), Google may well get on board if we make it easy for them and I'll be satisfied if I don't have to throw away a substantial base of work already completed as well as the opportunity to use the myriad existing XML/Atom/GData tools and clients (remembering a domain specific language starts with exactly zero implementations).
Well arguably some folks will be satisfied if we don't throw away a substantial base of work done by Sun ;-) Please can you elaborate re Google. GData supports JSON.
Of course if someone does have a particularly strong fetish for curly braces and cares to rewrite the spec as well as a reference implementation and a bunch of transforms by next week then be my guest.
It's not just about curly braces. It's about lowering the total cost of interop. alexis
Sam
_______________________________________________ occi-wg mailing list occi-wg@ogf.org http://www.ogf.org/mailman/listinfo/occi-wg