中間件思想在嵌入式GIS設(shè)計中的應(yīng)用
關(guān)鍵詞:中間件 嵌入式地理信息系統(tǒng) 適配層
引言
隨著計算機軟件技術(shù)的迅速發(fā)展,應(yīng)用程序的規(guī)模也在不斷擴大。應(yīng)用范圍也更加廣闊。這不僅存在著多種硬件平臺(例如臺式機、嵌入式系統(tǒng)),而且在這些硬件平臺上,通常又存在著多種的通信介質(zhì)(例如串口、USB口等)、通信協(xié)議(例如TCP/IP等)及操作系統(tǒng)軟件平臺(例如Windows、Linux、Nucleus等)。我們的軟件開發(fā)往往要求能夠在這些異構(gòu)的硬/軟件平臺上運行。
為此,我們引入了“中間件(Middleware)”的概念。本文在介紹中間件基本概念的基礎(chǔ)上,結(jié)合研究項目“嵌入式地址信息系統(tǒng)的開發(fā)”來說明如何以中間件的形式設(shè)計該系統(tǒng)。
1 中間件的基本概念
1.1 中間件定義及作用
中間件是位于平臺(硬件和操作系統(tǒng))和應(yīng)用之間的通用服務(wù),這些服務(wù)具有標準的程序接口和協(xié)議。針對不同的操作系統(tǒng)和硬件平臺,它們可以有符合接口和協(xié)議規(guī)范的多種實現(xiàn)。也就是說,中間件是位于底層硬件/操作系統(tǒng)平臺之上,應(yīng)用層之下的中間適配層。該層向下屏蔽掉硬件平臺或操作系統(tǒng)平臺的差異,向上為應(yīng)用層操作一個統(tǒng)一的標準接口,應(yīng)用層的開發(fā)基于該接口進行。在以下定義下,中間件具有如下特點:
*滿足大量應(yīng)用的需要;
*運行于多種硬件和OS平臺;
*支持分布計算,提供跨網(wǎng)絡(luò)、硬件和OS平臺的透明性應(yīng)用或服務(wù)的交互;
*支持標準的協(xié)議;
*支持標準的接口。
在中間件設(shè)計思想下,軟件的開發(fā)變得更加簡單。首先,當系統(tǒng)硬件/操作系統(tǒng)平臺改變時,只需改變中間適配層的幾個參數(shù),只要保持中間件層對應(yīng)用層的接口定義不變,就可以直接將應(yīng)用程序移植過去運行。所有的代碼只需編寫一次就可在任何系統(tǒng)上運行,大大縮短了系統(tǒng)研制的周期,提高了開發(fā)效率,同時還保證了系統(tǒng)的高伸縮性、易升級性穩(wěn)定性。
其次,由于中間件屏蔽了底層平臺差異,提供了標準的封裝接口,使應(yīng)用層以組件的形式實現(xiàn)為可能。用戶可以根據(jù)自己的需要將各個組件有選擇地進行組合,像搭積木一樣,構(gòu)成自己的應(yīng)用系統(tǒng)。
世界著名的咨詢機構(gòu)Standish Group在一份研究報告中歸納了中間件的十大優(yōu)越性:
*縮短應(yīng)用的開發(fā)周期;
*節(jié)約應(yīng)用的開發(fā)成本;
*減少系統(tǒng)初期的建設(shè)成本;
*降低應(yīng)用開發(fā)的失敗率;
*保護已有的投資;
*簡化應(yīng)用集成;
*減少維護費用;
*提高應(yīng)用的開發(fā)質(zhì)量;
*保證技術(shù)進步的連續(xù)性;
*增強應(yīng)用的生命力。
1.2 中間件應(yīng)用現(xiàn)狀及未來發(fā)展趨勢
中間件的應(yīng)用范圍十分廣泛,發(fā)展前景非常美好。據(jù)有關(guān)機的統(tǒng)計表明,近5年來,全球中間件的銷售額平均年增長率為34%,到2004年總銷售額將達到97億美元。中間件已經(jīng)成為國際IT巨頭競逐的目標,各大軟硬件廠商都在積極參與有關(guān)標準的制定和產(chǎn)品的研發(fā)工作,像IBM、甲骨文、BEA、微軟等都制定了相應(yīng)的戰(zhàn)略。據(jù)估計,未來基于Internet的電子商務(wù)業(yè)務(wù)將有79%建筑在中間件的基礎(chǔ)之上。
中間件種類繁多,從不同的應(yīng)用方面及發(fā)展程序上有不同的分類方法。在同上,從中間件所起的作用上來說,中間件可以分為以下三類。
①數(shù)據(jù)類(data integration):用于數(shù)據(jù)的存取、利用和增值,此類中間用于構(gòu)建以數(shù)據(jù)為中心的應(yīng)用。
②處理類(process integration):把分布在網(wǎng)絡(luò)結(jié)點上的各個應(yīng)用或處理連接在一起,形成一個統(tǒng)一的、協(xié)同工作的分布式應(yīng)用。
③分布式構(gòu)件類(distributed components):支持構(gòu)件式應(yīng)用,是未來應(yīng)用的發(fā)展方向。
據(jù)統(tǒng)計,近五年增長率最高的中間件集中在消息中間件、交易中間件、對象中間件和應(yīng)用服務(wù)器中間件、數(shù)據(jù)訪問中間件5種(統(tǒng)計數(shù)據(jù)如表1所列)。另外,隨著網(wǎng)上信息安全問題的出現(xiàn),安全中間悠揚也應(yīng)運而生。
表1 IDC的市場調(diào)查分析
中間件類型 | 1997年銷售額/億美元 | 2002年銷售額/億美元 | 年平均增長率/% | 亞太市場銷售額/億美元 |
消息中間件 | 3.6 | 24.5 | 46 | 3.6 |
交易中間件 | 3.5 | 16.5 | 36 | 2.6 |
對象中斷件 | 1.4 | 7 | 34 | 0.56 |
數(shù)據(jù)訪問中斷件 | 6.1 | 16.5 | 23 | - |
應(yīng)用服務(wù)器 | - | 40 | - | - |
安全中間件 | 1.227 | 3 | - | - |
消息中間件是目前中間件的發(fā)燕尾服熱點。它適用于任何需要進行網(wǎng)絡(luò)通信的系統(tǒng),負責建立網(wǎng)絡(luò)通信的通道,進行數(shù)據(jù)或文件發(fā)送。消息中間悠揚可以跨平臺操作,為不同操作系統(tǒng)上的應(yīng)用軟件集成提供方便,從而滿足企業(yè)內(nèi)部對系統(tǒng)伸縮性和可擴展性的要求。
數(shù)據(jù)訪問中間件能屏蔽不同廠家、不同類型數(shù)據(jù)庫之間的差異,實現(xiàn)異構(gòu)數(shù)據(jù)的共享,從而使得企業(yè)不同時代、不同地域的寶貴數(shù)據(jù)能夠充分利用。
對象中間件技術(shù)目前發(fā)展迅速,各大硬軟件廠商都在積極參與有關(guān)標準的制定和產(chǎn)品的開發(fā)工作。面向?qū)ο蟮闹虚g件提供一個標準的構(gòu)件框架,能使不同廠家的軟件交互訪問,為軟件用戶及開發(fā)者提供一種即插即用的互操作性。
安全中間提供完備的信息安全基顧構(gòu)架,屏蔽安全技術(shù)的復雜性,使設(shè)計開發(fā)人員無須具備專業(yè)的安全知識背景就能構(gòu)構(gòu)造高安全性的應(yīng)用。
2 中間件思想在嵌入式GIS設(shè)計中的應(yīng)用
我們研制的嵌入式GIS是一個地理信息的綜合系統(tǒng)。在功能上,該系統(tǒng)包括地圖瀏覽、地理位置報告、目標標繪、地形分析等功能模塊;在硬件平能臺上,系統(tǒng)要求能夠運行于PC臺式機和基于ARM處理器的嵌入式系統(tǒng)上;在操作系統(tǒng)平臺上,系統(tǒng)要求能夠運行在Winodws 98/2000、Linux等通用操作系統(tǒng)和VxWorks、Nucleus、WinCE等嵌入式操作系統(tǒng)上;在網(wǎng)絡(luò)通信上,要求系統(tǒng)除了能夠支持各種接口及各種通信協(xié)議,還能夠支持自己開發(fā)的通信協(xié)議。在這些設(shè)計要求下,我倦嵌入式地理信息系統(tǒng)開發(fā)中,采用中間件的設(shè)計思想,保證程序的可移植性,節(jié)省人力物力,使研究成果盡快轉(zhuǎn)化為產(chǎn)品。
系統(tǒng)整體結(jié)構(gòu)如圖1所示。
其中,底層硬件平臺采用我們研制的基于ARM微處理器的嵌入式地理信息系統(tǒng)硬件平臺,包括GPS接口、各種存儲介質(zhì)(例如CF卡、Flash等)、各種接口(例如USB、RS-232串行口、以太網(wǎng)接口)、人機交互接口等。
軟件平臺可以選用Windows、Linux、WinCE、Nucleus等操作系統(tǒng),利用該平臺可以屏掉底層硬件平臺的差異。
操作系統(tǒng)適配層(即中間件)定義和設(shè)計適合各種操作系統(tǒng)的適配層。該層具備操作系統(tǒng)的主要特征(例如多任務(wù)多線程的封裝、調(diào)度),向下與相應(yīng)的各種操作系統(tǒng)相適配,向上提供與操作系統(tǒng)無關(guān)的統(tǒng)一接口。該層包括任務(wù)管理、消息管理、通信等模塊。為了屏蔽掉底層操作系統(tǒng)的差異,該層的設(shè)計要求與操作系統(tǒng)接口的函數(shù)要盡可能少,與硬件系統(tǒng)有關(guān)的代碼也要盡可能的少。
終端軟件框架的設(shè)計思想是在操作系統(tǒng)適配層之上,根據(jù)地理信息系統(tǒng)這一特殊應(yīng)用,開發(fā)自己GUI、文件系統(tǒng)、內(nèi)存管理、軍標符號庫、基于消息驅(qū)動的多窗口控制。人機交互接口、專用的地理信息數(shù)據(jù)庫、統(tǒng)一接口的適合GIS的通信接口、任務(wù)管理等。
應(yīng)用層在終端軟件框架的基礎(chǔ)上實現(xiàn)地圖的瀏覽、編譯、查詢、標繪,組合導航,地形分析,圖層管理,位置報告等功能,并帶有三維顯示引擎。
這種層文件、模塊化的設(shè)計可以保證系統(tǒng)很容易地進行擴展,使系統(tǒng)不僅能應(yīng)用于嵌入地管理信息系統(tǒng),還可以作為一個基礎(chǔ)平臺應(yīng)用于其它應(yīng)用場合。對系統(tǒng)的升級只需對相應(yīng)的層進行修改即可,而不用重新設(shè)計整個系統(tǒng)。