Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Open Simulator Technical Help
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
OpenSimulator Internals/ROBUST Services
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
= OpenSimulator Internals/ROBUST Services = All service interfaces are in OpenSim.Services.Interfaces. ROBUST services fall into two categories: those that must run in the same process instance, and those that can be split across machines and load-balanced. ---- == Must Stay in Same Instance == These services share state and have dependencies on each other. Running them in separate instances will cause data conflicts. {| class="wikitable" ! Service !! Notes |- | [[OpenSimulator Internals/PresenceService|PresenceService]] || Who is online, which region, current session. Maintains a cache. Multiple instances would give conflicting answers. |- | [[OpenSimulator Internals/UserAgentService|UserAgentService]] || Manages the user agent when traveling via HyperGrid. Handles trust verification between grids. |- | [[OpenSimulator Internals/AgentPreferencesService|AgentPreferencesService]] || Per-user preferences such as hover height and language setting. |- | [[OpenSimulator Internals/GridUserService|GridUserService]] || Home region, last login location, online status. Must update atomically with PresenceService on login and logout. |} ---- == Can Be Split and Load-Balanced == These services are stateless and can run on separate machines behind a load balancer such as nginx. {| class="wikitable" ! Service !! Notes |- | [[OpenSimulator Internals/AssetService|AssetService]] || Stores and serves asset blobs (textures, meshes, scripts, notecards, etc.). Intentionally dumb -- no referential awareness. Two storage backends: database blob (default) or FSAssets (recommended above 50GB). |- | [[OpenSimulator Internals/InventoryService|InventoryService]] || User inventory. Folder tree and item references. Permissions live here, not in the asset table. |- | [[OpenSimulator Internals/GridService|GridService]] || Region map. Handles region registration on startup and deregistration on shutdown. Answers queries for region location and coordinates. |- | [[OpenSimulator Internals/UserAccountService|UserAccountService]] || User account storage. Name, email, user level, flags. |- | [[OpenSimulator Internals/AuthenticationService|AuthenticationService]] || Login authentication. Core implementations are password and webkey. |- | [[OpenSimulator Internals/GroupsService|GroupsService]] || Groups. Core groups service is not enabled by default. External XmlRpc/Flotsam groups service is the common alternative. |} ---- == Additional Services == {| class="wikitable" ! Service !! Notes |- | [[OpenSimulator Internals/AvatarService|AvatarService]] || Avatar appearance, height, attached items. |- | [[OpenSimulator Internals/AuthorizationService|AuthorizationService]] || Always returns authorized. No database, no configuration, no logic. A stub. Actual access control (ban lists, parcel restrictions, estate settings) is handled in region code, not here. |- | [[OpenSimulator Internals/FriendsService|FriendsService]] || Friends list, friendship requests, permissions granted to friends. |- | [[OpenSimulator Internals/MapImageService|MapImageService]] || Stores and serves map tile images. Stored on filesystem, not in the database. |- | [[OpenSimulator Internals/LoginService|LoginService]] || Handles user login. Implements the LL login protocol. |- | HyperGrid services || Override normal services (asset, inventory, etc.) with HyperGrid-specific functionality. |} ---- == Simulator Services == These run per-simulator rather than on ROBUST. See [[OpenSimulator Internals/Data Dictionaries#Simulator_Services|Simulator Services]] for interface details. {| class="wikitable" ! Service !! Notes |- | Land || Parcel data for a specific simulator. Read only. |- | Library || Library items and folders. Currently per-region, should be a grid service. Data from filesystem. |- | Simulation || General simulation functions: create agent, update agent, create object. Used for login-to-simulator and simulator-to-simulator communication (teleport, region crossing, moving objects between regions). |} ---- == See Also == * [[OpenSimulator Internals/Data Dictionaries]] * [[OpenSimulator Internals/Connector Architecture]]
Summary:
Please note that all contributions to Open Simulator Technical Help may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Open Simulator Technical Help:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
OpenSimulator Internals/ROBUST Services
(section)
Add topic