本文摘要:系統(tǒng)集成與功能擴(kuò)展、重用是國(guó)土資源數(shù)據(jù)中心中采用插件技術(shù)主要解決的問(wèn)題。數(shù)據(jù)中心涉及對(duì)多種專題數(shù)據(jù)的一體化管理,每種專題數(shù)據(jù)都是針對(duì)不同專業(yè)模型設(shè)計(jì)的,并需要與之相匹配的管理工具。例如,城鎮(zhèn)地籍管理系統(tǒng)、城鎮(zhèn)地價(jià)信息系統(tǒng),土地利用現(xiàn)狀系統(tǒng)
系統(tǒng)集成與功能擴(kuò)展、重用是國(guó)土資源數(shù)據(jù)中心中采用插件技術(shù)主要解決的問(wèn)題。數(shù)據(jù)中心涉及對(duì)多種專題數(shù)據(jù)的一體化管理,每種專題數(shù)據(jù)都是針對(duì)不同專業(yè)模型設(shè)計(jì)的,并需要與之相匹配的管理工具。例如,城鎮(zhèn)地籍管理系統(tǒng)、城鎮(zhèn)地價(jià)信息系統(tǒng),土地利用現(xiàn)狀系統(tǒng)。過(guò)去的管理模式是采用多個(gè)系統(tǒng)的模式,造成系統(tǒng)種類眾多、系統(tǒng)間交互困難、數(shù)據(jù)難以管理。本課題采用了插件技術(shù)基本上解決了以上問(wèn)題,能夠?qū)ΜF(xiàn)有多系統(tǒng)進(jìn)行有效的整合。
《中國(guó)國(guó)土資源經(jīng)濟(jì)》(月刊)創(chuàng)刊于1983年,是由中華人民共和國(guó)國(guó)土資源部主管、中國(guó)地質(zhì)礦產(chǎn)經(jīng)濟(jì)學(xué)會(huì)和中國(guó)國(guó)土資源經(jīng)濟(jì)研究院共同主辦的、向國(guó)內(nèi)外公開(kāi)發(fā)行、刊載國(guó)土資源經(jīng)濟(jì)領(lǐng)域最新研究成果的學(xué)術(shù)性期刊,是中國(guó)地質(zhì)礦產(chǎn)經(jīng)濟(jì)學(xué)會(huì)會(huì)刊。榮獲中文核心期刊(2004)!吨袊(guó)國(guó)土資源經(jīng)濟(jì)》本刊創(chuàng)刊20多年來(lái),刊載了大量有價(jià)值的信息和學(xué)術(shù)研究成果,為地勘單位和國(guó)土資源管理部門的改革、發(fā)展、管理與決微提供了大量對(duì)策建議,為廣大科研人員和基層管理者提供了一個(gè)發(fā)表學(xué)術(shù)成果和進(jìn)行學(xué)術(shù)交流的舞臺(tái),受到子廣大作者、讀者的高度贊譽(yù),也得到了有關(guān)領(lǐng)導(dǎo)的重視和好評(píng)。幾任國(guó)土資源部領(lǐng)導(dǎo)先后多次在本刊發(fā)表重要文章,對(duì)本刊的工作給予具體關(guān)照,F(xiàn)刊名同國(guó)土資源部部長(zhǎng)孫文盛親筆題寫。
摘要:國(guó)土資源數(shù)據(jù)中心主要管理海量網(wǎng)絡(luò)的國(guó)土資源空間數(shù)據(jù),涉及對(duì)多種專題數(shù)據(jù)的一體化管理,每種專題數(shù)據(jù)都是針對(duì)不同業(yè)務(wù)模型設(shè)計(jì)的,并需要與之相匹配的管理工具。過(guò)去的管理模式是采用多個(gè)系統(tǒng)的模式,造成數(shù)據(jù)形成信息孤島難以管理,因此提出數(shù)據(jù)中心管理工具系統(tǒng)插件式模型對(duì)現(xiàn)有多系統(tǒng)進(jìn)行整合,該模式可以實(shí)現(xiàn)業(yè)務(wù)功能的可擴(kuò)展、可配置。
關(guān)鍵詞:國(guó)土資源數(shù)據(jù)中心;框架;插件xml;插件封裝
1 引言
信息化是當(dāng)今世界經(jīng)濟(jì)和社會(huì)發(fā)展的大趨勢(shì)。在國(guó)土資源信息化建設(shè)的進(jìn)程中,國(guó)土資源數(shù)據(jù)作為一種信息資源,也越來(lái)越受到國(guó)家和各級(jí)管理部門的高度重視。隨著國(guó)土資源信息化工作的深入和“數(shù)字國(guó)土”工程的實(shí)施,國(guó)土資源基礎(chǔ)信息數(shù)字化程度日益提高,國(guó)土資源管理部門和社會(huì)各領(lǐng)域?qū)?guó)土資源基礎(chǔ)信息的需求也越來(lái)越大,對(duì)數(shù)據(jù)共享和信息服務(wù)的要求與日俱增。國(guó)土資源數(shù)據(jù)中心作為國(guó)土資源信息采集、更新、加工處理、傳輸、開(kāi)發(fā)利用和服務(wù)的保障機(jī)構(gòu),能為準(zhǔn)確掌握國(guó)內(nèi)外資源動(dòng)態(tài)信息,有效調(diào)控資源供應(yīng)總量和結(jié)構(gòu),建立安全的資源供給保障體系提供決策依據(jù)。
2 基于mfc+bcg的框架插件模型的實(shí)現(xiàn)
選用mfc的插件模型,原因在于mfc有較長(zhǎng)的歷史運(yùn)用積累,關(guān)鍵是考慮在mapgis67平臺(tái)上,很多老的程序升級(jí)遷移跨度較小。采用bcg是因?yàn)閎cg提供了更多功能,使開(kāi)發(fā)者可以從界面的開(kāi)發(fā)中解放出來(lái),側(cè)重與業(yè)務(wù)模型的思考;此外,因?yàn)樵创a已知,進(jìn)行改造更方便。缺點(diǎn)就是采用非組件方式,不能跨語(yǔ)言。整體性價(jià)比上進(jìn)行衡量,還是選擇mfc+bcg。
2.1 框架+插件模型
采用框架+插件模型,系統(tǒng)的擴(kuò)展性大大地加強(qiáng)了。如果我們?cè)谙到y(tǒng)發(fā)布后需要對(duì)系統(tǒng)進(jìn)行擴(kuò)充,就不必重新編譯,只需要增加或修改插件就可以了。這有利于模塊化的開(kāi)發(fā)方式。我們可以開(kāi)發(fā)強(qiáng)大的插件管理系統(tǒng),在這樣的一個(gè)插件系統(tǒng)下,我們可以不修改基本系統(tǒng),僅僅使用插件就能構(gòu)造出各種各樣不同的系統(tǒng)。以后框架程序是個(gè)比較“瘦小”的內(nèi)核。具體功能通過(guò)“插件”來(lái)體現(xiàn)。
框架插件模型主要解決資源和消息的問(wèn)題,如圖1?紤]要解決如下問(wèn)題:
插件如何將自身的資源界面嵌入到框架;
插件如何對(duì)菜單id進(jìn)行響應(yīng);
如果兩個(gè)插件有相同的菜單id號(hào),在進(jìn)行菜單響應(yīng)時(shí)。怎么只傳遞給特定的插件響應(yīng);
如上兩個(gè)菜單id,如何對(duì)應(yīng)不同的菜單項(xiàng)圖標(biāo)。
框架插件式系統(tǒng)的實(shí)現(xiàn)原理;主框架有一套自己的資源,維護(hù)著自己的消息響應(yīng);插件也有一套自己的資源,也有著自己的消息響應(yīng)i插件的資源實(shí)際上就是建立在框架上,插件的信息響應(yīng)通過(guò)框架來(lái)分派;框架維護(hù)著一個(gè)插件集,用來(lái)管理插件的裝載和卸載(主要體現(xiàn)在資源界面的表現(xiàn));同時(shí)負(fù)責(zé)分派插件的消息(主要體現(xiàn)在消息的交互)。
插件嵌入到框架的方法;插件記載著框架的指針,可以直接將資源嵌入進(jìn)去。對(duì)應(yīng)消息響應(yīng),在插件編寫時(shí)可以不考慮很多;實(shí)際上主要是因?yàn)榭蚣茇?fù)責(zé)了消息的分派,如圖2。
2.2 插件在框架內(nèi)的標(biāo)記以及生命周期
插件在框架內(nèi)有著各自的標(biāo)記及生命周期,插件以dll為載體,通過(guò)特定的導(dǎo)出函數(shù)來(lái)標(biāo)記插件,如表2-1。插件制作通過(guò)新建dll、制作插件、導(dǎo)出插件這三個(gè)步驟來(lái)實(shí)現(xiàn)。
(1)資源嵌入。
要解決各種與資源相關(guān)的問(wèn)題。
原理:訪問(wèn)資源,必須通過(guò)hinstance+id號(hào)來(lái)定位。mfc通過(guò)模塊資源切換來(lái)實(shí)現(xiàn)跨dll調(diào)用資源。afx manage state(afxgetstaticmodulestate());這個(gè)用法主要局限于一個(gè)過(guò)程內(nèi)部。但是在插件模式下,可能在一個(gè)過(guò)程內(nèi)部,同時(shí)要訪問(wèn)不同插件的資源,例如設(shè)置一個(gè)彈出菜單的右鍵圖標(biāo),如果彈出菜單來(lái)源于多個(gè)插件,對(duì)應(yīng)不同的句柄。這時(shí)必須要對(duì)bcg進(jìn)行改造與此相關(guān)改造的,將每個(gè)資源都標(biāo)記了屬于哪個(gè)資源hinstance。插件資源主要包括主框架觸發(fā)的命令(eg.toolbar和menu);也包括獨(dú)立的消息響應(yīng)體(dockbar)等。
(2)消息分組。
與消息相關(guān)的包括:菜單和工具條的on_command()命令消息、界面狀態(tài)控制消息on_command_upda- ta()及tooltip、菜單項(xiàng)狀態(tài)欄提示等很多細(xì)小部分。
實(shí)現(xiàn)消息分組則過(guò)每個(gè)插件的標(biāo)記id來(lái)區(qū)別。如果是屬于獨(dú)立的消息響應(yīng)體,可以不管,os自動(dòng)分配。但是如果消息是來(lái)自主菜單等,則必須進(jìn)行消息分派。原理是每個(gè)菜單觸發(fā)時(shí),同時(shí)會(huì)標(biāo)記哪個(gè)插件觸發(fā)的id。然后根據(jù)當(dāng)前id找到指定插件進(jìn)行消息響應(yīng)。對(duì)于菜單工具條狀態(tài)控制,實(shí)際上都是cbcgptoolbar?紤]到最初彈出時(shí)會(huì)觸發(fā),還有onldle()時(shí)也會(huì)觸發(fā),統(tǒng)一在oncmdmsg進(jìn)行改寫。
以上的框架插件模型可以添加任何界面,進(jìn)行任何消息響應(yīng)。
3 mfc+bcg框架插件模型在國(guó)土數(shù)據(jù)中心業(yè)務(wù)中的應(yīng)用和擴(kuò)展
國(guó)土數(shù)據(jù)中心中產(chǎn)生了許多針對(duì)不同專題的信息系統(tǒng),如土地利用現(xiàn)狀管理系統(tǒng),土地利用規(guī)劃管理系統(tǒng),這些系統(tǒng)中有許多功能是重復(fù)的,這種情況不利于軟件的可重復(fù)利用,不利于國(guó)土資源信息化。一體化數(shù)據(jù)中心的建立,將國(guó)土資源數(shù)據(jù)統(tǒng)一管理起來(lái),因此建立一個(gè)統(tǒng)一的數(shù)據(jù)管理界面,以及針對(duì)不同業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)功能庫(kù)是必要的,也是信息化的要求。國(guó)土資源業(yè)務(wù)中很多的業(yè)務(wù)功能都能分解成最小的基本功能,也稱業(yè)務(wù)單元,通過(guò)分析國(guó)土業(yè)務(wù)功能,將業(yè)務(wù)功能分解成業(yè)務(wù)單元,并存儲(chǔ)在功能庫(kù)中,用戶可以根據(jù)需要將功能庫(kù)組成不同需求的業(yè)務(wù)功能,來(lái)實(shí)現(xiàn)業(yè)務(wù)功能的擴(kuò)展。
對(duì)于國(guó)土資源數(shù)據(jù)中心,采用的插件模型,每個(gè)業(yè)務(wù)單元都是一個(gè)插件,所有的插件都遵循統(tǒng)一的接口。各業(yè)務(wù)單元模塊采用注冊(cè)方式,在框架中登記,最終形成有機(jī)整體。
通過(guò)基于mfc+bcg的框架插件模型,可以通過(guò)添加gis要素,在國(guó)土數(shù)據(jù)中心衍生不同的業(yè)務(wù)模型。添加mapgis要素,需要考慮:mfc的sdi和mdi都采用doc/view模型。對(duì)于mapgis而言,doc就是地圖文檔,不一定存在于cdocument中。
框架管理地圖文檔,負(fù)責(zé)其各種顯示與表現(xiàn)。地圖文檔特點(diǎn):規(guī)定統(tǒng)一的訪問(wèn)接口,接受各種數(shù)據(jù)類型,目前包括:mapgis的文件(點(diǎn)線區(qū)網(wǎng)圖形文件、wb文件、mpj工程文件、dbs、msi、msd),將數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)表現(xiàn)有機(jī)結(jié)合,與地圖文檔樹綁定顯示效果更佳。支持分組、支持屬性擴(kuò)展等、支持?jǐn)?shù)據(jù)類型擴(kuò)展。地圖文檔有集中來(lái)源,單獨(dú)的打開(kāi)關(guān)閉,適合于單個(gè)業(yè)務(wù)系統(tǒng)的分發(fā),并能通過(guò)插件進(jìn)行其功能的擴(kuò)充。
轉(zhuǎn)載請(qǐng)注明來(lái)自發(fā)表學(xué)術(shù)論文網(wǎng):http:///jzlw/10396.html