Orginal Article

Research on Cross-Platform Middleware for Embedded Digital Map Visualization

  • LIU Ailong , 1, 2, 3, * ,
  • ZHANG Dong 2, 3 ,
  • CHEN Tao 2, 3 ,
  • YAO Xiaofei 2, 3 ,
  • XU Jian 2, 3
Expand
  • 1. School of Resource and Environmental Sciences, Wuhan University, Wuhan 430079, China
  • 2. State Key Laboratory of Geo-information Engineer, Xi'an 710054, China
  • 3. Xi'an Research Institute of Surveying and Mapping, Xi'an 710054, China
*Corresponding author: LIU Ailong, E-mail:

Received date: 2014-08-23

  Request revised date: 2015-01-12

  Online published: 2015-06-10

Copyright

《地球信息科学学报》编辑部 所有

Abstract

Along with the continuous development of computer technology, internet and wireless communication technology, digital map visualization, as the core of geographic information system, has been widely used. At the same time, with the increasing number of embedded software and hardware, a variety of heterogeneous platforms bring great challenges to the development of embedded geographic information system. Therefore, it is important to study the digital map visualization method for cross-platform purpose. Firstly, after comparing the differences of middleware between the embedded system and desktop system, this paper summarizes the characteristics of the embedded middleware, and analyses the platform differences and resource restrictions for digital map visualization in the embedded environment. Based on the concept of middleware, a cross-platform middleware of digital map visualization with three layers: EMD_MW was constructed. The middleware utilizes the operating system abstraction layer to prevent the heterogeneity from different embedded operating systems, and to abstract the operating system message forwarding and the graphic interfaces associated with the digital map visualization. Meanwhile, the model utilizes the framework layer to dispel the differences among data storage services, to improve the base graphic interfaces, and to provide relevant digital map display interfaces through the function layer. Then, the abstraction layer, service framework and function layer of EMD_WM were designed and realized. Finally, several engineering applications based on EMD_MW were presented. These examples indicate that, the embedded cross-platform middleware model for digital map visualization has a good cross-platform performance, and it can effectively solve the problem of digital map display on different embedded platforms.

Cite this article

LIU Ailong , ZHANG Dong , CHEN Tao , YAO Xiaofei , XU Jian . Research on Cross-Platform Middleware for Embedded Digital Map Visualization[J]. Journal of Geo-information Science, 2015 , 17(6) : 675 -681 . DOI: 10.3724/SP.J.1047.2015.00675

1 引言

数字地图可视化是地理信息应用的核心功能之一。随着计算机技术的不断发展,各种异构嵌入式硬件和操作系统平台的出现,为嵌入式应用系统提供更为丰富载体的同时,也对应用程序的跨平台移植造成困难,尤其对数字地图可视化在不同平台实现带来较大的移植工作量。针对软件开发的跨平台问题,国内外许多学者都进行了深入研究,主要有Java语言[1-2]、C++[3-4]等跨平台开发语言;Com[5-6]和JavaBean[7]可跨平台的组件技术;跨平台中间件技术从系统架构层面为软件开发的跨平台提供了比较好的解决方案[8],得到较为广泛的研究和应用。基于中间件思想的嵌入式图形中间件商用产品,主要有加拿大的Tilcon、德国的VxWin;开源产品有美国Century Software公司的MicroWindow[9]、Qt库开发商Troll Tech的Qt/Embedded[10]和清华大学的MiniGUI[11]。这些嵌入式图形中间件,虽提供了跨平台的图形绘制接口,但由于数字地图可视化需由其特殊性语言-地图符号来表达,而这些产品不具备地图符号绘制功能,同时也不支持ReWorks、ACoreOS等国产嵌入式操作系统。因此,本文采用嵌入式中间件思想,在嵌入式环境下,设计和实现了跨平台的数字地图可视化中间件,为跨WinCE、Android、ReWorks等不同嵌入式系统的数字地图可视化提供了统一平台。

2 嵌入式系统与嵌入式中间件

2.1 嵌入式系统及差异分析

嵌入式系统(Embedded System)是一种针对特定应用设计,对体积、可靠性、功能、和功耗等都有严格要求的专用计算机信息系统[12]。嵌入式系统主要由硬件系统和软件系统2部分组成。硬件系统主要包括:中央处理器(CPU)、存储设备、图形控制器和输入/输出端口等;软件系统主要包括嵌入式操作系统、嵌入式数据库、嵌入式应用程序,以及编程开发接口等。
不同嵌入式系统的差异性,主要体现在硬件架构和操作系统2个方面。目前,主要的硬件架构有X86、xScale、PowerPC、ARM等;比较成熟的嵌入式操作系统有WinCE、iOS、嵌入式Linux、VxWorks等。硬件架构的差异性由操作系统解决,本文主要研究如何屏蔽不同嵌入式操作系统上的地图可视化在开发语言、开发环境、消息机制和图形绘制等方面的差异性。

