{"id":589,"date":"2004-12-08T12:50:00","date_gmt":"2004-12-08T16:50:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/2004\/12\/08\/visibility-making-or-breaking-large-scale-architectural-styles\/"},"modified":"2004-12-08T12:50:00","modified_gmt":"2004-12-08T16:50:00","slug":"visibility-making-or-breaking-large-scale-architectural-styles","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2004\/12\/visibility-making-or-breaking-large-scale-architectural-styles\/","title":{"rendered":"Visibility; making or breaking large scale architectural styles"},"content":{"rendered":"<p>For about the past year or so,\n<a href=\"http:\/\/www.pacificspirit.com\/blog\/\">Dave Orchard<\/a>\nhas been using principled design techniques, and in particular\n<a href=\"http:\/\/roy.gbiv.com\">Roy Fielding<\/a>&#8216;s\n<a href=\"http:\/\/www.ics.uci.edu\/~fielding\/pubs\/dissertation\/software_arch.htm\">interpretation of software architecture<\/a>,\nin his effort to build out and improve the Web services infrastructure.  That\nis indeed worthy of very high praise, as he&#8217;s the first Web services\nproponent to have done it.  But unfortunately, it seems he (and he&#8217;s not\nalone in this, of course) is missing one very important aspect of\nsoftware architecture and large scale architectures in particular; an\nappreciation that some properties can totally make or break an\narchitectural style.<\/p>\n\n<p>Dave talks a lot about the pros, cons, tradeoffs, etc.. of particular\narchitectural choices, and that&#8217;s all good.  More often than not, he&#8217;s\ntotally bang-on too.  He gets, for example, that not adopting an interface\nconstraint necessarily reduces visibility and simplicity, and has even gone\nso far, risking ridicule from colleagues, to suggest that\n<a href=\"http:\/\/www.pacificspirit.com\/blog\/2004\/09\/28\/web_services_needs_transfer_protocols_and_specific_prot\nocols\">a limited form of interface constraint (GET) would be a good thing<\/a>\nYet, at the same time, he fails to recognize the implications of the loss of\nthese properties.  Though it&#8217;s certainly not the case for all properties, some\nare so important that they can make or break the suitability of an\narchitectural style for some particular task or environment.  In the context\nof Internet scale systems for example, high degrees of\n<a href=\"http:\/\/www.ics.uci.edu\/~fielding\/pubs\/dissertation\/net_app_arch.htm#sec_2_3_5\">visibility<\/a>\nare simply <em>mandatory<\/em> (unlike LAN scale systems) due to the\n<a href=\"http:\/\/www.oreillynet.com\/pub\/wlg\/1681\">prevalence of trust boundaries<\/a>\n(aka\n<a href=\"http:\/\/www.ics.uci.edu\/~rohit\/ARRESTED-ICSE.pdf\">agency<\/a>).  It&#8217;s\nthe whole\n<a href=\"http:\/\/www.markbaker.ca\/2002\/09\/Blog\/2003\/01\/02#2003-01-oh-n\">integration complexity<\/a>\nthing again; do you want to budget development resources along an\nO(Nlog(N)) (or worse, O(N^2)), or O(N) curve?<\/p>\n\n<p>All architectural styles on the Internet, past <em>and<\/em> present, have large\ndegrees of visibility.  Even some non-REST forms of SOA do too, for example\n<a href=\"http:\/\/savas.parastatidis.name\/2004\/11\/09\/92ede84c-ca1f-41ab-8feb-8ba50d07e86f.aspx\">MEST<\/a>.\nI therefore suggest that all <em>future<\/em> architectural styles that\nwe&#8217;ll see on the Internet will have large degrees of visibility too.<\/p>\n\n<p>Does your flavour of SOA have it?<\/p>","protected":false},"excerpt":{"rendered":"For about the past year or so, Dave Orchard has been using principled design techniques, and in particular Roy Fielding&#8216;s interpretation of software architecture, in his effort to build out and improve the Web services infrastructure. That is indeed worthy of very high praise, as he&#8217;s the first Web services proponent to have done it. [&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-589","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/589","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=589"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/589\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=589"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=589"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=589"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}