欢迎来到Simtown.cn---SIM城镇

2007年12月27日星期四

Second Life服务器端体系架构简介

Second Life服务器端由下列部分组成:6大类服务器、协议、验证流程。
6大类服务器:

(1) Login server 登陆服务器

(2) User server 用户服务器

(3) Space server 空间服务器

(4) Data server 数据服务器

(5) Simulator 模拟器

(6) Other servers 其他服务器(包含若干不同功能服务器,Linden似乎对它们的详情有所保留)



Login server登陆服务器是运行在login.agni.lindenlab.com上的CGI(通用网关接口)脚本。顾名思义,用来验证用户名和密码的。验证后还要决定用户登录到什么区域:用户的家、上次离开SL时的区域或者URL指定的某个区域。接下来要找到运行该区域的模拟器,验证用户是否被允许连接到该区域。最后向模拟器发出连接请求,并告知客户端连接到何处。

User server用户服务器曾被用来处理用户登录(即登陆服务器现在的功能)。现在负责管理即时通讯(instant message)会话,尤其是组内即时通讯。

Space server空间服务器处理基于不同网格X,Y坐标间消息的路径选择。模拟器与空间服务器会话以便被其登记在案,还可以发现自己的邻居是谁。(作用与网络概念中路由器相仿)

Data server 数据服务器处理与中心服务器,日志服务器,仓库服务器s以及搜索服务器s的连接。(上述4种服务器属于第6类Other servers 其他服务器)。代表模拟器运行查询。注:原文中心服务器,日志服务器使用单数,而仓库服务器以及搜索服务器使用复数。这可能意味着SL grid中只有一个中心服务器,日志服务器,而仓库服务器以及搜索服务器分别有多个,或者在某个范围内,前两者与后两者分别是一对多的关系。



Simulator 模拟器这是SL最主要的服务器。每个模拟器模拟一个256*256平米的整块区域。当SL客户端浏览器满虚拟世界转悠时,它实际上是在不同的模拟器间被倒手。模拟器的任务有:存储物体状态,土地状态,地形海拔图状态。模拟器还负责计算物体和土地的能见度,并把计算数据传送给客户端。模拟器还使用优先级队列传送图像数据。还有一种物理学模拟器专门掌管Hovak物理学例库。公共谈话(Chat)和即时通讯(instant message)也由模拟器处理。

全速运行时,模拟器可达每秒45帧,如果不能保持全速,它将在不减低帧速率的情况下尝试时间膨胀(物理学名词)。

模拟器两两之间以UDP回路进行通信。此回路是指UDP网络连接。回路由相邻模拟器保持。

注:简单地说物理学模拟器负责物理学相关的运算,比如重力加速度的效果,不同物体的空间占位关系等。Hovak是服务器端系统(grid)的代号,即将发布的是Hovak4。

Simulator (模拟器)与Viewer(客户端浏览器)

这一段是为了让大家理解模拟器客户端浏览器的不同分工,因为在Second Life中这种区别与其他虚拟环境差异较大:

模拟器的工作:运行物理引擎,碰撞检测,跟踪每一事物和化身的位置,将物品的位置发送给客户端,必要时将更新的数据发送给客户端(只有当发生碰撞或者方向和速度变化等情况下才会有这种更新)。

客户端的工作:处理本地物品的位置,获取速度等物理学信息,进行简单的物理学运算以跟踪何物向何处移动。不进行碰撞检测。

Other servers 其他服务器(包含若干规模较小的服务器)

中央枢纽(注:原文没有给出说明,但根据字面意思推断,应当与全局通讯、调度以及分布式运算有关。)

代理数据库掌管元数据与项目id(UUID)之间的映射。

中心数据库存储谁拥有什么,用于记录账单。(注:远不止这么简单)

搜索数据库中心数据库的副本,用于搜索。(注:可以断定,为了提高搜索效率,此数据库一定保有大量索引。而中心数据库为了保证数据写入和修改的效率,定要使用较少索引。)

地图服务器使用OpenGL绘制全局地图。

RPC服务器 XML RPC(远程过程调用)服务器包含:开发者需要的,不通过客户端浏览器来操作Second Life的API(应用程序接口)。将XMLRPC服务器代码翻译为in-world请求。与空间数据库和中心数据库通讯。

没有评论:

欢迎来到Simtown.cn---SIM城镇