国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

面向服務(wù)的移動(dòng)GIS平臺(tái)架構(gòu)研究

2014-11-07 11:19劉健冬
科技資訊 2014年16期

劉健冬

摘 要:本文以移動(dòng)GIS平臺(tái)架構(gòu)為研究對(duì)象,采用面向服務(wù)思想設(shè)計(jì)并實(shí)現(xiàn)了一種基于“云+端”模式的移動(dòng)GIS快速開發(fā)平臺(tái),提出一種分層開發(fā)模型OS-GAL-IAL,研制出跨平臺(tái)、高性能、全自主的GIS內(nèi)核,實(shí)現(xiàn)了一套精細(xì)化、流程化、可視化、易擴(kuò)展的快速開發(fā)框架,能幫助開發(fā)者快速構(gòu)建業(yè)務(wù)敏捷的移動(dòng)GIS應(yīng)用系統(tǒng)。

關(guān)鍵詞:移動(dòng)GIS WebGIS SOA 敏捷開發(fā)

中圖分類號(hào):P208 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2014)06(a)-0031-02

用戶在移動(dòng)狀態(tài)下使用GIS的過(guò)程稱為移動(dòng)GIS,用戶所處的環(huán)境亦稱為“移動(dòng)計(jì)算環(huán)境”,它是一種以計(jì)算機(jī)技術(shù)為核心、無(wú)線網(wǎng)絡(luò)為支撐、支持用戶訪問(wèn)網(wǎng)絡(luò)數(shù)據(jù),實(shí)現(xiàn)快捷、方便的自由通信和共享的分布式計(jì)算環(huán)境。移動(dòng)GIS存在狹義和廣義的定義之分。狹義的移動(dòng)GIS稱為具有桌面GIS功能的移動(dòng)終端系統(tǒng),它是一種離線工作模式,不與服務(wù)器進(jìn)行交互。廣義的移動(dòng)GIS定義為一種集成系統(tǒng),是由GPS、移動(dòng)通信、互聯(lián)網(wǎng)服務(wù)和GIS共同構(gòu)成的集成系統(tǒng),它基于這些集成載體將最終的服務(wù)提供給用戶,方便用戶進(jìn)行日常信息的分析與決策。

移動(dòng)GIS作為移動(dòng)空間信息服務(wù)的基礎(chǔ)設(shè)施,其應(yīng)用領(lǐng)域非常廣泛。然而,當(dāng)前移動(dòng)GIS還面臨一些技術(shù)難題,包括空間數(shù)據(jù)量大、計(jì)算能力不足、網(wǎng)絡(luò)帶寬窄、可靠性差、軟硬件兼容性差等,導(dǎo)致移動(dòng)GIS項(xiàng)目實(shí)施面臨技術(shù)門檻高、開發(fā)周期長(zhǎng)、實(shí)施成本高、項(xiàng)目風(fēng)險(xiǎn)大等問(wèn)題。本文以移動(dòng)GIS項(xiàng)目共性需求為導(dǎo)向,采用面向服務(wù)思想設(shè)計(jì)并實(shí)現(xiàn)了基于“云+端”模式的移動(dòng)GIS快速開發(fā)平臺(tái)。平臺(tái)具有跨平臺(tái)、高性能、可配置、易擴(kuò)展、支持多語(yǔ)言二次開發(fā)等特點(diǎn),能幫助開發(fā)者快速構(gòu)建業(yè)務(wù)敏捷的移動(dòng)GIS應(yīng)用系統(tǒng),具有重要的現(xiàn)實(shí)意義。

1 平臺(tái)總體架構(gòu)

