Hypergrid Implementation/fr

= Introduction =  Cette information est obsolète. Voir Hypergrid Glossary/fr pour un glossaire très incomplet des termes Hypergrid.

= Sommaire des classes =

OpenSim.Server.Handlers.Hypergrid
Ces classes sont du code glue qui reçoit des messages externes pour invoquer les services Hypergrid.

OpenSim.Services.HypergridService
= Hyperlinks et les transferts d'agent  =

Quand vous établissez un lien entre votre opensim et un autre, un message est envoyé à cet opensim lui demandant des informations sur lui même; les informations requises incluent les informations de réseau de cette machine opensim et les coordonnées de sa première région sur sa grille locale sous la forme d'un handle de région. Par exemple, supposez que vous reliez le noeud X.com:9000 en le placant sur votre carte locale en 900,900. Qu'opensim lance une ou plusieurs régions qui ne sont pas en 900,900 sur leur propre carte; supposez que la première région de la grille est sur 1100;1100. Depuis votre point de vue, peu importe quelles sont ces coordonnées et vous n'avez pas besoin de le savoir-- ceci est la clef pour être capable de commencer à décentraliser le monde comme donné dans une carte 2D: vous voulez la placer sur votre carte à 900,900. La véritable position de ce simulateur dépend essentiellement du client LL, quand il y a des téléports entre votre monde et cet autre opensim. Ce mapping entre les systèmes de coordonnées est l'essence des hyperliens pour opensim.; cette chose simple mais critique que fait l'implémentation hypergrid. Le mapping se passe sur l'évènement TeleportFinish; à la place d'envoyer les coordonnées locales au client, l'encapsulage du téléport hypergrid envoie les coordonnées distantes.

Quand un agent se téléporte à travers cet hyperlien, voici ce qu'il se passe. Premièrement, avant InformRegionOfChildAgent, l'opensim local informe l'opensim distant sur cet utilisateur via la méthode "expect_hg_user". Ce message envoie les adresses de tous les serveurs qu'utilise cet utilisateur, comme les serveurs d'utilisateur, d'inventaire et d'assets. L'opensim distant place une entrée pour cet utilisateur dans son cache de profil utilisateur local mais pas dans sa base de données utilisateurs; les informations de l'utilisateur étranger ne sont pas persistantes. Apres cela, le processus de téléport est exactement le même que le processus de teleport normal; la seule différence est que les region handles sont basculés entre la région distante sur la grille locale et sa position actuelle sur la grille.

En résumant, les deux nouveaux concepts introduits par hypergrid sont le concept d'un hyperlien et le concept d'un "utilisateur local" par rapport à un "utilisateur étranger".

= Accès à l'inventaire =

L'accès à l'inventaire depuis l'extérieur est effectué en encapsulant le scene-inventory existant avec du code additionnel qui prend ou donne les assets d'inventaire depuis/vers le serveur d'assets de l'utilisateur. Quand l'inventaire est accédé, l'encapsulation hypergrid verifie si l'utilisateur est étranger et si il l'est, l'encapsulation donne simplement les assets nécessaires depuis le serveur d'assets de l'utilisateur au cache local d'assets du serveur; à partir de là, l'encapsulation passe le contrôle aux fonctions existantes d'accès à l'inventaire.

Quand quelque chose est ajouté à l'inventaire, l'encapsulation hypergrid est informée par un évènement et poste les assets au serveur d'assets de l'utilisateur. Un cache des identifiants d'éléments échangés est maintenu afin qu'ils ne soient pas récupérés en boucle.

Le résultat est que les instances hypergridées de opensim finissent par interagir avec plusieurs serveurs d'assets à la place d'un seul. Cette interaction est implémentée d'une manière france en instantiant différents objets GridAssetClient à la place d'un seul.

= Accès aux assets = Dans la version 0.9.2, les modules de région LocalAssetServiceConnector, RemoteAssetServiceConnector et HGAssetBroker ont été remplacés par un seul module RegionAssetConnector. (LocalAssetServiceConnector est actuellement toujours présent mais seulement utilisé sur certains tests, à changer dans le temps). Cette modification rend le code plus lisible avec des chemins de code et de données plus propres. Le comportement selon le type de simulation dépend de la sélection des connecteurs de niveau inférieur qu'il est configuré pour utiliser. comme défini dans la section [AssetService] du fichier ini du type de région respectif( autonome, grille, avec ou sans région HG) LocalGridAssetService définit l'accès de niveau inférieur au stockage, soit directement au service d'assets de la grille dans le cas de standalones, soit via un connecteur dans le cas de la grille. HypergridAssetService active le stockage HG et définit le connecteur à utiliser, c'est-à-dire HGAssetServiceConnector dans une configuration normale.

versions antérieures:  Dans une installation normale non Hypergrid d'OpenSimulator, il faut soit


 * LocalAssetServiceConnector (pour standalone) par spécification dans la section [Modules] de bin/config-include/Standalone.ini
 * ou RemoteAssetServiceConnector (pour la grille) par spécification dans la section [Modules] de bin/config-include/Grid.ini.

Ils sont enregistrés dans la scène (via Scene.RegisterModuleInterface). Ces deux interfaces implémentent IAssetService. Les autres modules peuvent ensuite les récupérer via l'appel Scene.RequestModuleInterface.

Dans une configuration Hypergrid, HGAssetBroker est enregistré à la place dans la scène. Cette implémentation de IAssetService contient une logique pour déterminer si un asset demandé peut être fourni depuis le cache, s'il s'agit d'un asset hébergé localement ou s'il doit être récupéré depuis une grille distante, etc. Une logique similaire est présente pour les autres méthodes IAssetService (par exemple, store).

Les demandes qui doivent être transmises à des services de ressources étrangers sont ensuite transmises à une instance interne de HGAssetServiceConnector.

HGAssetBroker contient également du code permettant de déterminer si une configuration de sécurité doit empêcher l'importation ou l'exportation de certains actifs.

=Amis =

Veuillez vous référer à Hypergrid Friends.