Java、AJAX在虚拟现实中的交互应用研究

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:shayneinfo
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:分析了在VRML中通过Script节点或EAI 使用Java语言来实现对虚拟世界的控制和场景交互的办法,指出了它们的不足之处。在此基础上,利用AJAX异步传输和数据处理的优势,提出一种基于AJAX的虚拟现实框架,并简要给出了应用实例说明。
  关键词:虚拟现实;VRML;Java;交互;AJAX
  中图分类号:TP309.05文献标识码:A 文章编号:1009-3044(2008)06-10ppp-0c
  
  Research on Interaction Application of Java, AJAX in Virtual Reality
  QIU Qiaochun, MIN Lianying, XUE Ying
  (School of Computer Science and Technology, Wuhan University of Technology, Wuhan 430063, China)
  Abstract:Analyzes two means that importing Java language in VRML through the Script node or EAI to realize controlling virtual world and interaction in scenes, and then points out their deficiencies. In this foundation, this paper develops a new virtual reality frame based on AJAX by making full use of its superiorities, which include asynchronous transmission and data processing, and has given a application explanation briefly.
  Key words:virtual reality;VRML;java;interaction;AJAX
  虚拟现实与因特网技术的结合产生了虚拟现实建模语言(Virtual Reality Modeling Language,简称VRML),它可以与WWW一起使用,用来实现一个通过全球互联网和超链接而形成的虚拟世界[1],从而满足了人们对三维立体Web的迫切需求。
  VRML被称为继HTML之后的第二代Web语言,是一种用于描述三维物体及其行为的建模语言,它可以构建虚拟境界(Virtual World),并集成文本、图像、音响、MPEG影像等多种媒体类型,还可以嵌入Vrmlscript、Java、Javascript等语言编写的程序代码。但VRML本身并没有直接和用户进行交互的能力,它需要与其他语言结合才能实现三维场景和用户交互的要求。本文分析了利用Java语言实现这种交互的可能,并进一步论述了采用AJAX后三者的结合在因特网虚拟现实中的应用。
  
  1 VRML与Java结合
  
  由于VRML本身不能完成普通程序设计中的分支、循环等基本特征,故它自身的交互机制是无法满足用户多种交互要求的需要。但VRML有自己的API(Application Programming Interface),这样就为Java程序提供了可以访问VRML浏览器的界面和可执行的环境,并且在Java的vrml.node包中含有一个Script类,它是一个抽象类,通过对Script类的继承,Java程序便可以与Script结点建立联系,从而达到控制VRML其它结点的目的。Java对VRML的支持都是通过附加的封装类来实现的[2] (这些类随同VRML浏览器程序安装在客户机上)。通过封装类,Java程序能够访问VRML场景、接受和发送事件、从页面上得到VRML 对象,实现对VRML 场景的完全控制。VRML 中使用Java有两大类方式:内部Script节点和外部编程接口(EAI)。
  1.1 通过内部Script节点
  Script节点是连接VRML和Java 的桥梁,其中的url字段是它与外部程序联系的关键,url是WWW 上一个对象的完全地址,指出了外部程序所处的位置,不管是本地的或者是在网络远端的合法程序都能被使用。甚至该字段的值能直接被赋为合法的源程序。例如,通过Java程序控制场景中球体运动的Script代码如下:
  Script{
   url [ “Java/MoveBall. class” ]
   eventIn SFBool clicked#输入接口设置
   eventOut SFTime start#输出接口设置
   ……
  } ROUTE … TO …
  对于到达eventIn的事件(点击/clicked)都将会自动传送到url所指定的程序中,在Java中完成VRML与外界交互操作的程序编写,然后编译成class文件供VRML场景访问。程序处理后通过eventOut(在initialize()函数内初始化为Java的类成员)将得到的结果传回Script节点执行更新。图1给出了交互过程的图解说明。若还想用结果去影响场景中的其它实体,可以通过ROUTE事件连到(TO)路由链中的下一个节点。
  
  图1VRML与Java交互图
  Java与VRML通过Script节点的结合,简单地说就是:(1)通过eventIn将事件传至Script节点中url所指向的Java脚本;(2)在该脚本程序中进行处理;(3)通过eventOut将结果送回Script节点。
  1.2 通过外部编程接口EAI(External Authoring Interface)
  VRML97标准提供了外部编程接口(External Authoring Interface),从而可以实现java小应用程序类与VRML场景的通信。EAI还定义了外部环境通过VRML现存的事件驱动模式来访问VRML内部的节点的一系列方法。
  Java主要使用Browser和Node两个类(vrml.external包)及其它一些如处理eventIn域和eventOut域的各个属性类(EventIn*、EventOut*),还有处理异常的各种Exception类完成对EAI的描述。该Browser类除了包含Brower类(vrml包)所有方法外,还提供了三个方法:getBrowser(Applet pApplet)、getBrowser(Applet pApplet,String frameName,int index)和getNode(String name)方法[3]。
  有了vrml.external包中功能强大的Browser和Node类,所以可以甚至完全抛弃Script节点和Script类甚至路由,而对VRML世界的各种节点即Node类的各个实例直接操控。但此方法的局限性:由于getBrowser()方法的参数必须是Applet的实例,因而该方法只能通过Java程序来控制VRML世界。
  
  2 引入AJAX后的三者结合
  
  VRML与Java直接结合的两种方法较好地解决了VRML场景与外部交互的问题,但也存在一些不足之处:客户端都需要安装虚拟机(方法一中是class文件,方法二为Applet程序)并配置环境变量;网页中嵌入Applet的方式还可能会威胁客户端的安全,许多客户端都限制网页对Applet的运行;将Java程序从服务器下载至客户端执行增加了许多网络流量。基于此种情况,笔者通过引入目前成熟而具有强大优势的AJAX技术,以AJAX作为中间桥梁设计一种全新的交互应用方案。
  当前因特网是一个请求-响应的循环系统,浏览器与服务器的交互采用的是同步方式,在服务器响应过程中,用户能做的只有等待。用户向服务器发出一个http请求或在需要刷新页面中的某部分内容时,无论用户是否愿意,服务器都将返回全部页面内容。可见在同步交互方式中,既浪费了用户的时间也浪费了许多网络带宽。AJAX(Asynchronous Javascript And XML)的出现,使得部分提交、异步传输成为可能,它提供高度交互的Web 应用,甚至与桌面应用相差无几,而且能够在所有当前流行的Web浏览器上部署而无需特殊的插件。
  事实上,AJAX并不是一门新的语言或技术,它是几项技术互相协作而形成的一个功能强大的新方法[4-5],包括:使用XHTML和CSS标准化呈现;使用文档对象模型 (Document Object Model,简称DOM)实现动态显示和交互;使用XML和XSLT进行数据交换与处理;使用XMLHttpRequest进行异步数据读取;最后用Javascript绑定和处理所有数据。其中XMLHttpRequest、Javascript和DOM是AJAX技术的核心,而VRML对Javascript的完全支持即成为其引入AJAX的关键所在。
  2.1 基于AJAX的虚拟现实框架设计
  AJAX的根本理念是“按需取数据”,所以最大可能地减少了冗余请求和响应对服务器空间和带宽造成的负担,同时也可以把原本需要服务器要做的许多事情放到客户端来做。
  相比平面结构的Web,虚拟现实的三维场景模型(*.wrl或*.wrz)通常都是数据量较大的文件,如果每次用户的请求都使用同步方式进行传输,则需要更多的时间等待服务器的响应。使用AJAX以后,用户与场景的交互通过发送XMLHttpRequest请求来实现,从而可以有选择有目的性地进行数据的异步传送,即在不需更新整个三维场景页面的情况下完成请求的响应,这个过程中用户所面对的不是白屏,而仍可进行其他操作。从服务器响应到客户端的更新,由于传输的数据量小,所以更新是相当即时的,用户几乎不需要等待时间。
  基于AJAX的虚拟现实系统框架设计如图2所示。该框架避免了在VRML中直接调用Java程序(需要客户端来执行class文件或Applet程序),而将功能强大的Java运用到后台服务器上。具体过程为:(1)用户的操作通过VRML脚本Script节点中的Javascript调用XMLHttpRequest对象发出请求;(2)AJAX引擎完成响应该函数调用,负责将对数据或事务的请求传给应用服务器;(3)服务器接收AJAX引擎发送的Http请求,调用相应的Java程序进行处理;(4)后台程序或通过JDBC引擎与数据库(用户数据库、属性数据库)产生数据交互,或从场景库提取相应场景实体,以XML格式的形式送回;(5)AJAX接收XML数据并将其转换成VRML后[6],由安装在浏览器中的VRML解释器处理得到最后场景的更新。
  
  图3 虚拟展销平台系统效果图
  
  3 结束语
  
  VRML中引用Java程序可以得到许多其自身不能实现的场景交互,若将Java用于后台,通过AJAX作为两者联系的纽带,即在客户端和服务器之间增加一个中间层—AJAX引擎,不仅避免了两者直接结合的不足之处,而且异步传输方式也大大改观了虚拟现实交互的真实性和响应速度。此外,XML的使用很好地解决了数据存储与传输问题。
  
  参考文献:
  [1]闵联营,邓清珊.虚拟现实及其应用[J].交通与计算机, 2000,18(5):41-44.
  [2]汪兴谦. VRML与Java编程实例讲解[M]. 北京:中国水利水电出版社,2002:83-111.
  [3]王汝传.基于Java和VRML虚拟场景通信方式的研究[J].系统仿真学报, 2003,15(7):986-989.
  [4]Jesse James Garrett. Ajax: A New Approach to Web Applications[EB/OL].http://www.adaptivepath.com/ideas/essays/archives/000385.php,2005-2.
  [5]游丽贞,郭宇春,李纯喜. AJAX引擎的原理和应用[J]. 微计算机信息, 2006,22(2-3):205-207.
  [6]陈婷,周家纪,杨宁. 基于VRML-AJAX的分布式虚拟现实应用[J].微电子学与计算机, 2006,23(S1): 272-274.
  
  收稿日期:2008-01-12
  作者简介:邱桥春(1982-),男,湖南省祁东人,硕士研究生,研究方向为计算机网络技术;闵联营(1956-),男,副教授,湖北省武汉人,主要研究方向为计算机网络、嵌入式系统;薛颖(1983-),女,湖北省武汉人,硕士研究生,主要研究方向为计算机网络技术。
