Further to my previous blog entry, Why I would make the “Metaverse” a direct extension of the web I have found a strong argument to the contrary in the documentation of the Virtual Object System.
In a section of their manual called The 3D Web the authors point out “three basic limitations of HTTP which have caused 10 years of pain, suffering and hacky workarounds for developers trying to build interactive applications over the web. These are that HTTP is a stateless protocol, that URLs represent opaque handles to resources, on which no reliable introspection is possible, and that HTTP is explicitly asymmetric so that a server typically cannot initiate sending new data to a client.”
The reponse of the Virtual Object System community is to create an entirely new protocol stack which is a mirror of the technologies used on the web, but with a new technology for each layer:
- VIP is like TCP
- VOS is like HTTP
- A3DL is like HTML
- CSVOSA3DL is like an HTML rendering engine such as Gecko or KHTML
- Ter'Angreal is like the web browser
The fact that HTTP is a synchronous, stateless protocol has come up in the past with regards to web applications – raising the possibility that AJAX is just a hack, waiting for a new protocol to replace it. Perhaps a replacement or extension of HTTP is due.
The current approach I am taking to a 3D Web client for Webscope is:
- TCP is TCP
- HTTP is HTTP
- X3D is like XHTML
- FreeWRL (and others) are like an HTML rendering engine such as Gecko
- Webscope is the web browser.
Because of the limitations of HTTP I have considered building a protocol like XMMP into Webscope, and the argument the Virtual Object System community make will certainly prompt me to explore alternatives further.
What I think I would like to see is a solution that sits somewhere between the plain X3D over HTTP approach and the radical VOS approach of replacing the whole protocol stack. I don't want to throw away HTTP entirely because of its Content Negotiation abilities and the vision of the Multimodal Web.
I'd like to see some discussion on this by some people who know more about networking than I do.