Description

The Metaverse is a federation architecture and protocol for virtual worlds that supports the seamless transfer of user agents and assets between them. This Reference Guide explains the Metaverse for implementers.

One core design principle of the Metaverse is that it is entirely a server-side-to-server-side federation. Clients are assumed to be relatively passive elements that interact only with the server side authority that the user is currently visiting. All interactions between a client and another virtual world are proxied by the virtual world that the client is currently connected to. This is opposed to other architectures where clients play a more active role in maintaining connections to several server-sides. This design decision comes as a pragmatic necessity given the clients that the Metaverse browsers.

The Metaverse consists of a number of services that can be added to a virtual world, each one establishing a federation for that particular kind of service. In the Metaverse, interoperation between virtual worlds is triggered by the use of Universal Unique Identifiers which include a domain of origin. These UUIs are given to the virtual worlds either explicitly by direct input from users or implicitly as user agents move from one virtual world to another. User agents carry with them "bags of references" to entities that may be outside the virtual world that they are currently visiting.

Purpose: this is a protocol discovery service. In principle, this is the only service whose network API must be agreed upon throughout the Metaverse; all other services' network APIs can, in principle, be different for the same types of services. This gives a lot of flexibility to each virtual world implementer and the Federation itself, as there is no need to establish network-level standards, only abstract service interface standards. Authorities invoke this service upon needing to interact with a new authority for the first time in order to discover the mechanism by which the interaction can take place. The Helo service plays a similar role to that of Web Services Description Languages (WSDL), but it is a much more concise, and consequently less flexible, mechanism than WSDL.