计算机工程
COMPUTER ENGINEERING
1999年 第25卷 第10期 Vol.25 No.10 1999



分布式虚拟环境的几何数据管理
姜晓红　潘志庚　石教英
摘要：在分析现有分布式虚拟环境的数据几何复制方法之后，提出了多服务器/客户模式下采用分区管理几何数据的方法。这种方法既利用了数据集中管理便于管理实现的好处，又解决了单服务器/客户模式的服务器瓶颈问题。
关键词：分布式虚拟环境；服务器/客户模式；数据管理；负载平衡
Geometry Data Management for Distributed Virtual Environment
Jiang Xiaohong Pan Zhigeng Shi Jiaoying
(CAD&CG State Key Laboratory,Department of Computer Science,Zhejiang University,Hangzhou 310027)
【Abstract】This paper analyses existing geometry replicating methods for DVE,and presents a new subarea management strategy for multi Server/Client mode.Problems about load balance and data consistency are also discussed.
【Key words】Distributed virual environment;Server/Client mode;Data management;Load balance
1　简介
1.1 分布式虚拟环境
　　分布式虚拟环境(Distributed Virtual Environment，DVE)是高速发展的计算机技术与网络通信技术结合的产物。DVE的研究与开发最早开始于80年代初，最有代表性的是美国国防部为军事训练模拟资助开发的SIMNET系统，后来在其基础上制订的DIS协议 (Distributed Interactive Simulation)成了DVE系统的一项标准。由于DVE系统在军事、协同设计、多学科研究、远程教育、网上游戏等众多领域都有广泛的应用前景， 因此，各国政府和国际上一些著名的大学和研究所都开展了研究，开发了DVE实验系统或开发环境和工具，如美国NPS开发的NPSNET、瑞典计算机科学研究所的DIVE、加拿大Albert大学的MR工具库、英国Nottingham大学的AVIARY，以及著名的网络VR游戏Doom等。
　　DVE系统指分布在不同地理位置的用户可以通过网络在一个具有高度真实感的虚拟世界里实时地交互。因此DVE系统最基本特点是：共享虚拟空间(环境与资源)、虚拟空间的高度真实感和各用户间的实时交互性。
　　由于DVE系统对系统的交互性、实时性、真实感有较高的要求，同时各用户又要通过网络进行交互模拟和游戏，因此，网络通信的带宽、延时就成为DVE系统的主要限制,若进一步考虑系统的可扩展性,网络带宽和延时问题就更为突出。
1.2 图形数据分布处理方式
　　DVE系统中在网络上传输的主要数据均与图形、图象有关，因此分布式图形处理是DVE系统的关键技术之一。在分布式图形系统中，图形分布处理方式一般有3种模式：
　　(1) 基于图象：既图形的建模、几何转换、绘制均由一台主服务器完成，在各Client节点上显示的图象由网上传送。如分布式可视化系统中采用较多。这对网络的带宽有极高的要求。
　　(2) 即时绘制：即在网上传输的是几何转换的结果数据，由各Client节点调用绘制程序自行绘制。如PEX[1]就采用了这种模式。
　　(3)几何复制：几何数据库的备份存放于系统的各个节点上，由各应用进程调用进行几何转换和绘制。
2　现有几何数据管理方法
　　几何复制方法有多个变种,在DVE应用中使用得最为普遍，但都存在一些问题：
　　(1) 完全复制，分布管理。每个用户结点都有一个同类的(homogeneous)虚拟世界数据库, 存放整个虚拟环境的数据, 如场景、模型、动作(behavior)等, 还包括代表各用户的对象的状态信息。如SIMNET[2]。系统需初始化, 用户间的通信只需传递对象状态的改变信息。优点是消息较小,所需网络带宽较小；但不灵活, 可扩展性差, 因为一旦增加用户, 则每个用户的数据库都要作修改。另外为维护各数据备份的一致性开销也较大。
　　(2) 可以采用网络下载的方法，如VRML浏览器。但大规模的数据库导致下载时间很长，使得用户的等待时间过长，难以保证系统的实时性，进而影响系统的沉浸式效果。
　　(3) 网络模拟复制方法。如NPSNET[3]，整个虚拟环境没有集中数据库, 远程对象的信息是通过接受远程结点定期发来的对象状态消息包获得的，远程对象在本地的状态可根据该对象的盲导航(dead reckoning)模型计算预测, 而根据定期发来的状态改变消息包加以较正。实现了数据的松弛一致性(loose consistency)。这种方法具有网络通信量小、可扩展性好的特点。但这种适合于大规模模拟的方式对网络带宽相对较高的局域网不一定合适，也不适于描述大规模的翔实的静态场景数据。
　　(4) Client/Server模式。采用部分复制, 对虚拟环境数据库作划分, 数据分布在Client上,而用户间的通信通过一个中央服务器(Server)进行。如dVS, 数据修改由一个在服务器上的称作 Director的进程控制,各用户进程可以自由地修改本地数据,但为了向共享环境提交(commit)修改,必需向Director发送修改请求。显然当用户规模扩大后,服务器将很快成为系统的通信瓶颈，系统的可扩展性较差。
　　为了减少绘制代价，现在普遍采用了LOD(Level Of Detail)技术，采用几何复制意味着要复制所有LOD数据，尽管在绘制时有很多数据可能并不需要。在单服务器/客户模式下由服务器集中管理几何数据，而在Client上允许用户显示和游历整个VR数据库。基于Client只需实际要显示的数据的思想，不必在Client节点上复制整个数据库，只在Client需要它的AOI(Area Of Interest)区域内某个对象的某级LOD(Level Of Detail)数据时才向服务器发出数据请求。每个Client只保存其AOI区域中的对象信息。尽管这种数据传输方法减少了网络带宽需求，但仍存在服务器瓶颈和系统可扩展性差的问题。因为每当模拟对象移动时，Client都要向服务器发数据请求，服务器负责数据库的维护和所有Client的AOI的管理。这样一旦Client数增多、对象移动频繁或速度很快时，即使服务器的能力很强，也会很快成为系统的瓶颈。
　　为解决这个问题，同时也为了提高系统的可扩展性，所以DVE系统采用多服务器/客户模式。由多个服务器分区管理整个对象空间，Client根据需求向Server发数据请求，而Server间则采用完全几何复制的方法，既利用了集中管理的好处，又具有数据传输量小、系统可扩展性好的优点。
3　多服务器/客户模式DVE结构
　　DVE系统的硬件结构如图1。系统由多台服务器负责维护整个VE数据库并管理各客户的AOI区域，客户进程管理局部仿真活动，与I/O工具进行交互并完成图形绘制。