經(jīng)過(guò)多年發(fā)展,GIS己從單機(jī)工具型軟件系統(tǒng)逐步走向了分布式、網(wǎng)絡(luò)化的應(yīng)用軟件平臺(tái),從獨(dú)立GIS系統(tǒng)逐步過(guò)渡到具有高度資源整合能力和對(duì)外服務(wù)能力的服務(wù)式GIS。服務(wù)式GIS是一種面向服務(wù)軟件工程方法的GIS技術(shù)體系,它支持按照一定規(guī)范把GIS的全部功能以服務(wù)的方式發(fā)布出來(lái),可以跨平臺(tái)、跨網(wǎng)絡(luò)、跨語(yǔ)言地被多種客戶端調(diào)用,同時(shí)能聚合來(lái)自其他服務(wù)器發(fā)布的GIS服務(wù)。服務(wù)式GIS可以更全面地支持SOA,通過(guò)對(duì)多種SOA實(shí)踐標(biāo)準(zhǔn)與空間信息服務(wù)標(biāo)準(zhǔn)的支持,可以使用于各種SOA架構(gòu)體系中,與其它IT業(yè)務(wù)系統(tǒng)進(jìn)行無(wú)縫的異構(gòu)集成,從而可以更容易地讓應(yīng)用開發(fā)者構(gòu)建業(yè)務(wù)敏捷應(yīng)用系統(tǒng)[3~5]。本文以面向服務(wù)的思想,分析設(shè)計(jì)了基于SOA架構(gòu)的移動(dòng)GIS開發(fā)平臺(tái),提出“云+端”的移動(dòng)GIS開發(fā)模式,由應(yīng)用層、服務(wù)層、支撐層、核心層組成,其總體架構(gòu)如圖1所示。

其中,應(yīng)用層是以移動(dòng)GIS為工具的數(shù)據(jù)采集、設(shè)備巡檢、移動(dòng)執(zhí)法等各類應(yīng)用系統(tǒng),包括移動(dòng)作業(yè)系統(tǒng)、在線監(jiān)控、基于WebGIS的業(yè)務(wù)應(yīng)用系統(tǒng)、指揮決策系統(tǒng)等,這些運(yùn)行環(huán)境不同、架構(gòu)各異的應(yīng)用系統(tǒng),通過(guò)調(diào)用、聚合平臺(tái)發(fā)布的服務(wù),實(shí)現(xiàn)數(shù)據(jù)共享和互操作;服務(wù)層由一系列遵循一定規(guī)范的應(yīng)用接口組成,是平臺(tái)暴露給應(yīng)用層進(jìn)行集成、擴(kuò)展的應(yīng)用程序接口;支撐層是平臺(tái)的核心,采用B/S和C/S相結(jié)合的混合架構(gòu),對(duì)應(yīng)用層各類系統(tǒng)起著數(shù)據(jù)管理、配置等支撐作用。

2 平臺(tái)主要功能模塊

2.1 GIS核心庫(kù)

