
You're focusing not so much Atom the RFC4287 data format, but AtomPub the RFC5023 publishing protocol as implemented notably in GData and lots of other places, and do generic Web-resource CRUD where the resources happen to represent cloud infrastructure objects. *Thus you outsource most of the work of CRUD specification. *Then, you layer cloud-specific stuff on top of that. *Then collections of servers and clusters and networks and so on are perforce represented as Atom Feeds.
Is that the essence of it? *-Tim
Essentially, yes - at least a subset of it (I'm not sure that service and category documents are supported nor required by GData to date) with simple extensions for querying, concurrency/performance and any other implementation issues we come across on the way. I've been focusing on Atom because that's how the data is rendered - AtomPub as you well know tells us how to discover and manipulate the Atom resources on the server.
My biggest concern about the GData-style approach is not XML vs. JSON syntax ('angle bracket vs. curly brackets), but whether pulling in the GData/AtomPub meta-model is worth it to outsource the CRUD specification. My example of a simple JSON rendering really has two differences from the GData-XML approach: 1) [Less significant] JSON vs. XML syntax ('angle brackets vs. curly brackets') - a trivial decision, as demonstrated by the equivalent XML http://www.ogf.org/pipermail/occi-wg/2009-May/000526.html 2) [More significant] Very light meta-model - completely specified at http://forge.ogf.org/sf/wiki/do/viewPage/projects.occi-wg/wiki/SimpleJSONRen... versus pulling in the GData meta-model to wrap the cloud infrastructure objects. I note that all existing cloud APIs (Amazon, Sun, GoGrid, ElasticHosts, etc.) have similarly specified their APIs directly over HTTP rather than over a pre-existing meta model. Whilst Sam is right that GData libraries do exist for many platforms, they are not universal and do run to tens of thousands of lines of code*. Should we really be pulling in a dependency which is this large when we have a clear choice not to? Richard. * Within http://gdata-python-client.googlecode.com/files/gdata-1.3.1.tar.gz "wc -l src/{atom,gdata}/*.py" gives 13.7 kloc. Within http://gdata-java-client.googlecode.com/files/gdata-src.java-1.31.1.zip "wc -l java/src/com/google/gdata/*/*.java" gives 33.9 kloc