跨平台嵌入式地图可视化机制研究

2014-07-02 00:21刘爱龙杜清运姚霄飞
测绘通报 2014年12期
关键词:嵌入式操作系统跨平台中间件

刘爱龙,杜清运,陈 涛,张 东,姚霄飞

(1.武汉大学资源与环境科学学院,湖北 武汉 430079;2.地理信息工程国家重点实验室,陕西 西安 710054;3.西安测绘研究所,陕西 西安 710054)

跨平台嵌入式地图可视化机制研究

刘爱龙1,2,3,杜清运1,陈 涛2,3,张 东2,3,姚霄飞2,3

(1.武汉大学资源与环境科学学院,湖北 武汉 430079;2.地理信息工程国家重点实验室,陕西 西安 710054;3.西安测绘研究所,陕西 西安 710054)

针对适应多样性嵌入式操作系统的地图可视化,在分析了嵌入式环境下跨平台技术的基础上,基于中间件技术构建了跨平台的嵌入式地图可视化引擎EMD_EN体系结构,提出了引擎中涉及的面向对象的消息传递机制、基于双缓冲机制的图形显示与控制、嵌入式地图符号库等关键技术解决方案,并给出了基于EMD_EN的跨平台应用软件的开发方法。该跨平台地图可视化引擎在工程实践中得到检验,应用表明该引擎能较好地解决跨平台的数字地图显示问题。

嵌入式系统;跨平台;地图可视化;中间件

一、引 言

随着计算机技术、卫星定位技术和移动互联网的不断发展,以位置服务为代表的嵌入式地理信息应用已经越来越广泛,这些应用大都以智能手机、PDA、平板电脑等各种嵌入式设备为载体,丰富的载体在为应用带来便捷性的同时也为地理信息应用系统开发带来了问题。不同嵌入式操作系统在系统架构、图形绘制接口、窗口系统等图形支撑能力上存在较大差异。这种异构性使得绝大多数嵌入式应用只能局限于某一特定的嵌入式操作系统,若要应用于其他嵌入式操作系统平台,需要进行移植。但不同的嵌入式操作系统的异构性给应用系统移植造成了巨大的工作量,有些甚至相当于需要重新开发。跨平台技术是解决此类问题最为有效的途径,而作为嵌入式地理信息应用的核心数字地图可视化的平台是首先需要解决的问题。

为解决地理信息应用软件的跨平台问题,许多学者都对其进行了深入研究[1-4]。文献[5]将数据层从系统中剥离出来,独立形成一个底层的基础模块,不包含任何顶层的实现,以提高代码的可移植性。文献[6]提出了一种跨平台的嵌入式GIS数据模型,该模型将与显示无关的数据处理模块独立出来,并进一步划分为上层用户接口模型和底层数据引擎模型。文献[7]提出了一种基于中间件的嵌入式GIS设计,并从硬件设计、软件设计等方面进行了介绍。这些研究成果在一定程度上解决了嵌入式应用软件在不同运行环境下的移植性,但其大多不完全基于最底层的软硬件环境,对操作系统具有一定的依赖性,不能做到真正的“一次编写,到处编译”。本文基于底层的嵌入式软硬件环境,设计和实现了跨平台的数字地图可视化引擎,解决了跨不同嵌入式平台的数字地图显示问题,并将研究成果在工程实践中进行了验证。

二、嵌入式跨平台相关技术分析

1.跨平台开发语言

(1)C++语言

C++是一种具有国际标准的面向对象程序设计语言[8],具有非常高的效率,且对各类平台都具有良好的兼容性,基本上不用考虑开发应用平台的限制,具有良好的可移植性。

(2)Java语言

Java是1995年5月由Sun Microsystems公司推出的一种面向对象的程序设计语言[9]。Java的跨平台机理在于其开发出来的程序可运行于所有装有Java虚拟机的操作系统。目前桌面几乎所有的操作系统都支持Java虚拟机,这样Java程序可以做到“一次编译,到处运行”。但在嵌入式环境下,某些国产嵌入式系统还缺乏对Java虚拟机的支持,且Java为了追求稳定性和跨平台,其运行效率不如C++。

2.跨平台组件技术

(1)COM组件

