Instance Host

From Virtual World Web Wiki
Jump to: navigation, search

The Instance Host is an IIS-hosted .NET web service that accepts client connections and hosts run-time virtual world instances. It is a part of Layer One of the virtual world web infrastructure.

Responsibilities

The Instance Host represents a unit of scalability on a world operator's network. It hosts Instances of Scenes and provides connected users with a shared experience. Below are some of the major areas of functionality.

Client Connection Handler

After a brief interaction with Root Services and then the Service Provider, clients are eventually routed to an Instance Host where they establish a persistent TCP connection. Via this connection, protocol messages exchange information necessary for the user experience.

Resource Server

Instance Hosts serve game resources (scene files, textures, models, and other media) directly to users. They also accept file uploads from users who are involved in creating content.

Instance Host

Sounds redundant, but the main function of the Instance Host is to host Instances. An instance is the run-time manifestation of a Scene. Scene instances generally have a maximum user capacity, beyond which another instance of the same scene will need to be created, possibly on another Instance Host, to help balance load and provide an acceptably performant experience to the user.

Script Host

Each instance hosts a V8 JavaScript isolate in which Scripts can run to add interactivity and automation to the world (See the World Scripting Guide for more). Scripts are introduced through the Document Object Model which describes a scene's contents. Layer Two Components can extend this scripting environment to add any kind of functionality.

Component Host

The Instance Host loads all Layer Two Components and notifies them when various connection, instance, and interaction events take place. Components can take part in every part of the user experience. Indeed, component ultimately provide most of the "end user experience", essentially defining the functionality of the world. See the Component Programming Guide for more on components.