{"id":1286,"date":"2006-02-17T13:19:00","date_gmt":"2006-02-17T17:19:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/2006\/02\/17\/rest-invades-microsoft\/"},"modified":"2006-02-17T13:19:00","modified_gmt":"2006-02-17T17:19:00","slug":"rest-invades-microsoft","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2006\/02\/rest-invades-microsoft\/","title":{"rendered":"REST invades Microsoft"},"content":{"rendered":"<img decoding=\"async\" src=\"\/images\/virus.gif\" \/>\n\n<p>Don Box gives us his\n<a href=\"http:\/\/pluralsight.com\/blogs\/dbox\/archive\/2006\/02\/17\/18869.aspx\">two cents<\/a>\non a Microsoft-internal &#8220;REST vs. SOA(P)&#8221; debate;<\/p>\n\n<blockquote cite=\"http:\/\/pluralsight.com\/blogs\/dbox\/archive\/2006\/02\/17\/18869.aspx\">\n<p>The following design decisions are orthogonal, even though people often conflate two or more of them:<\/p>\n\n<ol>\n<li>Whether one uses SOAP or POX (plain-old-XML).<\/li>\n<li>Whether or not one publishes an XML schema for their formats.<\/li>\n<li>Whether or not one generates static language bindings from an XML schema.<\/li>\n<li>The degree to which one relies on HTTP-specific features. That stated, screw with GET at your peril.<\/li>\n<li>Whether one adopts a message-centric design approach or a resource-centric design approach.<\/li>\n<\/ol>\n<p>Some of the decisions (specifically 5) are architectural and sometimes philosophical.<\/p>\n<\/blockquote>\n\n<p>I don&#8217;t know about that.  Numbers 1, 2, 4, and 5 are architectural, as all impact\neither the components, connectors, or data of the system.  Only number 3 isn&#8217;t, since\nit&#8217;s an implementation detail.  Number 2 is debateable I suppose, but most Web services\nbased uses of XML schemas I&#8217;ve seen involves removing descriptive information from the\nmessage in deference to an implicit pointer to a WSDL document (and therefore a schema).<\/p>\n\n<p>He also added;<\/p>\n\n<blockquote cite=\"http:\/\/pluralsight.com\/blogs\/dbox\/archive\/2006\/02\/17\/18869.aspx\">\nIf you want to reach both audiences before your competition does, you&#8217;ll avoid indulging in religious debates and ship something.\n<\/blockquote>\n\n<p>Of course, religious debates should always be avoided.  But architectural debates\nshould not, and REST vs. SOA(P) is an architectural debate.  Period.  If anybody thinks\nthis is a religious debate, you simply haven&#8217;t done your\n<a href=\"http:\/\/www.ics.uci.edu\/~fielding\/pubs\/dissertation\/top.htm\">homework<\/a>.<\/p>\n\n<p>Also of interest, his advice was preceded by this qualifier;<\/p>\n\n<blockquote cite=\"http:\/\/pluralsight.com\/blogs\/dbox\/archive\/2006\/02\/17\/18869.aspx\">\nIn hopes I never have to address this debate again, [&#8230;]\n<\/blockquote>\n\n<p>Hah, that&#8217;s a good one 8-)  Resistance is futile.  You can&#8217;t fight\n<a href=\"http:\/\/www.coactus.com\/blog\/2005\/07\/towards-truly-document-oriented-web-services\/\">loose coupling<\/a>,\nman.  It&#8217;s infectious.  Muhaha!<\/p>\n\n<p>Tags:\n<a href=\"http:\/\/del.icio.us\/tag\/soap\">soap<\/a>,\n<a href=\"http:\/\/del.icio.us\/tag\/rest\">rest<\/a>,\n<a href=\"http:\/\/del.icio.us\/tag\/microsoft\">microsoft<\/a>,\n<a href=\"http:\/\/del.icio.us\/tag\/webservices\">webservices<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"Don Box gives us his two cents on a Microsoft-internal &#8220;REST vs. SOA(P)&#8221; debate; The following design decisions are orthogonal, even though people often conflate two or more of them: Whether one uses SOAP or POX (plain-old-XML). Whether or not one publishes an XML schema for their formats. Whether or not one generates static language [&hellip;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[22,26,40],"class_list":["post-1286","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-rest","tag-soap","tag-xml"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/1286","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=1286"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/1286\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=1286"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=1286"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=1286"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}