{"id":1018,"date":"2009-09-08T15:52:43","date_gmt":"2009-09-08T15:52:43","guid":{"rendered":"http:\/\/meeseeks:5080\/blog\/?p=1018"},"modified":"2009-09-08T15:52:43","modified_gmt":"2009-09-08T15:52:43","slug":"action-at-a-distance","status":"publish","type":"post","link":"https:\/\/vukutu.com\/blog\/2009\/09\/action-at-a-distance\/","title":{"rendered":"Action-at-a-distance"},"content":{"rendered":"<p>For at least 22 years, I have heard business presentations (ie, not just technical presentations) given by IT companies which mention <em>client-server<\/em> architectures.\u00a0\u00a0 For the last 17 of those years, this is not suprising, since both the Hyper-Text Transfer Protocol (HTTP) and the World-Wide Web (WWW) use this architecture. \u00a0\u00a0 In a client-server architecture, one machine (the client) requests that some action be taken by another machine (the server), which responds to the request.\u00a0 For HTTP, the standard request by the client is for the server to send to the client some electronic file, such as a web-page.\u00a0 The response by the server is not necessarily to undertake the action requested.\u00a0\u00a0\u00a0 Indeed, <a href=\"http:\/\/www.w3.org\/Protocols\/\" target=\"_blank\" rel=\"noopener\">the specifications of HTTP<\/a> define 41 responses (so-called <a href=\"http:\/\/en.wikipedia.org\/wiki\/List_of_HTTP_status_codes\" target=\"_blank\" rel=\"noopener\">status codes<\/a>), including outright refusal by the server\u00a0(Client Error 403 <em>&#8220;Forbidden&#8221;<\/em>), and allow for hundreds more to be defined.\u00a0 Typically, one server will be configured to respond to many simultaneous or near-simultaneous client requests.\u00a0\u00a0 The functions of client and server are conceptually quite distinct, although of course,\u00a0one machine may undertake both functions, and a server may even have to make a request as a client to another server in order to respond to an earlier request from its clients.\u00a0\u00a0 As an analogy, consider a library which acts like a server of books to its readers, who are its clients;\u00a0\u00a0a library may have to request a book via inter-library loan from another library in order to satisfy a reader&#8217;s request.<br \/>\nSince the rise of file sharing, particularly illegal file sharing, over a decade ago, it has also been common to hear talk about <em>Peer-to-Peer (P2P)<\/em> architectures.\u00a0\u00a0 Conceptually, in these architectures all machines are viewed equally,\u00a0and none are especially distinguished as servers.\u00a0 \u00a0Here, there is no central library of books; rather, each reader him or herself owns some books and is willing to lend them to any other reader as and when needed.\u00a0\u00a0 Originally, peer-to-peer architectures were invented to circumvent laws on copyright, but they turn out (as do most technical innovations) to have other, more legal, uses &#8211; such as the distributed storage and sharing of electronic documents in large organizations (eg, xray images in networks of medical clinics).<br \/>\nBoth client-server and P2P architectures involve attempts at remote control. \u00a0A client or a peer-machine makes a request of another machine (a server or another peer, respectively), to undertake some action(s) at the location of the second machine.\u00a0\u00a0 The second machine receiving the request from the first may or may not execute the request.\u00a0\u00a0 This has led me to think about models of such action-at-a-distance.<br \/>\nImagine we have two agents (human or software), named A and B, at different locations, and a resource, named\u00a0X, at the same location as B.\u00a0\u00a0 For example, X could be an electron microscope, B the local technician at site of the microscope, and\u00a0 A a remote user of the microscope.\u00a0Suppose further that agent B can take actions directly to control resource X.\u00a0\u00a0 Agent A\u00a0may or may not have permissions or powers to act on X.<br \/>\nThen,\u00a0\u00a0we have the following five possible situations:<\/p>\n<blockquote><p>1. \u00a0Agent A\u00a0controls X directly, without agent B&#8217;s involvement (ie, A has remote access to and remote control over resource X).<br \/>\n2. \u00a0Agent A commands agent B to control X (ie, A and B have a master-slave relationship; some client-server relationships would fall into this category).<br \/>\n3. \u00a0Agent A\u00a0requests agent B to control X (ie, both A and B are autonomous agents; P2P would be in this category, as well as many client-server interactions).<br \/>\n4. \u00a0Both agent A and agent B need to take actions jointly to control X (eg, the double-key system for launch of nuclear missiles in most nuclear-armed forces; coalitions of agents would be in this category)<br \/>\n5. \u00a0Agent A\u00a0has no powers, not direct nor indirect, to control resource X.<\/p><\/blockquote>\n<p>As far as I can tell, these five situations exhaust the possible relationships betwen agents A and B acting on resource X, at least for those cases where potential actions on X are initated by agent A.\u00a0 From this outline, we can see\u00a0the relevance of much that is now being studied in computer science:<\/p>\n<ul>\n<li>Action co-ordination (Cases 1-5)<\/li>\n<li>Command dialogs (Case 2)<\/li>\n<li>Persuasion dialogs (Case 3)<\/li>\n<li>Negotiation dialogs (dialogs to divide a scarce resource) (Case\u00a04)<\/li>\n<li>Deliberation dialogs (dialogs over what actions to take) (Cases 1-4)<\/li>\n<li>Coalitions (Case\u00a0\u00a04).<\/li>\n<\/ul>\n<p>To the best of my knowledge, there is as yet no formal theory which encompasses these five cases.\u00a0\u00a0 (I welcome any suggestions or comments to the contrary.)\u00a0 Such a formal theory is needed as we move beyond <em>Web 2.0<\/em>\u00a0(the web as means to create and sustain social networks) to reification of the idea of <em>computing-as-interaction<\/em>\u00a0(the web as a means to co-ordinate joint actions).<br \/>\n<em>Reference:<\/em><br \/>\nNetwork Working Group [1999]: <em>Hypertext Transfer Protocol &#8211; HTTP\/1.1.<\/em> <a href=\"http:\/\/www.ietf.org\/rfc\/rfc2616.txt\" target=\"_blank\" rel=\"noopener\">Technical Report RFC 2616<\/a>.\u00a0 Internet Engineering Task Force.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>For at least 22 years, I have heard business presentations (ie, not just technical presentations) given by IT companies which mention client-server architectures.\u00a0\u00a0 For the last 17 of those years, this is not suprising, since both the Hyper-Text Transfer Protocol (HTTP) and the World-Wide Web (WWW) use this architecture. \u00a0\u00a0 In a client-server architecture, one [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14,15,23,40],"tags":[],"class_list":["post-1018","post","type-post","status-publish","format-standard","hentry","category-computer-technology","category-computing-as-interaction","category-decision-theory","category-joint-action-society","p1","y2009","m09","d08","h15"],"_links":{"self":[{"href":"https:\/\/vukutu.com\/blog\/wp-json\/wp\/v2\/posts\/1018","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vukutu.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vukutu.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vukutu.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vukutu.com\/blog\/wp-json\/wp\/v2\/comments?post=1018"}],"version-history":[{"count":0,"href":"https:\/\/vukutu.com\/blog\/wp-json\/wp\/v2\/posts\/1018\/revisions"}],"wp:attachment":[{"href":"https:\/\/vukutu.com\/blog\/wp-json\/wp\/v2\/media?parent=1018"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vukutu.com\/blog\/wp-json\/wp\/v2\/categories?post=1018"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vukutu.com\/blog\/wp-json\/wp\/v2\/tags?post=1018"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}