APP下载

基于B/S架构态势原型系统实现及性能优化*

2014-07-11孟献轲

舰船电子工程 2014年7期
关键词:数据源图层态势

尹 超 孟献轲 杨 岩

(中国电子科技集团公司第二十八研究所 南京 210007)

1 引言

COE通用操作环境(Common Operating Environment)是美军所有信息系统的公共支撑软件平台。1999年COE向三层结构转变,用Java语言重写主要软件,增加了可移植性。2007年前后,美军开发了Joint WebCOP(JWC)。JWC是GCCS系统家族的组成部分,使作战人员通过标准浏览器(无需安装任何插件)对战场空间进行实时或近实时的可视化。它与 GCCS-A[1]、GCCS-M、GCCS-J、战区战斗管理核心系统(TBMCS)、国家地理空间情报局(NGA)、国防信息系统局(DISA)关联,能够提供基于Web的COP。

未来信息系统的发展趋势是构建在信息栅格网上的服务化应用,其支撑技术是信息栅格服务、云计算等,传统的客户机-服务器(C/S)模式并非构建此类大型分布式信息系统的最佳模式。Java技术体系是开放的技术体系,是未来开发面向网络服务信息系统的首选技术体系。Java EE平台提供了一个多层结构的分布式的应用程序模型,可以更快地开发和发布新的应用解决方案。作为面向网络服务的分布式系统,在大量用户访问情况下,过多的资源请求和有限的服务器资源(内存、CPU时间、网络带宽等)之间就会出现矛盾,应用系统的性能优化就显得尤其重要。

本文研究了基于纯瘦客户端综合态势显示、服务器主动推送更新实时态势数据及Java平台性能优化等关键技术,构建了基于Java平台的B/S架构态势原型系统,验证了Java平台对指控应用的支撑能力。

2 基于B/S架构态势原型系统设计

基于B/S架构态势原型系统是一个局域网环境下的分布式仿真系统[2~3]。系统运行的硬件平台是Intel Xeon 4核处理器,内存大小3GB,硬盘大小500GB,1000M以太网卡。软件环境是 Windows XP操作系统,系统装有Oracle数据库。主要使用MyEclipse工具进行开发。

构建原型系统需要七台服务器以及数台客户端,系统的体系结构如图1所示。

图1 基于B/S架构态势原型系统体系结构图

系统采用SOA架构,接入三类态势数据源服务[4]:数据库态势信息、路情模拟器态势信息和空情模拟器态势信息。态势数据源向态势目录服务注册,态势目录服务将态势源信息以XML格式发送给应用服务器。当客户端向应用服务器请求页面时,应用服务器会将态势源服务地址发送给客户端,通过向态势数据源服务器请求数据(AJAX)或者服务器推送数据(WebSocket)两种方式,客户端接收数据源态势信息,并图1中显示。图1中WebGIS服务器提供地图及其数据服务。

3 关键技术

为了将不同的态势服务组织在一起,并高效地提供给用户使用。本文提出的基于B/S架构态势原型系统主要对以下几个方面的技术进行了研究。

1)数据源服务集成标准[5]

为了使态势目录服务能够发现并接受各类态势数据源服务的注册,本文提供了数据源服务集成标准。主要包括数据源服务注册接口和数据交换格式标准。

(1)数据源服务注册接口

通过数据源服务注册接口,数据源服务将态势图层描述信息(XML格式)发送给态势目录服务。态势目录服务把图层描述集中发布成态势目录,共应用服务器访问。态势图层描述文件主要包含图层标题、图层唯一标识、图层数据访问地址、图层字段描述信息等。

(2)数据交换格式标准

为了实现各类态势数据源服务数据的统一管理以及和态势客户端之间交换数据,本文还提出了态势数据交换格式的标准,采用JSON格式表示。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它是基于JavaScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。JavaScript原生支持JSON,可以存储JavaScript复合对象,有着XML不可比拟的优势。考虑通用性和灵活性,标准主要包含基本要素和扩展要素。基本要素主要包括数据源名称、元素名称、元素唯一表示、经纬度等;扩展要素主要用于其他业务补充各自的业务数据。

2)服务器数据推送技术