2.2 中间件的概念

中间件是介于操作系统和各类应用程序之间的一个软件层,可屏蔽底层运行环境的复杂性和异构性,为上层应用软件提供开发与运行支撑环境。在软件层面,中间件表现为以应用程序接口定义的软件管理框架,应用软件借助此接口和框架在不同的技术之间共享资源,可理解为介于操作系统和应用软件之间可复用的基础软件层[13]。它为上层应用程序提供统一的、抽象的、面向应用的编程接口,以屏蔽各种异构软硬件平台差异,实现软件的跨平台应用[8]图1为中间件应用示意图。
Fig. 1 Illustration of application based on middleware

图1 中间件应用示意图

2.3 嵌入式中间件定义

嵌入式中间件是位于嵌入式系统软件与应用软件之间的一种软件,在嵌入式操作系统所提供的基本功能与服务基础上,为上层的应用系统提供运行开发环境,是嵌入式应用独立于具体软硬件平台的核心软件环境[13]。与桌面中间件的主要差异:(1)嵌入式中间件运行于资源有限的嵌入式设备上,运行效率受嵌入式环境的限制;(2)嵌入式操作系统差异较大,对中间件提出了更高的要求。嵌入式中间件特点,一是微化内核,由于嵌入式设备资源限制,嵌入式中间件不能太大,以保证运行速度和效率;二是多种嵌入式操作系统支持能力,嵌入式中间件应具备有在多种嵌入式操作系统下运行能力。

3 嵌入式环境下数字地图显示的特性分析

地图可视化是地理信息系统最为基础的核心功能,嵌入式系统作为一种特殊的计算机系统[14-15],进行数字地图显示时,需考虑计算机软硬件环境的影响。在嵌入式环境下,嵌入式系统对数字地图显示的限制性主要体现在平台差异性和资源有限性2个方面。

3.1 平台差异性限制

地图显示过程中首先需读取地图数据,再调用图形绘制接口进行符号化输出,对平台的文件读取接口和图形绘制接口有较强的依赖性。由于嵌入式处理器和操作系统的多样性,不同嵌入式运行环境下,其图形绘制接口及文件读取字节序差异较大,这种差异对跨平台的嵌入式地图可视化产生较大的限制性。

3.2 资源有限性与地图可视化需求分析

(1)计算资源有限性:嵌入式设备的微处理器速度较慢,且有些平台缺乏浮点协处理器。而数字地图的数据量较大,且对地图绘制的实时性也要求较高。因此,嵌入式环境的数字地图数据读取及地图符号绘制算法都要尽可能高效,以满足数字地图可视化的要求。
(2)屏幕显示资源有限性:嵌入式设备的显示屏尺寸通常较小[16],地图可视化范围由于受屏幕尺寸的限制,整体显示效果受较大影响,在地图显示设计时,需对屏幕显示资源合理配置。
(3)内存资源的限制性:嵌入式设备与桌面系统相比,其内存储器容量小,且不支持虚拟内存分配。此种限制对数字地图组织的高效性提出更高要求,对地图显示算法内存空间利用合理性也提出更高要求。

4 地图可视化中间件EMD_MW设计

4.1 EMD_MW体系结构模型

EMD_MW(Embedded Map Dispaly_Middle Ware)位于嵌入式软硬件平台和地图可视化应用程序之间,为地图可视化应用程序的开发提供统一的应用编程接口,从而屏蔽嵌入式运行环境的软硬件差异。EMD_MW由操作系统抽象层、框架层和功能层构成,其体系结构模型如图2所示。
Fig. 2 System frame model of EMD_MW

图2 EMD_MW体系结构模型

(1)操作系统抽象层
由一系列的接口函数或抽象接口类组成,这些接口定义了应用所需的各种操作系统服务[17]。操作系统抽象层分为2层:上层为应用程序编程定义一致的编程接口,该层在所有的操作系统上都相同;下层对应特定的操作系统,它是这些接口针对特定操作系统的具体实现。
(2)服务框架层
以操作系统抽象层作为基础,提供适合嵌入式用户程序应用的GUI窗口系统、文件处理接口、扩展图形接口、定点计算接口等。其中,GUI窗口系统为上层应用提供创建窗口与各类控件的基本接口,并提供完备的消息传递与管理机制;扩展图形接口对操作系统抽象层提供的基本图形绘制接口进行扩展,实现更为丰富的图形绘制接口;文件处理接口主要是为上层应用程序提供统一、高效的地图数据处理接口,屏蔽不同运行环境数据存储的差异;定点计算接口主要负责将浮点运算转换为定点运算,以提高地图数据计算与检索的效率。
(3)功能层
通过服务框架层提供的跨平台统一应用编程接口,对数据读取和符号化显示进行封装,为上层应用软件开发提供与平台无关的数字地图显示接口,支持上层应用程序的数字地图-可视化。

