分布式虚拟环境中动态延迟的本地滞后方法
2019-09-13刘家学
计算机应用与软件 2019年9期
刘家学 王 浩 耿 宏
(中国民航大学电子信息与自动化学院 天津 300300)
0 引 言
分布式虚拟环境[1](Distributed Virtual Environment,DVE)提供一个共享的虚拟世界,通过网络将位于不同地理位置的多个用户相连接,用户之间可以共享信息产生交互,为某一共同目标进行协同仿真。
DVE通常采用复制式结构[2],其中每个用户使用的计算机都可以看作一个节点,节点中存有整个虚拟环境的副本,任意节点的用户进行操作后,该操作不仅会对本地副本的状态造成影响,还会通过网络传给其他节点并执行。实际运行中,网络传输的延迟具有随机性,且不可避免,这会导致各节点执行操作的时间和顺序不同,从而使副本状态发生不一致。同时,延迟也会导致操作在异地节点上的实时响应时间变长,影响用户交互的真实感。因此,必须解决DVE中的一致性与实时性问题。
锁同步[3](LockStep)算法将DVE的时钟划分为若干周期并阻塞各节点时钟的推进,只有全部节点都执行了操作且副本达到相同的状态后才允许进入下一时钟周期。虽能保证一致性,但操作的实时性很差,无法适用于频繁交互的系统。在DR(Dead Reckoning)算法[4-5]中,各节点利用相同的DR模型预测DVE的状态,同时接收来自其他节点的实际状态,当本地节点的预测值和实际值的误差超过一定范围时就用实际值更新本地状态。虽然该方法中用户操作的响应时间很短,但使用过程中会出现大量短时间的不一致,需要不断进行回滚。文献[6]采用了延迟一致性控制方法,该方法不延迟本地操作处理过程,而是将异地操作延迟一定的时间,虽能保证操作的实时性,但会因各节点执行操作顺序的混乱而导致不一致。……
登录APP查看全文
