Service Provider

From Virtual World Web Wiki
Jump to: navigation, search

The Service Provider is an IIS-hosted .NET web service that coordinates a world operator's VWW network. It is a part of Layer One of the virtual world web infrastructure.

Responsibilities

The Service Provider is responsible for orchestrating the world operator's network. It receives configuration commands from the Admin Web, API messages from Instance Hosts and messages from Root Services and integrates changes into the main database. Below are some of the major areas of functionality.

Master DB Writer

The Service Provider is responsible for making any changes to database data. Although all Layer One services have access to the main database, they are generally expected to read data only. All methods on the Layer One API that change data are routed to the service provider where they are execute and change notifications sent.

Message Router & Change Notifier

When data is changes that might interest Instance Hosts, change notifications are sent. A complex system exists to help avoid broadcasting change notifications to every instance host on the network unless a particular host should be interested.

The Service Provider also maintains messaging channels that Components can use to broadcast messages to other instances of themselves running on Instance Hosts.

The Service Provider hosts chat channels with a scope larger than instance general chat. This includes private user-to-user channels, group channels, and Entities or Worldspace scoped channels. Messages on these channels generally originate from a user connected to an Instance Host and are routed to the service provider and from there to each other Instance Host with a user in that channel.

Instance Host Coordinator

The Service Provider balances load across possibly many Instance Hosts by deciding which should host a new instance. Least loaded servers are chosen first until balance is achieved. As users navigate from scene to scene, it is the service provider that chooses the most appropriate instance of that scene to route the user to, instructing Instance Hosts to start new instances when needed.

Component Host

The Service Provider loads all Layer Two Components and notifies them when Layer One objects change. Components can take part in authentication, message routing, the Transfer System and much more. See the Component Programming Guide for more on components.

Public API

The Public API is the first point of interaction for a connecting client. Root Services refers a connecting user to this API endpoint which helps the client get a list of available Instance Hosts to connect to.

Remote API

The Remote API is the main programming interface for trusted applications that work in concert with your world to provide a complete service to the end user. Typical users of this API include:

  • Your main website front-end where a user creates their account, possibly pays for access, etc.
  • Your billing software, if it needs to make changes to group memberships.
  • Component development and publishing pipeline.
  • Automated content export pipeline.

Peer Link API

Used almost exclusively by the Transfer System, this API lets two service provider networks that trust each other, transfer content. This connection forms the basis for a development, staging, and production content publishing pipeline.

Root Link API

Used by Root Services to send language translation updates and route account-level user messages.