4.2 EMD_MW抽象层统一接口设计

规范操作系统抽象层的统一接口,是设计操作系统抽象层的关键[18-19],如接口在不同操作系统间移植过程中始终保持稳定,服务框架层的设计和实现就在跨平台时不会受到影响。本文提取出数字地图可视化所需的操作系统消息的转发和图形图像绘制接口进行抽象,设计了2个操作系统抽象类:适配器EMD_OSAdapter类和绘图接口EMD_OSDrawInterface类。其中,EMD_OSAdapter类负责上层应用系统的启动与操作系统消息转发,EMD_ OSDrawlnterface类负责调用特定操作系统提供的绘图接口。图3为操作系统抽象层设计类图。
Fig. 3 Class diagram of abstraction layer

图3 操作系统抽象层类图

将EMD_OSAdapter类和EMD_OSDrawlnterface类设定为抽象类(即只将二者当做纯粹的接口),以适应不同操作系统。对于某一操作系统,则从EMD_OSAdapter类和EMD_OSDrawlnterface类中继承出特定的派生类,以解决跨平台问题。为提升应用解决程序开发简洁性,本文将服务框架层与抽象层的统一接口类合并于EMD_OSAdapter类中进行设计。图4为完整的跨平台系统抽象层体系结构图。
Fig. 4 System frame of cross-platform abstraction layer

图4 跨平台抽象层体系结构图

4.3 EMD_MW服务框架层的接口设计

(1)GUI窗口类
定义窗口元素EMD_Object类作为任何窗口和控件的基类。由于屏幕类(EMD_Screen)和窗口类(EMD_Window)的共同特点是可以容纳很多其他的对象,因此,可构建一个新基类(EMD_Container),其代码由EMD_Screen类和EMD_Window类共享。从逻辑上看,容器类也属于一种窗口元素[20],其本身就是窗口元素EMD_Object类的一个派生类。控件类可分为有文字和无文字2种,本文采用继承方式设计,无文字控件直接从控件抽象类(EGIS_Widget)继承,从EGIS_Widget派生出一个文字控件抽象类(EGIS_TextWidget)作为包含文字控件的基类,用来管理控件中的文字。窗口类的实现类图如图5所示。
Fig. 5 Class diagram of GUI window elements

图5 GUI窗口元素类图

(2)扩展图形接口
图6给出了EMD_MW的扩展图形接口EMD_ DrawGraphInterface类结构。类中包含一个EMD_ OSAdapter类的指针对象m_pAdapter,m_pAdapter中包含特定窗口的设备上下文句柄,以实现特定窗口的点、线、面和文本的图形绘制。因此,EMD_ DrawGraphInterface类的所有扩展图形绘制接口都是基于EMD_OSAdapter中的基本点、线、面和文本的图形绘制接口来实现。EMD_DrawGraphInterface类提供的图形绘制接口较为丰富,该扩展图形接口可以很容易的将桌面系统中的地图符号绘制算法移植到嵌入式平台上,实现嵌入式环境下的跨平台地图符号库。
Fig. 6 Framework of extend graphic interface

图6 扩展图形接口结构

(3)文件处理接口
不同嵌入式处理器的嵌入式环境,所采用的字节顺序可能不相同,本文扩展了标准C的文件读写接口,设计了EMD_File和EMD_ByteOrderTransform 2个实体类,将字节序转换接口包含在其中,从而实现跨平台的文件读写接口,图7为文件处理接口原理图。
Fig. 7 Flowchart of file transact interface

图7 文件处理接口流程

4.4 EMD_MW功能层的接口实现

功能层通过数字地图绘制接口完成地图绘制,当应用层向地图可视化接口发送地图显示请求时,地图可视化接口调用地图数据检索与调度模块,获取显示区域的地图数据,数据准备完毕后调用跨平台地图符号库进行符号化绘制,最后将绘制结果在屏幕上可视化输出。其中,地图数据检索与调度模块是通过EMD_MW的跨平台文件处理接口来进行地图数据读取,跨平台地图符号库通过调用EMD_ MW的扩展图形接口来实现。

