Services/de
From OpenSimulator
Einführung
OpenSimulator kann konzeptionell in den Simulator selbst (der Teil, der Objekte und Avatare in der Szene, Physik, Gelände usw. handhabt) und eine Reihe von Diensten (Assets, Inventar usw.) unterteilt werden, die das Grid-weite Speichern und Abrufen von Daten handhaben . Simulatorspezifische Daten (z. B. Objektpositionen, Priminventarinhalte) werden im Simulator selbst gespeichert.
In der Standalone-Konfiguration laufen Simulator und Dienste im selben Prozess (OpenSim.exe). Im Grid-Modus läuft jeder Simulator in einem separaten Prozess (OpenSim.exe) und stellt eine Verbindung zu einer oder mehreren ROBUST-Shells (Robust.exe) oder einer alternativen Dienstimplementierung her, die die Dienste hosten. Siehe Configuration#Standalone_vs._Grid für eine schematische Ansicht.
Jeder Dienst ist zustandslos – mit anderen Worten, einzelne Anforderungen haben keine Beziehung zueinander, sodass die Last auf mehrere Kopien eines bestimmten Dienstes (z. B. Inventar) verteilt werden kann.
Die meisten Dienste sind Grid-Dienste (dh jeder Simulator verbindet sich mit ihnen in einem Hub-Spoke-Muster). Einige Dienste (Simulatordienste) werden jedoch von jedem Simulator implementiert, wenn ein Simulator Daten von einem anderen anfordern muss (z. B. Landdaten).
Grid-Dienste
Hier ist eine Tabelle mit jedem Grid-Service in OpenSimulator und seiner Funktion. Alle Dienstschnittstellen befinden sich im Paket OpenSim.Services.Interfaces. Weitere Informationen zu den Datenbanktabellen, die diese Dienste unterstützen, finden Sie unter Database:Documentation.
Service | ROBUST database tables | Description |
---|---|---|
Asset | assets | Stores asset data (textures, serialized objects, scripts, etc.) and provides this on request |
Authentication | auth, tokens | Handles login authentication. Core implementations are password and webkey. |
Authorization | none | Checks if the user is authorized to enter a given region |
Avatar | Avatars | Holds avatar appearance, height and which items are attached. |
BasicProfile | n/a | Stub basic profile service. Currently unused (?). |
Freeswitch | n/a | Freeswitch voice service. Very low quality voice as the viewer falls back to a debug codec - not freeswitch's fault. |
Friends | Friends | User friends data storage |
Grid | regions | Holds region information for a grid. Simulators register here on startup. |
GridUser | GridUser | Records status information for a user on a grid, including home position, last position (set on logout) and whether they are online or not. On a non-Hypergrid setup, each grid user will have a user account. The online information is likely to be less accurate than the presence service, which is updated more frequently. Information is added (when a user first becomes a root agent on any simulator in the grid) but never removed, so the record of the last login to the grid remains when they have logged out. |
Groups | os_groups_* (core groups) | Groups service. OpenSimulator both has a core groups service which is not yet enabled by default and an external XmlRpc/Flotsam groups service. |
HG* | n/a | Hypergrid services. These usually override 'normal' services (e.g. asset, inventory) with some Hypergrid specific functionality |
Inventory | inventoryitems, inventoryfolders | User inventory storage |
Login | n/a | Handles user login. OpenSimulator implements an LL login service. |
MapImage | stored on filesystem | Stores and provides main map image tiles. |
Presence | Presence | Records user sessions and the region location of a particular session. Entries normally exist only for users that are online, though if a client has crashed the presence may remain until the simulator they occupied times out the connection. However, this is more accurate than the online information recorded in GridUser. Used for instant message routing, amongst other things. |
UserAccount | UserAccounts | User account storage (avatar name, service URLs, user level, flags, etc.) |
Simulator Services
Here is a table of each simulator service in OpenSimulator and its function. All service interfaces are in the package OpenSim.Services.Interfaces.
Service | Description |
---|---|
Land | Provides land data for a particular simulator. Read only. |
Library | Library items and folders. This is currently implemented per region but should really be a grid service. Data comes from the filesystem. |
Simulation | General simulation functions (create agent, update agent, create object, etc.). User in both login service -> simulator comms (e.g. login service creating an agent at a target region) and simulator -> simulator comms (e.g. teleport, updating child agents, moving objects between regions, etc.). |