Hypergrid Protocol

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(As source of teleport)
 
(13 intermediate revisions by one user not shown)
Line 1: Line 1:
=Introduction=
+
{{Quicklinks}}
  
'''This page is extremely incomplete as of this time'''
+
=Introduction=
  
 
This page begins to describe the protocol level details for Hypergrid.  It will apply only to Hypergrid 2.0 and later.
 
This page begins to describe the protocol level details for Hypergrid.  It will apply only to Hypergrid 2.0 and later.
Line 28: Line 28:
 
=== As destination of teleport ===
 
=== As destination of teleport ===
 
* Verify's user agent with source installation's User Agent service.
 
* 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 ==
 
== Viewer ==
Line 36: Line 39:
 
= Protocol Flow =
 
= Protocol Flow =
 
== Teleport of an agent into a foreign grid ==
 
== Teleport of an agent into a foreign grid ==
* Gatekeeper service receives a request from the source grid for information about a region with a given UUID.
+
# Gatekeeper service receives a request from the source grid for information about a region with a given UUID.
* Gatekeeper service receives login request for a given agent (e.g. Joe Bloggs @ http://grid-source.com:8002).
+
# If the gatekeeper can find the region in the grid service, the details are returned to the requester. 
* Gatekeeper service authenticates with source grid's User Agent service that user agent originates from there.
+
## 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.
* Gatekeeper service notifies destination region that a connection is incoming.
+
## If teleporting direct to regions is disallowed by the grid then the a gateway region may be returned instead.
* Destination region waits for initial client seed [[capabilities]] connection.
+
## If the region is not found then a failure response is returned.
** On receipt verifies client with source grid's User Agent service that user agent originates from there.
+
# Gatekeeper service receives login request for a given agent (e.g. Joe Bloggs @ http://grid-source.com:8002).
* Receives incoming attachments for foreign agent.
+
# 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.
 +
# Destination region waits for initial client seed [[capabilities]] connection.
 +
## 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"''.
 +
## Hence, the home grid of the incoming agent must have a UserAgent service that is reachable by the simulator receiving the connection.
 +
## 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"''.
 +
## If verification fails (often because the home grid's 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 sending region will log the message ''"Failed to verify user presence in the grid for Joe Bloggs, access denied to region myregion."''
 +
# Destination region receives incoming attachments for foreign agent.
 
[[Category:Hypergrid]]
 
[[Category:Hypergrid]]

Latest revision as of 21:53, 23 July 2021

Contents

[edit] Introduction

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

[edit] Components

[edit] Grid Services

[edit] 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.

[edit] 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.

[edit] Simulator

[edit] 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.

[edit] 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.

[edit] Viewer

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

[edit] Protocol Flow

[edit] 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 region 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 reachable 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 (often because the home grid's 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 sending region will log the message "Failed to verify user presence in the grid for Joe Bloggs, access denied to region myregion."
  7. Destination region receives incoming attachments for foreign agent.
Personal tools
General
About This Wiki