{"id":71,"date":"2003-01-02T03:23:00","date_gmt":"2003-01-02T07:23:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/?p=242"},"modified":"2003-01-02T03:23:00","modified_gmt":"2003-01-02T07:23:00","slug":"sean-mcgrath-and-recombinant-growth","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2003\/01\/sean-mcgrath-and-recombinant-growth\/","title":{"rendered":"Sean McGrath and Recombinant Growth"},"content":{"rendered":"<p>Sean McGrath\n<a href=\"http:\/\/seanmcgrath.blogspot.com\/2002_12_29_seanmcgrath_archive.html#90126406\">calls for<\/a>\na &#8220;workable definition&#8221; of a Web service in order to bring integration complexity down to O(n)\nfrom O(N^2).<\/p>\n\n<p>While a definition would be a good start, more importantly we need a common abstraction.\nThis drives integration complexity down because once you&#8217;ve integrated with one service,\nyou&#8217;ve (ideally, and not that uncommonly) integrated with them all.<\/p>\n\n<p>Take for example, a blog aggregator.  If everybody had their own interface to their\nblog, aggregation would be an O(N^2) task.  But luckily they don&#8217;t, they all make their\nRSS available over HTTP GET, a very useful common abstraction.  That, plus that RSS (all\nfour versions 8-) is a common format, provides for O(N) integration complexity.<\/p>\n\n<p>The Web provides one common abstraction that I talk about a lot; the uniform interface.\nThere are others (though <a href=\"http:\/\/www.oreillynet.com\/pub\/wlg\/1681\">none so general<\/a>,\nI believe), but Web services, via WSDL, are all about providing custom interfaces.  As\nlong as use of WSDL in this manner continues, Web services will, like Sean says, amount\nto &#8220;one big damp squib&#8221; (which doesn&#8217;t sound like a good thing 8-).<\/p>","protected":false},"excerpt":{"rendered":"Sean McGrath calls for a &#8220;workable definition&#8221; of a Web service in order to bring integration complexity down to O(n) from O(N^2). While a definition would be a good start, more importantly we need a common abstraction. This drives integration complexity down because once you&#8217;ve integrated with one service, you&#8217;ve (ideally, and not that uncommonly) [&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-71","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/71","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=71"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/71\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=71"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=71"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=71"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}