图1  多服务器模式下的分区数据管理方法
3.1 数据分区管理
　　在多服务器/客户模式下,由多个服务器分区管理对象空间。为实现对象空间的完全划分,即所有分区能覆盖整个对象空间,同时各分区间又不互相交叉,采用了一种简单的对象空间的划分方法。如图1,若为2-服务器模式,整个对象空间可由一平面一分为二,特别的当中心平面穿过某一客户的AOI区域时,划分平面可向两个方向作微调。
　　当客户跨区移动时,会出现客户的AOI区域跨于两个分区之上的情况。为了保证服务器分区管理对用户是透明的,又避免多个服务器管理一个AOI的复杂情况,同时也为了减少因此引起的服务器间的通信量，有两种处理方法(假定客户的AOI区域定义为以参与者为中心的球体)：(1)由管理负载平衡的主服务器进行划分平面的微调，使得一个AOI区域不落在两个分区里；(2)为了避免频繁调整划分平面，特别是跨区AOI数目不多时，允许划分平面是带有凸半球的准平面。即仅当参与者(AOI中心点)从分区i跨越划分平面进入分区j时,才由分管分区j的服务器接管参与者的AOI。
3.2 动态负载平衡
　　为了避免各服务器的工作负载不均衡性，采用一种动态负载平衡算法。由于多服务器的管理对各Client而言最好是透明的，故系统的负载平衡管理由一主服务器负责。各服务器根据其运算能力确定两个AOI上下界值。当某服务器所管理的AOI数小于设定的下界时，则向主服务器发出申请AOI请求；当服务器所管理的AOI数大于设定的上界时，则向主服务器发出移去AOI请求。主服务器根据整个VE环境中的AOI数及各服务器发来的申请或移去AOI请求，调整划分平面或进行区域划分/合并。
　　下面说明主服务器的负载管理策略，假设各服务器的能力相等。若主服务器未收到AOI请求，则各服务器负载正常。若仅收到申请AOI请求而没有移去AOI请求，则说明系统负载较轻。当系统中总AOI数小于一设定阈值时，可以进行分区的合并，即划分平面在无穷远处，此时转换为单服务器/客户模式。因为AOI不多时，分区管理所引起的服务器间的数据传输开销相对增大，此时合并分区就可以避免服务器间的数据传输。若收到移去AOI请求而没有申请AOI请求，则说明系统中某些服务器负载较重。当重载不厉害时，可通过划分平面调整，平衡各服务器的负载；若系统中AOI数超过某一设定的重载阈值时，则可以查找空闲服务器作进一步的区域划分。
　　当进行分区调整时，服务器间的消息传输如下：(1)主服务器向各服务器发分区调整消息。(2)服务器收到分区调整消息后，据此判定所管辖的AOI是否需要移去，若有则向主服务器移交AOI管理权。(3)最后再由主服务器将这些AOI分配给相对空闲的服务器。
3.3 多Server的数据一致性问题
　　数据的一致性问题是采用复制式结构所固有的问题。
　　例如SIMNET系统采用了初始化备份存放在各节点上的方法,系统一旦初始化后就由各个用户结点自己维护数据库,没有保证数据一致性的机制。
　　DIVE也采用了类似的方法,但通过分布加锁机制和可靠的多播协议维护了动态的具数据(用户视图)一致性的数据库。即用户把一对象数据加锁,然后修改数据的本地副本,再通过多播向其它用户结点发送修改信息,最后释放锁。这种方法保证了数据的绝对一致性,但加锁机制大大增加了通信开销。
　　系统在单服务器模式下，因服务器集中管理数据库，所以数据一致性问题可不考虑。在多服务器模式下，各服务器采用完全几何复制的方法，所以必然存在各数据备份的一致性问题。由于各服务器所管理的AOI区域相对稳定，服务器数量相对较少，因此可以采用疏松一致性的方法。各服务器可将数据修改打包，定时发送给其它服务器。这样可以减少服务器间维护数据一致性所花的通信开销。
4　结论
　　本文在对现有分布式虚拟环境中的几何数据管理方法进行了分析讨论后，提出了多服务器分区管理几何数据的方法，验证系统正在实现中。该方法既能利用数据集中管理、便于实现的优点，又解决了单服务器系统因服务器负载过重而引起的性能瓶颈问题。
作者简介：姜晓红（1965～），女，讲师，主攻虚拟实现技术，计算机体系结构
作者单位：浙江大学CAD&CG国家重点实验室，计算机系，杭州310027
参考文献
1 Rost R,Friedberg J,Nishimoto P.PEX: A Network-transparent 3 D Graphics System.Computer Graphics & Applications,1989,9(4):14
2 Calvin J.The SIMNET Virtual World Architecture.Proceedings of the IEEE VRAIS'93 Conference,1993:450-455
3 Acedonia M D,Zyda M J,Pratt D R,et al.NPSNET：A Network Software Architecture for Large-scale Virtual Environment.PRESENCE,1994,3(4):265
4 Snowdon D N,West A J.AVIARY：Design Issues for Future Large-scale Virtual Environments.PRESENCE,1994,3(4):288
5 Carlsson C,Hagsand O.A Platform for Multi-user Virtual Environments.Computer & Graphics,1993,17(6):663
6 Morrison J.The VR-Link Networked Virtual Environment Software Infrastructure.PRESENCE,1995,4(2):194
7 Singhal SK,Cheriton DR.Exploiting Position History for Efficient Remote Rendering in Networked Virtual Reality.PRESENCE,1995,4(2):169
收稿日期：1999-01-11
