[occi-wg] On repainting the bikeshed at the 11th hour...

Alexis Richardson alexis.richardson at gmail.com
Thu May 7 03:07:50 CDT 2009


Morning Sam,

On Thu, May 7, 2009 at 12:42 AM, Sam Johnston <samj at 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/s320/pig+latin.jpg


> 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 at ogf.org
> http://www.ogf.org/mailman/listinfo/occi-wg
>
>



More information about the occi-wg mailing list