引言
随着计算机软件技术的迅速发展,应用程序的规模也在不断扩大。应用范围也更加广阔。这不仅存在着多种硬件平台(例如台式机、嵌入式系统),而且在这些硬件平台上,通常又存在着多种的通信介质(例如串口、USB口等)、通信协议(例如TCP/IP等)及操作系统软件平台(例如Windows、Linux、Nucleus等)。我们的软件开发往往要求能够在这些异构的硬/软件平台上运行。
为此,我们引入了“中间件(Middleware)”的概念。本文在介绍中间件基本概念的基础上,结合研究项目“嵌入式地址信息系统的开发”来说明如何以中间件的形式设计该系统。
1、 中间件的基本概念
1、1 中间件定义及作用
中间件是位于平台(硬件和操作系统)和应用之间的通用服务,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬
*满足大量应用的需要;
*运行于多种硬件和OS平台;
*支持分布计算,提供跨网络、硬件和OS平台的透明性应用或服务的交互;
*支持标准的协议;
*支持标准的接口。
在中间件设计思想下,软件的开发变得更加简单。首先,当系统硬件/操作系统平台改变时,只需改变中间适配层的几个参数,只要保持中间件层对应用层的接口定义不变,就可以直接将应用程序移植过去运行。所有的代码只需编写一次就可在任何系统上运行,大大缩短了系统研制的周期,提高了开发效率,同时还保证了系统的高伸缩性、易升级性稳定性。
其次,由于中间件屏蔽了底层平台差异,提供了标准的封装接口,使应用层以组件的形式实现为可能。用户可以根据自己的需要将各个组件有选择地进行组合,像搭积木一样,构成自己的应用系统。
点击看原图
世界著名的咨询机构Standish Group在一份研究报告中归纳了中间件的十大优越性:
*缩短应用的开发周期;
*节约应用的开发成本;
*减少系统初期的建设成本;
*降低应用开发的失败率;
*保护已有的投资;
*简化应用集成;
*减少维护费用;
*提高应用的开发质量;
*保证技术进步的连续性;
*增强应用的生命力。
1、2 中间件应用现状及未来发展趋势
中间件的应用范围十分广泛,发展前景非常美好。据有关机的统计表明,近5年来,全球中间件的销售额平均年增长率为34%,到2004年总销售额将达到97亿美元。中间件已经成为国际IT巨头竞逐的目标,各大软硬件厂商都在积极参与有关标准的制定和产品的研发工作,像IBM、甲骨文、BEA、微软等都制定了相应的战略。据估计,未来基于Internet的电子商务业务将有79%建筑在中间件的基础之上。
中间件种类繁多,从不同的应用方面及发展程序上有不同的分类方法。在同上,从中间件所起的作用上来说,中间件可以分为以下三类。
①数据类(data integration):用于数据的存取、利用和增值,此类中间用于构建以数据为中心的应用。
②处理类(process integration):把分布在网络结点上的各个应用或处理连接在一起,形成一个统一的、协同工作的分布式应用。
③分布式构件类(distributed components):支持
据统计,近五年增长率最高的中间件集中在消息中间件、交易中间件、对象中间件和应用服务器中间件、数据访问中间件5种(统计数据如表1所列)。另外,随着网上信息安全问题的出现,安全中间悠扬也应运而生。
表1 IDC的市场调查分析
消息中间件是目前中间件的发燕尾服热点。它适用于任何需要进行网络通信的系统,负责建立网络通信的通道,进行数据或文件发送。消息中间悠扬可以跨平台操作,为不同操作系统上的应用软件集成提供方便,从而满足企业内部对系统伸缩性和可扩展性的要求。
数据访问中间件能屏蔽不同厂家、不同类型数据库之间的差异,实现异构数据的共享,从而使得企业不同时代、不同地域的宝贵数据能够充分利用。
对象中间件技术目前发展迅速,各大硬软件厂商都在积极参与有关标准的制定和产品的开发工作。面向对象的中间件提供一个标准的构件框架,能使不同厂家的软件交互访问,为软件用户及开发者提供一种即插即用的互操
安全中间提供完备的信息安全基顾构架,屏蔽安全技术的复杂性,使设计开发人员无须具备专业的安全知识背景就能构构造高安全性的应用。
2、 中间件思想在嵌入式GIS设计中的应用
我们研制的嵌入式GIS是一个地理信息的综合系统。在功能上,该系统包括地图浏览、地理位置报告、目标标绘、地形分析等功能模块;在硬件平能台上,系统要求能够运行于PC台式机和基于ARM处理器的嵌入式系统上;在操作系统平台上,系统要求能够运行在Winodws 98/2000、Linux等通用操作系统和VxWorks、Nucleus、WinCE等嵌入式操作系统上;在网络通信上,要求系统除了能够支持各种接口及各种通信协议,还能够支持自己开发的通信协议。在这些设计要求下,我倦嵌入式地理信息系统开发中,采用中间件的设计思想,保证程序的可移植性,节省人力物力,使研究成果尽快转化为产品。
系统整体结构如图1所示。
其中,底层硬件平台采用我们研制的基于ARM微处理器的嵌入式地理信息系统硬件平台,包括GPS接口、各种存储介质(例如CF卡、Flash等)、各种接口(例如USB、RS-232串行口、以太网接口)、人机交互接口等。
软件平台可以选用Windows、Linux、WinCE、Nucleus等操作系统,利用该平台可以屏掉底层硬件平台的差异。
操作系统适配层(即中间件)定义和设计适合各种操作系统的适配层。该层具备操作系统的主要特征(例如多任务多线程的封装、调度),向下与相应的各种操作系统相适配,向上提供与操作系统无关的统一接口。该层包括任务管理、消息管理、通信等模块。为了屏蔽掉底层操作系统的差异,该层的设计要求与操作系统接口的函数要尽可能少,与硬件系统有关的代码也要尽可能的少。
终端软件框架的设计思想是在操作系统适配层之上,根据地理信息系统这一特殊应用,开发自己GUI、文件系统、内存管理、军标符号库、基于消息驱动的多窗口控制。人机交互接口、专用的地理信息数据库、统一接口的适合GIS的通信接口、任务管理等。
应用层在终端软件框架的基础上实现地图的浏览、编译、查询、标绘,组合导航,地形分析,图层管理,位置报告等功能,并带有三维显示引擎。
这种层文件、模块化的设计可以保证系统很容易地进行扩展,使系统不仅能应用于嵌入地管理信息系统,还可以作为一个基础平台应用于其它应用场合。对系统的升级只需对相应的层进行修改即可,而不用重新设计整个系统。