<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/stylesheets/rss.css" type="text/css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Aaron Feng: Tag SOAP</title>
    <link>http://www.aaronfeng.com/articles/tag/soap?tag=soap</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Adventures in software development</description>
    <item>
      <title>Should Shoechicken be soapy or restful?</title>
      <description>&lt;p&gt;Even though &lt;a href="http://shoechicken.com"&gt;Shoechicken&lt;/a&gt; is a &lt;a href="http://www.rubyonrails.org/"&gt;Rails&lt;/a&gt; application, currently it has no plans for any user interface.  It will only expose web services for external clients to consume.  In the web services world, you have two camps: &lt;a href="http://en.wikipedia.org/wiki/SOAP"&gt;SOAP&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;Representational State Transfer&lt;/a&gt;.  With that said, we had to make a decision as to which style of web services we will provide: &lt;a href="http://en.wikipedia.org/wiki/SOAP"&gt;SOAP&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;REST&lt;/a&gt; or both.&lt;/p&gt;

&lt;p&gt;One big advantage of using &lt;a href="http://en.wikipedia.org/wiki/SOAP"&gt;SOAP&lt;/a&gt; is the code generation tools that are available in various languages.  It works extremely well when you control both sides.  However, it can get a little more hairy when you do not have the luxury of a homogenous environment. &lt;/p&gt;

&lt;p&gt;On the other hand, &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;REST&lt;/a&gt; is very simple.  It just uses the old, trusty standard HTTP to transport requests without wrapping it.  All the client need to consume a service is a way to send HTTP requests and parse XML.&lt;/p&gt;

&lt;p&gt;We want to keep &lt;a href="http://shoechicken.com"&gt;Shoechicken&lt;/a&gt; as simple as possible.  I feel &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;REST&lt;/a&gt; style of web services will be easier to implement and easier for clients to consume with fewer interoperability issues.&lt;/p&gt;

&lt;p&gt;During the day I work on a distributed financial system that provides &lt;a href="http://en.wikipedia.org/wiki/SOAP"&gt;SOAP&lt;/a&gt; style web services.  It would be fun to learn what is on the other side of the fence.  That is one of the main reasons I went with &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;REST&lt;/a&gt; for &lt;a href="http://shoechicken.com"&gt;Shoechicken&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Tue, 06 Mar 2007 22:28:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:a2b42850-4af5-4c68-a8b3-c930c08f1549</guid>
      <author>Aaron Feng</author>
      <link>http://www.aaronfeng.com/articles/2007/03/06/should-shoechicken-be-soapy-or-restful</link>
      <category>shoechicken</category>
      <category>REST</category>
      <category>SOAP</category>
    </item>
  </channel>
</rss>
