Hypergrid Protocol

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(Teleport of an agent into a foreign grid)
(Teleport of an agent into a foreign grid)
Line 45: Line 45:
 
# Gatekeeper service authenticates with source grid's User Agent service that user agent originates from there.
 
# Gatekeeper service authenticates with source grid's User Agent service that user agent originates from there.
 
# Gatekeeper service notifies destination region that a connection is incoming.
 
# Gatekeeper service notifies destination region that a connection is incoming.
# Destination region waits for initial client seed [[capabilities]] connection.
+
# Destination simulator waits for initial client seed [[capabilities]] connection.
 
## On receipt verifies client with source grid's User Agent service that user agent originates from there.
 
## On receipt verifies client with source grid's User Agent service that user agent originates from there.
 
## In the simulator this point is indicated in the log with a message such as ''"[SCENE]: Incoming client Joe Bloggs in region my-region via HG login"''.
 
## In the simulator this point is indicated in the log with a message such as ''"[SCENE]: Incoming client Joe Bloggs in region my-region via HG login"''.

Revision as of 16:30, 1 December 2014

Contents

Introduction

This page begins to describe the protocol level details for Hypergrid. It will apply only to Hypergrid 2.0 and later.

Components

Grid Services

Gatekeeper service

  • Provides information to callers about Hypergrid accessible regions on the grid.
  • Controls and manages user agent access to the grid - similar to the login service for non-Hypergrid users.
    • Authenticates an incoming connection with the source grid's User Agent VerifyAgent call.

User Agent service

  • Provides a VerifyAgent call so that the Gatekeeper service can authenticate that an incoming user agent originates from its given source grid.

Simulator

As source of teleport

  • Initiates teleport process once requested by a viewer.
    • Makes contact with destination grid's gatekeeper service.
    • On approval, signals client to begin teleport and starts hand off to source region.
      • Part of this is sending attachments information over to the foreign region.

As destination of teleport

  • Verify's user agent with source installation's User Agent service.
  • Relays inventory requests to home grid inventory service.
  • On rezzing objects, inspects referenced assets and requests from home grid asset service.
    • If assets can be imported, then copies to local asset service.

Viewer

  • Speaks to the current and target simulators using LLUDP and capabilities.
  • No interation with grid services to complete teleport.

Protocol Flow

Teleport of an agent into a foreign grid

  1. Gatekeeper service receives a request from the source grid for information about a region with a given UUID.
  2. If the gatekeeper can find the region in the grid service, the details are returned to the requester.
    1. The most crucial is the ExternalHostName and InternalPort (a misleading name as it is also the external port) as set up in the Regions configuration file. This is the address (along with the simulators HTTP port) that the viewer will use to transfer to the destination region from its source region.
    2. If teleporting direct to regions is disallowed by the grid then the a gateway region may be returned instead.
    3. If the region is not found then a failure response is returned.
  3. Gatekeeper service receives login request for a given agent (e.g. Joe Bloggs @ http://grid-source.com:8002).
  4. Gatekeeper service authenticates with source grid's User Agent service that user agent originates from there.
  5. Gatekeeper service notifies destination region that a connection is incoming.
  6. Destination simulator waits for initial client seed capabilities connection.
    1. On receipt verifies client with source grid's User Agent service that user agent originates from there.
    2. In the simulator this point is indicated in the log with a message such as "[SCENE]: Incoming client Joe Bloggs in region my-region via HG login".
    3. Hence, the home grid of the incoming agent must have a UserAgent service that is reacahable by the simulator receiving the connection.
    4. If verification is successful, then one would see a simulator debug log message such as "[SCENE]: User Client Verification for Joe Bloggs in my-region returned true".
    5. If verification fails (almost always because the user agent service could not be contacted), then one would see a simulator debug log message such as "[SCENE]: User Client Verification for Joe Bloggs in my-region returned false". The user will be denied access to the region.
  7. Destination simulator receives incoming attachments for foreign agent.
Personal tools
General
About This Wiki