<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SfiRsl</id>
	<title>Microformats Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SfiRsl"/>
	<link rel="alternate" type="text/html" href="http://microformats.org/wiki/Special:Contributions/SfiRsl"/>
	<updated>2026-05-13T08:03:41Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=rest/rex-proposal&amp;diff=17779</id>
		<title>rest/rex-proposal</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=rest/rex-proposal&amp;diff=17779"/>
		<updated>2007-06-22T18:21:52Z</updated>

		<summary type="html">&lt;p&gt;SfiRsl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= REX: REST-Enabled XHTML =&lt;br /&gt;
== The 0.8% Solution for Web Services ==&lt;br /&gt;
==== October 19th, 2005 ====&lt;br /&gt;
&lt;br /&gt;
= What is REX? =&lt;br /&gt;
* &amp;quot;Design Pattern&amp;quot; for Web Services&lt;br /&gt;
** Architectural approach&lt;br /&gt;
** Not a specific technology implementation&lt;br /&gt;
** cf. DHTML, AJAX, REST, etc.&lt;br /&gt;
* Specific profile for REST&lt;br /&gt;
** XHTML microformats as the data format&lt;br /&gt;
** Browser-compatible invocations&lt;br /&gt;
** Human-friendly conventions&lt;br /&gt;
** Trivial to implement with existing tools&lt;br /&gt;
&lt;br /&gt;
= Web Services: The Opportunity =&lt;br /&gt;
* &amp;quot;The Next Big Thing&amp;quot;&lt;br /&gt;
* Rewriting the web as a platform&lt;br /&gt;
* Foundation of [Web 2.0] businesses&lt;br /&gt;
** Architecture of participation&lt;br /&gt;
** Infrastructure for collaboration&lt;br /&gt;
* Enterprise App Integration (EAI) all over again&lt;br /&gt;
&lt;br /&gt;
= Web Services: The Problem =&lt;br /&gt;
* Can work really well when you have:&lt;br /&gt;
** Well-defined community&lt;br /&gt;
** Well-run governance&lt;br /&gt;
** Well-understood problem space&lt;br /&gt;
* Not true of the public Internet&lt;br /&gt;
* Not true of most vertical industries&lt;br /&gt;
&lt;br /&gt;
= The Answer(?): REST vs. RPC =&lt;br /&gt;
* RPC: Remote Procedure Calls&lt;br /&gt;
** URIs are method names&lt;br /&gt;
** XML is the arguments format&lt;br /&gt;
** Implemented in [http://www.xmlrpc.com/ XML-RPC] and [http://www.w3schools.com/soap/soap_intro.asp SOAP]&lt;br /&gt;
* [http://www.xfront.com/REST-Web-Services.html REST]: Representational State Transfer&lt;br /&gt;
** Nouns are URIs, verbs are HTTP: GET, PUT, POST, DELETE&lt;br /&gt;
** XML documents are state information&lt;br /&gt;
** Implemented at [http://www.xml.com/pub/a/2005/09/21/atom-store-web-database.html Atom], [http://www.oreillynet.com/pub/wlg/3005 Amazon] (sorta)&lt;br /&gt;
&lt;br /&gt;
= Advantages of REST over RPC =&lt;br /&gt;
* Much simpler to design&lt;br /&gt;
** Easy to identify appropriate nouns&lt;br /&gt;
** Don't need to define methods (verbs)&lt;br /&gt;
** Don't need a complete object model&lt;br /&gt;
* Easier to learn/invoke&lt;br /&gt;
** Always know what a URI means&lt;br /&gt;
** Need not 'tunnel' XML inside XML&lt;br /&gt;
&lt;br /&gt;
= Challenges of REST =&lt;br /&gt;
;Discoverability: No standard way to find services&lt;br /&gt;
;Interoperability: Too many incompatible ways to encode links, data&lt;br /&gt;
;Extensibility: What if your schema isn't 100% right?&lt;br /&gt;
;Comprehensibility: What the heck does &amp;quot;state transfer&amp;quot; mean?&lt;br /&gt;
&lt;br /&gt;
= Proposal: A Dual-Use (X)HTML Profile =&lt;br /&gt;
* Subset of REST that works with browsers&lt;br /&gt;
** XHTML Basic vs. arbitrary XML&lt;br /&gt;
** Just GET&lt;/div&gt;</summary>
		<author><name>SfiRsl</name></author>
	</entry>
</feed>