<?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/"
	xmlns:series="http://unfoldingneurons.com/"
		>
<channel>
	<title>Comments on: What Constitutes A Web Service?</title>
	<atom:link href="http://www.brandonsavage.net/what-constitutes-a-web-service/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brandonsavage.net/what-constitutes-a-web-service/</link>
	<description>The personal blog of Brandon Savage. Contains entries of a personal and professional nature focusing on PHP, Apple, LAMP, MySQL and Washington, DC.</description>
	<lastBuildDate>Fri, 03 Feb 2012 19:36:33 -0500</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Larry Garfield</title>
		<link>http://www.brandonsavage.net/what-constitutes-a-web-service/#comment-613</link>
		<dc:creator>Larry Garfield</dc:creator>
		<pubDate>Thu, 16 Jul 2009 06:01:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.brandonsavage.net/?p=468#comment-613</guid>
		<description>I will add one more requirement: The communication to and from those endpoints must take place over HTTP(S).  That&#039;s what makes a remote service a &quot;web&quot; service.  Otherwise, your definition would include telnet and ssh as &quot;web services&quot;, since they provide end points with a documented interface for remote access.  Remote data access is really old news. :-)  Doing it mostly over ubiquitous HTTP is what makes it a &quot;web&quot; service specifically.

It&#039;s worth noting that still means every web browser is really a web services client, and every web server a web services server, and every web page a web services response.  Yes, that is in fact the case. :-)</description>
		<content:encoded><![CDATA[<p>I will add one more requirement: The communication to and from those endpoints must take place over HTTP(S).  That&#8217;s what makes a remote service a &#8220;web&#8221; service.  Otherwise, your definition would include telnet and ssh as &#8220;web services&#8221;, since they provide end points with a documented interface for remote access.  Remote data access is really old news. :-)  Doing it mostly over ubiquitous HTTP is what makes it a &#8220;web&#8221; service specifically.</p>
<p>It&#8217;s worth noting that still means every web browser is really a web services client, and every web server a web services server, and every web page a web services response.  Yes, that is in fact the case. :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ray Paseur</title>
		<link>http://www.brandonsavage.net/what-constitutes-a-web-service/#comment-610</link>
		<dc:creator>Ray Paseur</dc:creator>
		<pubDate>Wed, 15 Jul 2009 22:49:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.brandonsavage.net/?p=468#comment-610</guid>
		<description>I participate in Experts Exchange and answer questions in the PHP zone.  A fairly common question goes something like this, &quot;How come I can&#039;t get SOAP to work...?&quot;  I have seen thousand of human hours wasted in confusion over the complexity of SOAP interfaces. 

In contrast, I have NEVER seen someone get stumped by a RESTful interface.  Flickr, Twitter, Facebook, Google, Yahoo - they all get it.  Show any novice a single example, and they are off to the races.  REST is better than SOAP, period.

So without putting my tongue too far into my cheek, let me suggest that a new category, perhaps called &quot;Web Disservices,&quot; should be defined.  These would include the services that have confusing or incomplete documentation, change the interface without changing the URL, return malformed XML, are subject to timeouts, return ambiguous data, etc.  I am sure the list could be more complete.</description>
		<content:encoded><![CDATA[<p>I participate in Experts Exchange and answer questions in the PHP zone.  A fairly common question goes something like this, &#8220;How come I can&#8217;t get SOAP to work&#8230;?&#8221;  I have seen thousand of human hours wasted in confusion over the complexity of SOAP interfaces. </p>
<p>In contrast, I have NEVER seen someone get stumped by a RESTful interface.  Flickr, Twitter, Facebook, Google, Yahoo &#8211; they all get it.  Show any novice a single example, and they are off to the races.  REST is better than SOAP, period.</p>
<p>So without putting my tongue too far into my cheek, let me suggest that a new category, perhaps called &#8220;Web Disservices,&#8221; should be defined.  These would include the services that have confusing or incomplete documentation, change the interface without changing the URL, return malformed XML, are subject to timeouts, return ambiguous data, etc.  I am sure the list could be more complete.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bradley Holt</title>
		<link>http://www.brandonsavage.net/what-constitutes-a-web-service/#comment-608</link>
		<dc:creator>Bradley Holt</dc:creator>
		<pubDate>Wed, 15 Jul 2009 21:25:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.brandonsavage.net/?p=468#comment-608</guid>
		<description>Brandon, that makes sense, thanks for clarifying!</description>
		<content:encoded><![CDATA[<p>Brandon, that makes sense, thanks for clarifying!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brandon Savage</title>
		<link>http://www.brandonsavage.net/what-constitutes-a-web-service/#comment-607</link>
		<dc:creator>Brandon Savage</dc:creator>
		<pubDate>Wed, 15 Jul 2009 21:21:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.brandonsavage.net/?p=468#comment-607</guid>
		<description>Brad, you make a good point and I think my definition of &quot;documented&quot; needs some revision and explanation.

By &quot;documented&quot; I mean that there is a way for a developer or application to find the method. That documentation can take the form of online documentation, a WSDL, or as you describe here. In classifying web applications my goal was to exclude those that exist solely for internal purposes as being defined as web services (e.g. the internal Twitter API that is not subject to rate limits, etc.).

Since a web service is meant to be ingested, the methods you can use should be defined in some way, and documented in some way, even if their existence is not revealed until runtime.

Hope that provides some clarity.</description>
		<content:encoded><![CDATA[<p>Brad, you make a good point and I think my definition of &#8220;documented&#8221; needs some revision and explanation.</p>
<p>By &#8220;documented&#8221; I mean that there is a way for a developer or application to find the method. That documentation can take the form of online documentation, a WSDL, or as you describe here. In classifying web applications my goal was to exclude those that exist solely for internal purposes as being defined as web services (e.g. the internal Twitter API that is not subject to rate limits, etc.).</p>
<p>Since a web service is meant to be ingested, the methods you can use should be defined in some way, and documented in some way, even if their existence is not revealed until runtime.</p>
<p>Hope that provides some clarity.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bradley Holt</title>
		<link>http://www.brandonsavage.net/what-constitutes-a-web-service/#comment-606</link>
		<dc:creator>Bradley Holt</dc:creator>
		<pubDate>Wed, 15 Jul 2009 21:04:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.brandonsavage.net/?p=468#comment-606</guid>
		<description>Good blog post! I agree that the definitions put forth are too limiting. In following that thought process, I should point out a limitation in your definition of a web service ;-) 

One of your requirements is: &quot;Contains one or more documented method(s) for retrieving or adding that data&quot;. I&#039;ve been interested in the concept of HATEOAS (Hypermedia as the Engine of Application State) lately, which is one aspect of REST. Using HATEOAS, you don&#039;t need to document your methods for retrieving or adding data ahead of time (in fact, it&#039;s preferable that you *don&#039;t* document these explicitly so that they can evolve over time). This documentation is &quot;generated&quot; (so to speak) at runtime in your hypermedia. You *do* document: 1) as few URIs to start with as possible (ideally just one), 2) your link relations (e.g. self, edit), and 3) your media types. The verbs are already known (i.e. GET, POST, PUT, DELETE) but you could document those too if you&#039;d like to be clear. The article &quot;Describing RESTful Applications&quot; has a more in-depth explanation of this approach:

http://www.infoq.com/articles/subbu-allamaraju-rest</description>
		<content:encoded><![CDATA[<p>Good blog post! I agree that the definitions put forth are too limiting. In following that thought process, I should point out a limitation in your definition of a web service ;-) </p>
<p>One of your requirements is: &#8220;Contains one or more documented method(s) for retrieving or adding that data&#8221;. I&#8217;ve been interested in the concept of HATEOAS (Hypermedia as the Engine of Application State) lately, which is one aspect of REST. Using HATEOAS, you don&#8217;t need to document your methods for retrieving or adding data ahead of time (in fact, it&#8217;s preferable that you *don&#8217;t* document these explicitly so that they can evolve over time). This documentation is &#8220;generated&#8221; (so to speak) at runtime in your hypermedia. You *do* document: 1) as few URIs to start with as possible (ideally just one), 2) your link relations (e.g. self, edit), and 3) your media types. The verbs are already known (i.e. GET, POST, PUT, DELETE) but you could document those too if you&#8217;d like to be clear. The article &#8220;Describing RESTful Applications&#8221; has a more in-depth explanation of this approach:</p>
<p><a href="http://www.infoq.com/articles/subbu-allamaraju-rest" rel="nofollow">http://www.infoq.com/articles/subbu-allamaraju-rest</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic (Feed is rejected)
Page Caching using disk: enhanced (User agent is rejected)
Database Caching 3/11 queries in 0.004 seconds using disk: basic
Content Delivery Network via Amazon Web Services: S3: files.brandonsavage.net.s3.amazonaws.com

Served from: www.brandonsavage.net @ 2012-02-07 04:30:26 -->
