{"id":241,"date":"2003-12-22T04:39:00","date_gmt":"2003-12-22T08:39:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/?p=72"},"modified":"2003-12-22T04:39:00","modified_gmt":"2003-12-22T08:39:00","slug":"bootstrapping-and-componentware","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2003\/12\/bootstrapping-and-componentware\/","title":{"rendered":"Bootstrapping and componentware"},"content":{"rendered":"<p>The <a href=\"http:\/\/www.w3.org\/2002\/ws\/desc\/\">Web Services Description WG<\/a>\noffered up their\n<a href=\"http:\/\/lists.w3.org\/Archives\/Public\/www-ws-desc\/2003Dec\/0051.html\">latest attempt<\/a>\nat an HTTP binding for WSDL last week.  I think it&#8217;s about as good as you can hope\nsomething like that to get, without rejecting Web services.  But it seems the group\n<a href=\"http:\/\/lists.w3.org\/Archives\/Public\/www-ws-desc\/2003Dec\/0059.html\">asked itself<\/a>\nsome good questions while reviewing it, in particular this one;<\/p>\n\n<blockquote>\nIs it good practice to extract part of your content to parameterize your URI?  If not, what is the best way?\n<\/blockquote>\n\n<p>To which I <a href=\"http:\/\/lists.w3.org\/Archives\/Public\/www-ws-desc\/2003Dec\/0064.html\">responded<\/a>;<\/p>\n\n<blockquote>\nInvoke GET on the URI to retrieve a document, and include in that\na declaration of how the URI can be parameterized.  This is what forms\nare for (well, &#8220;GET forms&#8221; anyhow); see <a href=\"http:\/\/www.w3.org\/TR\/xforms\">XForms<\/a>\nor <a href=\"http:\/\/www.markbaker.ca\/2003\/05\/RDF-Forms\/\">RDF Forms<\/a>.\n<\/blockquote>\n\n<p>If you didn&#8217;t recognize it, this is a textbook case of bootstrapping; see a URI,\nGET it, etc..  It reminds me of the\n<a href=\"http:\/\/java.sun.com\/products\/javabeans\/\">Java Beans<\/a>\ncomponent model, which, for all its flaws (namely, that it wasn&#8217;t useful for much\nmore than GUI stuff), had its own wonderful bootstrap mechanism; the zero argument\nconstructor (sorry, no good URI for it).  This permitted anybody who was in\npossession of a bean class to instantiate it without a priori information about it.\nSome might argue that this was just deferring binding, and they&#8217;d be right, but\nthere&#8217;s no &#8220;just&#8221; about it; deferred (aka late) binding permits more functionality\nto be internalized into the system.  In the case of beans, this was realized via the\nuse of a wizard which could be triggered when instantiating beans that needed\nparameterizing.<\/p>\n\n<p>Bootstrapping is your friend.<\/p>","protected":false},"excerpt":{"rendered":"The Web Services Description WG offered up their latest attempt at an HTTP binding for WSDL last week. I think it&#8217;s about as good as you can hope something like that to get, without rejecting Web services. But it seems the group asked itself some good questions while reviewing it, in particular this one; Is [&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-241","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/241","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=241"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/241\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=241"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=241"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=241"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}