基于主机的3D网络应用的研究和实现

时间:2022-03-31 05:40:40

基于主机的3D网络应用的研究和实现

作者:夏晓冰 黄献彬 常磊 吴永明

论文关键词:虚拟现实 语音识别 主机 网络应用

论文摘要:目前虚拟现实技术、语音识别技术正迅猛发展,网络应用开发架构向3d化,语音化发展已成为大势所趋。同时,快速发展的主机技术为大型的网络应用程序提供了稳定的后台支持。将虚拟现实、语音识别、现有网络应用开发架构、主机四项技术结合,创建一个全新的网络应用,在当前的网络应用开发领域具有重大意义。在这四大技术的基础上,考虑其各 自特点,给 出了一套基于主机的3d网络应用平台的设计方案。

0 引 言

目前绝大多数网络应用均采用二维网页的方式同用户交互。这种“填表单”式的交互方法,势必对一些初涉计算机的用户产生障碍。

而目前正在蓬勃发展的虚拟现实技术和全 3d的操作环境则正在打破初级用户同计算机之间的隔阂。同时,随着语音识别技术已经13趋成熟,识别的准确率不断提高。将虚拟现实技术同语音识别技术相结合 ,来构建新型的网络应用平台的前台界面,无疑将对现阶段的网络应用产生深刻的影响。

鉴于目前多数银行、证券、金融行业的系统仍然采用主机平台作为后台服务器平台。这是因为,一方面,这些行业一般需要管理海量的数据,如果用分布式平台进行数据存储需要多台服务器协同工作,这样在跨平台系统维护和数据统一等方面的开销迅速增长。另一方面,这些行业对系统的稳定性 、安全性和性能有较高要求,这些因素共 同决定了主机平台将会是他们的最佳选择。因此,基于主机平台的应用仍然提供了很大的市场和广阔的发展前景。

为此,本文对以j2ee为网络应用开发架构 、基于主机平台构建语音交互式的三维网络应用平台进行了研究。在比较 目前已有系统的基础上,重点对平台实现、技术可行性方面进行了论述。

目前较为成熟的网络应用开发技术有 j2ee,corba和net(dcom)。其中,sun公司在其 java技术的基础上推出了应用于 b/s架构的 j2ee开发和应用平 台,microsoft也在其dcom技术的基础上推出了主要面向 b/s应用的.net开发和应用平台。corba (common object request broker architecture)是在 1992年由 omg(open management group)组织提出的。.net中涵盖的 dcom技术和 corba一样,在网络传输层均采用 tcp/ip协议,也有 自己的 idl规范。所不同的是,在tcp/ip之上,corba采用 giop/iiop协议,所有 corba服务器以iiop通信,形成了 orb软件通道;而 sun的 j2ee采用rmi/iiop传输协议,体现了 j2ee的开放性。相较于.net和corba,j2ee在软件开发成本、周期、跨平台性及软件的维护方面占有巨大优势。

对于分布式网络应用平台,特别是 business server,多采用oracle、db2开放平 台等大型数据库作为其后台存储层。但由于 pc本身能力的限制,把 business server放在开放平台上维护开销越来越大,并且安全性也得不到保证。而基于主机的网络应用在降低开销,提高安全性、稳定性方面的优势显而易见。同时,全 3d网络操作平台也是下一代网络应用的发展方向,基于主机的3d网络应用有着广阔的发展前景。

为此,我们以ibm的产品为主要工具,构建了如图1所示的基于主机的3d网络应用系统。

在上述系统中,三维网络应用平台起着很重要的作用。从三维空间获得的用户请求信息,将通过 httprequest向ibm websphere服务器发出请求,服务器servlet处理httprequest请求,并从 httpservletrequest中获取用户请求数据。服务器捕获请求数据后,将其放入消息中间件 ibmmq消息管道,在主机上触发一个cics事务,cics事务调用与其绑定的cobol程序,实现业务逻辑处理。主机上的 business server处理完成后,反馈消息由mqapi放入消息队列里,servlet从}肖息队列中取得处理后的消息,通过 httpresponse反馈给用户。

目前大多数的主机用户,都不同程度拥有大量已经安全稳定运行数十年的 cobol程序。另外,出于安全 、稳定性的考虑,完全采用一个全新技术开发的系统会有很高的风险。因此,重用这些代码将会极大保证系统的持续性、稳定性,并可以改进性能,提供新服务。

在本系统中,由 cics来实现最终的业务逻辑,这样可以在很大程度上发挥 cics和主机的优越性。服务层的 servlet不处理具体的业务逻辑,本层仅仅获得 http请求中的数据,并将数据放入消息队列,进而传送到主机上供 cics使用。系统这样设计可以在很大程度上重用已有的 cobol代码,并在系统拓展方面有很大优越性。

