Content Injection and Control Protocol (CICP): HTTP for Virtual Worlds
My involvement with virtual world protocol design began with a very practical need. I had used Second Life to develop a prototype of a gateway for querying a database and producing a three-dimensional representation of the query result within the virtual world.
For business reasons, I wanted my gateway to be able to work not only with Second Life, but also with Sun’s Wonderland, Forterra’s OLIVE, OpenSim, realXtend, and any other virtual world platform. This cross-platform requirement caused me to design a protocol called Content Injection and Control Protocol, and to implement the protocol in both Second Life and Sun Wonderland. I call the program which implements the protocol for a given virtual world platform an “adapter” for that platform.
In addition to the cross-platform benefit of the protocol, which enabled me to create one version of my gateway which is able to work simultaneously with both Second Life and Wonderland, I discovered another significant benefit: the ability to shield a proprietary, closed-source program from attachment by Second Life’s Terms of Service, and Wonderland’s Gnu Public License.
By releasing the protocol itself to the public domain, conforming to Second Life’s Terms of Service with the Second Life adapter, and contributing the Wonderland adapter back to the Wonderland project for release under GPL, I created a communication mechanism which my gateway can use to generate temporary artifacts in the worlds. The gateway itself never resides within a virtual world and is never linked to a virtual world at a code or library level. Rather, it simply communicates with CICP adapters using sockets and a simple text-based protocol much like HTTP. It is of course important that I do not desire to protect the temporary artifacts, which happen to be representations of data, from any intellectual property issues; I am only concerned with protecting the algorithms and processes contained within the gateway program.
I believe the most useful aspect of my CICP work is a way of looking at virtual worlds from the perspective of an external application which must place content into them for viewing and interaction by other entities (users) who are also external to the virtual worlds.
Looking at a virtual world from this perspective can lead to the development of a universal protocol: an HTTP for virtual worlds. There are few who would dispute the usefulness of HTTP in the development of the World Wide Web. The presence of a well-defined protocol has enabled various groups to develop client software (browsers, for example) and server software (web servers, for example) which work together. Closed-source servers work just fine with open-source clients, and vice-versa; one company’s client software works well with another company’s server software. One of the aspects of HTTP which enables this interoperability is its simplicity. HTTP is a very simple protocol and is concerned with the mechanism of transferring commands and content from one place to another, rather than with the meaning or structure within the content.
For more information please visit http://greenphosphor.com/?location=Developers
Darkstar, OpenSim, realXtend, wonderland