核心層由HiMap SDK和HiWebGIS引擎組成,前者主要面向桌面端、服務(wù)器端和嵌入式設(shè)備的輕量級(jí)GIS應(yīng)用程序的開發(fā)與部署,而后者是面向WebGIS應(yīng)用系統(tǒng)的二次開發(fā)組件。HiMap SDK采用標(biāo)準(zhǔn)C++開發(fā)從底層構(gòu)建實(shí)現(xiàn),支持跨平臺(tái)(Windows Mobile、Android、iOS、Win32等)、多語(yǔ)言(C#、JAVA、Object C)、多并發(fā)、高性能的GIS應(yīng)用程序二次開發(fā)。HiMap SDK引入了硬件抽象層的概念,提出分層開發(fā)模型OS-GAL-IAL,如圖2所示。

在OS-GAL-IAL模型中,與圖形界面無(wú)關(guān)的算法、模型,采用標(biāo)準(zhǔn)C++在內(nèi)核中統(tǒng)一實(shí)現(xiàn),而對(duì)一些與操作系統(tǒng)有關(guān)的底層接口(如Cash內(nèi)存、文件、Debug、FrameBuffer、 Thread、Timer等)、人機(jī)界面、圖形繪制等功能,在內(nèi)核中進(jìn)行統(tǒng)一定義與封裝,在具體的語(yǔ)言開發(fā)包中實(shí)現(xiàn)。這種分層設(shè)計(jì)既能充分發(fā)揮C++計(jì)算性能的優(yōu)越,又能最大程度利用操作系統(tǒng)提供的接口,保證了最佳計(jì)算性能和顯示效果,并有效地屏蔽了因嵌入式硬件環(huán)境和操作系統(tǒng)的改變而導(dǎo)致的平臺(tái)移植性的問(wèn)題。

HiWebGIS引擎內(nèi)核采用Flex技術(shù)實(shí)現(xiàn),在Flex IDE中采用MXML語(yǔ)言設(shè)計(jì)組件、元素界面和布局,ActionScript語(yǔ)言負(fù)責(zé)引擎內(nèi)部業(yè)務(wù)邏輯的實(shí)現(xiàn)。HiWebGIS實(shí)現(xiàn)前端地圖顯示與控制、圖形繪制、消息廣播和事件交互處理等功能,支持主流的網(wǎng)絡(luò)地圖服務(wù)(Google、百度、都市圈2.5D等)。為了讓普通程序員能便捷地調(diào)用HiWebGIS引擎,采用JavaScript對(duì)內(nèi)核進(jìn)行封裝,這樣在頁(yè)面中應(yīng)用簡(jiǎn)單的js代碼便可獲取內(nèi)核對(duì)象并調(diào)用各種接口。

2.2 數(shù)據(jù)管理系統(tǒng)

基礎(chǔ)地圖數(shù)據(jù)、業(yè)務(wù)對(duì)象數(shù)據(jù)的預(yù)處理是移動(dòng)GIS應(yīng)用項(xiàng)目中至關(guān)重要的一環(huán),由于這些數(shù)據(jù)通常是多源異構(gòu)的,在存儲(chǔ)方式、數(shù)據(jù)格式、空間參考等方面存在差異,需要對(duì)這些數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換、坐標(biāo)變換、拓?fù)錂z查、符號(hào)設(shè)置、緩存制作、壓縮轉(zhuǎn)存等數(shù)據(jù)預(yù)處理工作。數(shù)據(jù)管理系統(tǒng)綜合考慮桌面系統(tǒng)和嵌入式應(yīng)用系統(tǒng)在數(shù)據(jù)精度、顯示分辨率、尋址計(jì)算等方面的差異,進(jìn)行全局的優(yōu)化設(shè)計(jì),提供了豐富實(shí)用的功能插件。如:地圖緩存制作插件可同時(shí)制作多種分辨率的地圖瓦片,并提供松散、緊湊兩種存儲(chǔ)格式,確保數(shù)據(jù)能在桌面端、Web端和移動(dòng)端均能逼真、流暢地展示。

2.3 通信傳輸系統(tǒng)

通信傳輸系統(tǒng)是承接移動(dòng)GIS和服務(wù)器的關(guān)鍵部分,其傳輸效率和系統(tǒng)的安全性、健壯性通常決定著一個(gè)移動(dòng)GIS項(xiàng)目能否成功實(shí)施。用戶在戶外開始作業(yè)前,移動(dòng)GIS通過(guò)套接字(Socket)連接到通信服務(wù)系統(tǒng)進(jìn)行合法性驗(yàn)證,作業(yè)完成后,現(xiàn)場(chǎng)采集的數(shù)據(jù)和軌跡數(shù)據(jù)通過(guò)通信服務(wù)系統(tǒng)實(shí)時(shí)地保存到服務(wù)器。當(dāng)監(jiān)控中心需要對(duì)戶外用戶進(jìn)行指揮調(diào)度、多方協(xié)助時(shí),可通過(guò)通信服務(wù)系統(tǒng)將指令推送給現(xiàn)場(chǎng)終端用戶。為了達(dá)到最佳系統(tǒng)性能,本文采用完成端口(I/O Completion Ports,IOCP)管理套接字,IOCP充分利用內(nèi)核對(duì)象的調(diào)度,只使用少量的幾個(gè)線程來(lái)處理和客戶端的所有通信,消除了無(wú)謂的線程上下文切換,從而最大限度的提高了網(wǎng)絡(luò)通信的性能。endprint

