{"id":192,"date":"2003-10-15T06:02:00","date_gmt":"2003-10-15T10:02:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/?p=121"},"modified":"2003-10-15T06:02:00","modified_gmt":"2003-10-15T10:02:00","slug":"david-orchard-on-humans-and-the-web","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2003\/10\/david-orchard-on-humans-and-the-web\/","title":{"rendered":"David Orchard on humans and the Web"},"content":{"rendered":"<p>David wrote an\n<a href=\"http:\/\/dev2dev.bea.com\/technologies\/webservices\/articles\/ws_orchard.jsp\">article on the BEA site<\/a>,\nthat, to its credit, confronts the issue (and IMO, mistaken assumption of so many);\nthat the Web is for humans.  He writes;<\/p>\n\n<blockquote>\n<pre>\nIt turns out that humans are pretty darned smart. We can figure out a variety of interactions such as:\n\n    * How to enter usernames and passwords into different pages\n    * When to stop waiting for a page to return and resubmit the request\n    * When timed out of a site, how to reenter data and get to the right pages\n    * How to enter an e-mail address in a Web form, and then switch over to the e-mail client to view the resulting e-mail message\n    * What ordering (or flow) of Web pages to go through to achieve a task\n<\/pre>\n<\/blockquote>\n\n<p>Dave&#8217;s correct that humans are pretty darned smart, and also when he\nlater suggests that machine-to-machine integration requires additional\nstandards because of this.  But he&#8217;s mistaken if he believes (and I know\nhe does 8-) that this requires disregarding REST&#8217;s\n<a href=\"http:\/\/www.ics.uci.edu\/~fielding\/pubs\/dissertation\/rest_arch_style.htm#sec_5_1_5\">uniform interface constraint<\/a>.\nAllow me to run through that list to demonstrate &#8230;<\/p>\n\n<p><em>How to enter usernames and passwords into different pages<\/em>.  For the\nspecific case of user names &amp; passwords, the Web already has a\n<a href=\"http:\/\/www.ietf.org\/rfc\/rfc2617.txt\">standard<\/a> for that.  For the more\ngeneral case of entering any data, I agree that a standard is missing.  That&#8217;s why\nI developed <a href=\"http:\/\/www.markbaker.ca\/2003\/05\/RDF-Forms\/\">RDF Forms<\/a>, but\nsomething like <a href=\"http:\/\/www.w3.org\/TR\/NOTE-widl\">WIDL<\/a> could also be\nused.<\/p>\n\n<p><em>When to stop waiting for a page to return and resubmit the request<\/em>.  I\ncan&#8217;t imagine a scenario where you&#8217;d need a standard for this.  If the system were\nstateless, then time is immaterial.  I would expect that what is most important\nwould be that when you do resubmit, that the expectation about invocation\nsemantics are explicit, e.g. &#8220;once and only once&#8221;, &#8220;idempotent&#8221;, &#8220;safe&#8221;, etc&#8230;  I\nagree that standardization is required here\n(<a href=\"http:\/\/www.prescod.net\/reliable_http.html\">though not as much as you\nmight expect<\/a>).<\/p>\n\n<p><em>When timed out of a site, how to reenter data and get to the right pages<\/em>.\nThis sounds like a combination of the previous two, but I should also mention that\nRDF Forms uses &#8220;link metadata&#8221; (i.e. type information adorning a hyperlink, such\nas &lt;PurchaseOrder rdf:about=&#8221;http:\/\/&#8230;&#8221;\/&gt;) that can be used by automata to\n&#8220;get to the right pages&#8221;.<\/p>\n\n<p><em>How to enter an e-mail address in a Web form, and then switch over to the e-mail\nclient to view the resulting e-mail message<\/em>.  Much like the first one above regarding\ndata entry, but I&#8217;m not sure what &#8220;switch over to the e-mail client&#8221; means; surely my automata\nisn&#8217;t going to be using the Outlook GUI\/app, it&#8217;ll be using some email client library\nor an HTTP proxy to an MTA.<\/p>\n\n<p><em>What ordering (or flow) of Web pages to go through to achieve a task<\/em>.\nThat&#8217;s where &#8220;hypermedia as the engine of application state&#8221; comes in, as hypermedia\nis your application model.  Link metadata is key here too; I talked about this in\n<a href=\"http:\/\/www.markbaker.ca\/2002\/12\/HypermediaWorkflow\/\">&#8220;Hypermedia Workflow&#8221;<\/a>.\nBut I <em>do<\/em> think some more standardization is required, specifically in the\narea of link metadata describing useful workflow abstractions such as rendezvous\n(none of the RESTful integration work I&#8217;ve done has required a workflow component\nother than vanilla hypermedia, so I can&#8217;t say with certainty what needs to be\nstandardized).<\/p>\n\n<p>Thanks to Dave for mentioning this, because it&#8217;s been such a long standing\nassumption that most Web services proponents would consider it unworthy of\ndiscussion.<\/p>","protected":false},"excerpt":{"rendered":"David wrote an article on the BEA site, that, to its credit, confronts the issue (and IMO, mistaken assumption of so many); that the Web is for humans. He writes; It turns out that humans are pretty darned smart. We can figure out a variety of interactions such as: * How to enter usernames and [&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-192","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/192","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=192"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/192\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=192"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}