{"id":590,"date":"2004-12-09T10:39:00","date_gmt":"2004-12-09T14:39:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/2004\/12\/09\/soa-and-rest-so-close-and-yet-so-far\/"},"modified":"2004-12-09T10:39:00","modified_gmt":"2004-12-09T14:39:00","slug":"soa-and-rest-so-close-and-yet-so-far","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2004\/12\/soa-and-rest-so-close-and-yet-so-far\/","title":{"rendered":"SOA and REST; so close and yet so far"},"content":{"rendered":"<p>Last night I was thinking how close SOA is getting to REST, and how\ngosh-darn frustrating it is to me that its proponents don&#8217;t yet see it.<\/p>\n\n<p>Let&#8217;s summarize the state of affairs circa late 2004 &#8230;<\/p>\n\n<p><strong>Document style services<\/strong>.  Web services have attempted\nto escape the RPC style of service, and instead advocate a &#8220;document in,\ndocument out&#8221; model due to its superior loose coupling.  Hurrah!  That&#8217;s\na REST style interaction!  In particular, a POST operation; representation\nin, represent out, with simple &#8220;process this&#8221; semantics.  Unfortunately\nmany people don&#8217;t appreciate that it&#8217;s a uniform semantic (though\n<a href=\"http:\/\/savas.parastatidis.name\/2004\/11\/09\/92ede84c-ca1f-41ab-8feb-8ba50d07e86f.aspx\">some do<\/a>)\nand still insist on associating service specific semantics with such an\ninteraction.  But the good news is that just makes for tightly coupled\nclients, not services.<\/p>\n\n<p><strong>Identification<\/strong>.  For such a so-called cornerstone\nspecification, it took an awfully long time to arrive, but WS-Addressing\nis an attempt to have a standard for Web services identifiers.\nStandardized identifiers?  Who knew?! 8-)  Of course, REST also requires\na single identifying standard which can be used to identify an endpoint\nfrom which either a representations can be retrieved(GET), or one can be\nsubmitted for processing (POST) (or anything else which can be done to\nall other identified things).  See the similarities?<\/p>\n\n<p>When compared with the implicit architectural style of Web services\ncirca 2000 then, we see a movement towards adopting the additional REST\nconstraints of\n<a href=\"http:\/\/www.ics.uci.edu\/~fielding\/pubs\/dissertation\/rest_arch_style.htm#sec_5_1_5\">resource identification and the uniform interface<\/a>\n(albeit, IMO, an overly constrained uniform interface; basically POST semantics only),\neven if they&#8217;re not done in a Web architecture friendly manner.<\/p>\n\n<p><strong>This is *NOT* a coincidence!<\/strong>  Once you set out with\ndocument orientation, REST is where you will, for most people, eventually\nend up (though it&#8217;s by no means\n<a href=\"http:\/\/www.ics.uci.edu\/~rohit\/ARRESTED-ICSE.pdf\">the<\/a>\n<a href=\"http:\/\/www.w3.org\/2001\/sw\/\">end<\/a>\nof the journey).<\/p>\n\n<p>I&#8217;ve said it before, and I&#8217;ll say it again now; <strong>the Web is what\nWeb services are trying to be<\/strong>.  There&#8217;s just (at least) one enormous\n<a href=\"http:\/\/builder.com.com\/5100-6389_14-5198198.html\">sacred cow<\/a>\nyet to be\n<a href=\"http:\/\/www.markbaker.ca\/2002\/09\/Blog\/2004\/10\/29#2004-10-protocols\">slaughtered<\/a>,\nIMO, before this can be fully appreciated.<\/p>","protected":false},"excerpt":{"rendered":"Last night I was thinking how close SOA is getting to REST, and how gosh-darn frustrating it is to me that its proponents don&#8217;t yet see it. Let&#8217;s summarize the state of affairs circa late 2004 &#8230; Document style services. Web services have attempted to escape the RPC style of service, and instead advocate a [&hellip;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-590","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/590","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/comments?post=590"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/590\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=590"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=590"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=590"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}