Ryzom服务架构

来源:互联网 发布:支付宝五福红包算法 编辑:程序博客网 时间:2024/06/05 15:41
Ryzom服务架构(Aervice Architecture)
(参考英文链接:http://dev.ryzom.com/projects/ryzom/wiki/ServiceArchitecture)

术语
服务器(Server):指物理服务器
服务片区(Shard):指Ryzom世界的一个实例。当前,Ryzom有三个服务片区,一个面向法语社区,一个面向德语社区,最后一个是面向说英语的人。所有的服务片区都是独立的,他们之间几乎没有任何网络连接。
服务(Service):一个服务指的是一个可执行程序,它在服务器上运行。例如,我们有一个用于管理AI的服务。我们也可以在Windows服务器和Linux服务器上创建不均匀分布的服务片区,因此一些服务在Windows上运行而另外一些则跑在Linux上。

Ryzom的架构是完全模块化的。在2004年,一个Ryzom服务片区需要8台服务器来运行,而现在由于计算机性能的飞升,一个这样的服务区在一台单独的服务器上就能够跑起来了。

Ryzom服务
以下是Ryzom的服务和简要介绍:

AES(启动管理服务):一台物理服务器只能有一个AES。它通过启动、停止、查询这台服务器上的的各种服务来管理服务区
AS(管理服务):一个AS服务用于定位所有的AES,它是接收和发送AES指令的中心点。
AIS(AI服务):一个服务区可以配置一个或这个多个AIS,这个服务的目的在于处理Ryzom世界中的人工智能(AI)。一个AIS负责一个地理区域,例如,在Ryzom中我们有6个AIS,一个大陆配置一个。
BMS(备份管理服务):所有服务区配置有两个BMS(一个主服务和一个副服务)。他们管理诸如玩家角色、工会等数据的保存和加载,数据保存在特殊的文件格式之中。
EGS(实体游戏服务):一个服务区配置一个EGS,它管理所有玩家的状态、运行游戏逻辑规则、任务、物品、工会等等,可以说它是一个中心服务!
GPMS(全局定位管理服务):一个服务区配置一个,通过它能查询所有实体(包括玩家、NPC等等)的位置,它也负责碰撞检测。
IOS(输入输出服务):一个服务区一个,管理所有的聊天、文本、本地化等操作。
NS(名称服务):一个服务区一个,这是一个用于定位其他服务的底层服务。通过它可以查询那些服务启动了,各种服务的端口,就像黄页一样。
WS(欢迎服务):一个服务区一个,用于登录过程,该服务检查玩家数据并路由玩家连接到空闲的FES。
TS(时钟服务):一个服务区一个,这是一个用于管理游戏时间和同步其他服务的简单服务。
MS(镜像服务):一台服务器配置一个。这个服务使用共享内存和网络通信来跨服务器同步数据,因此所有的服务都能够高效地访问所有需要数据。
SU(区域统一服务):全局一个,用于管理牵涉多于一个区域的事务。例如,从一个区域传送玩家到另一个区域。这个服务也用于处理玩家登录。
FES(前端服务):一个服务区可以配置一个或者多个前端服务。它是Ryzom客户端的接口,处理客户端的信息并且路由他们到合适的服务上。假如一个服务区配置了两个FES,那么客户端连接的量在两个FES上均分。
SBS(会话浏览服务):和FES数量相同,用于管理各种会话(Session)事务(主要用于Ring系统)。
PDSS(持久数据服务):该服务用于定期备份角色数据到磁盘文件,也用于提取某些统计和测试信息。