态势空情数据的接入需要在浏览器与服务器之间实现即时通讯,通常采用的技术都是轮询。轮询是在特定的时间间隔(如每1s),由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给客户端。这种传统的HTTP request模式带来很明显的缺点,浏览器需要不断地向服务器发出请求,然而HTTP request的header是非常长的,里面包含的数据可能只是一个很小的值,这样会占用很多的带宽。比较新的去做轮询的技术是Comet,虽然这种技术可达到全双工通信,但依然需要发送请求。

面对这种状况,HTML5定义了 WebSocket协议[6],能够更好地节省服务器资源和带宽并达到实时通讯的效果。在WebSocket API中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就可以直接进行全双工数据传送。WebSocket协议为我们实现即时服务带来了两大好处:一是互相沟通的Header是很小的,大概只有2Bytes;二是服务器可以主动传送数据给客户端。通过实验对比,发现无论从系统资源占用情况还是从数据发送效率来看,数据主动推送都优于轮训方式。在本系统实现中,服务器每一秒钟向连接请求的客户端发送一次实时数据。

3)浏览器图像绘制技术

Web图形绘制通常采用SVG技术。SVG是基于XML的图形矢量显示技术,可以将其与CSS混搭使用,也可以使用SVG DOM动态向其添加行为。

在新的 HTML5标准中引入了 Canvas[7],Canvas可以用来进行绘制图形、绘制游戏的图案或者其他图形图案,允许使用脚本动态渲染点阵图像。简单来说,Canvas就是允许在HTML5中,使用JavaScript去绘制喜欢的任何图形,包括文字、图片、线、点、各种形状等。此外,随着硬件技术的提升,现代浏览器具有GPU加速功能,为HTML5的Canvas使用提供了更好的环境,当向Canvas发出绘画命令时,浏览器直接将指令发送到图形加速器而不需要开发者更多的干预,硬件图形加速器则以难以置信的运算速度实时绘画和渲染图形。Canvas为大数据量的矢量数据在无插件的HTML文档中,平滑、流畅的呈现,提供了新的解决方案。

相比于SVG,Canvas具有两个明显的优势,一是在绘制复杂图像时,Canvas的绘制速度比SVG快很多;二是SVG需要在浏览器中使用插件才能显示,而Canvas仅需要JavaScript的支持。

本系统使用Canvas实现了对渲染要素的添加、删除和选择操作。

4 系统性能优化

系统性能优化就是提高已有系统的性能,减少如CPU、内存、数据库、网络带宽等资源的占用。一般是通过压力测试或者在使用过程中发现性能方面的问题,然后寻找性能瓶颈,并结合项目进度、人员安排、技术储备等因素,提出相应的优化策略。本文主要从性能的角度出发,结合我们的技术架构,讨论Java EE应用程序代码性能的优化和提升,提出了以下几条应用优化准则[8~10],诸如硬件环境、数据库环境等未在讨论范围之内。

1)尽量重用对象,避免创建过多短时对象;

2)在循环处多下功夫;

3)尽量减少I/O操作,并使用缓存;

4)Servlet中尽量不使用同步;

5)大型数据量分批获取,缓存常用数据;

6)避免内存泄漏。

图2和图3是系统优化前后,客户端数量与服务器性能关系图。

图2 优化前客户端数量与服务器性能关系

图3 优化后客户端数量与服务器性能关系

5 结语

本文围绕系统体系架构及关键技术实现,提出了一种基于B/S架构的态势原型系统,并对其性能优化进行了研究。系统提供了标准的数据源服务注册接口和数据交换格式规范,并利用HTML5的WebSocket及Canvas新特性,提高了数据传输的效率和态势元素上图显示的效率,降低了系统资源开销,提升了软件运行速度。验证了Java平台对指挥控制软件的支撑能力。

[1]袁可亮,吴峻,何光涛.美军二十一世纪部队旅及旅以下作战指挥系统[J].山西电子技术,2007(1):90-91.

[2]吴宇,康凤举,倪新尧.一种鱼雷武器分布交互仿真系统的设计与实现[J].舰船电子工程,2003(5):65-68.

猜你喜欢

数据源图层态势
历史虚无主义的新近演化态势与特征
为《飞舞的空竹龙》加动感
一种多源数据融合过程中的实体关联性计算方法
2019年12月与11月相比汽车产销延续了增长态势
汇市延续小幅震荡态势
国际金价能否延续上涨态势
利用属性集相关性与源误差的多真值发现方法研究
解密照片合成利器图层混合模式
Web 大数据系统数据源选择*
数据有增加 图表自适应