5 基于EMD_MW的地图可视化应用

本文设计的EMD_MW数字地图可视化中间件,作者在WinCE、VxWorks、ReWorks和Android等几种不同的嵌入式操作系统上,进行了数字地图可视化应用系统的开发,地图可视化效果如图8-11所示。
Fig. 8 Map visualization based on VxWorks

图8 VxWorks系统下的地图可视化

Fig. 9 Map Visualization based on Android

图9 Android系统下的地图可视化

Fig. 10 Map Visualization based on ReWorks

图10 ReWorks系统下的地图可视化

Fig. 11 Map Visualization based on WinCE

图11 WinCE系统下的地图可视化

以上的应用是基于EMD_MW在不同的集成开发环境中进行,其中,VxWorks下的地图显示开发环境为WorkBench;Android下的地图显示集成开发环境为Eclipse;ReWorks下的地图显示集成开发环境为ReDe;WinCE下的地图显示集成开发环境为Embedded VisualC++。应用表明,本文设计的嵌入式数字地图可视化中间件,能较好地在几种操作系统间移植和应用,屏蔽了操作系统间的差异,为数字地图显示的跨平台开发提供了便捷的平台,有效提升了数字地图嵌入式应用系统的开发效率。

6 结束语

本文分析了不同嵌入式环境下数字地图显示的差异性,基于中间件技术,设计了跨嵌入式平台的地图可视化中间件EMD_MW,提出了EMD_MW的体系结构和抽象层、框架层与服务层的设计实现方法,并对EMD_MW进行了实践检验。实验表明,EMD_MW能较好地实现数字地图可视化跨平台开发,但EMD_MW在复杂地物符号绘制的效果和效率方面还有待提升,需进一步研究。

The authors have declared that no competing interests exist.

[1]
高昂,陈荣国,张明波,等.面向网格环境的Java跨平台GIS系统原型实现的关键技术[J].地球信息科学,2007,9(6):65-70.

[2]
Sun Microsystems Inc. Embedded Java application environment specification, version1.1[DB/OL]. 2001.

[3]
Logan S.Cross-platform development in C++: Building Mac OS X、 Linux、 and Windows applications[M]. Boston: Addison-Wesley Professional, 2007:17-63.

[4]
Engebretsen L.Platform-independent code conversion within the C++ locate framework[J]. Software, 1996,36(15):1643-1654.

[5]
Tapadiya P.Com+ programming: A practical guide using visual C++ and ATL[M]. Upper Saddle River, NJ: Prentice Hall PTR, 2000:1-52.

[6]
Dale Rogerson著,杨秀章,江英译.COM技术内幕[M].北京:清华大学出版社,2000:125-165.

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

[8]
周园春,李淼,张建,等.中间件技术综述[J].计算机工程与应用,2002(15):80-82.

[9]
Haerr G. Microwindows architecture[DB/OL]. 1999.

[10]
Jasmin Blanchette, Mark Summerfield 著,闫锋欣,曾泉人,张志强译. C++ GUI Programming with Qt4, Second Edition[M]. 北京:电子工业出版社,2008:1-10.

[11]
魏永明. 嵌入式软件开发及C语言实现——MiniGUI剖析[M].北京:电子工业出版社,2008:1-25.

[12]
Chatterjee S, Strosnider J.Quantitative analysis of hardware support for real-time operating systems[J]. Real-Time Systems, 1996,5(1):123-142.

[13]
何操. 嵌入式中间件技术研究[J].制造业自动化,2010,32(5):232-234.

[14]
Alderson A, Hull M E C, Jackson K, Griffiths L E. Method engineering for industrial real-time and embedded systems[J]. Information and Software Technology, 1998,40:443-454.

[15]
林建民. 嵌入式操作系统技术发展概述[J].计算机工程,2001,27(10):1-4.

[16]
张东,钱德沛,刘爱龙,等.车辆导航中基于约束条件的地图引擎和路径规划研究[J].计算机工程,2007,33(1):236-238.

[17]
尚海忠,朱培彦,王霞,等.操作系统抽象层——一种支持跨平台的新技术[J].计算机工程,2002,28(2):109-111.

[18]
王同合,岳春生,胡泽明.基于抽象层的嵌入式GIS跨平台体系结构设计[J].淮海工学院学报(自然科学版),2009,18(SI):31-32.

[19]
刘小林,华一新,葛文,等.嵌入式GIS图形中间件的设计与实现[J].测绘通报,2010(11):58-61.

[20]
吴峰,王自强.基于Frame的嵌入式GUI系统设计[J].计算机应用与软件,2005(3):22-23.

Outlines

/