Tim Berners-Lee has written several articles about the axioms and design principles behind the web. I have been curious as to how many of the basic principles of the web are broken by the proposed HyperTExt Computer (HTC).
A key idea of the HyperText Computer (HTC) is that every operation is an HTTP request and all information is addressed by the HTC via URLs. Here is a summary of the princples and axioms with comments about the HTCs compliance:
Axioms from Universal Resource Identifiers — Axioms of Web Architecture:
Axiom 0a: | Any resource anywhere can be given a URI | This is one of the central foundations of the HTC. The HTC applies this principle to its logical conclusion. Every operand in a HTC has a URI. |
Axiom 0b. | Any resource of significance should be given a URI. | The HTC is based on the assumption that depending on context, any, or every, resource may be of significance – particularly if the processing to do with that resource moves from one processor to another. In a HTC every item of information is referenced as a “first class object”. |
Axiom 1 | It doesn’t matter to whom or where you specify that URI, it will have the same meaning. | HTC doesn’t break this. |
Axiom 2a | a URI will repeatably refer to “the same” thing | HTC does not break this. |
Axiom 2b | the significance of identity for a given URI is determined by the person who owns the URI, who first determined what it points to. | This is a basic governance position. No conflict with HTC model. |
Axiom 3 | URI space does not have to be the only universal space | HTC does not break this. |
Axiom | In HTTP, GET must not have side effects. | HTC does not break this. |
Axiom | In HTTP, anything which does not have side-effects should use GET | HTC does not break this. |
Axiom | The only thing you can use an identifier for is to refer to an object. When you are not dereferencing you should not look at the contents of the URI string to gain other information as little as possible. | HTC does not break this. |
Design Principles from Principles of Design:
Simplicity | The HTC proposes a unified programming model for distributed computing. That offers simplicity for the programmer. |
Modular Design | Yes. |
Tolerance | Yes. |
Decentralization | High. |
Test of Independent Invention | CORBA, DCOM, RMI and HTTP-NG need to be examined. |
Principle of Least Power | This principle underlies the choice of HTML. See the discussion that follows. |
How does an HTC reinforce the Principle of Least Power?
Burners-Lee says:
I chose HTML not to be a programming language because I wanted different programs to do different things with it [the HTML text]: present it differently, extract tables of contents, index it, and so on.
It is the simplicity of HTML as a declarative language that underlies its reuseability. XHTML+CSS make the text of webpages even more reusable by removing almost all of the rendering hints out of the text of the page. Javascript in today’s browsers allows them to take some processing load off the webserver and offer low latency processing and temporary storage. While the Javascript to be executed is sourced from the webserver, its programming model is discontinuous with that of the webserver. The webserver is accessed over the network, Javascript executes in a local sandbox.
The last 10 years has taught the web community a lot about how to securely deliver code to a user’s browser for local execution. The HTC is, in part, an attempt to fold what has been learnt back into the original HTTP protocol. The HTC model of handling client side processing has been discussed here. The HTC is proposed as a way of providing the client side processing without needing to resort to an “in-browser” processing environment. Using the HTC model, the browser could revert to being an pure interpreter of a declarative page description language. This could strengthen the value of the “Least Power” language HTML.
Additional Principles from Web Architecture from 50,000 feet:
anything, absolutely anything, “on the Web” should identified distinctly by an otherwise opaque string of characters (A URI and possibly a fragment identifier) is core to the universality
Comment: The HTC takes this principle to its logical conclusion.
The ideal goals, then, for an evolution of HTTP – would include:
…
# A schema system which allows any (Corba, DCom, RMI, etc) RPC interface to be defined, with an implied standard efficient format for RPC transmission;
# Extensions to the RPC state transition protocols to allow asynchrony needed for web applications (bidirectionality, streaming, asynchronous calls…);
Comment: Berners-Lee anticipates HTTP being used for computer to computer Remote Procedure Calls. The contribution of the HTC needs to be compared and contrasted with the technologies listed in this quote. It does not appear that the HTC idea of building a computer entirely on top of an end to end network protocol is in view here. In addition to the initiatives listed by Berner-Lee, the HTC needs, also, to be compared and contrasted with web services, mashups, Amazon’s S3, and middleware initiatives.
Conclusion
The proposed HTC does not seem to be in conflict with any of the principles and axioms described in these articles by Berners-Lee. The originality of this invention is an open question.