虚拟现实(Virtual Reality,简称VR,又译作灵境、幻真)是近年来出现的高新技术,也称灵境技术或人工环境。虚拟现实是利用电脑模拟产生一个三维空间的虚拟世界,提供使用者关于视觉、听觉、触觉等感官的模拟,让使用者如同身历其境一般,可以及时、没有限制地观察三度空间内的事物。虚拟现实是人们通过计算机对复杂数据进行可视化操作与交互的一种全新方式,与传统的人机界面以及流行的视窗操作相比,虚拟现实在技术思想上有了质的飞跃。虚拟现实中的“现实”是泛指在物理意义上或功能意义上存在于世界上的任何事物或环境,它可以是实际上可实现的,也可以是实际上难以实现的或根本无法实现的。而“虚拟”是指用计算机生成的意思。因此,虚拟现实是指用计算机生成的一种特殊环境,人可以通过使用各种特殊装置将自己“投射”到这个环境中,并操作、控制环境,实现特殊的目的,即人是这种环境的主宰。
网格是一种新兴的技术,正处在不断发展和变化当中。目前学术界和商业界围绕网格开展的研究有很多,其研究的内容和名称也不尽相同因而网格尚未有的定义和内容定位。比如国外媒体常用“下一代互联网”、“Internet2”、“下一代Web”等来称呼网格相关技术。但“下一代互联网(NGI)”和“Internet2”又是美国的两个具体科研项目的名字,它们与网格研究目标相交叉,研究内容和重点有很大不同。企业界用的名称也很多,有内容分发(Contents Delivery)、服务分发(Service Delivery)、电子服务(e-service)、实时企业计算(Real-Time Enterprise Computing,简称RTEC)、分布式计算Peer-to-Peer Computing(简称P2P)、Web服务(Web Services)等。中国科学院计算所所长李国杰院士认为,网格实际上是继传统互联网、Web之后的第三次浪潮,可以称之为第三代互联网应用。
网格计算利用分布式计算(Distributed Computing)机网络处理大计算量任务,限度地利用了现有网络的计算能力,实现资源共享。随着网格计算研究的深入,人们越来越发现网格体系结构的重要。网格体系结构是关于如何建造网格的技术,包括对网格基本组成部分和各部分功能的定义和描述,网格各部分相互关系与集成方法的规定,网格有效运行机制的刻画。显然,网格体系结构是网格的骨架和灵魂,是网格的技术,只有建立合理的网格体系结构,才能够设计和建造好网格,才能够使网格有效地发挥作用。
1 网格环境分析
网格可以简单地划分为分布式资源、网格系统和网格应用3个层次。网格应用层处于网格的顶层,分布式资源为网格的物理层即为网格底层,网格系统处在分布式资源和应用层之间,在应用层和资源之间起到桥梁作用。完整的网格系统需要有所示的基本管理功能。
(1)信息管理:为网格中的活动提供依据。
(2)资源管理:负责管理网格中的所有资源。
(3)数据管理:管理数据的存储、数据的标识和副本等。
(4)通信与安全管理:保证网格上的活动合法,信息通达。
(5)界面管理:负责用户和网格之间信息的转换和表现。 (6)作业管理:支持用户在计算资源上运行自己的代码。
(7)公共管理:包括用户的管理、网格的监控、记账等。
网格用户通过界面管理的支持将作业提交给网格,从网格得到计算结果。网格在提供服务之前,首先需要通过信息管理确认网格中哪些资源目前可用。分配好可用资源后还需要进行资源管理。在作业计算过程中,需要使用网格中的数据,网格需要通过数据管理传输远程节点上的数据。整个过程需要通信和安全管理作保障以防泄漏关键数据等。
2 基于网格环境的虚拟现实战场的具体分析
虚拟现实是人们通过计算机对复杂数据进行可视化、操作以及实时交互的环境。与传统的计算机人――机界面(如键盘、鼠标器、图形 用户界面以及流行的Windows等)相比,虚拟现实无论在技术上还是思想上都有质的飞跃。传统的人――机界面将用户和计算机视为两个独立的实体,而将界面视为信息交换的媒介,由用户把要求或指令输入计算机,计算机对信息或受控对象作出动作反馈。虚拟现实则将用户和计算机视为一个整体,通过各种直观的工具将信息进行可视化,形成一个逼真的环境,用户直接置身于这种三维信息空间中自由地使用各种信息,并由此控制计算机。 总的说来,网格应用应该具有如下一些特点:
(1)黏合性。网格应用可以通过把不同的网格构件黏合在一起来实现。这些黏合在一起的构件可以是不同程序设计语言开发出来的,可以运行在不同的操作系统和硬件设备上。
(2)动态性。网格应用的运行环境是动态的,即所用资源在网格上的来去是动态的,运行应用的目标机器的选择也是动态的。构成一个网格应用的构件随着宿主设备的进入和退出,网格呈现出的是可用和不可用的动态性。
(3)平台独立性。网格应用应该与具体的平台无关。尽管网格的思想中并不排斥某种特定的运行环境,但这只是从兼容的角度强调网格上可以运行所有的传统应用。网格应用应该脱离具体的平台,可以在任何具体环境下运行。
(4)网格应用具有可伸缩性。在网格资源充裕的情况下,一个应用可以利用多个资源实现自己的操作。如果网格资源比较紧张,同样一个应用在少数几个资源上运行也可以完成要做的事情。即网格应用对资源的需求也应该有伸缩性。
(5)自我管理性。网格应用活动涉及网格中的多个资源,在很多情况下,应用的启动者也难以判断活动在哪个具体的机器上执行,一旦出现故障,就需要应用能配合网格管理系统实现自我管理,做好故障恢复和处理,做到不会影响其他应用的正常执行。
2.1 虚拟现实战场系统需求和问题域分析
该模型在初始化阶段需要有一定的安全性,支持注册、登录、注销和退出系统等功能。登录上系统的网格用户可通过EAI(External Authoring Interface)外部编程接口和虚拟现实战场中的本地虚拟化身交互通信。一方面随着本地用户的化身在虚拟战场中不断地运动变化,一些本地信息如用户序列号、方位、旋转角度等都在不断地发生变化,这些信息对于该网格用户而言仅仅是需要在网格客户端本地处理而已;另一方面在网格客户端随着代表该网格用户的虚拟化身的不断运动变化以及与其他虚拟化身的交互,如炮击对方、在线聊天等,虚拟场景也要做出相应的变化。
在网格环境下所要实现的应用系统——虚拟现实战场的UML用例。具体描述如下:
普通用户通过注册成为网格用户,网格用户在登录上系统之后,可以进行注销、退出系统或是与其他网格用户进行交互,如发射武器、更新其他网格用户虚拟场景中化身的方位等。这些操作都可被视为网格客户端信息的处理。虚拟战场中的化身亦代表虚拟战场用户,它主要是处理无需通过网格环境的本地信息,如更新自身的方位、旋转角度等。
2.2 基于网格的虚拟战场静态模型结构分析
虚拟现实战场位于网格系统的应用层,对该战场的设计分为实现功能设计和模型界面设计。
(1)实现功能设计:同一个局域网共享一个虚拟现实战场,实现三方军队相互交战,其中所有同在一个局域网且通过身份验证的用户均可通过网格环境参与到该战场场景中,此时该用户即被称为在线用户。所有在线用户均可利用某些仪器如鼠标、键盘等对虚拟场景进行操作,如代表在线用户的化身在本地客户场景中作转身、移动等动作,与此同时其他在线用户化身的客户场景中同样记录着这些动作信息,并以此改变自身客户场景中此化身的状态变化。另一方面,基于虚拟战场的特性,每个在线用户势必会与敌方交战,他们可以在自身的客户场景中运用鼠标和键盘热键发射炮弹,攻击对方等,这些作战情况都会记载在本地客户场景信息中。
(2)模型界面设计:虚拟战场系统共有6个界面子模块:用户登录界面、武器选择界面、本地化身信息界面、本地化身作战情况界面、在线用户界面和虚拟战场场景图。首先用户在登录界面中输入身份验证信息,通过验证后方可进入虚拟场景作战;同时在线用户界面中会为该合法用户提供此刻同在虚拟战场中的各个在线用户名。另外,客户化身在鼠标和键盘的控制下,可以在虚拟战场场景中随意畅游,本地化身信息界面中会实时地记录下化身的方位数据信息,并提供彼此间聊天功能;而本地化身作战情况界面也会在化身之间进行交互作战时,可视化地显示出本地化身的作战情况。
该虚拟战场的UML,其中网格客户端体系结构使用C/S模式构造,在实现中分5个模块组成:服务端监控中心模块、多线程发送器模块、本地处理机模块、多线程接收器模块和后台数据库维护模块。由于本地处理机模块必须监听各种事件,并做出相应的事件处理,所以需要实现事件监听接口。
2.3 基于网格的虚拟战场动态行为模型分析
需要指出的是,本系统使用EAI外部编程接口实现用户界面的可视化,使虚拟现实场景更利于控制和管理,这就需要用到Java Applet。由于Applet存在安全性和sandbox(沙盒)机制问题,需要有个服务器容器作为HTTP SERVER来Applet,初始阶段只需在客户端输入服务器的IP地址及文件存放位置。
以发射武器为例,由于采用EAI外部编程接口,武器完全可以在虚拟场景中通过EAI接口动态生成。网格用户向VR场景发送某个消息表示需要发射武器,具体描述如下:
(1)网格客户端创建好线程MultiSender多用户发送器,一个线程就代表一个网格用户。
(2)本地处理机客户端获得VRML浏览器对象,以便通过EAI接口控制VRML场景。
(3)本地处理机客户端获得虚拟战场用户化身的节点,由此可以通过节点的入事件和出事件属性来监视和控制虚拟化身。
(4)本地处理机客户端创建线程MultiReceiver多用户接收器,接收从其他网格用户中发来的更新信息或是虚拟场景中的动态数据,如由于化身不断运动变化而带来的虚拟场景的更新变化等。
(5)通过对发射武器的属性(如大小、形状、颜色等)进行描述而动态地在虚拟场景中生成它。
(6)武器生成后需要在各个在线网格用户的虚拟场景中发射,并沿着一定的轨迹运动。这些轨迹的位置和转向数据的计算通过网格环境来解决。
(7)多用户发送器将计算武器发射轨迹数据的操作通过网格服务发布接口发布相应的网格服务。
(8)向网格服务器请求执行完成网格服务。
(9)网格服务完成,返回结果。
(10)向网格客户端返回计算结果。
(11)线程MultiSender多用户发送器向每个网格用户的线程MultiReceiver多用户接收器发送同步消息,将武器发射轨迹数据发送到接收器。
(12)接收到武器发射轨迹数据后,通过EAI接口实时更新虚拟战场中的武器发射轨迹。
3 结束语
网格作为计算机发展的新兴技术,它着眼于高性能和分布式计算能力。本文简单介绍了网格技术,并着重分析了基于网格环境的虚拟现实战场模型的UML建模。整个虚拟现实战场模型建立在网格基础上。网格应用的安全要求并不高,只需简单地进行网格用户身份检验核对,因为网格安全工作的应放在网格基础安全如CA等方面。另外,由于虚拟现实战场完全可以充分利用网格环境中强大的分布式计算能力,因此该模型的可扩展性和实时性能都比较理想。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。