<?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: REST in practice for IT and Cloud management (part 3: wrap-up)</title>
	<atom:link href="http://stage.vambenepe.com/archives/1161/feed" rel="self" type="application/rss+xml" />
	<link>http://stage.vambenepe.com/archives/1161</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; Amazon proves that REST doesn&#8217;t matter for Cloud APIs</title>
		<link>http://stage.vambenepe.com/archives/1161#comment-717</link>
		<dc:creator>William Vambenepe &#8212; Amazon proves that REST doesn&#8217;t matter for Cloud APIs</dc:creator>
		<pubDate>Tue, 07 Dec 2010 06:15:53 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1161#comment-717</guid>
		<description>[...] of post examining &#8220;REST in practice for IT and Cloud management&#8221; (part 1, part 2 and part 3), to now declare that REST doesn&#8217;t matter, well go back to these posts. I explicitly set them [...] </description>
		<content:encoded><![CDATA[<p>[...] of post examining &#8220;REST in practice for IT and Cloud management&#8221; (part 1, part 2 and part 3), to now declare that REST doesn&#8217;t matter, well go back to these posts. I explicitly set them [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: William Vambenepe &#8212; Two versions of a protocol is one too many</title>
		<link>http://stage.vambenepe.com/archives/1161#comment-716</link>
		<dc:creator>William Vambenepe &#8212; Two versions of a protocol is one too many</dc:creator>
		<pubDate>Tue, 02 Mar 2010 05:47:41 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1161#comment-716</guid>
		<description>[...] pretty much anything that uses HTTP without a SOAP wrapper. The technical issues are a topic for other [...] </description>
		<content:encoded><![CDATA[<p>[...] pretty much anything that uses HTTP without a SOAP wrapper. The technical issues are a topic for other [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: William Vambenepe &#8212; Square peg, REST hole</title>
		<link>http://stage.vambenepe.com/archives/1161#comment-715</link>
		<dc:creator>William Vambenepe &#8212; Square peg, REST hole</dc:creator>
		<pubDate>Tue, 23 Feb 2010 06:31:48 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1161#comment-715</guid>
		<description>[...] The risk of course is to loose out on many of the important benefits of REST (simplicity, robustness of links, flexibility&#8230;). Which is why it&#8217;s not a matter of using REST or not but a matter of using ideas from REST in a practical way. [...] </description>
		<content:encoded><![CDATA[<p>[...] The risk of course is to loose out on many of the important benefits of REST (simplicity, robustness of links, flexibility&#8230;). Which is why it&#8217;s not a matter of using REST or not but a matter of using ideas from REST in a practical way. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: William Vambenepe &#8212; REST in practice for IT and Cloud management (part 2: configuration management)</title>
		<link>http://stage.vambenepe.com/archives/1161#comment-714</link>
		<dc:creator>William Vambenepe &#8212; REST in practice for IT and Cloud management (part 2: configuration management)</dc:creator>
		<pubDate>Wed, 27 Jan 2010 14:41:49 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1161#comment-714</guid>
		<description>[...] part 3 (now available), I will try to synthesize the lessons from the Cloud APIs (part 1) and configuration management [...] </description>
		<content:encoded><![CDATA[<p>[...] part 3 (now available), I will try to synthesize the lessons from the Cloud APIs (part 1) and configuration management [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Burke</title>
		<link>http://stage.vambenepe.com/archives/1161#comment-713</link>
		<dc:creator>Bill Burke</dc:creator>
		<pubDate>Thu, 14 Jan 2010 23:57:24 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1161#comment-713</guid>
		<description>@Stu:

You&#039;re correct.  I&#039;m thinking of classic enterprise integration scenarios.  I think REST can really shine here as well, but there is still *a lot* of work to do.  We need to take techniques, patterns, and services defined in these traditional environments and iterate on them over and over again to see where REST can improve things.  This is the main reason REST-* (rest-star.org) was created.  To figure out where these classic enterprise idioms intersect with REST.</description>
		<content:encoded><![CDATA[<p>@Stu:</p>
<p>You&#8217;re correct.  I&#8217;m thinking of classic enterprise integration scenarios.  I think REST can really shine here as well, but there is still *a lot* of work to do.  We need to take techniques, patterns, and services defined in these traditional environments and iterate on them over and over again to see where REST can improve things.  This is the main reason REST-* (rest-star.org) was created.  To figure out where these classic enterprise idioms intersect with REST.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stu</title>
		<link>http://stage.vambenepe.com/archives/1161#comment-712</link>
		<dc:creator>Stu</dc:creator>
		<pubDate>Thu, 14 Jan 2010 19:14:22 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1161#comment-712</guid>
		<description>@Bill:

My first reaction is that this feels almost like we are arguing over moving goal posts.    I don&#039;t think there&#039;s a disconnect, or any disagreement that machine-based decisions are based on a set of finite rules, even from Roy, at least I&#039;ve never read any such thing from him.    A browser makes dynamic decisions to transform and render multiple media types onto a screen, which renders the state of the hypertext application.  But it does not normally make decisions that enact state transitions on the resources themselves, because that&#039;s what the human is for.

On the other hand, can we think of machine agents that do make transitions on the resources themselves?   There are a few, usually mashups and/or thick front-ends to RESTful APIs, but they&#039;re certainly not as pervasive.  I think the issue may be that you see limitations of the current Web architecture for the problems you&#039;re interested in (e.g. classic enterprise integration scenarios), and there is a frustrating lack of admission of the amount of work that remains to address them.   

To me, a RESTful interface for changing resource state is not very different, IMO, from dynamic interfaces such as CORBA DII, or COM Automation, or RMI with Reflection, or even SOAP sans WSDL -- with the exception of uniform method &amp; return code semantics, and that there&#039;s a limited amount of out-of-band information required to access the interface description - GET often suffices.    But there is no magic here, it&#039;s just an interface, little different from those we use in other technologies.   The main benefit is that it presumes a dynamic interface by default, one that can be introspected, instead of hard-coded against.    A RESTful toolkit presumes a dynamic interface by default instead of as a bag on the side, as with normal CORBA stubs/skeletons, or COM vtables, or RMI Remote interfaces.   

When you presume a dynamic interface by default, it enables freedom for an agent to have much more varied decision making behaviour than just if-then-else statements.    We&#039;ve seen plenty of evidence for this on the agent-side with the use of GET, we&#039;ve seen less evidence of this on the resource-side with automated use of POST/PUT/DELETE, mainly because it&#039;s so dependent on building a modular set of media types to achieve broad interoperability.    Comprehension and standardization here has been glacial, and the REST community does often downplay the large amount of effort still required to bring the &quot;write&quot; side of the read/write web up to par.    This remains frustrating.</description>
		<content:encoded><![CDATA[<p>@Bill:</p>
<p>My first reaction is that this feels almost like we are arguing over moving goal posts.    I don&#8217;t think there&#8217;s a disconnect, or any disagreement that machine-based decisions are based on a set of finite rules, even from Roy, at least I&#8217;ve never read any such thing from him.    A browser makes dynamic decisions to transform and render multiple media types onto a screen, which renders the state of the hypertext application.  But it does not normally make decisions that enact state transitions on the resources themselves, because that&#8217;s what the human is for.</p>
<p>On the other hand, can we think of machine agents that do make transitions on the resources themselves?   There are a few, usually mashups and/or thick front-ends to RESTful APIs, but they&#8217;re certainly not as pervasive.  I think the issue may be that you see limitations of the current Web architecture for the problems you&#8217;re interested in (e.g. classic enterprise integration scenarios), and there is a frustrating lack of admission of the amount of work that remains to address them.   </p>
<p>To me, a RESTful interface for changing resource state is not very different, IMO, from dynamic interfaces such as CORBA DII, or COM Automation, or RMI with Reflection, or even SOAP sans WSDL &#8212; with the exception of uniform method &amp; return code semantics, and that there&#8217;s a limited amount of out-of-band information required to access the interface description &#8211; GET often suffices.    But there is no magic here, it&#8217;s just an interface, little different from those we use in other technologies.   The main benefit is that it presumes a dynamic interface by default, one that can be introspected, instead of hard-coded against.    A RESTful toolkit presumes a dynamic interface by default instead of as a bag on the side, as with normal CORBA stubs/skeletons, or COM vtables, or RMI Remote interfaces.   </p>
<p>When you presume a dynamic interface by default, it enables freedom for an agent to have much more varied decision making behaviour than just if-then-else statements.    We&#8217;ve seen plenty of evidence for this on the agent-side with the use of GET, we&#8217;ve seen less evidence of this on the resource-side with automated use of POST/PUT/DELETE, mainly because it&#8217;s so dependent on building a modular set of media types to achieve broad interoperability.    Comprehension and standardization here has been glacial, and the REST community does often downplay the large amount of effort still required to bring the &#8220;write&#8221; side of the read/write web up to par.    This remains frustrating.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Burke</title>
		<link>http://stage.vambenepe.com/archives/1161#comment-711</link>
		<dc:creator>Bill Burke</dc:creator>
		<pubDate>Thu, 14 Jan 2010 13:45:24 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1161#comment-711</guid>
		<description>@Stu:

Not sure I articulated well enough.  But, again, IMO, browsers are a horrible example as they don&#039;t drive state transitions, which is a huge points that many RESTafarians miss.  They only render, which basically means they are a transformation engine changing (X)HTML into pixels.

I also agree that too much definition can be done at times.  But as in regular software development bad engineers will never worry about backward compatibility or fluidity.  Same is in regards to custom media types.</description>
		<content:encoded><![CDATA[<p>@Stu:</p>
<p>Not sure I articulated well enough.  But, again, IMO, browsers are a horrible example as they don&#8217;t drive state transitions, which is a huge points that many RESTafarians miss.  They only render, which basically means they are a transformation engine changing (X)HTML into pixels.</p>
<p>I also agree that too much definition can be done at times.  But as in regular software development bad engineers will never worry about backward compatibility or fluidity.  Same is in regards to custom media types.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Burke</title>
		<link>http://stage.vambenepe.com/archives/1161#comment-710</link>
		<dc:creator>Bill Burke</dc:creator>
		<pubDate>Thu, 14 Jan 2010 13:42:35 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1161#comment-710</guid>
		<description>@Stu:

Yeah, web browsers do a lot of nice things, but what they don&#039;t do is make decisions.  Humans do that.  Machine-based clients need to make decisions based on a preset finite set of rules which are decided upon ahead of time.  A human using a browser can basically follow any link rendered by the browser they want.  I think this is a fundamental disconnect that a lot of RESTafarians make.  Including Roy.</description>
		<content:encoded><![CDATA[<p>@Stu:</p>
<p>Yeah, web browsers do a lot of nice things, but what they don&#8217;t do is make decisions.  Humans do that.  Machine-based clients need to make decisions based on a preset finite set of rules which are decided upon ahead of time.  A human using a browser can basically follow any link rendered by the browser they want.  I think this is a fundamental disconnect that a lot of RESTafarians make.  Including Roy.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stu</title>
		<link>http://stage.vambenepe.com/archives/1161#comment-709</link>
		<dc:creator>Stu</dc:creator>
		<pubDate>Wed, 13 Jan 2010 17:36:34 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1161#comment-709</guid>
		<description>I&#039;ve been meaning to respond to this with a blog entry, but of course Moveable Type has been acting up on me since I upgraded back in November...

Anyway, yes, I agree with most of your points, and think you&#039;ve really hit it with #1 (hypermedia), #2 (the importance of URIs, but also that we haven&#039;t solved all problems here), and #4 (which I would term a restatement of &#039;design for serendipity&#039;).   

I also think that for Clouds, and IT Management, it&#039;s all about linked data. 

Regarding MIME types, well, there are limitations to them, and we run into them especially when we start applying REST to more and more data variants or custom (i.e. business) data structures.  They were designed in a different (pre-Web!) era, and it&#039;s wonderful they&#039;ve lasted this long, but surely something new must come along to supplant them.  

And a response to Bill Burke, whom I&#039;m not sure will be reading this:

&quot;A machine client is not capable of making decisions on the fly. Things have to be pre-defined up-front for a machine-based client to work. &quot;

This is true to a point -- but just a point, and an evolving one.  The tendency among the integration crowd has been to pre-define things way, way too much, in a way that drastically limits the amount of forward compatibility.

Think through the evolution of data integration, from fixed-format data files with zero self-description, through comma-delimited files, through labeled delimited files,  RPC formats,  DII or Reflective calls,  tagged data, and SQL or ETL-based integration.     ETL tools out there weren&#039;t coded against a particular schema, and are capable of doing backflips with one&#039;s data.

&quot;Maybe I’m just horrible at REST, but I don’t see the “dynamic decision making” capabilities of links making such a big impact in machine-based clients.&quot;

See, this I disagree with, as it&#039;s one of the major drivers behind REST&#039;s loose coupling.   There is plenty of evidence abounding that a machine can make a dynamic decision based on a link.   Your web browser does it all the time when it interprets DIV tags relative to CSS, or what algorithm to use to render an IMG when it gets the MIME type of that image (or sniffs it ;).    RSS/Atom aggregators do it all the time as well -- what do they do with alternates?  How do they render them?  It depends.

&quot;There’s too much “black and white” going on in the REST community. It seems you either are or aren’t REST and you better not dare call your application or API RESTful if you aren’t 100%.&quot;

The main problem is in devaluing the term.   If someone puts together a crap API, and it&#039;s objectively bad (i.e. breaks the semantics of HTTP), then it&#039;s worth calling that out.  

On the other hand, the constant bickering about &quot;purity&quot; through PUT vs. POST or URI syntax and parameter-laden URIs are IMO games for chumps.  They matter, but not much.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve been meaning to respond to this with a blog entry, but of course Moveable Type has been acting up on me since I upgraded back in November&#8230;</p>
<p>Anyway, yes, I agree with most of your points, and think you&#8217;ve really hit it with #1 (hypermedia), #2 (the importance of URIs, but also that we haven&#8217;t solved all problems here), and #4 (which I would term a restatement of &#8216;design for serendipity&#8217;).   </p>
<p>I also think that for Clouds, and IT Management, it&#8217;s all about linked data. </p>
<p>Regarding MIME types, well, there are limitations to them, and we run into them especially when we start applying REST to more and more data variants or custom (i.e. business) data structures.  They were designed in a different (pre-Web!) era, and it&#8217;s wonderful they&#8217;ve lasted this long, but surely something new must come along to supplant them.  </p>
<p>And a response to Bill Burke, whom I&#8217;m not sure will be reading this:</p>
<p>&#8220;A machine client is not capable of making decisions on the fly. Things have to be pre-defined up-front for a machine-based client to work. &#8221;</p>
<p>This is true to a point &#8212; but just a point, and an evolving one.  The tendency among the integration crowd has been to pre-define things way, way too much, in a way that drastically limits the amount of forward compatibility.</p>
<p>Think through the evolution of data integration, from fixed-format data files with zero self-description, through comma-delimited files, through labeled delimited files,  RPC formats,  DII or Reflective calls,  tagged data, and SQL or ETL-based integration.     ETL tools out there weren&#8217;t coded against a particular schema, and are capable of doing backflips with one&#8217;s data.</p>
<p>&#8220;Maybe I’m just horrible at REST, but I don’t see the “dynamic decision making” capabilities of links making such a big impact in machine-based clients.&#8221;</p>
<p>See, this I disagree with, as it&#8217;s one of the major drivers behind REST&#8217;s loose coupling.   There is plenty of evidence abounding that a machine can make a dynamic decision based on a link.   Your web browser does it all the time when it interprets DIV tags relative to CSS, or what algorithm to use to render an IMG when it gets the MIME type of that image (or sniffs it <img src='http://stage.vambenepe.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .    RSS/Atom aggregators do it all the time as well &#8212; what do they do with alternates?  How do they render them?  It depends.</p>
<p>&#8220;There’s too much “black and white” going on in the REST community. It seems you either are or aren’t REST and you better not dare call your application or API RESTful if you aren’t 100%.&#8221;</p>
<p>The main problem is in devaluing the term.   If someone puts together a crap API, and it&#8217;s objectively bad (i.e. breaks the semantics of HTTP), then it&#8217;s worth calling that out.  </p>
<p>On the other hand, the constant bickering about &#8220;purity&#8221; through PUT vs. POST or URI syntax and parameter-laden URIs are IMO games for chumps.  They matter, but not much.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: GIS-Lab Blog&#187; Архив блога &#187; Новости вокруг</title>
		<link>http://stage.vambenepe.com/archives/1161#comment-708</link>
		<dc:creator>GIS-Lab Blog&#187; Архив блога &#187; Новости вокруг</dc:creator>
		<pubDate>Sat, 02 Jan 2010 11:26:57 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1161#comment-708</guid>
		<description>[...] Sean Gillies рекомендует статью о создании сервисов RESTfull. [...] </description>
		<content:encoded><![CDATA[<p>[...] Sean Gillies рекомендует статью о создании сервисов RESTfull. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joshalot</title>
		<link>http://stage.vambenepe.com/archives/1161#comment-707</link>
		<dc:creator>Joshalot</dc:creator>
		<pubDate>Fri, 11 Dec 2009 06:18:41 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1161#comment-707</guid>
		<description>REST in peace!</description>
		<content:encoded><![CDATA[<p>REST in peace!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roger Menday</title>
		<link>http://stage.vambenepe.com/archives/1161#comment-706</link>
		<dc:creator>Roger Menday</dc:creator>
		<pubDate>Thu, 10 Dec 2009 22:05:36 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1161#comment-706</guid>
		<description>Great post. Looking forward to the next series. I think the REST/RDF (or REST/LinkedData) combination is a superb one! One which can tackle the Cloud, Management type scenarios - and many others. 

Expose the graph of resources as LinkedData, leverage lots of existing semantic web tools to drive the domain modeling, i.e. OWL, manipulate the graph RESTfully, and add a SPARQL endpoint to allow the graph to be queried. A small illustration of this for IaaS is at http://fujocci.appspot.com/iamsecret

A small point on your question #1: as RDF is a infoset kind of thing, there are many different serialisations of this: XML, text, JSON ... all of which are the same list of triples when it comes down to it. I&#039;m not sure if that is a path to legacy hell anymore (?)</description>
		<content:encoded><![CDATA[<p>Great post. Looking forward to the next series. I think the REST/RDF (or REST/LinkedData) combination is a superb one! One which can tackle the Cloud, Management type scenarios &#8211; and many others. </p>
<p>Expose the graph of resources as LinkedData, leverage lots of existing semantic web tools to drive the domain modeling, i.e. OWL, manipulate the graph RESTfully, and add a SPARQL endpoint to allow the graph to be queried. A small illustration of this for IaaS is at <a href="http://fujocci.appspot.com/iamsecret" rel="nofollow">http://fujocci.appspot.com/iamsecret</a></p>
<p>A small point on your question #1: as RDF is a infoset kind of thing, there are many different serialisations of this: XML, text, JSON &#8230; all of which are the same list of triples when it comes down to it. I&#8217;m not sure if that is a path to legacy hell anymore (?)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Burke</title>
		<link>http://stage.vambenepe.com/archives/1161#comment-705</link>
		<dc:creator>Bill Burke</dc:creator>
		<pubDate>Thu, 10 Dec 2009 20:30:22 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1161#comment-705</guid>
		<description>There&#039;s really two things that have aggravated me about the REST community.

1) This idea of self describing messages just doesn&#039;t work very well for machine-based clients.  Self describing messages work very well for browsers because a human is driving state transitions.  A human is capable of making decisions on the fly based on rendred content.  HTML has worked so well with little constraints because a human is driving the interaction.

A machine client is not capable of making decisions on the fly.  Things have to be pre-defined up-front for a machine-based client to work.  This is especially true of error conditions.  This doesn&#039;t mean REST principles aren&#039;t useful for machine-based clients, it just means that these core principles are applied a little bit differently.  For instance, I&#039;ve found that links are more useful as a &quot;Naming Service&quot; replacement than a way to give a client options for state transition.  That links real purpose in machine-based clients are to make URI&#039;s opaque.  Maybe I&#039;m just horrible at REST, but I don&#039;t see the &quot;dynamic decision making&quot; capabilities of links making such a big impact in machine-based clients.

I think a huge arrogance of the REST community involves in not thinking about machine based clients because much of the success of the web has been human-client driven.  There&#039;s going to be a bit more up-front predefinition for machine-based client consumption of REST services.  Which brings me to my 2nd point...

2) There&#039;s too much &quot;black and white&quot; going on in the REST community.  It seems you either are or aren&#039;t REST and you better not dare call your application or API RESTful if you aren&#039;t 100%.  What drives me crazy is not even the Web itself is 100% REST.  The vast majority of applications (I&#039;m not talking about websites but applications) on the web do not conform 100% to REST principles.  They use GET to change resource state.  They rely on having a session with the server.  They overload POST by tunneling mini-RPCs (think of the action URIs in Struts for example).  If you truly look at the success of the web, its the hypermedia aspect of it that is the underlying cause, not a uniform interface, and surely not stateless interaction with resources.  What boggles my mind is that these same fanbois that call your interface unRESTful if you&#039;ve had to bend a principle are the same people that promote REST as being the architecture of the Web.  This is pretty much why I&#039;ve completely unsubscribed from the rest-discuss list.  It is just too aggravating to listen to all these people describe web services in terms of black and white and not grays...

Anyways, sorry to rant.  Interesting blog post.</description>
		<content:encoded><![CDATA[<p>There&#8217;s really two things that have aggravated me about the REST community.</p>
<p>1) This idea of self describing messages just doesn&#8217;t work very well for machine-based clients.  Self describing messages work very well for browsers because a human is driving state transitions.  A human is capable of making decisions on the fly based on rendred content.  HTML has worked so well with little constraints because a human is driving the interaction.</p>
<p>A machine client is not capable of making decisions on the fly.  Things have to be pre-defined up-front for a machine-based client to work.  This is especially true of error conditions.  This doesn&#8217;t mean REST principles aren&#8217;t useful for machine-based clients, it just means that these core principles are applied a little bit differently.  For instance, I&#8217;ve found that links are more useful as a &#8220;Naming Service&#8221; replacement than a way to give a client options for state transition.  That links real purpose in machine-based clients are to make URI&#8217;s opaque.  Maybe I&#8217;m just horrible at REST, but I don&#8217;t see the &#8220;dynamic decision making&#8221; capabilities of links making such a big impact in machine-based clients.</p>
<p>I think a huge arrogance of the REST community involves in not thinking about machine based clients because much of the success of the web has been human-client driven.  There&#8217;s going to be a bit more up-front predefinition for machine-based client consumption of REST services.  Which brings me to my 2nd point&#8230;</p>
<p>2) There&#8217;s too much &#8220;black and white&#8221; going on in the REST community.  It seems you either are or aren&#8217;t REST and you better not dare call your application or API RESTful if you aren&#8217;t 100%.  What drives me crazy is not even the Web itself is 100% REST.  The vast majority of applications (I&#8217;m not talking about websites but applications) on the web do not conform 100% to REST principles.  They use GET to change resource state.  They rely on having a session with the server.  They overload POST by tunneling mini-RPCs (think of the action URIs in Struts for example).  If you truly look at the success of the web, its the hypermedia aspect of it that is the underlying cause, not a uniform interface, and surely not stateless interaction with resources.  What boggles my mind is that these same fanbois that call your interface unRESTful if you&#8217;ve had to bend a principle are the same people that promote REST as being the architecture of the Web.  This is pretty much why I&#8217;ve completely unsubscribed from the rest-discuss list.  It is just too aggravating to listen to all these people describe web services in terms of black and white and not grays&#8230;</p>
<p>Anyways, sorry to rant.  Interesting blog post.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mitch Garnaat</title>
		<link>http://stage.vambenepe.com/archives/1161#comment-704</link>
		<dc:creator>Mitch Garnaat</dc:creator>
		<pubDate>Thu, 10 Dec 2009 18:35:20 +0000</pubDate>
		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1161#comment-704</guid>
		<description>Great post.  After I&#039;ve read it a couple more times, I&#039;m sure I&#039;ll have something clever to say 8^).  BTW, s/brandied/bandied/

Mitch</description>
		<content:encoded><![CDATA[<p>Great post.  After I&#8217;ve read it a couple more times, I&#8217;m sure I&#8217;ll have something clever to say 8^).  BTW, s/brandied/bandied/</p>
<p>Mitch</p>
]]></content:encoded>
	</item>
</channel>
</rss>

