<?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>Nick Gall &#187; WOA</title>
	<atom:link href="http://blogs.gartner.com/nick_gall/category/woa/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.gartner.com/nick_gall</link>
	<description>A member of the Gartner Blog Network</description>
	<lastBuildDate>Tue, 15 Sep 2009 02:54:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Epiphany: Replace HATEOAS With &quot;Hypermedia Describes Protocols&quot;</title>
		<link>http://blogs.gartner.com/nick_gall/2009/06/02/epiphany-replace-hateoas-with-hypermedia-describes-protocols/</link>
		<comments>http://blogs.gartner.com/nick_gall/2009/06/02/epiphany-replace-hateoas-with-hypermedia-describes-protocols/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 10:08:29 +0000</pubDate>
		<dc:creator>Nick Gall</dc:creator>
				<category><![CDATA[WOA]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://blogs.gartner.com/nick_gall/2009/06/02/epiphany-replace-hateoas-with-hypermedia-describes-protocols/</guid>
		<description><![CDATA[As a few of my friends know, I live for epiphanies. I love to connect concepts. So I&#8217;m really happy to be having one now (it&#8217;s been a while as regular readers of my blog &#8212; if any remain &#8212; can tell).
For a LONG time, I&#8217;ve been talking about how all interfaces can be defined [...]]]></description>
			<content:encoded><![CDATA[<p>As a few of my friends know, I live for <a href="http://ironick.typepad.com/ironick/2003/08/think_orgasmica.html">epiphanies</a>. I love to connect concepts. So I&#8217;m really happy to be having one now (it&#8217;s been a while as regular readers of my blog &#8212; if any remain &#8212; can tell).</p>
<p>For a LONG time, I&#8217;ve been talking about how all interfaces can be defined in terms of IFaPs (Identifiers, Formats, and Protocols). My canonical example of an interface composed of IFaPs is of course the Web: URL (I), HTML (F), and HTTP (P). All three intersect in a particular instance of HTML, say my blog&#8217;s home page. The HTML for my blog&#8217;s home page is filled with URLs, HTML tags, and even HTTP &quot;verbs&quot; (though these are quite rare, mostly in an HTML form or embedded JavaScript).</p>
<p>Then along came REST and with it the concept of <a href="http://www.google.com/search?q=hateoas">HATEOAS</a>: Hypermedia As The Engine of Application State. And everyone, myself included, spent a lot of time trying to grok it and explain it to others. We&#8217;re still trying. One way I try to explain it is by highlighting that HATEOAS requires that each server response must contain not only the requested data &#8212; but also control information (in the forms of specially tagged URLs) describing the next set of permitted interactions with the server. It is this additional control information (at a bare minimum just some links to more data) that turns mere <em>media</em> into <em><a href="http://en.wikipedia.org/wiki/Hypermedia">hypermedia</a></em>.</p>
<p>Now along comes Jim Webber with a much better (dare I say brilliant) way of explaining HATEOAS and hypermedia: &quot;<a href="http://jim.webber.name/downloads/presentations/2009-05-HATEOAS.pdf">Hypermedia Describes Protocols!</a>&quot; (See slide 26.) At first this might seem counterintuitive, since I said that HTTP is the Protocol and HTML is the Format in the WWW. But URLs, HTML, and HTTP are just generic description languages for describing domain-specific identifiers, formats, and protocols. Thus, think of a web of specific HTML pages as a domain-specific protocol. Jim Webber uses the example of ordering a Starbuck&#8217;s coffee. (What&#8217;s important is that each hypermedia DSL is composed using the generic languages of URL, HTML, and HTTP.)</p>
<p>This notion of bringing together identifiers, formats and <em>verbs</em> to describe a protocol is not new. One of the best descriptions of this was in the <a href="http://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdf">WS-BPEL 1.1 spec</a>:</p>
<p>In thinking about the data handling aspects of business protocols it is instructive to consider the analogy with network communication protocols. Network protocols define the shape and content of the protocol envelopes that flow on the wire, and <u>the protocol behavior they describe is driven solely by the data in these envelopes</u>. In other words, <u>there is a clear physical separation between protocol-relevant data and &quot;payload&quot; data</u>. <strong>The separation is far less clear cut in business protocols because the protocol-relevant data tends to be embedded in other application data.</strong></p>
<p>So if WS-BPEL was already thinking about mixing protocol data with &quot;payload&quot; data, what&#8217;s so new about HATEOAS? The fundamental difference is that WS-BPEL is based on the concept of providing an entire <em>static</em> protocol description up front once and for all &#8212; and providing it <a href="http://en.wikipedia.org/wiki/Out_of_band">out of band</a>. But HATEOAS is based on the notion of <em>progressive description</em> (don&#8217;t bother Googling the term, I coined it; and not to be confused with <a href="http://en.wikipedia.org/wiki/Progressive_disclosure">progressive disclosure</a>). More and more of the description of the protocol is provided to the client (in band in the protocol itself) as the client executes its part of the protocol. I guess another good term might be <em>JIT</em> Protocol Description (Just In Time). Another good term might be &quot;self-describing protocol&quot;. So now when explaining HATEOAS, instead of saying &quot;each server response must contain control information&quot; (huh?), I can say &quot;each server response progressively self-describes the current protocol.&quot;</p>
<p>Now there are pros and cons to static/complete vs dynamic/progressive protocol descriptions. How can I program a client to execute its part of a protocol if I don&#8217;t have a full description of it up front? But if I encode the complete static description of the protocol into my client up front, how can I change the protocol dynamically?</p>
<p>Love to hear others&#8217; thoughts. I&#8217;m going to think about this some more. That&#8217;s why I love epiphanies &#8212; they make you think about things in new ways.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gartner.com/nick_gall/2009/06/02/epiphany-replace-hateoas-with-hypermedia-describes-protocols/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Great set of resources on scalability and other -ility issues</title>
		<link>http://blogs.gartner.com/nick_gall/2009/01/14/great-set-of-resources-on-scalability-and-other-ility-issues/</link>
		<comments>http://blogs.gartner.com/nick_gall/2009/01/14/great-set-of-resources-on-scalability-and-other-ility-issues/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 00:53:12 +0000</pubDate>
		<dc:creator>Nick Gall</dc:creator>
				<category><![CDATA[WOA]]></category>

		<guid isPermaLink="false">http://blogs.gartner.com/nick_gall/2009/01/14/great-set-of-resources-on-scalability-and-other-ility-issues/</guid>
		<description><![CDATA[Recommended: http://blog.maxindelicato.com/2009/01/17-distributed-systems-and-web-scalability-resources.html
]]></description>
			<content:encoded><![CDATA[<p>Recommended: <a href="http://blog.maxindelicato.com/2009/01/17-distributed-systems-and-web-scalability-resources.html">http://blog.maxindelicato.com/2009/01/17-distributed-systems-and-web-scalability-resources.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gartner.com/nick_gall/2009/01/14/great-set-of-resources-on-scalability-and-other-ility-issues/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Long Live the Web</title>
		<link>http://blogs.gartner.com/nick_gall/2009/01/06/long-live-the-web/</link>
		<comments>http://blogs.gartner.com/nick_gall/2009/01/06/long-live-the-web/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 15:44:59 +0000</pubDate>
		<dc:creator>Nick Gall</dc:creator>
				<category><![CDATA[SOA]]></category>
		<category><![CDATA[WOA]]></category>

		<guid isPermaLink="false">http://blogs.gartner.com/nick_gall/2009/01/06/long-live-the-web/</guid>
		<description><![CDATA[Anne Thomas Manes has started the new year of with a bang by declaring: SOA is Dead; Long Live Services.
While I agree with many of the sentiments behind Anne&#8217;s declarations that &#8220;SOA is dead&#8221;, I disagree with her way forward: &#8220;long live services&#8221;.
It is services thinking, as conventionally understood, that led to the mess in [...]]]></description>
			<content:encoded><![CDATA[<p>Anne Thomas Manes has started the new year of with a bang by declaring: <a href="http://apsblog.burtongroup.com/2009/01/soa-is-dead-long-live-services.html">SOA is Dead; Long Live Services</a>.</p>
<p>While I agree with many of the sentiments behind Anne&#8217;s declarations that &#8220;SOA is dead&#8221;, I disagree with her way forward: &#8220;long live services&#8221;.</p>
<p>It is services thinking, as conventionally understood, that led to the mess in which we find ourselves: fragmentation caused by entity-specific (service) interfaces. I&#8217;d say instead, &#8220;long live the web.&#8221; I&#8217;m shocked that Anne&#8217;s blog post does not even mention the web!</p>
<p>I agree when Anne says, &#8220;it requires redesign of the application portfolio. And it requires a massive shift in the way IT operates.&#8221; But the disruptive redesign required is to make IT more Web-like &#8212; both in the architecture of software and in the way the ITO operates.</p>
<p>The most &#8220;spectacular gains&#8221; we have are those of Google, Amazon, and even Salesforce. What they have in common is an embrace of the Web, including web architecture, web community, and web business models. To paraphrase Anne&#8217;s blog post:</p>
<p>&#8220;<strong><em></em></strong><a href="http://blogs.gartner.com/nick_gall/2008/11/19/woa-putting-the-web-back-in-web-services/">Web-orientation</a> is a prerequisite for rapid integration of data and business processes; it enables situational development models, such as mashups; and it&#8217;s the foundational architecture for SaaS and cloud computing.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gartner.com/nick_gall/2009/01/06/long-live-the-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Generic Identifiers aka Web Scale Identifiers</title>
		<link>http://blogs.gartner.com/nick_gall/2008/12/08/generic-identifiers-aka-web-scale-identifiers/</link>
		<comments>http://blogs.gartner.com/nick_gall/2008/12/08/generic-identifiers-aka-web-scale-identifiers/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 22:46:47 +0000</pubDate>
		<dc:creator>Nick Gall</dc:creator>
				<category><![CDATA[WOA]]></category>

		<guid isPermaLink="false">http://blogs.gartner.com/nick_gall/2008/12/08/generic-identifiers-aka-web-scale-identifiers/</guid>
		<description><![CDATA[The most important aspect of WOA is application neutral interfaces (or as some prefer application generic interfaces). Since interfaces are constituted by their IFaPs (Identifiers, Formats, and Protocols), this means that all three aspects must be made &#34;as generic as possible, but not too generic&#34; (playing off Einstein&#8217;s quote regarding simplicity).
We all know about generic [...]]]></description>
			<content:encoded><![CDATA[<p>The most important aspect of <a href="http://blogs.gartner.com/nick_gall/2008/11/19/woa-putting-the-web-back-in-web-services/">WOA</a> is <em>application neutral</em> interfaces (or as some prefer <em>application generic</em> interfaces). Since interfaces are constituted by their IFaPs (Identifiers, Formats, and Protocols), this means that all three aspects must be made &quot;as generic as possible, but not too generic&quot; (playing off <a href="http://www.quotationspage.com/quote/2927.html">Einstein&#8217;s quote regarding simplicity</a>).</p>
<p>We all know about generic interface operations, eg HTTP&#8217;s GET, PUT, POST, DELETE, et al. And we are beginning to see more examples of generic formats (or generic schemas if you prefer). For example, ATOM and derivatives like GData.</p>
<p>But its harder to find compelling examples of generic identifiers that are web-oriented, ie, defined as URLs. Well, I just found at great example at the BBC!</p>
<p>
<div class="wlWriterSmartContent" id="949f334a-d30a-4262-9c8e-6d5aa72ee449" style="padding-right: 0px;padding-left: 0px;padding-bottom: 0px;margin: 0px;padding-top: 0px">
<div>
<div style="width:425px;text-align:left" id="__ss_795136"><object height="355" width="425"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=permanent-ids-musicbrainz-crids-and-more-1227810921007457-8" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=permanent-ids-musicbrainz-crids-and-more-1227810921007457-8" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px"><a href="http://www.slideshare.net/?src=embed"><img src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare" /></a> | <a href="undefined" title="View this slideshow on SlideShare">View</a> | <a href="http://www.slideshare.net/upload">Upload your own</a></div>
</div>
</div>
</div>
<p>See slides 35 and on.</p>
<p>The basic idea is that MusicBrainz uses a GUID-based set of identifiers to uniquely identify artists, albums, and songs, like this <a href="http://www.bbc.co.uk/music/artists/678d88b2-87b0-403b-b63d-5da7465aecc3">URL for Led Zeppelin</a>. So instead of inventing YAUN (Yet Another URL Namespace), BBC wisely decided to reuse MusicBrainz &#8212; as have others (last.fm).</p>
<p>While I&#8217;m not sure I like the machine-generated, non-human friendly GUID approach, I do love the idea of id sharing across organizations. Such sharing is the essence of the network effect.</p>
<p>For more information see <a href="http://www.bbc.co.uk/blogs/radiolabs/2008/06/the_simple_joys_of_webscale_id.shtml">Web Scale Identifiers</a>, <a href="http://www.bbc.co.uk/blogs/radiolabs/2008/10/automatically_linking_artists.shtml">Automatically Linking Artists</a>, <a href="http://derivadow.com/2008/11/27/permanent-web-ids-or-making-good-web-20-citizens/">Permanent Web IDs</a>, <a href="http://derivadow.com/2007/12/28/web-design-20-its-all-about-the-resource-and-its-url/">It&#8217;s All About the URL</a>, and <a href="http://derivadow.com/2007/06/21/bbc-music-brainz/">BBC/Music/Brainz</a>. The BBC definitely gets WOA and network effects.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gartner.com/nick_gall/2008/12/08/generic-identifiers-aka-web-scale-identifiers/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WOA: Putting the Web Back in Web Services</title>
		<link>http://blogs.gartner.com/nick_gall/2008/11/19/woa-putting-the-web-back-in-web-services/</link>
		<comments>http://blogs.gartner.com/nick_gall/2008/11/19/woa-putting-the-web-back-in-web-services/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 03:13:29 +0000</pubDate>
		<dc:creator>Nick Gall</dc:creator>
				<category><![CDATA[SOA]]></category>
		<category><![CDATA[WOA]]></category>
		<category><![CDATA[gartner]]></category>

		<guid isPermaLink="false">http://blogs.gartner.com/nick_gall/2008/11/19/woa-putting-the-web-back-in-web-services/</guid>
		<description><![CDATA[As my friend and colleague Anthony Bradley just pointed out in his blog, our WOA note has finally been published (subscription required) and it&#8217;s something that I am very proud of. Not just because my co-authors Anthony, Dan Sholler and I produced a well-crafted piece of research (if I do say so myself), but more [...]]]></description>
			<content:encoded><![CDATA[<p>As my friend and colleague <a href="http://blogs.gartner.com/anthony_bradley/2008/11/19/i-just-learned-soa-and-now-i-have-to-learn-woa/">Anthony Bradley just pointed out in his blog</a>, our <a href="http://www.gartner.com/DisplayDocument?doc_cd=162022">WOA note</a> has finally been published (subscription required) and it&#8217;s something that I am very proud of. Not just because my co-authors Anthony, <a href="http://blogs.gartner.com/dan_sholler/">Dan Sholler</a> and I produced a well-crafted piece of research (if I do say so myself), but more importantly because we built consensus in support of Web-Oriented Architecture across Gartner over the past several years.</p>
<p>Because of such consensus, the note can put forward Gartner positions such as:</p>
<ul>
<li>Interfaces based on WS-* specifications should be constrained by WOA, especially the generic interface constraints.</li>
<li>More often than not, the WS-* protocol toolkit is unconsciously misused to create needlessly specialized interfaces.</li>
<li>Application neutrality should be the principal goal of an interface, and implementation neutrality should be a secondary goal.</li>
</ul>
<p>While I can&#8217;t share the entire note with the blogosphere, I can share a couple of highlights &#8212; first and foremost the official Gartner definition of Web-Oriented Architecture:</p>
<blockquote><p>WOA is an architectural substyle of SOA that integrates systems and users via a web of globally linked hypermedia based on the architecture of the Web. This architecture emphasizes generality of interfaces (UIs and APIs) to achieve global network effects through five fundamental generic interface constraints:</p>
<ol>
<li>Identification of resources </li>
<li>Manipulation of resources through representations </li>
<li>Self-descriptive messages </li>
<li>Hypermedia as the engine of application state </li>
<li>Application neutrality</li>
</ol>
</blockquote>
<p>Those of you familiar with <a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm">Roy T. Fielding&#8217;s REST Thesis</a> will no doubt recognize that WOA&#8217;s five <em>generic interface constraints</em> are an extension of Roy&#8217;s four <em><a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm#sec_5_1_5">uniform interface constraints</a>.</em> The one additional constraint, application neutrality, is implicit in the thesis, but we think it is so fundamentally important that we made it a &quot;first class&quot; constraint.</p>
<p>What is <em>application neutrality</em>? Here is a brief excerpt from the 13-page report:</p>
<blockquote><p>The primary problem with the specifications known as WS-* (such as SOAP, WSDL and UDDI) is that their principal emphasis is on implementation neutrality. All the specifications focus on generalizing away the details of specialized middleware technologies, so that services can be accessed using any one of those technologies. Although this is not an unworthy goal (especially for vendors of specialized middleware technologies), it shifts the focus from the generic interface constraint of application neutrality.</p>
<p>Application neutrality should be the principal goal of an interface, because it is precisely this characteristic that enables shareability (a fundamental SOA principle). In other words, interface designers&#8217; primary goal should be generic, application-neutral interfaces, which generalize away application-specific details.</p>
<p>The key to shared use (reuse) is a generic, application-neutral protocol, such as the Atom Publishing Protocol (APP) or Google&#8217;s GData Protocol. Conversely, the more application-specific a protocol is, the less shareable it is. With sufficient generality, the most powerful kind of reuse becomes possible: serendipitous reuse. So important is this kind of reuse that Tim Berners-Lee and Roy T. Fielding have highlighted it an essential characteristic of the Web:</p>
<ul>
<li>&quot;Unexpected reuse is the value of the Web&quot; (Tim Berners-Lee) </li>
<li>&quot;Engineer for serendipity&quot; (Roy T. Fielding)</li>
</ul>
<p>In terms of Gartner&#8217;s hourglass model for identifiers, formats and protocol operations (IFaPs), application neutrality makes the top of the hourglass wider; implementation neutrality makes the bottom wider. A wide top is more important than a wide bottom. In other words, generic application protocols (application neutrality) at the top of the hourglass are more important in creating powerful network effects than portable implementation protocols (implementation neutrality) at the bottom of the hourglass.</p>
<p>&#8230;</p>
<p>The key to generic interface design, WOA-style, is <strong>nested generality</strong>: gradually specializing generic interfaces in small increments. Whatever level of generalization one begins at &#8212; whether it is at the APP-envelope level or the SOAP-envelope level &#8212; it is a mistake to embed application-specific schemas and identifiers in either envelope.</p>
<p align="center"><strong>Don&#8217;t just build <i>on</i> generic interfaces; build <i>up</i> generic interfaces that are only slightly less generic than those built on.</strong></p>
</blockquote>
<p>One last point highlighted in the note: let&#8217;s not get into a battle over names. If you don&#8217;t like the name WOA, call it REST, or ROA, or Web Architecture, or Fred. &quot;The goal is to focus on the key generic interface constraints that unite these concepts, not debate the nuanced differences among them.&quot;</p>
<p>We&#8217;d love to hear your feedback on this key set of concepts &#8211;especially application neutrality &#8212; whatever name you choose to call it!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gartner.com/nick_gall/2008/11/19/woa-putting-the-web-back-in-web-services/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>WOA is Phony? Ouch!</title>
		<link>http://blogs.gartner.com/nick_gall/2008/10/21/woa-is-phony-ouch/</link>
		<comments>http://blogs.gartner.com/nick_gall/2008/10/21/woa-is-phony-ouch/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 06:13:46 +0000</pubDate>
		<dc:creator>Nick Gall</dc:creator>
				<category><![CDATA[WOA]]></category>

		<guid isPermaLink="false">http://blogs.gartner.com/nick_gall/2008/10/21/woa-is-phony-ouch/</guid>
		<description><![CDATA[Judith Hurwitz apparently doesn&#8217;t like WOA. That&#8217;s OK. To each their own. [BTW, I choose to use the ungrammatical their/they/them as a universal 3rd party pronoun to avoid having to use gender specific his/he/him or her/she/her.] I can&#8217;t be too upset because her blog post turned me on to PollDaddy.com. Here is my first poll:
Do [...]]]></description>
			<content:encoded><![CDATA[<p>Judith Hurwitz apparently <a href="http://jshurwitz.wordpress.com/2008/10/21/why-i-think-web-oriented-architecture-is-phony/" target="_blank">doesn&#8217;t like WOA</a>. That&#8217;s OK. To each their own. [BTW, I choose to use the ungrammatical their/they/them as a universal 3rd party pronoun to avoid having to use gender specific his/he/him or her/she/her.] I can&#8217;t be too upset because her blog post turned me on to PollDaddy.com. Here is my first poll:<br />
<a href="http://answers.polldaddy.com/poll/1024755/">Do you agree with Judith Hurwitz that WOA is phony?</a><br />
<span style="font-size:9px"> (<a href="http://www.polldaddy.com"> surveys</a>)</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gartner.com/nick_gall/2008/10/21/woa-is-phony-ouch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Good Walk-Through of a RESTful Transactional Application</title>
		<link>http://blogs.gartner.com/nick_gall/2008/10/06/good-walk-through-of-a-restful-transactional-application/</link>
		<comments>http://blogs.gartner.com/nick_gall/2008/10/06/good-walk-through-of-a-restful-transactional-application/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 02:23:49 +0000</pubDate>
		<dc:creator>Nick Gall</dc:creator>
				<category><![CDATA[WOA]]></category>

		<guid isPermaLink="false">http://blogs.gartner.com/nick_gall/2008/10/06/good-walk-through-of-a-restful-transactional-application/</guid>
		<description><![CDATA[How to GET a Cup of Coffee is a very detailed discussion of a RESTful application of ordering and paying for coffee at a hypothetical Starbucks. It shows a lot of the details needed to understand the power and flexibility of the approach. It even manages to explain HATEOAS (Hypermedia As The Engine Of Application [...]]]></description>
			<content:encoded><![CDATA[<p>How to <a href="http://www.infoq.com/articles/webber-rest-workflow" target="_blank">GET a Cup of Coffee</a> is a very detailed discussion of a RESTful application of ordering and paying for coffee at a hypothetical Starbucks. It shows a lot of the details needed to understand the power and flexibility of the approach. It even manages to explain HATEOAS (Hypermedia As The Engine Of Application State. Nicely done.</p>
<p><a href="http://www.infoq.com/articles/webber-rest-workflow" target="_blank"><img src="http://www.infoq.com/resource/articles/webber-rest-workflow/en/resources/image1.jpg" /></a> </p>
<p>The Customer State Machine</p>
<p><a href="http://www.infoq.com/articles/webber-rest-workflow" target="_blank"><img src="http://www.infoq.com/resource/articles/webber-rest-workflow/en/resources/image2.jpg" /></a> </p>
<p>The Barista&#8217;s State Machine</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gartner.com/nick_gall/2008/10/06/good-walk-through-of-a-restful-transactional-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How Does REST Help Solve Data Semantics Problems?</title>
		<link>http://blogs.gartner.com/nick_gall/2008/10/02/how-does-rest-help-solve-data-semantics-problems/</link>
		<comments>http://blogs.gartner.com/nick_gall/2008/10/02/how-does-rest-help-solve-data-semantics-problems/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 17:48:04 +0000</pubDate>
		<dc:creator>Nick Gall</dc:creator>
				<category><![CDATA[WOA]]></category>
		<category><![CDATA[master data]]></category>
		<category><![CDATA[REST]]></category>

		<guid isPermaLink="false">http://blogs.gartner.com/nick_gall/?p=22</guid>
		<description><![CDATA[Eric Roch recently blogged (Gartner on SOA vs. WOA) about my REST interview and he asked an excellent question: &#8220;So let&#8217;s look at the [REST] constraints, can someone please tell me which of these constraints solves data semantics problems?&#8221;
The answer is the uniform interface constraint (UIC), which you can also think of as the &#8220;generality constraint&#8221;. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://it.toolbox.com/people/eroch/">Eric Roch</a> recently blogged (<a href="http://it.toolbox.com/blogs/the-soa-blog/gartner-on-soa-vs-woa-27514">Gartner on SOA vs. WOA</a>) about my REST interview and he asked an excellent question: &#8220;So let&#8217;s look at the [REST] constraints, can someone please tell me which of these constraints solves data semantics problems?&#8221;</p>
<p>The answer is the uniform interface constraint (UIC), which you can also think of as the &#8220;generality constraint&#8221;. Since an interface is composed of identifiers, formats, and protocol operations, the (UIC) mandates that:</p>
<ol>
<li>Identifiers be as generic as possible</li>
<li>Schemas be as generic as possible</li>
<li>Protocol operations be as generic as possible</li>
</ol>
<p>for the type of application being architected.</p>
<p>Everyone who&#8217;s looked at REST now seems to get the generic protocol operations part: GET, PUT, POST, DELETE, etc. And some are now getting the generic formats part: Atom Publishing Protocol, GData.</p>
<p>But very few are focusing on the generic identifiers part yet &#8212; at least in terms of explicitly RESTful thinking.  The closest thing to generic identifier work in enterprises is master data rationalization. Gartner defines master data as <em>consistent and uniform</em> identifiers and attributes for key business entities used across many business processes (at least that&#8217;s the gist of our definition). To make the master data connection to REST explicit, &#8220;consistent and uniform&#8221; identifiers across many processes translates into <em>generic</em> identifiers, or if you prefer Roy&#8217;s terminology <em>uniform</em> identifiers.</p>
<p>So REST doesn&#8217;t so much <em>solve</em> the data semantics problem; rather, properly understood, REST&#8217;s UIC puts the data semantics problem, ie mandating uniform, generic semantics instead of ad hoc, specialized data semantics, front and center. REST is the only architectural style I know of that makes interface generalization the primary imperative. On the other hand,  WS-* implicitly or explicitly encourages interface specialization. Steve Vinoski has a great article on the evils of interface specialization: <a href="http://www.computer.org/portal/site/dsonline/menuitem.9ed3d9924aeb0dcd82ccc6716bbe36ec/index.jsp?&amp;pName=dso_level1&amp;path=dsonline/2008/02&amp;file=w1tow.xml&amp;xsl=article.xsl&amp;">Serendipitous Reuse</a>.</p>
<p>Hope that helps clarify.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gartner.com/nick_gall/2008/10/02/how-does-rest-help-solve-data-semantics-problems/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Linked Data: Turning Stovepiped Data Into a Web of Data</title>
		<link>http://blogs.gartner.com/nick_gall/2008/09/19/linked-data-turning-stovepiped-data-into-a-web-of-data/</link>
		<comments>http://blogs.gartner.com/nick_gall/2008/09/19/linked-data-turning-stovepiped-data-into-a-web-of-data/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 21:07:40 +0000</pubDate>
		<dc:creator>Nick Gall</dc:creator>
				<category><![CDATA[WOA]]></category>
		<category><![CDATA[extensibility]]></category>
		<category><![CDATA[information architecture]]></category>
		<category><![CDATA[IFaPs]]></category>

		<guid isPermaLink="false">http://blogs.gartner.com/nick_gall/?p=12</guid>
		<description><![CDATA[In talking with clients about SOA, WOA, and application integration generally, the conversation often turns to best practices for their IFaPs (Identifiers, Formats, and Protocols). First I always stress, as Tim Berners-Lee does, that of the three (I,F, and P) &#8212; Identifiers are by far the most important to information sharing. After all, the Web [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">In talking with clients about SOA, WOA, and application integration generally, the conversation often turns to best practices for their IFaPs (Identifiers, Formats, and Protocols). First I always stress, as Tim Berners-Lee does, that of the three (I,F, and P) &#8212; Identifiers are by far the most important to information sharing. After all, the Web is fundamentally a web of LINKS!</p>
<p class="MsoNormal">After such conversations, I typical send a follow up email with some good examples of &#8220;linked data&#8221; and some pointers on versioning IFaPs &#8212; two of the most critical aspects of a successful information architecture IMO. Here is one such example&#8230;</p>
<p class="MsoNormal"><span style="font-family: Arial;font-size: x-small"><span>Here are some links to the Linked  Data initiatives I mentioned:</span></span></p>
<ol type="1">
<li class="MsoNormal"><span style="font-family: Arial;font-size: x-small"><span><a title="http://en.wikipedia.org/wiki/Linked_Data" href="http://en.wikipedia.org/wiki/Linked_Data">http://en.wikipedia.org/wiki/Linked_Data</a></span></span></li>
<li class="MsoNormal"><span style="font-family: Arial;font-size: x-small"><span><a title="http://en.wikipedia.org/wiki/Open_Data" href="http://en.wikipedia.org/wiki/Open_Data">http://en.wikipedia.org/wiki/Open_Data</a></span></span></li>
<li class="MsoNormal"><span style="font-family: Arial;font-size: x-small"><span><a title="http://esw.w3.org/topic/SweoIG/TaskForces/CommunityProjects/LinkingOpenData" href="http://esw.w3.org/topic/SweoIG/TaskForces/CommunityProjects/LinkingOpenData">http://esw.w3.org/topic/SweoIG/TaskForces/CommunityProjects/LinkingOpenData</a></span></span></li>
</ol>
<p class="MsoNormal"><span style="font-family: Arial;font-size: x-small"><span> I forgot to mention one other  pioneering effort in &#8220;linked data&#8221;: the use of XBRL by the FDIC et al and the  SEC. XBRL.org just published the US GAAP Taxonomies in XBRL &#8212; a major  achievement: <a title="http://xbrl.us/pages/us-gaap.aspx" href="http://xbrl.us/pages/us-gaap.aspx">http://xbrl.us/pages/us-gaap.aspx</a>   . The links on this page lead to a nice &#8220;taxonomy browser&#8221; that makes it  (relatively) easy to navigate these complex  taxonomies. </span></span></p>
<p class="MsoNormal"><span style="font-family: Arial;font-size: x-small"><span>Finally, we only mentioned it in  passing, but extensibility/versioning strategies for XML and other Web languages  (e.g., HTML) is another poorly understood topic. I think people read the X in  XML (meaning eXtensible) and believe (mistakenly) that XML is extensible by  default. It is NOT. Here are some useful references into the leading thinking on  this issue:</span></span></p>
<ol type="1">
<li class="MsoNormal"><span style="font-family: Arial;font-size: x-small"><span><a title="http://www.w3.org/2001/tag/doc/versioning-compatibility-strategies" href="http://www.w3.org/2001/tag/doc/versioning-compatibility-strategies">http://www.w3.org/2001/tag/doc/versioning-compatibility-strategies</a> </span></span></li>
<li class="MsoNormal"><span style="font-family: Arial;font-size: x-small"><span><a title="http://www.w3.org/2001/tag/doc/versioning" href="http://www.w3.org/2001/tag/doc/versioning">http://www.w3.org/2001/tag/doc/versioning</a> </span></span></li>
<li class="MsoNormal"><span style="font-family: Arial;font-size: x-small"><span><a title="http://www.w3.org/2001/tag/doc/versioning-xml" href="http://www.w3.org/2001/tag/doc/versioning-xml">http://www.w3.org/2001/tag/doc/versioning-xml</a> </span></span></li>
<li class="MsoNormal"><span style="font-family: Arial;font-size: x-small"><span><a title="http://www.pacificspirit.com/Authoring/Compatibility" href="http://www.pacificspirit.com/Authoring/Compatibility">http://www.pacificspirit.com/Authoring/Compatibility</a></span></span></li>
</ol>
<p class="MsoNormal"> </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gartner.com/nick_gall/2008/09/19/linked-data-turning-stovepiped-data-into-a-web-of-data/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