组件对象模型(component object model,COM),是一种说明如何建立可动态互变组件的规范,此规范提供了为保证能够互操作客户和组件之间应遵循的一些二进制和网络标准[1]。通过这些标准可以在任意两个组件之间进行通信而不用考虑其所处的操作环境是否相同,以及使用的开发语言是否一致。但是COM组件的跨平台是指它在Win32下的跨语言平台,在嵌入式环境下只适合于WinCE平台。

(2)JavaBean

JavaBean是一种基于Java语言编写的可重用组件[3]。实际上JavaBean是一种Java类,通过封装属性和方法成为具有某种功能或处理某个业务的对象。JavaBean不依赖于平台,可以在任何安装了Java运行环境的平台上使用,但是JavaBean必须依赖Java语言开发。

3.嵌入式中间件技术

嵌入式中间件是位于嵌入式系统软件与应用软件之间的一种软件,它在嵌入式操作系统所提供的基本功能与服务基础上,为上层的应用系统提供运行开发环境,是嵌入式应用独立于具体软硬件平台的核心软件环境[4]。通过中间件,可以屏蔽各种异构软硬件平台差异,为上层应用程序提供统一的开发接口,从而实现软件的跨平台应用[4]。图1给出了基于中间件的软件开发模型。与桌面中间件相比,主要差异在于:①嵌入式中间件运行于资源有限的嵌入式设备上,运行速度和效率受嵌入式环境的限制;②嵌入式操作系统差异较大,对中间件提出了更高的要求。嵌入式中间件的特点体现在:①微化内核,由于嵌入式设备资源限制,嵌入式中间件不能较大,以保证运行速度和效率;②多种嵌入式操作系统支持能力,尽可能做到“一次编写,多处运行”;③多种应用的标准和协议支持能力。

图1 基于中间件的软件模型

三、跨平台嵌入式地图可视化引擎EMD_EN结构

本文基于嵌入式中间件技术,采用组件化图形集成框架和模块化方式,按照模块高内聚、模块间低耦合的思路设计了跨平台嵌入式地图可视化引擎EMD_EN。EMD_EN位于嵌入式软硬件平台和地图可视化应用程序之间,为地图可视化应用程序的开发提供统一的应用编程接口,以屏蔽嵌入式运行环境的软硬件差异。EMD_EN由嵌入式操作系统适配器、嵌入式图形绘制接口、嵌入式窗口系统、嵌入式地图可视化、嵌入式图形集成框架5个模块组成。其构成如图2所示。

图2 EMD_EN结构

1.嵌入式操作系统适配器

嵌入式操作系统适配器由一系列的接口函数或抽象的接口类组成,这些接口定义了应用所需要的各种操作系统服务[7]。嵌入式操作系统适配器也可以细分为两层:上层为应用程序定义一致的应用编程接口,这一层对所有的操作系统来说都是相同的;下层与特定的操作系统相关,它是针对这些接口在特定操作系统之上的具体实现。

2.嵌入式窗口系统

嵌入式窗口系统是在嵌入式操作系统适配器基础上,为上层应用程序提供创建窗口和各类控件的基本接口,并具有完备的消息传递和管理机制,以完成用户交互及内部消息处理。

3.嵌入式图形处理接口

嵌入式图形处理接口对操作系统适配器提供的基本图形绘制接口进行扩展,实现了更为丰富的图形绘制接口,用于完成基本的图形图像绘制。

4.嵌入地图符号库

嵌入地图符号利用嵌入式图形处理接口提供的基本功能,按照地图可视化符号系统的要求,用于完成各种地图符号和注记的显示,以及地图符号库的管理组织。

5.嵌入式图形集成框架

嵌入式图形集成框架负责管理符合图形集成框架规范的绘图组件,协调各组件间的绘图流程、功能处理、交互响应和消息传递,并对各组件图形绘制、缩放/漫游/旋转等显示控制,以及坐标变换等进行统一控制。

四、EMD_EN内部机制

1.面向对象的消息传递与管理机制

消息传递和管理机制是图形可视化的基础,也是窗口可视化的主控流程。不同嵌入式操作系统下屏幕的响应与消息流动机制各不相同,通过中间件技术将该过程统一起来,屏蔽底层的实现细节,从而实现显示过程中消息的有效传递和管理。本文采用了以面向对象为基础的消息驱动方案,以消息驱动机制为核心进行消息的传递和管理。系统接受外部键盘、鼠标、触摸屏等信息,且窗口系统中各窗口之间的通信都通过消息机制进行管理。采用消息驱动方案是由于面向对象设计容易造成对象之间的关系数目日益膨胀,形成复杂的网状结构,关系的复杂度也会导致类和对象间的耦合度增多,而消息驱动的设计方案可以很好地避免上述缺陷。

