{"id":580,"date":"2004-11-30T13:24:00","date_gmt":"2004-11-30T17:24:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/2004\/11\/30\/implementation-details\/"},"modified":"2004-11-30T13:24:00","modified_gmt":"2004-11-30T17:24:00","slug":"implementation-details","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2004\/11\/implementation-details\/","title":{"rendered":"Implementation details"},"content":{"rendered":"<p><a href=\"http:\/\/www.pacificspirit.com\/blog\/2004\/11\/29\/the_hide_the_implementation_details_myth\">Dave suggests implementation details are important<\/a>.\nAs one of those who made the &#8220;implementation detail&#8221;\n<a href=\"http:\/\/lists.w3.org\/Archives\/Public\/public-ws-addressing\/2004Nov\/0178.html\">claim<\/a>,\nI&#8217;ll state my definition;<\/p>\n\n<blockquote>\nAn &#8220;implementation detail&#8221; is an aspect of the design or implementation of a system,\nwhich has no effect on the architecture of that system, i.e. does not affect the\nrelationships between components, connectors, and data.<\/p>\n<\/blockquote>\n\n<p>Dave had\n<a href=\"http:\/\/lists.w3.org\/Archives\/Public\/public-ws-addressing\/2004Nov\/0173.html\">argued<\/a>\nfor the use of EPRs instead of URIs based on what I believed to be\n&#8220;implementation details&#8221;, including this;<\/p>\n\n<blockquote>\nSeparating the reference property from the URI may make it easier for\nservice components to evolve.  A service component may know nothing\nabout the deployment address of the service from the reference\nproperties.  This effectively separates the concerns of identifiers into\nexternally visible and evolvable from the internally visible and\nevolvable.  For example, a dispatcher could evolve the format it uses\nfor reference properties without concern of the URI related software.\n<\/blockquote>\n\n<p>to which I responded;<\/p>\n\n<blockquote>\nThat separation you discuss is an implementation detail, not an\naspect of the architecture.  Consider Web servers that have a config\nfile which is used to map URIs to code, freeing up the code from having\nto be bound to any particular URI.\n<\/blockquote>\n\n<p>Which is to say that the config file used by the Web server is not a part\nof the architecture of the operational system being discussed, because it is\nnot exposed to the service consumer (not a data element), nor does it impact\nconnector (transfer) semantics or the relationship between components.  It would\nbe a data element of the <em>configuration subsystem<\/em> architecture of course,\nbut that&#8217;s not what we&#8217;re talking about.<\/p>","protected":false},"excerpt":{"rendered":"Dave suggests implementation details are important. As one of those who made the &#8220;implementation detail&#8221; claim, I&#8217;ll state my definition; An &#8220;implementation detail&#8221; is an aspect of the design or implementation of a system, which has no effect on the architecture of that system, i.e. does not affect the relationships between components, connectors, and data. [&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-580","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/580","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=580"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/580\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=580"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=580"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=580"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}