Imagining Futures: Superstruct

I haven't actually tried this yet but it seems kind of interesting and related to some of this issues we have discussed in class and that have come up in the lecture series.

http://superstruct.wikia.com/wiki/Superstruct_Wiki

"Q: What is Superstruct?

A: Superstruct is the world’s first massively multiplayer forecasting game. By playing the game, you’ll help us chronicle the world of 2019--and imagine how we might solve the problems we'll face. Because this is about more than just envisioning the future. It’s about making the future, inventing new ways to organize the human race and augment our collective human potential."

4.831 Assignment 2

Q. Please find a technology in which you are interested. You may choose one that is broad, like the car, or specific, like the atom bomb or a network protocol. Research the history of the technology, its original intention or purpose, its past, present and potential uses, one utopian expression, and one dystopian expression. Who has the technology influenced the most?

RPC (Remote Procedure Call)

RPC is a technique that allows a program running on one computer to call a function running in another address space (typically in a program on another computer) . Initially described in 1976 with the goal of "resource sharing" [1] it was a response to deficiencies of the ways of utilizing resources (in particular computational resources) across the ARPANET. At the time application developers would have to build highly specific protocols into their applications to allow for communication, the complexity of doing this was an impediment to the construction of distributed computational systems and effective use of resources across the system. While there were means to allow humans to use resources on remote machines, there was no convenient general mechanism or protocol to allow programmatic access to resources (code and data) located on other machines. When used using object oriented programming languages it is often referred to as RMI. The main goals of RPC can be found on pages 6-8 of [1].

Athena at MIT was one of the earlier environments to support RPC, the 'RPC compiler' was intended to allow programmers to "build distributed applications without knowing anything about networking" - Doug Wilson (1985) [2]

In more current use there is a sense in which one can consider HTTP a text based RPC system with a fairly small command set. HTTP allows one machine to issue requests to another machine and get a text response. However the idea behind proposing RPC was to generalize the method by which programs could interact without having to formalize specific protocols like HTTP, similar protocols that existed at the time included FTP. Today there are numerous implementation of RPC in various languages and as well as techniques for doing RPC over HTTP (such as XML-RPC and SOAP). The growth on the creation of 'web services' increases the demand for RPC systems that can work across networks and across computer programming languages.

The utopian vision of where this all may lead may best be expressed in the promise the internet holds, the internet and in the increasingly two-way internet is enabled by the ability of disparate computing systems to talk with one another. The distopian view may be considering that all of this interconnection presents a greater possibility for attack to any individual system. As borders dissolve online, we increasingly run up against people who we do not see eye to eye with. When this disagreement devolves into conflict the lack of borders or separating 'space' can make one more vulnerable.