{"id":1072,"date":"2005-10-12T14:00:00","date_gmt":"2005-10-12T18:00:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/2005\/10\/12\/agree-on-more\/"},"modified":"2005-10-12T14:00:00","modified_gmt":"2005-10-12T18:00:00","slug":"agree-on-more","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2005\/10\/agree-on-more\/","title":{"rendered":"Agree on more"},"content":{"rendered":"<p>The more that two parties agree upon, the more that can be accomplished\nbetween them without additional coordination.<\/p>\n\n<p>Additional coordination is expensive.  It not uncommonly requires years of\nstandardization and years more to deploy the new software to support it.\nTherefore, if we can leverage <em>existing deployed agreement<\/em>, that&#8217;s\nalways best&#8230;<\/p>\n\n<p>If two parties agree to communicate via TCP\/IP, on some specific port,\nad-hoc integration capabilities are limited to sending and receiving bits\nreliably between two points.  Want to <em>exchange<\/em> data?  Want to invoke\na method?  Sorry, additional agreement is required.<\/p>\n\n<p>If two parties agree to communicate via the common use of SOAP-over-HTTP,\nad-hoc integration capabilities are limited to remote method invocation with\nstandardized faults in response.  Want to invoke a method?  No problem!  Want\nto exchange data?  Sorry, that requires <em>additional<\/em> agreement on a set\nof methods that facilitate data exchange.<\/p>\n\n<p>If two parties agree to communicate via HTTP (or other transfer protocols),\nad-hoc integration capabilities include data exchange.<\/p>\n\n<p>&#8230; and so on, and so on, up\n<a href=\"http:\/\/www.w3.org\/DesignIssues\/diagrams\/SW-stack.png\">the stack<\/a>.<\/p>\n\n<p>I&#8217;ve found that placing new technologies in the context of this\ncoordination-centric view of the world as an excellent litmus test for the\npotential success of those technologies.<\/p>\n\n<p>It also helps me to evaluate some design choices in large scale systems\nwhere an existing system is being &#8220;reused&#8221;.  For instance, I consider the Web\nservices notion of &#8220;protocol independence&#8221; to be prima facie a bad idea because\nit knocks us down a notch in terms of what can be coordinated a priori; whereas\nwithout tunneling we can use HTTP for data exchange, with tunneling we can only\nuse it for method invocation.<\/p>","protected":false},"excerpt":{"rendered":"The more that two parties agree upon, the more that can be accomplished between them without additional coordination. Additional coordination is expensive. It not uncommonly requires years of standardization and years more to deploy the new software to support it. Therefore, if we can leverage existing deployed agreement, that&#8217;s always best&#8230; If two parties agree [&hellip;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[26],"class_list":["post-1072","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-soap"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/1072","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=1072"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/1072\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=1072"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=1072"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=1072"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}