其他文献
摘要:3D打印技术在各领域应用越来越广泛,主要应用于机械制造、航空航天、建筑、工业造型和医学等领域。该文介绍了3D打印技术在医学领域的应用,结合3D打印技术的基本原理,重点阐述了3D打印技术在手术策划、定制模板、制作个性化假体和组织工程等医学上的应用,并介绍了3D打印技术在现代医学应用上的发展。最后根据3D打印技术的特点,提出应用展望,并分析未来的发展趋势。  关键词:3D打印技术;快速成型;手术
摘要:针对WPA的安全机制存在的缺陷,指出了对其进行攻击的方法,分析了WinAirCrackPack的攻击原理。利用WinAirCrackPack等工具对基于WPA-PSK认证方式的WLAN成功破获了其密钥,有效验证了WPA机制存在的安全缺陷。  关键词:WPA;802.1X;TKIP;安全缺陷;字典攻击  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)33-1351
摘要:《电气控制和PLC》一直是自动化专业的主干课程,多年来,它的教学不能适应学生职业能力的培养,本文认为应以能力为目标,学生为主体从课程教学设计、课程实验实训设计两个方面进行改革。  关键词:PLC教学;能力目标;教学设计;任务设计  中图分类号:G642文献标识码:A文章编号:1009-3044(2008)35-2359-01  PLC技术直接应用于工业自动控制现场,更新发展速度快,实践性强,
摘要:IPv4和IPv6将在很长时间共存,IPv4到IPv6的过渡将经历很长的时期,该文讨论了IPv4向IPv6过渡期间的一些技术,并分析了其优劣及应用场景。  关键词:IPv4;IPv6;过渡  中图分类号:TP393文献标识码:A文章编号:1009-3044(2009)22-pppp-0c    IPv4是一个非常成功的协议,已经经历时间的考验,但是因特网的爆炸式发展,IPv4地址耗尽的问题迫
摘要:以计算机网络技术专业为例对五年制高职的专业建设提出见解。  关键词:五年制高职;计算机网络技术;专业建设  中图分类号:G642 文献标识码:A 文章编号:1009-3044(2013)35-8014-02  五年制高等职业技术教育(以下简称五年制高职)是指招收初中毕业生,实行五年一贯制或分段教学的高等职业教育,它将中等和高等职业教育贯通,整体设计学生的知识、能力和素质结构,统筹安排相关的课
统编本语文教材已经全面投入使用,老师们可能会面对一些问题。下面,我对于统编本教材(主要是小学四、五、六年级)的使用,特别是如何备课,提一些具体的建议。  一、厘清教材的结构框架,让教学目标更明晰  拿到新教材,第一件事可能就是看看有哪些新课文。统编本教材的新课文大概占41%,变动是比较大的,有些老师感觉比较难,于是就把主要精力花在如何准备好新课文的教学上。这可以理解,但最重要、先着手去做的,是对新
摘要:VB.NET程序设计教学是计算机专业学生的主修课,该文结合教学实践与理论探讨VB.NET程序设计教学取得良好教学效果的几点因素。  关键词:VB.NET;程序设计;教学方法  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2009)05-1273-02  Discussed the Teaching of VB.NET Programming  YUAN Shu-xi
摘要:IP欺骗是利用主机之间的正常信任关系,伪造他人的IP地址达到欺骗某些主机的目的。IP地址欺骗只适用于那些通过IP地址实现访问控制的系统。实施IP欺骗攻击就能够有效地隐藏攻击者的身份。IP地址的盗用行为侵害了网络正常用户的合法权益,并且给网络安全、网络正常运行带来了巨大的负面影响,因此研究IP地址盗用问题,找到有效的防范措施,是当前的一个紧迫课题。  关键词:IP欺骗;盗用;对策  中图分类号
摘要:电气自动化在增强生产、流通、交换、分配中扮演重要角色,不但大幅度降低了人力资资源和资金的投入,同时也有效的增强了运作的效率。随着人工智能的普及电气自动化控制领域,电气自动化的发展得到了极大的促进。  关键词:人工智能;电气自动化  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)29-6621-02  人工智能是近年来新兴起来的一种技术,其与传统方式的科学技术
摘要:论文通过分析游戏软件在学习中的积极因素,提出一套基于Robocode的Java实验教学方案。倡导通过寓教于乐,提高学生对Java语言的应用能力和创新意识。   关键词:Robocode;Java教学;实验教学  中图分类号:G642文献标识码:A文章编号:1009-3044(2009)22-0000-00    高校实验教学在培养学生基本技能、动手能力和创新思维方面具有课堂教学所不能取代的作