消息在操作系统适配层、窗口系统和上层应用之间传递,驱动着整个系统的正常运转。图3给出了消息之间的传递机制。

图3 消息传递机制

2.基于双缓冲机制的图形图像显示与控制机制

对图形核心服务的抽取是实现地图可视化操作系统的关键,为了提高图形的绘制效率,本文采用了基于双缓冲机制的显示策略。双缓冲技术的基本思想是:不改变可见视频缓存区起始地址,而是在内存中开辟一块与屏幕一样大小的存储区域作为缓冲区域,将下一帧要显示的地图数据绘制到这个缓冲区域上,在显示的时候缓冲区中的数据直接复制到屏幕上。由于图形绘制过程在后台进行,可以有效地消除屏幕的闪烁和抖动。

双缓冲机制的基本过程为:在图形系统初始化时,创建一个虚拟的内存设备,所有的图形操作都作用在该内存设备上,当数据调用完成后,产生屏幕更新事件,应用层通过嵌入式图形集成框架调用嵌入式操作系统适配器,并最终调用特定操作系统提供的基础绘图函数,完成图形在虚拟内存设备上的绘制,将该块内存拷贝于实际屏幕上。

3.嵌入式地图符号绘制机制

嵌入式地图可视化最主要的技术之一就是地图符号库技术。地理信息可视化中存在各种各样的符号,无法用一段程序完成所有符号化显示输出。因此必须把这些符号进行抽象,抽出所有符号的共同特征,用抽象出的共同特征组成各种地图符号。无论多么复杂的地图符号都可以分解为点、线段、椭圆、多边形等基本图形,这些图形可称为图元。将地图符号解析为图元后,在地图符号描述和存储时,只需通过图元的类型、大小、颜色、方向等属性信息进行描述和存储即可。

此外,考虑到嵌入式设备自身嵌入式资源(CPU、存储)有限,以及显示设备的分辨率低等特点,设计符号时以高效率为主要目标,可对符号的质量降低要求,以适应嵌入式环境的特点。为了证明地图符号库在不同嵌入式平台上通用性,本文符号库所需要的基本图元的绘制采用跨平台的嵌入式绘图原语完成。符号库由符号层、图元层和基本图形元素层构成,体系结构如图4所示。

在嵌入式环境下绘制时,由于点状符号绘制非常频繁,因此点状目标的绘制成为地图显示的瓶颈。本文设计了一种栅格化的点状符号绘制方案,以提高绘制效率。在预处理时将点状符号预先栅格化,作为地图数据的一部分提供给各种应用,通常情况下点状符号在符号库中的描述包括组成它的各种图元的描述,而在嵌入式环境下,点状符号记录的是该符号在栅格化符号中的位置,采用栅格化的方式显示,显示效率提高较为明显。对于线状地物的绘制,本文设计了一种光栅化显示方法,首先根据线状符号在符号库中的描述信息和实际显示比例信息,调用图形绘制原语,对基本的现状符号进行栅格化处理;图形绘制原语提供的接口在系统中称之为GGI (general graphic interface),GGI提供了填充模式的画线功能,系统将以上栅格化处理的结果作为画线的填充模式,由GGI绘制出线状符号。

图4 符号绘制机制

五、基于EMD_EN的跨平台地图可视化应用实例

1.基于EMD_EN的应用开发流程

基于EMD_EN引擎进行地图可视化软件开发时,由于EMD_EN的跨平台特性,可使用支持桌面Windows环境的EMD_EN构建一个模拟开发平台,充分利用Windows环境下开发环境熟悉、调试方便的优点进行开发。开发完毕后,只需要将代码移植到目标平台的集成开发环境中进行重新编译,即可实现目标平台的嵌入式地图可视化应用,极大地提高嵌入式应用软件的开发效率。基于EMD_EN引擎的嵌入式应用软件开发流程如图5所示。

2.试验结果

