<?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>iansrobinson.com &#187; Events</title>
	<atom:link href="http://iansrobinson.com/category/events/feed/" rel="self" type="application/rss+xml" />
	<link>http://iansrobinson.com</link>
	<description>Ian Robinson&#039;s Blog</description>
	<lastBuildDate>Tue, 02 Aug 2011 16:47:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Progressive .NET Tutorial</title>
		<link>http://iansrobinson.com/2011/08/02/progressive-net-tutorial/</link>
		<comments>http://iansrobinson.com/2011/08/02/progressive-net-tutorial/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 16:47:21 +0000</pubDate>
		<dc:creator>iansrobinson</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[REST]]></category>

		<guid isPermaLink="false">http://iansrobinson.com/?p=511</guid>
		<description><![CDATA[On September 7th I&#8217;ll be running a half-day tutorial on building RESTful Web services as part of the Skills Matter and London .NET User Group&#8217;s Progressive .NET Tutorials.

This will be a very hands-on tutorial. Over the course of three and a half hours we&#8217;ll build a hypermedia-driven service and client in .NET using the new [...]]]></description>
			<content:encoded><![CDATA[<p>On September 7th I&#8217;ll be running a half-day tutorial on building RESTful Web services as part of the Skills Matter and London .NET User Group&#8217;s <a href="http://skillsmatter.com/event/open-source-dot-net/progressive-dot-net-tutorials-2011/cs-2275" title="Progressive .NET Tutorials">Progressive .NET Tutorials</a>.</p>

<p>This will be a very hands-on tutorial. Over the course of three and a half hours we&#8217;ll build a hypermedia-driven service and client in .NET using the new <a href="http://wcf.codeplex.com" title="WCF Web APIs">WCF Web APIs</a>. The subject matter hearkens back to a favourite subject of mine, <a href="http://jaoo.dk/aarhus-2009/presentation/Hydras+and+Hypermedia" title="Hydras and Hypermedia">Hydras and Hypermedia</a>, for the application we&#8217;ll build will be a simple text-based pick-your-path-to-adventure game.</p>

<p>This isn&#8217;t a tutorial on games design, however. Despite the non-enterprisey subject matter, the tutorial serves to illustrate how machine clients and services can cooperate to achieve a useful application goal. Business application analogies lurk around every corner and surprise you with every encounter.</p>

<p>The tutorial comprises three exercises. With each exercise you&#8217;ll have to fix a number of broken unit and functional tests. Bit by bit, you&#8217;ll build a working application:</p>

<ul>
<li><strong>Exercise 1:</strong> Here we implement the server resources that make up the dungeon &#8211; the chambers, tunnels and caves in which our daring client will venture.</li>
<li><strong>Exercise 2:</strong> Next we build a crafty client that can discover a path through the dungeon. By the end of the exercise, the client ought to be able to navigate the dungeon from entrance to exit.</li>
<li><strong>Exercise 3:</strong> Last, we add an element of danger, populating the dungeon with encounters (more resources) that the client must overcome before it achieves its application goal.</li>
</ul>

<p>Along the way you&#8217;ll learn about:</p>

<ul>
<li>The Atom Syndication Format</li>
<li>&#8220;What if&#8221; client-side intelligence</li>
<li>The client as arbiter of application state</li>
<li>Hypermedia controls: links, link relations and forms</li>
<li>DRY URIs</li>
</ul>

<p>So come and join me for what promises to be an entertaining hack-n-slash workshop. Attendees should be familiar with C# and unit testing, and have some knowledge of HTTP.</p>

<p>Full details and registration for the entire event can be found <a href="http://skillsmatter.com/event/open-source-dot-net/progressive-dot-net-tutorials-2011/cs-2275" title="Progressive .NET Tutorials">here</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://iansrobinson.com/2011/08/02/progressive-net-tutorial/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Forthcoming Events</title>
		<link>http://iansrobinson.com/2011/01/23/forthcoming-events/</link>
		<comments>http://iansrobinson.com/2011/01/23/forthcoming-events/#comments</comments>
		<pubDate>Sun, 23 Jan 2011 13:40:57 +0000</pubDate>
		<dc:creator>iansrobinson</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[REST]]></category>

		<guid isPermaLink="false">http://iansrobinson.com/?p=309</guid>
		<description><![CDATA[I&#8217;m going to be giving variations on my RESTful domain applications talk at JFokus  in Stockholm, Feb 14-16, and JAX London, April 11-13. Come along to find out all about domain application protocols: what they are, why they&#8217;re important (and implicit in almost every application, irrespective of whether we&#8217;ve given them any thought or [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m going to be giving variations on my RESTful domain applications talk at <a href="http://www.jfokus.se/jfokus/?lang=en&#038;" title="JFokus" target="_blank">JFokus</a>  in Stockholm, Feb 14-16, and <a href="http://jaxlondon.com/" title="JAX London" target="_blank">JAX London</a>, April 11-13. Come along to find out all about domain application protocols: what they are, why they&#8217;re important (and implicit in almost every application, irrespective of whether we&#8217;ve given them any thought or not), and how we can implement them in a RESTful application without having to import a specific process description into the client part of the app.</p>

<p>I&#8217;ll be building on some of this material at <a href="http://qconlondon.com/london-2011/" title="QCon London" target="_blank">QCon London</a> (March 9-11), but there I&#8217;ll go deeper into some implementation specifics, with examples drawn from some recent work with Microsoft&#8217;s new <a href="http://wcf.codeplex.com/" title="WCF on Codeplex" target="_blank">WCF HTTP</a> libraries. (The <a href="http://qconlondon.com/london-2011/tracks/show_track.jsp?trackOID=420" title="Building Systems With REST " target="_blank">QCon REST track</a> has a particularly stunning lineup.) Also as part of QCon London, Jim Webber and I will be running our day-long <a href="http://qconlondon.com/london-2011/presentation/REST+in+Practice+-+A+Tutorial+on+Web-based+Distributed+Systems" title="REST in Practice - A Tutorial on Web-based Distributed Systems" target="_blank">REST in Practice</a> tutorial.</p> 

<p>You can register for QCon <a href="https://secure.trifork.com/london-2011/registration/" title="QCon registration" target="_blank">here</a>. When doing so, use the <strong>ROBI100</strong> promotional code. This gives you a <strong>£100</strong> discount; at the same time, QCon will <strong>donate £100</strong> to the <a href="http://www.crisis.org.uk/index.php" title="Crisis Charity" target="_blank">Crisis Charity</a> in London (the national charity for single homeless people).</p>]]></content:encoded>
			<wfw:commentRss>http://iansrobinson.com/2011/01/23/forthcoming-events/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WS-REST 2011 Call for Papers</title>
		<link>http://iansrobinson.com/2011/01/07/ws-rest-2011-call-for-papers/</link>
		<comments>http://iansrobinson.com/2011/01/07/ws-rest-2011-call-for-papers/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 09:49:30 +0000</pubDate>
		<dc:creator>iansrobinson</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[REST]]></category>

		<guid isPermaLink="false">http://iansrobinson.com/?p=303</guid>
		<description><![CDATA[The Second International Workshop on RESTful Design (WS-REST 2011) aims to provide a forum for discussion and dissemination of research on the emerging resource-oriented style of Web service design.
Background
Over the past few years, several discussions between advocates of the two major architectural styles for designing and implementing Web services (the RPC/ESB-oriented approach and the resource-oriented [...]]]></description>
			<content:encoded><![CDATA[<p>The Second International Workshop on RESTful Design (WS-REST 2011) aims to provide a forum for discussion and dissemination of research on the emerging resource-oriented style of Web service design.</p>
<h2>Background</h2>
<p>Over the past few years, several discussions between advocates of the two major architectural styles for designing and implementing Web services (the RPC/ESB-oriented approach and the resource-oriented approach) have been mainly held outside of the research and academic community, within dedicated mailing lists, forums and practitioner communities. The RESTful approach to Web services has also received a significant amount of attention from industry as indicated by the numerous technical books being published on the topic.</p>

<p>This second edition of WS-REST, co-located with the <a href="http://wwwconference.org/www2011/">WWW2011 conference</a>, aims at providing an academic forum for discussing current emerging research topics centered around the application of REST, as well as advanced application scenarios for building large scale distributed systems.</p>
<p>In addition to presentations on novel applications of RESTful Web services technologies, the workshop program will also include discussions on the limits of the applicability of the REST architectural style, as well as recent advances in research that aim at tackling new problems that may require to extend the basic REST architectural style. The organizers are seeking novel and original, high quality paper submissions on research contributions focusing on the following topics:</p>
<ul>
<li>Applications of the REST architectural style to novel domains</li>
<li>Design Patterns and Anti-Patterns for RESTful services</li>
<li>RESTful service composition</li>
<li>Inverted REST (REST for push events)</li>
<li>Integration of Pub/Sub with REST</li>

<li>Performance and QoS Evaluations of RESTful services</li>
<li>REST compliant transaction models</li>
<li>Mashups</li>
<li>Frameworks and toolkits for RESTful service implementations</li>
<li>Frameworks and toolkits for RESTful service consumption</li>
<li>Modeling RESTful services</li>
<li>Resource Design and Granularity</li>
<li>Evolution of RESTful services</li>
<li>Versioning and Extension of REST APIs</li>

<li>HTTP extensions and replacements</li>
<li>REST compliant protocols beyond HTTP</li>
<li>Multi-Protocol REST (REST architectures across protocols)</li>
</ul>
<p>All workshop papers are peer-reviewed and accepted papers will be published as part of the ACM Digital Library. Two kinds of contributions are sought: short position papers (not to exceed 4 pages in ACM style format) describing particular challenges or experiences relevant to the scope of the workshop, and full research papers (not to exceed 8 pages in the ACM style format) describing novel solutions to relevant problems. Technology demonstrations are particularly welcome, and we encourage authors to focus on <q>lessons learned</q> rather than describing an implementation.</p>
<p>Papers must be submitted electronically in PDF format. Templates are available <a href="submission">here</a></p>
<p>Easychair page: <a href="http://www.easychair.org/conferences/?conf=wsrest2011">http://www.easychair.org/conferences/?conf=wsrest2011</a>

		</p>
<h2>Important Dates</h2>
<ul>
<li>Submission deadline: January <b>31</b>, 2011, 23.59 local time in San Francisco, CA</li>
<li>Notification of acceptance: February 15, 2011</li>
<li>Camera-ready versions of accepted papers: February 28, 2011</li>
<li>WS-REST 2011 Workshop: March 28, 2011</li>
</ul>
<h2>Program Committee Chairs</h2>

<ul>
<li>
				<a href="http://www.pautasso.info/">Cesare Pautasso</a>, Faculty of Informatics, USI Lugano, Switzerland</li>
<li>
				<a href="http://dret.net/netdret/">Erik Wilde</a>, School of Information, UC Berkeley, USA</li>
<li>
				<a href="http://dcc.puc.cl/gente/usuarios/ralarcon">Rosa Alarcon</a>, Computer Science Department, Pontificia Universidad de Chile, Chile</li>
</ul>

<h2>Program Committee</h2>
<ul>
<li>Jan Algermissen, Nord Software Consulting, Germany</li>
<li>Subbu Allamaraju, Yahoo Inc., USA</li>
<li>Mike Amudsen, USA</li>
<li>
				<a href="http://soundadvice.id.au/blog/">Benjamin Carlyle</a>, Australia</li>
<li>
				<a href="http://stucharlton.com/blog">Stuart Charlton</a>, Canada</li>

<li><a href="http://duncan-cragg.org/blog/">Duncan Cragg</a>, UK</li>
<li>
				<a href="http://bitworking.org">Joe Gregorio</a>, Google, USA</li>
<li>
				<a href="http://sw-app.org/about.html">Michael Hausenblas</a>, DERI, Ireland</li>
<li>Ralph Johnson, University of Illinois, USA</li>
<li>Rohit Khare, 4K Associates, USA</li>

<li>Yves Lafon, W3C, USA</li>
<li>
				<a href="http://www.iaas.uni-stuttgart.de/institut/mitarbeiter/leymann/indexE.php">Frank Leymann</a>, University of Stuttgart, Germany</li>
<li>
				<a href="http://iansrobinson.com/">Ian Robinson</a>, Thoughtworks, UK</li>
<li>
				<a href="http://www.innoq.com/blog/st/">Stefan Tilkov</a>, innoQ, Germany</li>

<li>
				<a href="http://steve.vinoski.net/">Steve Vinoski</a>, Verivue, USA</li>
<li><a href="http://jim.webber.name/">Jim Webber</a>, NEO4J </li>
<li>
				<a href="http://www.zurich.ibm.com/~olz/">Olaf Zimmermann</a>, IBM Zurich Research Lab, Switzerland</li>
</ul>
<h2>Contact</h2>
<p>WS-REST Web site: <a href="http://ws-rest.org/2011/">http://ws-rest.org/2011/</a><br />

WS-REST Twitter: <a href="http://twitter.com/wsrest2011" title="http://twitter.com/wsrest2011">http://twitter.com/wsrest2011</a><br />
WS-REST Email: <a href="mailto:chairs@ws-rest.org">chairs@ws-rest.org</a>
		</p>

]]></content:encoded>
			<wfw:commentRss>http://iansrobinson.com/2011/01/07/ws-rest-2011-call-for-papers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RESTful Domain Application Protocols</title>
		<link>http://iansrobinson.com/2010/10/15/restful-domain-application-protocols/</link>
		<comments>http://iansrobinson.com/2010/10/15/restful-domain-application-protocols/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 15:46:42 +0000</pubDate>
		<dc:creator>iansrobinson</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[REST in Practice]]></category>

		<guid isPermaLink="false">http://iansrobinson.com/?p=281</guid>
		<description><![CDATA[Last week I gave a TechTalk on RESTful domain application protocols at the Microsoft Development Center in Copenhagen. The video for the talk is now online at Channel 9.

My thanks to Microsoft for their invite and hospitality, and to the audience members for their attention and questions.

If you want to learn more about domain application [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I gave a TechTalk on RESTful domain application protocols at the Microsoft Development Center in Copenhagen. The video for the talk is now online at <a href="http://channel9.msdn.com/posts/TechTalk-RESTful-Application-Protocols-From-Design-to-Implementation" title="RESTful Application Protocols, From Design to Implementation" target="_blank">Channel 9</a>.</p>

<p>My thanks to Microsoft for their invite and hospitality, and to the audience members for their attention and questions.</p>

<p>If you want to learn more about domain application protocols, hypermedia, event-driven systems with Atom, and security on the wild web &#8211; and you&#8217;re in London next week &#8211; why not sign up for a day-long REST tutorial being run by me and <a href="http://jim.webber.name" title="Jim Webber's blog" target="_blank">Jim Webber</a>? We&#8217;re at <a href="http://www.software-architect.co.uk/sessions/postworkshops.asp">Software Architect 2010</a> on Friday, 22nd October: you can register for the conference and tutorial <a title="Register for Software Architect 2010" target="_blank" href="http://www.software-architect.co.uk/registration/">here</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://iansrobinson.com/2010/10/15/restful-domain-application-protocols/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>REST in Practice Tutorial, London, Oct 22nd</title>
		<link>http://iansrobinson.com/2010/09/21/rest-in-practice-tutorial-london-oct-22nd/</link>
		<comments>http://iansrobinson.com/2010/09/21/rest-in-practice-tutorial-london-oct-22nd/#comments</comments>
		<pubDate>Tue, 21 Sep 2010 09:58:48 +0000</pubDate>
		<dc:creator>iansrobinson</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[REST in Practice]]></category>

		<guid isPermaLink="false">http://iansrobinson.com/?p=269</guid>
		<description><![CDATA[Jim Webber and I will be running a day-long REST tutorial at Software Architect 2010, in London on Friday, 22nd October. You can register for the conference and tutorial here.
Early bird discounts apply throughout the remainder of this week.

The tutorial agenda closely follows the structure of REST in Practice, which hits the shelves later this [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jim.webber.name" title="Jim Webber's blog" target="_blank">Jim Webber</a> and I will be running a day-long REST tutorial at <a href="http://www.software-architect.co.uk/sessions/postworkshops.asp">Software Architect 2010</a>, in London on Friday, 22nd October. You can register for the conference and tutorial <a title="Register for Software Architect 2010" target="_blank" href="http://www.software-architect.co.uk/registration/">here</a>.</p>
<p>Early bird discounts apply throughout the remainder of this week.</p>

<p>The tutorial agenda closely follows the structure of <a title="REST in Practice" target="_blank" href="http://restinpractice.com"><em>REST in Practice</em></a>, which hits the shelves later this week:</p>
<ul>
<li>Introduction and Motivation</li>
<li>The Web Architecture</li>
<li>Simple Web Integration including POX and URI tunnelling</li>
<li>CRUD Services using URI templates and HTTP</li>
<li>Semantics using Microformats and RDF</li>
<li>Hypermedia and the REST architectural style</li>
<li>Scalability and how a text-based client-server polling protocol outperforms everything else!</li>
<li>ATOM and ATOMPub for event-driven and pub/sub applications</li>
<li>Security</li>
<li>Conclusions and further thoughts</li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://iansrobinson.com/2010/09/21/rest-in-practice-tutorial-london-oct-22nd/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>REST in Practice Tutorials, Sept-Oct</title>
		<link>http://iansrobinson.com/2010/08/27/rest-in-practice-tutorials-sept-oct/</link>
		<comments>http://iansrobinson.com/2010/08/27/rest-in-practice-tutorials-sept-oct/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 13:34:10 +0000</pubDate>
		<dc:creator>iansrobinson</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[REST]]></category>

		<guid isPermaLink="false">http://iansrobinson.com/?p=236</guid>
		<description><![CDATA[Over the next couple of months, Jim Webber and I will be running several day-long REST tutorials:


Following JavaZone, we&#8217;ll be at Oslo&#8217;s Henning Solberg on Friday, 10th September. You can register for JavaZone here, and for the tutorial here.
At the beginning of October, we&#8217;re at the wonderful JAOO Aarhus, with the tutorial running throughout the [...]]]></description>
			<content:encoded><![CDATA[<p>Over the next couple of months, <a href="http://jim.webber.name" title="Jim Webber's blog" target="_blank">Jim Webber</a> and I will be running several day-long REST tutorials:</p>

<ul>
<li>Following <a title="JavaZone" target="_blank" href="http://jz10.java.no/">JavaZone</a>, we&#8217;ll be at Oslo&#8217;s <a title="REST in Practice" target="_blank" href="http://www.programutvikling.no/kurskalenderoversikt.aspx?mid_1=1352&#038;mid=1535&#038;id=858735">Henning Solberg</a> on Friday, 10th September. You can register for JavaZone <a href="http://shop.java.no/" title="Register for JavaZone" target="_blank">here</a>, and for the tutorial <a title="Register for REST in Practice, Henning Solberg" target="_blank" href="http://www.programutvikling.no/kurs_bestill.aspx?mid_1=1354&#038;step=2&#038;mid=1549&#038;course=858750&#038;type=858735&#038;lang=no">here</a>.</li>
<li>At the beginning of October, we&#8217;re at the wonderful JAOO Aarhus, with the tutorial running throughout the day on Friday 8th October. Register <a title="Register for JAOO" target="_blank" href="https://secure.trifork.com/aarhus-2010/registration/">here</a>, with a 20% discount if you use the <em>JAOOspeakerfollower</em> promo code.</li>
<li>Closer to home, we&#8217;ll be at <a href="http://www.software-architect.co.uk/sessions/postworkshops.asp">Software Architect 2010</a> in London on Friday, 22nd October. You can register for the conference and tutorial <a title="Register for Software Architect 2010" target="_blank" href="http://www.software-architect.co.uk/registration/">here</a>.</li>
</ul>

<p>The tutorial agenda closely follows the structure of <a title="REST in Practice" target="_blank" href="http://restinpractice.com"><em>REST in Practice</em></a>, which hits the shelves on Sept 24th:</p>

<ul>
<li>The Web Architecture: HTTP and URIs</li>
<li>The Richardson Maturity Model</li>
<li>CRUD Services using URI templates and HTTP</li>
<li>Hypermedia and the REST architectural style</li>
<li>Implementing domain application protocols</li>
<li>Atom- and AtomPub-based event-driven systems</li>
<li>Scalability through caching</li>
<li>Semantics using Microformats and RDF</li>
<li>Security and the -ilities</li>
</ul>

<p>With ThoughtWorks recently having opened an office in Germany, I&#8217;ll also be presenting at <a href="http://www.herbstcampus.de/" target="_blank" title="Herbstcampus">Herbstcampus</a> in Nuremberg, 12-15th October.</p>

<p>And finally, if your want to enjoy some <em>REST in Practice</em> from the comfort of your own office (or home), there&#8217;s still time to sign up for the ThoughtWorks&#8217; Webinar, <a href="http://thoughtworker.com/events/master-class-online-designing-and-implementing-restful-application-protocols" target="_blank" title="Master Class Online - Designing and Implementing RESTful Application Protocols"><em>Designing and Implementing RESTful Application Protocols</em></a>, which takes place on Wednesday, 1st September, at 6.30pm IST (that&#8217;s, er, sometime in the afternoon GMT).</p>]]></content:encoded>
			<wfw:commentRss>http://iansrobinson.com/2010/08/27/rest-in-practice-tutorials-sept-oct/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WS-REST 2010 Proceedings</title>
		<link>http://iansrobinson.com/2010/04/28/ws-rest-2010-proceedings/</link>
		<comments>http://iansrobinson.com/2010/04/28/ws-rest-2010-proceedings/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 19:19:19 +0000</pubDate>
		<dc:creator>iansrobinson</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[REST]]></category>

		<guid isPermaLink="false">http://iansrobinson.com/?p=220</guid>
		<description><![CDATA[The preliminary proceedings for ]]></description>
			<content:encoded><![CDATA[<p>The preliminary proceedings for <a href="http://www.ws-rest.org/Program" title=WS-REST 2010 First International Workshop on RESTful Design" target="_blank">WS-REST 2010</a> are now available <a href="http://www.ws-rest.org/Proceedings" title="Proceeedings" target="_blank">online</a>. Thanks to <a href="http://www.inf.usi.ch/faculty/pautasso/" title="Cesare Pautasso" target="_blank">Cesare Pautasso</a>, <a href="http://dret.net/netdret/" title="Erik Wilde" target="_blank">Erik Wilde</a>, and <a href="http://www2.surrey.ac.uk/computing/people/marinos_alexandros/" title="Alexandros Marinos" target="_blank">Alexandros Marinos</a> for organising what proved to be a very engaging and wide-ranging workshop; and to <a href="http://blog.caelumobjects.com/" title="Guilherme Silveira" target="_blank">Guilherme Silveira</a>, who &#8211; much to my amusement &#8211; 20 minutes before the workshop started wrote the Restfulie implementation to accompany the paper that we were there to present. The slides for this paper, which was written by <a href="http://savas.me/" title="Savas Parastatidis" target="_blank">Savas</a>, <a href="http://jim.webber.name/" title="Jim Webber" target="_blank">Jim</a>, Guilherme and me, can be downloaded <a href="http://www.ws-rest.org/files/02-The%20Role%20of%20Hypermedia%20in%20Distributed%20Application%20Development.pdf" title="The Role of Hypermedia in Distributed Application Development" target="_blank">here</a>.</p>

<p>I understand that someone recorded the panel session at the end of the day: I&#8217;ll post details as soon as the recording becomes available.</p>]]></content:encoded>
			<wfw:commentRss>http://iansrobinson.com/2010/04/28/ws-rest-2010-proceedings/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Counterintuitive Web</title>
		<link>http://iansrobinson.com/2010/03/15/the-counterintuitive-web/</link>
		<comments>http://iansrobinson.com/2010/03/15/the-counterintuitive-web/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 12:47:53 +0000</pubDate>
		<dc:creator>iansrobinson</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[REST]]></category>

		<guid isPermaLink="false">http://iansrobinson.com/?p=215</guid>
		<description><![CDATA[The slides from last week&#8217;s talk at QCon, The Counterintuitive Web, are now available online. 

In the talk I described how we can implement rich and interesting business processes in (RESTful) Web applications, but only if we think in terms of protocol resources, not coarse-grained domain resources. By embracing the Web as first and foremost [...]]]></description>
			<content:encoded><![CDATA[<p>The slides from last week&#8217;s talk at QCon, <a href="http://qconlondon.com/london-2010/presentation/The+Counterintuitive+Web" title="The Counterintuitive Web" target="_blank"><em>The Counterintuitive Web</em></a>, are now <a href="http://qconlondon.com/london-2010/file?path=/qcon-london-2010/slides/IanRobinson_TheCounterintuitiveWeb.pdf" title="Slides (11 MB)" target="_blank">available online</a>.</p> 

<p>In the talk I described how we can implement rich and interesting business processes in (RESTful) Web applications, but only if we think in terms of protocol resources, not coarse-grained domain resources. By embracing the Web as first and foremost a web of data, an open set of resource representations manipulated in the same-old-same-old ways using a closed set of verbs, our designs capture the behaviours most CRUD-based, data-centric applications so sorely lack.</p>

<p>Many thanks to <a href="http://dannorth.net/" title="Dan North's blog" target="_blank">Dan North</a> for inviting me to speak on his <a href="http://qconlondon.com/london-2010/tracks/show_track.jsp?trackOID=329" title="Irresponsible Architectures and Unusual Architects" target="_blank"><em>Irresponsible Architectures and Unusual Architects</em></a> track.</p>]]></content:encoded>
			<wfw:commentRss>http://iansrobinson.com/2010/03/15/the-counterintuitive-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>London Geek Night</title>
		<link>http://iansrobinson.com/2010/02/12/london-geek-night/</link>
		<comments>http://iansrobinson.com/2010/02/12/london-geek-night/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 16:25:41 +0000</pubDate>
		<dc:creator>iansrobinson</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[REST]]></category>

		<guid isPermaLink="false">http://iansrobinson.com/?p=192</guid>
		<description><![CDATA[Updated The video of Thursday&#8217;s London Geek Night is now online. Thanks to Ikenna Okpala and Skills Matter for recording the event.

Thank you to everyone who came along to the London Geek Night last night. There were many good questions and comments throughout the evening. I didn&#8217;t respond to all of them satisfactorily at the [...]]]></description>
			<content:encoded><![CDATA[<p><b>Updated</b> The video of Thursday&#8217;s London Geek Night is now <a href="http://skillsmatter.com/podcast/ajax-ria/hydra-and-hypermedia" title="Hydras and Hypermedia" target="_blank">online</a>. Thanks to <a href="http://ikennaokpala.wordpress.com/" title="Ikenna Okpala's blog" target="_blank">Ikenna Okpala</a> and <a href="http://skillsmatter.com/" title="Skills Matter" target="_blank">Skills Matter</a> for recording the event.</p>

<p>Thank you to everyone who came along to the London Geek Night last night. There were many good questions and comments throughout the evening. I didn&#8217;t respond to all of them satisfactorily at the time, so I thought I&#8217;d expand on a few of them here.</p>

<h3>Enforcing the protocol</h3>

<p><a href="http://alexscordellis.blogspot.com/" title="Alex Scordellis's blog" target="_blank">Alex Scordellis</a> asked a very challenging question: how does the server prevent the client from &#8220;teleporting&#8221; to locations that aren&#8217;t immediately accessible from its current location? In other words, how do we stop the client jumping around the app, ignoring the advertised URIs, going off the rails, and interacting with resources in a way that contravenes the application protocol?</p>

<p>One solution to this problem is to use ephemeral URIs. Remember, other than the entry point URI, every URI the client encounters will have been minted by the server as it generates representations. By appending an expiry time, signed using a private key held only by the server, to each URI, we can ensure that each URI the client is given is valid only for a short period of time. <a href="http://www.subbu.org/" title="Subbu Allamaraju's blog" target="_blank">Subbu Allamaraju</a> and <a href="http://www.amundsen.com/blog/" title="Mike Amundsen's blog" target="_blank">Mike Amundsen</a> talk about ephemeral URIs in their forthcoming book, <a href="http://www.restful-webservices-cookbook.org/" title="RESTful Web Services Cookbook" target="_blank">RESTful Web Services Cookbook</a>. Amazon S3 offers the capability to sign URIs in just this fashion so as to limit access to resources.</p>

<p>Of course, this still leaves a short &#8220;teleport&#8221; window open, which the client can use to make multiple requests of a resource that it ought no longer access. To close this window, we might consider maintaining a secret resource access counter per ephemeral URI inside the server implementation. When the counter limit is reached, the server replies with 204 No Content. The only way for the client to access this resource again would be for it to play fair by the application protocol, navigating advertised transitions until it comes upon a representation containing a link (with new ephemeral URI) to the desired resource.</p>

<p>It can be argued that a GET that increments a secret counter associated with a resource (at an ephemeral URI) is no longer safe. Is the incrementing of a secret counter an unintended user-visible side-effect? The argument is played out in the comments to a post from <a href="http://intertwingly.net/blog/" title="Sam Ruby's blog" target="_blank">Sam Ruby</a> from 2002. Read the comments <a href="http://intertwingly.net/blog/2002/09/02/Shades-of-Grey" title="Shades of Grey" target="_blank">here</a> and make up your own mind.</p>

<h3>Resource design</h3>

<p><a href="http://www.oshineye.com/theAbode.html" title="Adewale Oshineye's blog" target="_blank">Adewale Oshineye</a> asked how a design ought accommodate making small changes to large resources &#8211; is this necessarily an inefficient operation that requires the client to PUT the entire representation back? He also asked how one might support large batch operations in an efficient manner.</p>

<p>HTTP PATCH supplies one mechanism for dealing with partial updates, which fall under Adewale&#8217;s first question. Taken together, however, I feel Adewale&#8217;s questions lead us to reflect on the role of resource design in the overall design and implementation of a RESTful application. If we model our resources based simply on an understanding of business resources, we can end up with a resource landscape that&#8217;s not amenable to being manipulate din the way we require.</p>

<p>The first piece of advice usually given a would-be service designer is: identify your resources and assign them URIs. But this can all too easily lead us to identify only business resources &#8211; customer, product, order, etc &#8211; and equate these business resources with the resources our service exposes. But remember, the resources we deal with on the Web are information resources, which are somewhat more abstract than the business resources we typically capture in a domain model.<p>

<p>The design and implementation strategy that <a href="http://jim.webber.name/" title="Jim Webber's blog" target="_blank">Jim</a>, <a href="http://savas.me/" title="Savas Parastatidis's blog" target="_blank">Savas</a> and I recommend in <a href="http://www.facebook.com/RESTinPractice" title="REST in Practice" target="_blank"><em>REST in Practice</em></a> is:</p>

<ol start="1">
<li>Design applications in terms of application protocol state machines</li>
<li>Implement them in terms of resource lifecycles</li>
<li>Advertise/document them using media types, link relation values and HTTP idioms</li>
</ol>

<p>The transition from 1. to 2. here requires the service designer to decompose an application protocol into whatever information resources and information resource lifecycles are necessary to realise the protocol. The kinds of resources you identify using this approach may look a little different from the ones you would have identified had you taken a business domain resource approach.</p>

<p>I&#8217;m being a little vague here, but it&#8217;s a subject I plan to develop in more detail at <a href="http://qconlondon.com/london-2010/presentation/The+Counterintuitive+Web" title="The Counterintuitive Web" target="_blank">QCon London</a>.</p>

<h3>And finally&#8230;</h3>

<p>In other comments, <a href="http://twitter.com/otfrom" title="Bruce Durling" target="_blank">Bruce Durling</a> pointed out I was mixing up 3rd edition <em>D&#038;D</em> and 1st edition <em>AD&#038;D</em> rules. Guilty as charged. -1 Credibility, no saving throw.</p>]]></content:encoded>
			<wfw:commentRss>http://iansrobinson.com/2010/02/12/london-geek-night/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Hydras and Hypermedia at London Geek Night</title>
		<link>http://iansrobinson.com/2010/01/28/hydras-and-hypermedia-at-london-geek-night/</link>
		<comments>http://iansrobinson.com/2010/01/28/hydras-and-hypermedia-at-london-geek-night/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 09:42:16 +0000</pubDate>
		<dc:creator>iansrobinson</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[REST]]></category>

		<guid isPermaLink="false">http://iansrobinson.com/?p=178</guid>
		<description><![CDATA[

On February 11th I&#8217;ll be presenting Hydras and Hypermedia at London Geek Night.

Do you know what your enterprise apps get up to in their time off? Fighting fantasy, pick-your-path, hypermedia-driven, RESTful Web application adventures &#8211; of course.

In this speculative dungeon delve I&#8217;ll show how we can use hypermedia-driven Web applications to model rich workflows. We&#8217;ll [...]]]></description>
			<content:encoded><![CDATA[<div class="vcalendar">

<p>On February 11th I&#8217;ll be presenting <em>Hydras and Hypermedia</em> at <a href="http://londongeeknights.wetpaint.com/page/Hydras%20and%20Hypermedia" title="London Geek Night" target="_blank">London Geek Night</a>.</p>

<p>Do you know what your enterprise apps get up to in their time off? Fighting fantasy, pick-your-path, hypermedia-driven, RESTful Web application adventures &#8211; of course.</p>

<p>In this speculative dungeon delve I&#8217;ll show how we can use hypermedia-driven Web applications to model rich workflows. We&#8217;ll tackle the many-headed Hydra of HATEOAS, the &#8220;Hypermedia as the Engine of Application State&#8221; monster; level up through the Web services maturity heuristic; and meet the dwarves with grudges. On the way, we&#8217;ll learn how to model business processes as domain application protocols, implement them in terms of resource lifecycles, and advertise them using HTTP idioms, media types and link relation values.</p>

<dl id="hcalendar-Hydras-and-Hypermedia" class="vevent">
<dt>Event</dt>
<dd><a href="http://londongeeknights.wetpaint.com/page/Hydras%20and%20Hypermedia" class="url summary" title="London Geek Night" target="_blank">London Geek Night</a></dd>
<dt>Description</dt>
<dd><em class="description">Hydras and Hypermedia</em></dd>
<dt>Date</dt>
<dd><span class="eventdate">11th February</span></dd>
<dt>Time</dt>
<dd><span class="eventtime"><abbr title="20100211T1900+0100" class="dtstart">7 pm</abbr> &#8211; <abbr title="20100211T2200+0100" class="dtend">10 pm</abbr></span></dd>
<dt>Location</dt>
<dd class="location">
	<div class="vcard">
		<span class="fn org">ThoughtWorks UK Office</span>
		<div class="adr">
			<span class="street-address">Berkshire House</span>
			<span class="locality">168-173 High Holborn</span>
			<span class="region">London</span>
			<span class="postal-code">WC1V 7AA</span>
		</div>
	</div>
</dd>
</dl>

</div>]]></content:encoded>
			<wfw:commentRss>http://iansrobinson.com/2010/01/28/hydras-and-hypermedia-at-london-geek-night/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

