Connectors/fr

Vue d'ensemble
Il y a jusqu'à 5 composants impliqués dans le code de connexion du simulateur vers un service de grille. Ils sont

Exemple
Regardons le service des assets. Le connecteur du service d'assets est disponible en tant que propriété de Scene.AssetService dans l'objet Scene (les références directes ne sont pas toujours disponibles - parfois le connecteur a besoin d'être requis à travers le mécanisme de Scene.RequestModuleInterface ).

Un appellant exécute la méthode Scene.AssetService.Get pour récupérer synchroniquement un asset.

Supposons tout d'abord que nous exécutons une configuration en standalone dans laquelle simulator et service sont dans le même process. Dans ce cas, l'appel du simulateur va vers LocalAssetServiceConnector.Get. Celui ci vérifie d'abord le cache et si l'asset n'est pas trouvé là bas, il appelle alors AssetService.Get. Le service AssetService récupère l'asset depuis le stockage persistant et le fais passer au code du simulateur.

Maintenant, supposons que nous exécutons une configuration en grille dans laquelle le service d'asset opère sur d'autres machines. Comme précédemment, le code du simulateur appelle Scene.AssetService.Get. Cette fois, l'appel est routé vers RemoteAssetServiceConnector.Get, qui dans ce cas hérite de OpenSim/Services/Connectors/AssetServiceConnector.

AssetServiceConnector.Get génère un appel HTTP vers http://yourassetserver/assets/assetId, où assetId est l'id de l'asset requis.

Celui ci saute à travers le réseau et est traité par OpenSim/Server/Handlers/Asset/AssetServerConnector. Il utilise son propre AssetServerGetHandler pour déballer la requête HTTP et appelle AssetService pour récupérer la donnée. Si l'asset est trouvé, alors il retourne l'asset en tant que XML prêt pour la dépaquetage par AssetServiceConnector. Si l'asset manque, alors il renvoie un code de statut HTTP 404.

Configuration
Les connecteurs sont configurés dans les fichiers de configuration de OpenSimulator. Pour les standalones, la configuration est dans bin/config-include/Standalone.ini. Les utilisateurs de standalone n'ont jamais besoin de changer ce fichier. Pour les utilisateurs de grille, la configuration est dans bin/config-include/Grid.ini et GridCommon.ini. Dans le cas de la grille, GridCommon.ini (apres avoir copié GridCommon.ini.example) est l'endroit où l'utilisateur spécifie les URLs pour chaque service de grille.

Standalone
Jetons un oeil dans Standalone.ini. Vous verrez qu'il y a une section Modules avec les lignes

[Modules] AssetServices          = "LocalAssetServicesConnector" InventoryServices      = "LocalInventoryServicesConnector" NeighbourServices      = "LocalNeighbourServicesConnector" ...

C'est l'endroit où les connecteurs sont spécifiés pour chaque service. Comme vous pouvez le voir, le service asset est désigné pour utiliser LocalAssetServicesConnector.

Un peu plus bas, vous pouvez voir la section

[AssetService] LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService"

C'est l'endroit où nous disons à OpenSimulator quelles DLL charger pour le service des processus entrant de asset.

Grille
Comparez ceci avec Grid.ini.

[Modules] AssetServices    = "RemoteAssetServicesConnector" InventoryServices  = "RemoteXInventoryServicesConnector" GridServices     = "RemoteGridServicesConnector" ...

Dans ce cas, le connecteur du service asset est désigné en tant que classe RemoteAssetServicesConnector.

La section [AssetService] n'est pas dans ce fichier car nous ne chargeons pas une classe de service directement (vu que le service est hébergé à distance). A la place, nous avons besoin de spécifier l'URL où le service d'asset est trouvé. Comme ceci sera différent pour différentes installations de grille il est dans le fichier GridCommon.ini qui est configurable par l'utilisateur.

[AssetService] ...   ;       ; change this to your grid-wide asset server ;      AssetServerURI = "http://myassetserver.com:8003"