<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Steve Vinoski's Blog &#187; coupling</title>
	<atom:link href="http://steve.vinoski.net/blog/category/coupling/feed/" rel="self" type="application/rss+xml" />
	<link>http://steve.vinoski.net/blog</link>
	<description>Ask forgiveness, not permission.</description>
	<lastBuildDate>Thu, 09 May 2013 03:00:44 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>RESTful Web Services Development Checklist</title>
		<link>http://steve.vinoski.net/blog/2008/11/01/restful-web-services-development-checklist/</link>
		<comments>http://steve.vinoski.net/blog/2008/11/01/restful-web-services-development-checklist/#comments</comments>
		<pubDate>Sun, 02 Nov 2008 03:51:57 +0000</pubDate>
		<dc:creator>steve</dc:creator>
				<category><![CDATA[column]]></category>
		<category><![CDATA[coupling]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[distributed systems]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://steve.vinoski.net/blog/?p=130</guid>
		<description><![CDATA[My Nov./Dec. Internet Computing column is now available. It&#8217;s entitled &#8220;RESTful Web Services Development Checklist&#8220; and as its name implies, it covers some of the primary areas developers need to focus on to write good RESTful web services. These areas are: Resources and their URIs Applications and Hypermedia Representations and Media Types Methods Conditional GET [...]]]></description>
				<content:encoded><![CDATA[<p>My Nov./Dec. <a href="http://www.computer.org/internet">Internet Computing</a> column is now available. It&#8217;s entitled <em>&#8220;<a href="/blog/internet-computing-columns/#2008-6">RESTful Web Services Development Checklist</a>&#8220;</em> and as its name implies, it covers some of the primary areas developers need to focus on to write good RESTful web services. These areas are:</p>
<ul>
<li>Resources and their URIs</li>
<li>Applications and Hypermedia</li>
<li>Representations and Media Types</li>
<li>Methods</li>
<li>Conditional <code>GET</code></li>
</ul>
<p>Regarding the &#8220;Applications and Hypermedia&#8221; area, I feel <a href="http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven">Roy Fielding&#8217;s pain</a> that many efforts labeled as being RESTful seem to completely ignore the hypermedia constraint. I believe many developers tend to miss this constraint because they&#8217;re so used to using libraries and frameworks that offer lots of entry points, and having knowledge of those entry points in the client normally isn&#8217;t that bad since the client and library/framework are tightly coupled into the same address space anyway. In a distributed system, though, this definitely does not hold true; when the client knows a bunch of entry points into the service, it ties the client to that service and inhibits their independent evolution.</p>
<p>Anyway, please read the column and let me know what you think, and thanks again to <a href="http://www.innoq.com/blog/st/">Stefan Tilkov</a> for his helpful review of the draft.</p>
<p>Coincidentally I also feel <a href="http://roy.gbiv.com/untangled/2008/specialization">Roy&#8217;s pain when it comes to writing about REST</a>. He states:</p>
<blockquote><p><em>I don’t try to tell them exactly what to do because, quite frankly, I don’t have anywhere near enough knowledge of their specific context to make such a decision.<br />
&#8230;<br />
So, when you find it hard to understand what I have written, please don’t think of it as talking above your head or just too philosophical to be worth your time. I am writing this way because I think the subject deserves a particular form of precision. Instead, take the time to look up the terms. Think of it as an opportunity to learn something new, not because I said so, but because it will do you some personal good to better understand the depth of our field.</em></p></blockquote>
<p>Exactly.</p>
<p>Obviously, Roy is the ultimate REST authority, given that he defined it, so I&#8217;m not at all claiming to be anywhere near as authoritative about it as he is, yet I&#8217;ve also experienced what he says above. For example, consider this informal review of my columns I received a few months ago in a comment on someone else&#8217;s blog:</p>
<blockquote><p><em>The articles of yours that I&#8217;ve read are&#8230;amorphous to me. They speak in generalities. I haven&#8217;t read an article where you sit down and write the same service using both REST and RPC and compare the two. When you speak in generalities, we can&#8217;t objectively evaluate any of the specific trade-offs between approaches&#8230; Arguments that happen at too abstract a level can&#8217;t go anywhere, because our positions aren&#8217;t specific enough for anyone to evaluate anybody else&#8217;s claims.</em></p></blockquote>
<p>In other words, &#8220;since your columns don&#8217;t do my thinking and experimentation for me, they&#8217;re useless to me.&#8221; Hmm. Maybe I&#8217;m just old school, but I&#8217;d much rather understand mathematics than require someone to hold my hand while I blindly punch buttons on a calculator. In other words, as the old proverb goes, I&#8217;d much rather try to teach you to fish so you can feed yourself. As I state in this new column:</p>
<blockquote><p><em>Whether developers of RESTful HTTP-based services write their code in IDEs or with simple text editors, and regardless of which programming languages they use, they must understand REST and HTTP fundamentals to succeed.</em></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://steve.vinoski.net/blog/2008/11/01/restful-web-services-development-checklist/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>RESTful Data</title>
		<link>http://steve.vinoski.net/blog/2008/02/28/restful-data/</link>
		<comments>http://steve.vinoski.net/blog/2008/02/28/restful-data/#comments</comments>
		<pubDate>Thu, 28 Feb 2008 15:47:34 +0000</pubDate>
		<dc:creator>steve</dc:creator>
				<category><![CDATA[column]]></category>
		<category><![CDATA[coupling]]></category>
		<category><![CDATA[integration]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[scalability]]></category>
		<category><![CDATA[data formats]]></category>
		<category><![CDATA[media types]]></category>

		<guid isPermaLink="false">http://steve.vinoski.net/blog/2008/02/28/restful-data/</guid>
		<description><![CDATA[In my Jan/Feb Internet Computing column, Serendipitous Reuse (PDF), I talked about interface coupling and the benefits of REST&#8217;s uniform interface constraint. I find that whenever you discuss that topic, though, REST detractors tend to say, &#8220;Well, you&#8217;re just pushing the coupling problems to the data.&#8221; The problem with that assertion is that it assumes [...]]]></description>
				<content:encoded><![CDATA[<p>In my Jan/Feb <a href="http://computer.org/internet">Internet Computing</a> column, <em><a href="/pdf/IEEE-Serendipitous_Reuse.pdf">Serendipitous Reuse</a></em> (PDF), I talked about interface coupling and the benefits of REST&#8217;s uniform interface constraint. I find that whenever you discuss that topic, though, REST detractors tend to say, &#8220;Well, you&#8217;re just pushing the coupling problems to the data.&#8221;</p>
<p>The problem with that assertion is that it assumes coupling is a fixed constant &mdash; if you eliminate it from one point, whatever you&#8217;ve gotten rid of just has to pop up somewhere elsewhere, like some sort of strange &#8220;Conservation of Coupling&#8221; law. Of course, that&#8217;s not true. In my latest column, <a href="/pdf/IEEE-Demystifying_RESTful_Data_Coupling.pdf"><em>Demystifying RESTful Data Coupling</em></a> (PDF), I turn my attention to this claim and explain how RESTful data works, and why it too, like RESTful interfaces, reduces coupling when compared to WS-* and other similar approaches.</p>
<p>Constructive feedback welcomed, as always.</p>
]]></content:encoded>
			<wfw:commentRss>http://steve.vinoski.net/blog/2008/02/28/restful-data/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
