{"id":155,"date":"2003-08-18T06:46:00","date_gmt":"2003-08-18T10:46:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/?p=158"},"modified":"2003-08-18T06:46:00","modified_gmt":"2003-08-18T10:46:00","slug":"adam-bosworth-is-about-to-grok-the-web","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2003\/08\/adam-bosworth-is-about-to-grok-the-web\/","title":{"rendered":"Adam Bosworth is about to grok the Web"},"content":{"rendered":"<p>Adam Bosworth sort of <a href=\"http:\/\/www.adambosworth.net\/archives\/000005.html\">lays out<\/a>\nsome requirements for a &#8220;Web services browser&#8221;.\nIt&#8217;s really funny for me to read this, because I was struggling with exactly these\nsame questions back in 1996 or so, coming from some seriously hard-core CORBA work, but\nwhile also being a big fan of what\n<a href=\"http:\/\/www.distributedcoalition.org\/mailing_lists\/dist-obj\/dist-obj.html\">we<\/a>\ncalled the &#8220;Universal Front End&#8221;; a chunk of software deployed everywhere which could\nconceivably make use of every service out there.  I spent a\ngood amount of time trying to figure out how to integrate CORBA, OpenDoc, and the\nWeb, in an attempt to yield what Adam&#8217;s asking for.  A couple of years later, I\nfigured it out; the key was the Web&#8217;s uniform interface, that you didn&#8217;t need to\ngive services service-specific interfaces, you could accomplish the same tasks\nby exposing the &#8220;data objects&#8221; (aka resources) of that service via a common set\nof data-object-centric methods (what Adam refers to as &#8220;Add, Delete, Modify&#8221;,\nbut which might as well just be GET, POST, PUT, DELETE).<\/p>\n\n<p>I can even clearly recall holding some of the same misconceptions he had.  For\nexample;<\/p>\n\n<blockquote>\nRemember, in this dream, a web services browser is primarily interacting with information, not user interface.\n<\/blockquote>\n\n<p>Suggesting that today&#8217;s Web is about user interfaces.  It isn&#8217;t, it&#8217;s <em>precisely<\/em>\nabout &#8220;interacting with information&#8221;, where each information source is provided a URI,\nand the information is returned on a GET.  It pains me to think back to when I didn&#8217;t\neven understand that simple point, because it&#8217;s so darned obvious now.  But I&#8217;m\ncomforted by the fact that gurus like Adam don&#8217;t get it, yet. 8-)<\/p>\n\n<p>Adam <a href=\"http:\/\/www.adambosworth.net\/archives\/000003.html\">earlier mentioned<\/a>\nthat he was going to be talking about REST.  I&#8217;m\nvery eager to hear what he has to say about that, given how RESTful his\ndescription of a &#8220;Web services browser&#8221; is.  I think he&#8217;s almost there.<\/p>\n\n<p>And BTW, with respect to mobility, I do believe that an additional\nconstraint on top of REST could be useful.  I actually wrote up a design\nat Sun back in 1999 about doing Servlets as Applets, permitting application\ncode to be run in the browser.  But Applet integration with the\nbrowser was just awful at the time (I think it&#8217;s gotten worse since 8-),\nmaking this basically infeasible.  I should have investigated JavaScript,\nbut didn&#8217;t; <a href=\"http:\/\/www.mod-pubsub.org\/\">Mod-pubsub<\/a> does some of\nthe things with JavaScript that I couldn&#8217;t do with Java, in particular\nintercepting submission of POST data.<\/p>","protected":false},"excerpt":{"rendered":"Adam Bosworth sort of lays out some requirements for a &#8220;Web services browser&#8221;. It&#8217;s really funny for me to read this, because I was struggling with exactly these same questions back in 1996 or so, coming from some seriously hard-core CORBA work, but while also being a big fan of what we called the &#8220;Universal [&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-155","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/155","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=155"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/155\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=155"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=155"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=155"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}