2.4 運(yùn)行維護(hù)系統(tǒng)

運(yùn)行維護(hù)系統(tǒng)為應(yīng)用層各類應(yīng)用系統(tǒng)提供底層支撐,包括GIS數(shù)據(jù)配置、權(quán)限配置兩大部分。其中,WebGIS數(shù)據(jù)配置實(shí)現(xiàn)對(duì)GIS數(shù)據(jù)的組織、顯示、查詢、事件、字段等信息的設(shè)置,這些配置項(xiàng)在WebGIS服務(wù)契約一一對(duì)應(yīng),前端對(duì)服務(wù)調(diào)用結(jié)果依次按契約進(jìn)行取值,并在前端UI組件中展示。如:可配置當(dāng)用戶在WebGIS上點(diǎn)擊某個(gè)要素時(shí),是否彈出一個(gè)對(duì)話框,以及配置如何在對(duì)話框展示要素信息;配置前端參數(shù)取值字段,可在Web端方便地檢索出各要素的字段值,從而可輕松地實(shí)現(xiàn)各種擴(kuò)展應(yīng)用。

權(quán)限配置采用RABC模型,即通過(guò)用戶、角色、權(quán)限三者之間建立的一對(duì)多、多對(duì)多的關(guān)系來(lái)實(shí)現(xiàn)權(quán)限控制,包括功能權(quán)限和數(shù)據(jù)權(quán)限的配置。其中,對(duì)數(shù)據(jù)權(quán)限(CRUD、統(tǒng)計(jì)、導(dǎo)出等)實(shí)現(xiàn)了精細(xì)化控制,包括對(duì)字段、記錄的過(guò)濾控制等,能滿足實(shí)際項(xiàng)目中的絕大多數(shù)應(yīng)用需求。

如圖3配置了巡查臺(tái)賬(表PATROL _LOG)的編輯過(guò)濾條件為:SELECT*FROM PATROL_LOG WHERE 片區(qū)編號(hào)=SYS_OM _POSITIONID,其中,片區(qū)編號(hào)為巡查臺(tái)賬表的一個(gè)字段,SYS_OM_POSITIONID是運(yùn)行時(shí)的一個(gè)上下文變量,在用戶登錄時(shí)賦值。開發(fā)者通過(guò)界面配置,“零編碼”便實(shí)現(xiàn)了“用戶僅能編輯本部門的數(shù)據(jù)”這一業(yè)務(wù)需求。

2.5 服務(wù)管理系統(tǒng)

服務(wù)管理系統(tǒng)是平臺(tái)各種服務(wù)運(yùn)行的宿主環(huán)境,與IIS托管、Windows Services宿主不同,自托管宿主具有便于管控等優(yōu)勢(shì),能方便地啟動(dòng)、停止、重啟服務(wù),可有效地對(duì)服務(wù)消費(fèi)者進(jìn)行過(guò)濾、監(jiān)控、報(bào)警等,同時(shí)能有效聚合外部服務(wù),更適合于平臺(tái)級(jí)的應(yīng)用項(xiàng)目。

2.6 WebGIS展示組件

WebGIS是各類業(yè)務(wù)對(duì)象時(shí)空信息的綜合展示窗口,是Web端業(yè)務(wù)應(yīng)用系統(tǒng)的重要組件,是核心層HiWebGIS引擎二次開發(fā)的綜合示例。WebGIS組件中的所有展示方式、事件和行為(如圖層組織、符號(hào)樣式、查詢范圍、空間分析、搜索結(jié)果、消息處理、事件響應(yīng)等等),均源自運(yùn)行維護(hù)系統(tǒng)對(duì)WebGIS的配置結(jié)果,它們之間通過(guò)GIS服務(wù)契約和前端框架引擎實(shí)現(xiàn)“所配即所得”的快速定制效果。WebGIS展示組件內(nèi)置了豐富的功能模塊,包括圖層控制、鷹眼、圖文互查、空間查詢、圖形編輯、專題地圖、GPS軌跡、地圖打印等模塊,程序員只須在頁(yè)面中通過(guò)為地圖對(duì)象添加工具組件的方式完成這些配置。

