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