<?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: Epiphany: Replace HATEOAS With &quot;Hypermedia Describes Protocols&quot;</title>
	<atom:link href="http://blogs.gartner.com/nick_gall/2009/06/02/epiphany-replace-hateoas-with-hypermedia-describes-protocols/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.gartner.com/nick_gall/2009/06/02/epiphany-replace-hateoas-with-hypermedia-describes-protocols/</link>
	<description>A member of the Gartner Blog Network</description>
	<lastBuildDate>Mon, 26 Sep 2011 20:06:17 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
	<item>
		<title>By: Galen Tosham</title>
		<link>http://blogs.gartner.com/nick_gall/2009/06/02/epiphany-replace-hateoas-with-hypermedia-describes-protocols/comment-page-1/#comment-14003</link>
		<dc:creator>Galen Tosham</dc:creator>
		<pubDate>Wed, 30 Sep 2009 14:11:11 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gartner.com/nick_gall/2009/06/02/epiphany-replace-hateoas-with-hypermedia-describes-protocols/#comment-14003</guid>
		<description>I was just telling RD that I&#039;m also quite the ... epiphany slut!</description>
		<content:encoded><![CDATA[<p>I was just telling RD that I&#8217;m also quite the &#8230; epiphany slut!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian Robinson</title>
		<link>http://blogs.gartner.com/nick_gall/2009/06/02/epiphany-replace-hateoas-with-hypermedia-describes-protocols/comment-page-1/#comment-13347</link>
		<dc:creator>Ian Robinson</dc:creator>
		<pubDate>Fri, 05 Jun 2009 12:29:08 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gartner.com/nick_gall/2009/06/02/epiphany-replace-hateoas-with-hypermedia-describes-protocols/#comment-13347</guid>
		<description>&quot;What’s important is that each hypermedia DSL is composed using the generic languages of URL, HTML, and HTTP.&quot;

The trick is in composing DSLs without stamping all over those generic languages: that is, our hypermedia DSLs ought not abuse the generic elements upon which they depend. A technique that can help prevent mangling these &quot;generic description languages&quot; is to consider the protocol from the point of view of an intermediary. If the intermediary need know something about our application-specific protocol in order to behave correctly, we&#039;re doing something wrong.

Consider, for example a (non-RESTful) situation in which we tunnel RPC-like commands over POST. If some of those commands behave like queries that return eminently cacheable results, and we do indeed want to cache those results, we&#039;d likely have to bake some application-specific knowledge into our intermediaries (&quot;this application-specific XML payload returns cacheable results&quot;).

By asking ourselves what intermediaries would have to do to support our hypermedia DSL, we steer ourselves towards a solution better aligned with the architecture of the Web (in this case: don&#039;t tunnel cacheable requests over POST).

The fact that intermediaries remain agnostic to good application-specific protocols (aka. hypermedia DSLs) leads me sometimes to suggest that in a RESTful application, business meaningful behaviours (application-specific behaviours) emerge almost as a side effect of the transfer of representations according to standardised media types.</description>
		<content:encoded><![CDATA[<p>&#8220;What’s important is that each hypermedia DSL is composed using the generic languages of URL, HTML, and HTTP.&#8221;</p>
<p>The trick is in composing DSLs without stamping all over those generic languages: that is, our hypermedia DSLs ought not abuse the generic elements upon which they depend. A technique that can help prevent mangling these &#8220;generic description languages&#8221; is to consider the protocol from the point of view of an intermediary. If the intermediary need know something about our application-specific protocol in order to behave correctly, we&#8217;re doing something wrong.</p>
<p>Consider, for example a (non-RESTful) situation in which we tunnel RPC-like commands over POST. If some of those commands behave like queries that return eminently cacheable results, and we do indeed want to cache those results, we&#8217;d likely have to bake some application-specific knowledge into our intermediaries (&#8220;this application-specific XML payload returns cacheable results&#8221;).</p>
<p>By asking ourselves what intermediaries would have to do to support our hypermedia DSL, we steer ourselves towards a solution better aligned with the architecture of the Web (in this case: don&#8217;t tunnel cacheable requests over POST).</p>
<p>The fact that intermediaries remain agnostic to good application-specific protocols (aka. hypermedia DSLs) leads me sometimes to suggest that in a RESTful application, business meaningful behaviours (application-specific behaviours) emerge almost as a side effect of the transfer of representations according to standardised media types.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nick Gall</title>
		<link>http://blogs.gartner.com/nick_gall/2009/06/02/epiphany-replace-hateoas-with-hypermedia-describes-protocols/comment-page-1/#comment-13335</link>
		<dc:creator>Nick Gall</dc:creator>
		<pubDate>Wed, 03 Jun 2009 10:50:57 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gartner.com/nick_gall/2009/06/02/epiphany-replace-hateoas-with-hypermedia-describes-protocols/#comment-13335</guid>
		<description>Thanks for the comments Jerry and Anthony (wow I feel like I&#039;m back in a META Group Thursday Research Meeting!).

Jerry, I think you meant &quot;large volume, HIGH latency environment&quot;. If so, then agreed. Hypermedia is bulkier and higher latency than binary data optimized just for machine processing. Despite that, the web (hypermedia) works &quot;good enough&quot; for most apps for most parts of the world. We all know if doesn&#039;t work as well in many parts of Africa and Southeast Asia. Why? Because the networks are low bandwidth and high latency (and high dropped packets).

Anthony, I agree that Wikipedia and many other &quot;pure html&quot; sites (eg Craigslist) are great examples of HATEOAS. I use them myself. But what I and others are trying to convey is a easy to understand NON-UI example of HATEOAS or &quot;HYpermedia DEscribes PRotocols&quot; (HYDPR -- only 55 Google Hits!). I&#039;m also trying to explain the difference in philosophy between BPEL/WSDL descriptions and HYDEPR descriptions. Since there&#039;s no BPEL/WSDL for UI web sites, there&#039;s nothing to compare/contrast with the Wikipedia UI.</description>
		<content:encoded><![CDATA[<p>Thanks for the comments Jerry and Anthony (wow I feel like I&#8217;m back in a META Group Thursday Research Meeting!).</p>
<p>Jerry, I think you meant &#8220;large volume, HIGH latency environment&#8221;. If so, then agreed. Hypermedia is bulkier and higher latency than binary data optimized just for machine processing. Despite that, the web (hypermedia) works &#8220;good enough&#8221; for most apps for most parts of the world. We all know if doesn&#8217;t work as well in many parts of Africa and Southeast Asia. Why? Because the networks are low bandwidth and high latency (and high dropped packets).</p>
<p>Anthony, I agree that Wikipedia and many other &#8220;pure html&#8221; sites (eg Craigslist) are great examples of HATEOAS. I use them myself. But what I and others are trying to convey is a easy to understand NON-UI example of HATEOAS or &#8220;HYpermedia DEscribes PRotocols&#8221; (HYDPR &#8212; only 55 Google Hits!). I&#8217;m also trying to explain the difference in philosophy between BPEL/WSDL descriptions and HYDEPR descriptions. Since there&#8217;s no BPEL/WSDL for UI web sites, there&#8217;s nothing to compare/contrast with the Wikipedia UI.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anthony Bradley</title>
		<link>http://blogs.gartner.com/nick_gall/2009/06/02/epiphany-replace-hateoas-with-hypermedia-describes-protocols/comment-page-1/#comment-13316</link>
		<dc:creator>Anthony Bradley</dc:creator>
		<pubDate>Tue, 02 Jun 2009 15:35:44 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gartner.com/nick_gall/2009/06/02/epiphany-replace-hateoas-with-hypermedia-describes-protocols/#comment-13316</guid>
		<description>When talking (especially to non-geeks) about HATEOAS, the RESTfulness of applications, and the payload delivery of control information, I use Wikipedia as an example. I point out that the content payload for the requested URL is the direct &quot;data&quot; response but that same data also serves as the contextual metadata for the potential URL transitions in the response. The number of links (application state transition possibilities) and the effectiveness of data as metadata in your payloads gives you a measure of the RESTfulness of the application. 

To put this more plainly, pages with great content that point to many relevant and high value links in the pursuit of an overall goal are RESTful and employ HATEOUS. Those that don&#039;t are either a dead end (i.e., no links) or aimless (i.e., no relevant connection through metadata).</description>
		<content:encoded><![CDATA[<p>When talking (especially to non-geeks) about HATEOAS, the RESTfulness of applications, and the payload delivery of control information, I use Wikipedia as an example. I point out that the content payload for the requested URL is the direct &#8220;data&#8221; response but that same data also serves as the contextual metadata for the potential URL transitions in the response. The number of links (application state transition possibilities) and the effectiveness of data as metadata in your payloads gives you a measure of the RESTfulness of the application. </p>
<p>To put this more plainly, pages with great content that point to many relevant and high value links in the pursuit of an overall goal are RESTful and employ HATEOUS. Those that don&#8217;t are either a dead end (i.e., no links) or aimless (i.e., no relevant connection through metadata).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jerald Murphy</title>
		<link>http://blogs.gartner.com/nick_gall/2009/06/02/epiphany-replace-hateoas-with-hypermedia-describes-protocols/comment-page-1/#comment-13315</link>
		<dc:creator>Jerald Murphy</dc:creator>
		<pubDate>Tue, 02 Jun 2009 13:16:34 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gartner.com/nick_gall/2009/06/02/epiphany-replace-hateoas-with-hypermedia-describes-protocols/#comment-13315</guid>
		<description>My main concern about dynamic vs. static in this context has to do with flexibility vs. latency. While dynamic progressive self-description allows rapid evolution of capabilities in context, the progressive nature of this self-description will potentiall kill transaction latency over a wide-area network. So, in large volume, low latency environments, this self-description will kill you. In application environments where change is the norm, this will be the preferred method of application evolution.</description>
		<content:encoded><![CDATA[<p>My main concern about dynamic vs. static in this context has to do with flexibility vs. latency. While dynamic progressive self-description allows rapid evolution of capabilities in context, the progressive nature of this self-description will potentiall kill transaction latency over a wide-area network. So, in large volume, low latency environments, this self-description will kill you. In application environments where change is the norm, this will be the preferred method of application evolution.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