基于本文的研究成果,笔者完成了基于 Vx-Works、WinCE、ReWorks和Android等多种嵌入式操作系统的地图可视化应用系统的开发。图6给出了几种不同嵌入式平台下的地图可视化效果。其中,图6(a)为基于VxWorks系统的地图可视化效果;图6(b)为基于 Andriod系统的地图可视化效果;图6(c)为基于 WinCE系统的地图可视化效果;图6(d)为基于ReWorks系统的地图可视化效果。

图5 基于EMD_EN的开发流程

图6 数字地图可视化中间件的显示效果

在实践过程中,本文对引擎在不同架构、开发环境和数据类型等条件下的显示效率进行了测试,表1给出了引擎在4个嵌入式平台的地图显示应用的试验结果。从试验结果可以看出,引擎能够比较好地适应基于ARM、PowerPC、X86等不同系统架构的Android、VxWorks和国产ReWorks等嵌入式操作系统的跨平台应用,可在Eclipse、WorkBench、EVC++和ReDe等不同集成开发环境中进行移植编译;显示的效率与CPU频率、系统图形支持能力和地物复杂程度密切相关,主要影响因素是每屏显示的数据量和地物复杂程度,其中地物复杂程度对显示时间影响较大,地物符号越复杂则符号化所需时间就相对较长。总体上引擎在几种嵌入式平台上的漫游均较为顺畅,显示时间可满足地图可视化应用的要求。

表1 引擎在不同嵌入式平台显示实验结果

六、结束语

实践表明,本文提出的嵌入式数字地图可视化中间件方法,能够很好地屏蔽多操作系统间的差异,为上层跨平台应用系统的开发提供了便捷的平台,显示效果和效率均满足嵌入式应用系统对地图显示的要求,有效降低了地图可视化应用软件跨平台开发的难度,较大提升了嵌入式应用系统的开发效率。

[1] TAPADIYA P.Com++Programming:A Practical Guide Using Visual C++and ATL[M].[S.l.]:Prentice Hall,2000.

[2] ROGERSON D.COM技术内幕[M].北京:清华大学出版社,2000.

[3] 王炜.JavaBean组件程序设计[M].北京:清华大学出版社,2001.

[4] 何剑.嵌入式中间件技术研究综述[J].大众科技,2008(11):20-22.

[5] 宋栋,姜树明,陈长英,等.跨平台嵌入式GIS系统设计关键技术研究[J].山东科学,2009,22(3):45-49.

[6] 沈文裕,方钰,蒋昌俊,等.跨平台嵌入式GIS数据模型的研究与应用[J].计算机应用,2007,27(9):2298-2301.

[7] 岳春生,胡松.基于中间件的嵌入式GIS设计[J].信息工程大学学报,2004,5(2):150-153.

[8] LOGAN S.Cross-Platform Development in C++:Building Mac OS X、Linux、and Windows Applications[M]. [S.l.]:Pearson Education Incorporation,2007.

[9] Sun Microsystems Inc.The Java Virtual Machine Specification[EB/OL].2011-01-01.http:∥Java.sun.com/docs/ books/vmspec/2nd-edition/html/VMSpecTOC.doc.html.

Research on Cross-platform Map Display Mechanism Based on Embedded System

LIU Ailong,DU Qingyun,CHEN Tao,ZHANG Dong,YAO Xiaofei

P208

B

0494-0911(2014)12-0051-05

刘爱龙,杜清运,陈涛,等.跨平台嵌入式地图可视化机制研究[J].测绘通报,2014(12):51-55.

10.13474/j.cnki.11-2246.2014. 0396

2014-06-06

国家自然科学基金(41371427)

刘爱龙(1973—),男,陕西长安人,博士生,副研究员,主要研究方向为嵌入式地理信息系统与电子地图导航。

猜你喜欢
嵌入式操作系统跨平台中间件
跨平台APEX接口组件的设计与实现
RFID中间件技术及其应用研究
计算机嵌入式操作系统分析
基于Android 平台的OSGi 架构中间件的研究与应用
关于高校嵌入式操作系统课程教学的探索与思考
基于嵌入式操作系统的工业采集板设计
基于QT的跨平台输电铁塔监控终端软件设计与实现
应用服务型人才培养体系下的嵌入式操作系统教学改革探索
基于OPC跨平台通信的电机监测与诊断系统
基于B/S的跨平台用户界面可配置算法研究