<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Separating model from protocol in Cloud APIs</title>
	<atom:link href="http://stage.vambenepe.com/archives/943/feed" rel="self" type="application/rss+xml" />
	<link>http://stage.vambenepe.com/archives/943</link>
	<description>William Vambenepe&#039;s stage</description>
	<lastBuildDate>Tue, 07 Feb 2012 23:33:47 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: William Vambenepe &#8212; Review of Fujitsu&#8217;s IaaS Cloud API submission to DMTF</title>
		<link>http://stage.vambenepe.com/archives/943#comment-626</link>
		<dc:creator>William Vambenepe &#8212; Review of Fujitsu&#8217;s IaaS Cloud API submission to DMTF</dc:creator>
		<pubDate>Fri, 18 Dec 2009 23:59:38 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=943#comment-626</guid>
		<description>[...] (VSYS Descriptor) intends to build on OVF, which should be music to VMWare&#8217;s ears (it&#8217;s the model, not the protocol, which is strategic). And it is light enough on technical details that it will be pretty easy for [...] </description>
		<content:encoded><![CDATA[<p>[...] (VSYS Descriptor) intends to build on OVF, which should be music to VMWare&#8217;s ears (it&#8217;s the model, not the protocol, which is strategic). And it is light enough on technical details that it will be pretty easy for [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: William Vambenepe &#8212; REST in practice for IT and Cloud management (part 3: wrap-up)</title>
		<link>http://stage.vambenepe.com/archives/943#comment-625</link>
		<dc:creator>William Vambenepe &#8212; REST in practice for IT and Cloud management (part 3: wrap-up)</dc:creator>
		<pubDate>Thu, 10 Dec 2009 20:53:58 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=943#comment-625</guid>
		<description>[...] doesn&#8217;t violate the rule to not mix the protocol and the model because the alignment should take place in the metamodel. XML is famously weak in that respect, but [...] </description>
		<content:encoded><![CDATA[<p>[...] doesn&#8217;t violate the rule to not mix the protocol and the model because the alignment should take place in the metamodel. XML is famously weak in that respect, but [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: William Vambenepe&#8217;s blog &#187; Blog Archive &#187; REST-*: good specs, bad branding?</title>
		<link>http://stage.vambenepe.com/archives/943#comment-624</link>
		<dc:creator>William Vambenepe&#8217;s blog &#187; Blog Archive &#187; REST-*: good specs, bad branding?</dc:creator>
		<pubDate>Thu, 17 Sep 2009 07:10:53 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=943#comment-624</guid>
		<description>[...] an earlier post, I argued for standardization of some basic REST-inspired mechanisms for the narrow goal of [...] </description>
		<content:encoded><![CDATA[<p>[...] an earlier post, I argued for standardization of some basic REST-inspired mechanisms for the narrow goal of [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: William Vambenepe&#8217;s blog &#187; Blog Archive &#187; Cloud Data Management Interface (CDMI) draft released</title>
		<link>http://stage.vambenepe.com/archives/943#comment-623</link>
		<dc:creator>William Vambenepe&#8217;s blog &#187; Blog Archive &#187; Cloud Data Management Interface (CDMI) draft released</dc:creator>
		<pubDate>Tue, 15 Sep 2009 08:17:27 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=943#comment-623</guid>
		<description>[...] framework for Cloud computing as a first layer of standardization. One of the reasons I used to  justify this claim two weeks ago was that &#8220;there will not be one API that provides control of [all the different [...] </description>
		<content:encoded><![CDATA[<p>[...] framework for Cloud computing as a first layer of standardization. One of the reasons I used to  justify this claim two weeks ago was that &#8220;there will not be one API that provides control of [all the different [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: William Vambenepe&#8217;s blog &#187; Blog Archive &#187; Toolkits to wrap and bridge Cloud management protocols</title>
		<link>http://stage.vambenepe.com/archives/943#comment-622</link>
		<dc:creator>William Vambenepe&#8217;s blog &#187; Blog Archive &#187; Toolkits to wrap and bridge Cloud management protocols</dc:creator>
		<pubDate>Sat, 12 Sep 2009 06:03:18 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=943#comment-622</guid>
		<description>[...] It&#8217;s a just question of definition whether an on-the-wire protocol (rather than a language-specific set of objects/methods) qualifies as an &#8220;Application Programming Interface&#8221;. It&#8217;s not an &#8220;interface&#8221; in the Java sense of the term. But I can &#8220;program&#8221; against it so it could go either way. On this blog I have gone along with the &#8220;API&#8221; term because that seemed widely used, though in verbal conversations I have tended to stick to &#8220;protocol&#8221;. One problem with &#8220;API&#8221; is that it pushes you towards mixing the &#8220;what&#8221; and the &#8220;how&#8221; and not respecting the protocol/model dichotomy. [...] </description>
		<content:encoded><![CDATA[<p>[...] It&#8217;s a just question of definition whether an on-the-wire protocol (rather than a language-specific set of objects/methods) qualifies as an &#8220;Application Programming Interface&#8221;. It&#8217;s not an &#8220;interface&#8221; in the Java sense of the term. But I can &#8220;program&#8221; against it so it could go either way. On this blog I have gone along with the &#8220;API&#8221; term because that seemed widely used, though in verbal conversations I have tended to stick to &#8220;protocol&#8221;. One problem with &#8220;API&#8221; is that it pushes you towards mixing the &#8220;what&#8221; and the &#8220;how&#8221; and not respecting the protocol/model dichotomy. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Hapner</title>
		<link>http://stage.vambenepe.com/archives/943#comment-621</link>
		<dc:creator>Mark Hapner</dc:creator>
		<pubDate>Wed, 09 Sep 2009 23:29:47 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=943#comment-621</guid>
		<description>Hi William,

Well defined REST API&#039;s are fully capable of providing the separation of model and protocol you are decrying the lack of. For a practical example of this see Atom. The model is defined by the Atom Feed Spec and the protocol is defined by the Atom Publishing Protocol Spec. The IETF clearly understands the difference between model and protocol - let&#039;s hope the DMTF does as well.

This goes back to REST basics, the model is the hypertext representations and their links - a protocol is the specifics of how HTTP is used to interact with this hypertext. You could define some other protocol for interacting with the hypertext. For instance, you could define a WS* protocol for interacting with Atom resources - it would define some mapping of &#039;logical&#039; hypertext operations to some specific WSDL interface. The beauty of HTTP is that its entire role in life is to supply such a mapping.

So, if vCloud were to be well documented, it would emulate the example of Atom and specify its model and publishing protocol as separate elements. To be fair, it isn&#039;t too difficult to tease this out of the current vCloud Programmers Doc but you are right to note that those how intermingle model and protocol in the name of REST are making a mistake. Users of the API (and programmer docs) don&#039;t have to make this distinction; however, formal definitions of REST APIs should.</description>
		<content:encoded><![CDATA[<p>Hi William,</p>
<p>Well defined REST API&#8217;s are fully capable of providing the separation of model and protocol you are decrying the lack of. For a practical example of this see Atom. The model is defined by the Atom Feed Spec and the protocol is defined by the Atom Publishing Protocol Spec. The IETF clearly understands the difference between model and protocol &#8211; let&#8217;s hope the DMTF does as well.</p>
<p>This goes back to REST basics, the model is the hypertext representations and their links &#8211; a protocol is the specifics of how HTTP is used to interact with this hypertext. You could define some other protocol for interacting with the hypertext. For instance, you could define a WS* protocol for interacting with Atom resources &#8211; it would define some mapping of &#8216;logical&#8217; hypertext operations to some specific WSDL interface. The beauty of HTTP is that its entire role in life is to supply such a mapping.</p>
<p>So, if vCloud were to be well documented, it would emulate the example of Atom and specify its model and publishing protocol as separate elements. To be fair, it isn&#8217;t too difficult to tease this out of the current vCloud Programmers Doc but you are right to note that those how intermingle model and protocol in the name of REST are making a mistake. Users of the API (and programmer docs) don&#8217;t have to make this distinction; however, formal definitions of REST APIs should.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: BotchagalupeMarks for September 4th - 13:37 &#124; IT Management and Cloud Blog</title>
		<link>http://stage.vambenepe.com/archives/943#comment-620</link>
		<dc:creator>BotchagalupeMarks for September 4th - 13:37 &#124; IT Management and Cloud Blog</dc:creator>
		<pubDate>Sun, 06 Sep 2009 13:48:10 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=943#comment-620</guid>
		<description>[...] William Vambenepe&#8217;s blog &#187; Blog Archive &#187; Separating model from protocol in Cloud ... - What happened to the separation between the model and the protocol in management APIs? For all the arguments we had in the design of WSDM and WS-Management, this was one fundamental concept that took little discussion before everyone agreed: that the protocol (the interaction model and the on-the-wire shape of the messages used) should be defined in a way that is agnostic to the type of resource being managed (computers, elevators or toasters &#8212; the perennial silly example). [...] </description>
		<content:encoded><![CDATA[<p>[...] William Vambenepe&rsquo;s blog &raquo; Blog Archive &raquo; Separating model from protocol in Cloud &#8230; &#8211; What happened to the separation between the model and the protocol in management APIs? For all the arguments we had in the design of WSDM and WS-Management, this was one fundamental concept that took little discussion before everyone agreed: that the protocol (the interaction model and the on-the-wire shape of the messages used) should be defined in a way that is agnostic to the type of resource being managed (computers, elevators or toasters &mdash; the perennial silly example). [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sam Johnston</title>
		<link>http://stage.vambenepe.com/archives/943#comment-619</link>
		<dc:creator>Sam Johnston</dc:creator>
		<pubDate>Sun, 06 Sep 2009 09:23:48 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=943#comment-619</guid>
		<description>William,

Thanks for another enthralling post. We agree on pretty much every point... especially about HTTP as the &quot;universal interface&quot;. I jumped on OCCI during the formation discussions (it was called CAPI at the time) and had a clear vision of how it could/should/would look. My plan was to follow in the footsteps of Google GData (at least v2) by taking advantage of AtomPub as the meta-model. It has links and categories which are very nice, and as a bonus &quot;link relations&quot; are already part of HTTP and HTML too. Atom&#039;s categories are also quite cool (no forcing people to use fugly terms like &quot;VPDC&quot;) but they didn&#039;t work outside of Atom so I wrote an I-D (&lt;a href=&quot;http://tools.ietf.org/html/draft-johnston-http-category-header&quot; rel=&quot;nofollow&quot;&gt;Web Categories&lt;/a&gt;, heavily inspired by &lt;a href=&quot;http://tools.ietf.org/html/draft-nottingham-http-link-header&quot; rel=&quot;nofollow&quot;&gt;Web Linking&lt;/a&gt;) to bring them to HTTP and will see about something similar for HTML in due course (assuming we include a HTML rendering, which I would like for us mere mortals - thus combining the machine and user interfaces). The theme is to be as compliant with existing [mostly IETF] standards as possible, contributing to them where we can (in addition to IETF I&#039;m in the HTML 5 WG and have been keeping a close eye on those developments too, if not contributing to them).

I had originally argued for a tight schedule, bringing the due date in from 2011 to this year - after all there was little do do (see the GData specs which cover, what, 16 different data types from contacts to calendars to documents, blogs and videos for proof). Fortunately or unfortunately I ran into problems gaining consensus regarding Atom, XML, or indeed any one particular format. Perhaps I didn&#039;t do a good enough job of explaining but then again with numerous people flat out refusing to touch anything but their preferred format I wonder how successful any protocol based on XML/JSON/etc. will ever be. We&#039;ve been forced to separate the model from the protocol as a result, though we are avoiding going for a pure &quot;model then render&quot; type approach that can result in a domain-specific language with a steep learning curve. Instead we are relying on existing standards like HTTP as a meta-model where we can. For example the web is built on linking so why would we want to reinvent the wheel? Indeed HTTP included linking functionality from the outset (Link: headers and poorly specified LINK and UNLINK verbs) but its thunder was stolen [for a few decades] by hypertext (eg HTML) with its in-band linking. Link relations and [Ss]emantic web technologies (like RDFa) are now enabling us to link anything to anything in a standard rather than home-grown fashion which is IMO a good (and necessary) thing for cloud computing. We&#039;ll be doing our best to use these standard approaches to associating and linking resources.

Basically the idea is to accept the various formats-du-jour (OVF, VMX, Xen, Hyper-V) and add metadata for linking (e.g. associating storage, compute and network resources with one another), related resources (documentation, console access/screenshots), categorisation (with a flexible, proven categorisation model lifted directly from Atom) and of course animation (start, stop, restart, resize). This metadata will be exposed out-of-band, either in the HTTP headers or a separate metadata resource (or both), which allows us to cater for any format (including non-hypertext formats like machine images) - rather than relying on any one in particular (e.g. OVF). Nobody bestowed a particular image format as &quot;the one&quot; for the Internet and now we have both choice (jpeg for pictures, png for logs, etc.) and interoperability (browsers support a number of common formats). The question came up again in the context of video codecs and despite being a free software advocate I&#039;m happy to see that neither commercial nor free formats got a leg up here - markets are good at deciding such things.

Anyway I&#039;m working [almost] 24x7 on this now and canceled a family trip this week to get it finished as soon as possible. Following much discussion we now have a clean and simple protocol that I should have documented for public comment directly. Watch &lt;a href=&quot;http://www.occi-wg.org/&quot; rel=&quot;nofollow&quot;&gt;this space&lt;/a&gt;.

Sam</description>
		<content:encoded><![CDATA[<p>William,</p>
<p>Thanks for another enthralling post. We agree on pretty much every point&#8230; especially about HTTP as the &#8220;universal interface&#8221;. I jumped on OCCI during the formation discussions (it was called CAPI at the time) and had a clear vision of how it could/should/would look. My plan was to follow in the footsteps of Google GData (at least v2) by taking advantage of AtomPub as the meta-model. It has links and categories which are very nice, and as a bonus &#8220;link relations&#8221; are already part of HTTP and HTML too. Atom&#8217;s categories are also quite cool (no forcing people to use fugly terms like &#8220;VPDC&#8221;) but they didn&#8217;t work outside of Atom so I wrote an I-D (<a href="http://tools.ietf.org/html/draft-johnston-http-category-header" rel="nofollow">Web Categories</a>, heavily inspired by <a href="http://tools.ietf.org/html/draft-nottingham-http-link-header" rel="nofollow">Web Linking</a>) to bring them to HTTP and will see about something similar for HTML in due course (assuming we include a HTML rendering, which I would like for us mere mortals &#8211; thus combining the machine and user interfaces). The theme is to be as compliant with existing [mostly IETF] standards as possible, contributing to them where we can (in addition to IETF I&#8217;m in the HTML 5 WG and have been keeping a close eye on those developments too, if not contributing to them).</p>
<p>I had originally argued for a tight schedule, bringing the due date in from 2011 to this year &#8211; after all there was little do do (see the GData specs which cover, what, 16 different data types from contacts to calendars to documents, blogs and videos for proof). Fortunately or unfortunately I ran into problems gaining consensus regarding Atom, XML, or indeed any one particular format. Perhaps I didn&#8217;t do a good enough job of explaining but then again with numerous people flat out refusing to touch anything but their preferred format I wonder how successful any protocol based on XML/JSON/etc. will ever be. We&#8217;ve been forced to separate the model from the protocol as a result, though we are avoiding going for a pure &#8220;model then render&#8221; type approach that can result in a domain-specific language with a steep learning curve. Instead we are relying on existing standards like HTTP as a meta-model where we can. For example the web is built on linking so why would we want to reinvent the wheel? Indeed HTTP included linking functionality from the outset (Link: headers and poorly specified LINK and UNLINK verbs) but its thunder was stolen [for a few decades] by hypertext (eg HTML) with its in-band linking. Link relations and [Ss]emantic web technologies (like RDFa) are now enabling us to link anything to anything in a standard rather than home-grown fashion which is IMO a good (and necessary) thing for cloud computing. We&#8217;ll be doing our best to use these standard approaches to associating and linking resources.</p>
<p>Basically the idea is to accept the various formats-du-jour (OVF, VMX, Xen, Hyper-V) and add metadata for linking (e.g. associating storage, compute and network resources with one another), related resources (documentation, console access/screenshots), categorisation (with a flexible, proven categorisation model lifted directly from Atom) and of course animation (start, stop, restart, resize). This metadata will be exposed out-of-band, either in the HTTP headers or a separate metadata resource (or both), which allows us to cater for any format (including non-hypertext formats like machine images) &#8211; rather than relying on any one in particular (e.g. OVF). Nobody bestowed a particular image format as &#8220;the one&#8221; for the Internet and now we have both choice (jpeg for pictures, png for logs, etc.) and interoperability (browsers support a number of common formats). The question came up again in the context of video codecs and despite being a free software advocate I&#8217;m happy to see that neither commercial nor free formats got a leg up here &#8211; markets are good at deciding such things.</p>
<p>Anyway I&#8217;m working [almost] 24&#215;7 on this now and canceled a family trip this week to get it finished as soon as possible. Following much discussion we now have a clean and simple protocol that I should have documented for public comment directly. Watch <a href="http://www.occi-wg.org/" rel="nofollow">this space</a>.</p>
<p>Sam</p>
]]></content:encoded>
	</item>
</channel>
</rss>

