Ryzom Service Architecture
Service Architecture
Terminology
- Server: We often use this word to refer to physical server.
- Shard: This is an instance of the Ryzom universe. Currently, we have 3 shards, one for the French community, one for the German one and the last one for people who speak English. All shards are independent and there's almost no link between shards.
- Service: A service is an executable, that is running on Servers. For example, we have a service that manage the AI. We can create heterogeneous shards with some Windows server and GNU/Linux server where some service will run on the Windows and other on the GNU/Linux.
The architecture is completely modular. In 2004, a Ryzom shard ran on 8 servers and now with the power of new computer we can run the same shard on a unique server.
Ryzom Services
Here is a list of what the services do in Ryzom:
- AES (Admin Executor Service) : There's one AES per physical server. It manages the shard by launching other services on the server, kill them, get some information about the services.
- AS (Admin Service) : There's one AS that coordinate all AES. It's the central point to get/send command to AES.
- AIS (AI Service) : We can have one or more AIS per shard. The goal of this service is to handle the AI in Ryzom. An AIS is responsible for a geographic area. For example, in Ryzom, we have 6 AIS, one per continent.
- BMS (Backup Manager Service) : There's 2 BMS (a master and a slave) for all the shards. They manage the saving/loading of data like player characters, guilds... Data are saved in the hard disk using specific file format.
- EGS (Entities Game Service) : One per shard. It manages all players state, game play rules, missions, items, guilds, ... It's a central point service.
- GPMS (Global Position Manager Service) : One per shard. It knows where all entities (players, ai) are and check collision.
- IOS (Input Output Service) : One per shard. Manage all chats, texts, localizations...
- NS (Naming Service) : One per shard. It's a low level service that coordinate all other services. It knows which services are launched, on which port, it's like a yellow page.
- WS (Welcome Service) : One per shard. Used in the login process, this service check and route the player to the good FES.
- TS (Tick Service) : One per shard. A simple service that manage the game time and sync all services.
- MS (Mirror Service) : One per server. A service that use shared memory and communication to sync data across servers so all services can access quickly to all necessary information.
- SU (Shard Unifier Service) : One. Manage the things that are not related to a specific shard. For example, teleporting a player from a shard to another shard. Also manage the login of players.
- FES (Front End Service) : One or more per shard. It's the interface with the Ryzom client. It handles the messages and route them to the necessary service. If you have 2 FES on a shard, clients connection will be spread equally on both service.
- SBS (Session Browser Service) : Same number as FES. It manages sessions (mainly used by the Ring).
- MFS (Mail Forum Service)
- LGS (LogGer Service)
- DSS (Dynamic Scenario Service)
- PDSS (Persistent Data Service) : Create some archive to backup regularly the stored files that contains player character information and also be able to extract some information to do some stats or tests. (not use)
- MOS (MOnitor Service) (not use)
- LAS (Log Analyser Service) (not use)
- RBS (Reference Builder Service) (not use)