2.7 代碼生成工具

為進(jìn)一步提升移動(dòng)GIS項(xiàng)目的開發(fā)效率,降低本平臺(tái)框架使用的復(fù)雜度,本文設(shè)計(jì)并實(shí)現(xiàn)了基于微軟T4模版引擎的代碼自動(dòng)生成工具。程序員通過(guò)簡(jiǎn)單向?qū)?,便能自?dòng)生成對(duì)庫(kù)表數(shù)據(jù)增、刪、改、查等功能多層結(jié)構(gòu)(UI、BLL、DAO、SqlMap)、標(biāo)準(zhǔn)化、高質(zhì)量的源代碼,并有效地解決了多表關(guān)聯(lián)等難題。

3 結(jié)語(yǔ)

本文以解決移動(dòng)GIS項(xiàng)目實(shí)施中所面臨問(wèn)題為出發(fā)點(diǎn),根據(jù)移動(dòng)GIS類型項(xiàng)目的共性需求,設(shè)計(jì)并實(shí)現(xiàn)了基于“云+端”模式的敏捷開發(fā)平臺(tái)。目前已成功應(yīng)用到國(guó)土違法用地巡查執(zhí)法、安監(jiān)執(zhí)法、道路養(yǎng)護(hù)與路政稽查、輸配電設(shè)備巡檢、市政管網(wǎng)巡查、土壤重金屬污染防治普查和農(nóng)村土地確權(quán)登記等領(lǐng)域的多個(gè)項(xiàng)目中。實(shí)踐證明該平臺(tái)具有多語(yǔ)言、跨平臺(tái)、可配置、易擴(kuò)展等特點(diǎn),能有效提高開發(fā)效率,縮減軟件開發(fā)周期,降低項(xiàng)目實(shí)施風(fēng)險(xiǎn),受到開發(fā)商和最終用戶的一致好評(píng)。

參考文獻(xiàn)

[1] 李德仁.論21世紀(jì)遙感與GIS的發(fā)展[J].武漢大學(xué)學(xué)報(bào):信息科學(xué)版,2003(2):127-131.

[2] 李德仁,李清泉,謝智穎,等.論空間信息與移動(dòng)通信的集成應(yīng)用[J].武漢大學(xué)學(xué)報(bào):信息科學(xué)版,2002(1):1-8.

[3] 王興玲,楊崇俊,張宏.基于.NET平臺(tái)的地理信息Web服務(wù)研究與應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2002,38(22):6-8.

[4] 宋亞超,閭國(guó)年,張宏.基于WebService的Internet GIS集成與應(yīng)用[J].地球信息科學(xué),2004,6(1):44-48.

[5] 宋關(guān)福.ServiceGIS引發(fā)地理信息服務(wù)共享與聚合革命[J].地理信息世界,2008,6(6):82-85.endprint

高台县| 遂川县| 雷波县| 大方县| 衢州市| 前郭尔| 吉林省| 定安县| 墨玉县| 鸡西市| 岳阳市| 贡嘎县| 塔城市| 宽城| 关岭| 曲阳县| 屯留县| 张家港市| 博白县| 新安县| 肥乡县| 永寿县| 榕江县| 上杭县| 阿勒泰市| 永顺县| 阿荣旗| 富民县| 南通市| 娱乐| 武平县| 田东县| 内丘县| 临安市| 文昌市| 横山县| 灌云县| 屏南县| 青岛市| 元氏县| 玛沁县|