在应用系统界面上,我们也采用具有语音交互和三维场景特点的使用方式。

2 语音交互式三维场景的系统操作界面

(1)语音模块设计其中我们采用了微软公司推出的语音包。根据微软提供的语音 api,设计语音识别逻辑,识别用户的语音输入,并参照语料库来给出相应的整形返回信息。

(2)3d场景设计 3d场景设计方面,我们根据需要,设计了指定位置的摄像机视口,并将采用 3dsmax制作的完整 3d场景以wrl格式输出,嵌入到网页中。

(3)各个模块协同工作的实现为实现各个模块的协同工作,我们首先将该语音识别逻辑制作成 dll动态链接库,嵌入到 java中,并留出同网页层javaseript交互用的接口。再嵌入到html网页中。与此同时,将 wrl格式的文件也嵌入到 html网页中。这样,语音模块、3d场景模块就集成到了网页中。其次,设计 javascript中的接 口。3d场景的控制接el和后 台控制接口,前者主要负责触发 3d场景的动画设置,后者主要负责触发后台服务器端的操作。这样,javaseript就作为几大模块的“连接桥”,连接起了各大模块,保证了数据的传输。

用户通过输入语音,将所得到的反馈信息直接作用于 3d场景中并显示出来,并能够连接后台数据库完成实际的业务操作。同时后台反馈回来的信息也可以通过 javaseript接 口直接作用于 3d场景,显示出后台业务操作的结果。

3 系统业务逻辑层的实现

客户端三维语音操作平台经过 http请求最终将数据传给应用服务器内的servlet。它定义了一个框架,扩展了应用服务器的能力,同时定义了一套标准的api接口作用于应用服务器,这使得其具有 良好的可移植性。servlet采用请求响应的模式来接受用户的请求,提供 web服务。当客户端发送一个请求到服务器,服务器将该请求交付给一个 servlet线强来处理,处理完毕后将处理结果再返 回给客户。在整个 web业务当中,servlet发挥了一个关键性的作用。

servlet通过 ibm mq提供的应用程序接 12i来实现同消息中间件 mq的交互。servlet在接受到来 自客户端的消息后,将消息放人 ibm mq的消息队列里,数据可以通过消息队列传送到主机上。当?肖息队列中出现 cics处理后的结果后,会触发相应的servlet从消息队列中取得 cics处理结果的数据。

cics是ibm公司的事务中间件,支持online的操作,其驻留在主机内存中。当有事务需要处理时,cics启动一个 task,同时触发一个 cobol程序的执行,当用户没有操作的时候 ,task退出内存,并不占有资源。cics作为 ibm主机产品中的一棵常青树,在进行主机开发时,有极其重要的地位。cics是online的,在用户没有进行操作的时候 ,cics不驻留内存。同时,主机因为其强大的10能力在此可作为强劲的业务逻辑服务器。

mq管道是沟通主机和开放平台的媒介,servlet通过 mq管道同 cics进行交互。在主机上 ,cics也 是通过 mq提供的ap1,同 mq进行数据交互。当要反馈 cics的处理结果给终端用户时,可以将其放入消息队列。servlet发送来的数据也在消息队列中,cics从消息队列中获得数据。

cics在获得数据之后,可以通过 cobol语言进行业务逻辑的实现。cics通过嵌入式 sql语句 ,进行数据库操作。在主机上,数据库是主机 db2。主机 db2是 ibm公司的关系数据库产品,在安全性可靠性方面有很多优点。

4 结束语

在目前网络应用越来越普遍的情况下,传统的网页式操作平台虽然可以在一定程度上完成其应有的功能,但是一种三维的可语音交互的平台无疑更具亲和力。本文着重论述了如何实现这样一个在交互性方面有巨大优势的平台。结合了目前流行的 j2ee架构,考虑了传统的主机应用平台,是一种完全新颖的网络应用开发技术。系统在三维环境的下载时间,用户等待时间和系统性能等方面尚待改进,但这样一种新颖的平台在可交互性方面的优势显而易见,对于将来的网络应用平台开发技术的进一步发展,无疑有重要的参考价值。

参考文献

[1]刘怡 张洪定崔欣.虚拟现实 vrml程序设计.天津,南开大学出版社 .2007.

[2]cay s.homtmann gary cornel1.java2核心技术.机械工业 出版社 2006.

[3]ibm.cics resource definition guide.

[4]ibm.cics application programming guide.

[5]ibm.db2 udb v8系统管理教程.

[6]ibm.jclguide.

[7]ibm.ispfguide.

[8]ibm.mvs system messages vol.

上一篇:浅析嵌入式系统支柱学科的交叉与融合 下一篇:巧用数组实现长整数的精确计算