亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        反射機制在構(gòu)建松散GIS系統(tǒng)框架中的應(yīng)用

        2011-04-18 10:28:54何興富李響
        城市勘測 2011年2期
        關(guān)鍵詞:應(yīng)用程序框架管理系統(tǒng)

        何興富,李響

        (重慶市勘測院,重慶 400020)

        反射機制在構(gòu)建松散GIS系統(tǒng)框架中的應(yīng)用

        何興富?,李響

        (重慶市勘測院,重慶 400020)

        GIS應(yīng)用系統(tǒng)在城市建設(shè)和管理中扮演著越來越重要的角色,成為數(shù)字城市的核心。在系統(tǒng)開發(fā)過程中,如何提高軟件的復(fù)用性和擴展性,縮短開發(fā)周期,快速構(gòu)建面向?qū)I(yè)應(yīng)用的GIS系統(tǒng),是一個迫切需要解決的問題。本文嘗試引入.Net框架中的反射機制,通過構(gòu)建一個松散的GIS基礎(chǔ)框架,為應(yīng)用系統(tǒng)的開發(fā)提供靈活的系統(tǒng)配置和有效的數(shù)據(jù)解耦。然后在該框架上開發(fā)一個三維規(guī)劃管理系統(tǒng)原型,展現(xiàn)引入反射機制用于快速構(gòu)建系統(tǒng)的可行性和靈活性,為GIS應(yīng)用系統(tǒng)快速開發(fā)探求一種新的途徑。

        反射機制;GIS;城市規(guī)劃;軟件復(fù)用

        1 引 言

        隨著城市建設(shè)進程的加快,地理信息系統(tǒng)(GIS)越來越多地被用到城市建設(shè)和管理的方方面面。城市GIS成了“數(shù)字城市”的核心部分,將政府、企業(yè)和社會聯(lián)結(jié)成一個整體,是實現(xiàn)資源共享的基礎(chǔ)[1]。隨著數(shù)字城市這一概念的出現(xiàn)和技術(shù)的發(fā)展,越來越多的城市管理和決策依靠先進的科學(xué)技術(shù)手段。城市規(guī)劃是城市管理的一個重要內(nèi)容,GIS在城市規(guī)劃選址、路網(wǎng)設(shè)計、管網(wǎng)布設(shè)、規(guī)劃管理等方面已經(jīng)大量應(yīng)用。

        GIS的核心是數(shù)據(jù),是各種分析功能的基礎(chǔ)。依國家和行業(yè)等一系列標(biāo)準(zhǔn)建立的基礎(chǔ)地理信息元數(shù)據(jù),使這些基礎(chǔ)數(shù)據(jù)能在各系統(tǒng)之間實現(xiàn)共享。但是,目前面向各行業(yè)應(yīng)用的專業(yè)GIS應(yīng)用系統(tǒng)仍然是面向特定服務(wù),根據(jù)用戶需求構(gòu)建系統(tǒng)。這些GIS系統(tǒng)缺乏靈活性,當(dāng)用戶需求發(fā)生改變,往往需要修改系統(tǒng)框架,甚至重新設(shè)計,造成代碼質(zhì)量控制困難,開發(fā)進程控制困難,代碼重用率低等問題。

        本文嘗試將Web開發(fā)中常用的反射機制引入GIS應(yīng)用的開發(fā),擬實現(xiàn)一個松散的GIS基礎(chǔ)框架,實現(xiàn)較好的代碼重用和靈活的功能配置、用戶管理。并在該GIS基礎(chǔ)框架之上,實現(xiàn)一個三維規(guī)劃管理系統(tǒng)的原型,以驗證反射機制在提高軟件復(fù)用性和擴展性上的優(yōu)勢。

        2 反射機制及其原理

        反射的概念是由Smith在1982年首次提出的,主要是指程序可以訪問、檢測和修改它本身狀態(tài)或行為的一種能力。這一概念的提出很快引發(fā)了計算機科學(xué)領(lǐng)域關(guān)于應(yīng)用反射性的研究。它首先被程序語言的設(shè)計領(lǐng)域所采用,并在Lisp和面向?qū)ο蠓矫嫒〉昧顺煽僛2]。

        在計算機科學(xué)領(lǐng)域,反射是指一類應(yīng)用,它們能夠自描述和自控制。這類應(yīng)用通過采用某種機制來實現(xiàn)對自己行為的描述(Self-Representation)和監(jiān)測(Examination),并能根據(jù)自身行為的狀態(tài)和結(jié)果,調(diào)整或修改應(yīng)用所描述行為的狀態(tài)和相關(guān)的語義。實現(xiàn)了反射機制的系統(tǒng)都具有開放性。一般來說,反射系統(tǒng)除了滿足開放性條件外還必須滿足原因連接(Causally-Connected)。原因連接是指對反射系統(tǒng)自描述的改變能夠立即反映到系統(tǒng)底層的實際狀態(tài)和行為上的情況,反之亦然。開放性和原因連接是反射系統(tǒng)的兩大基本要素[3]。

        在.NET中,反射是一種強大的工具。它使您能夠創(chuàng)建靈活的代碼,這些代碼可以在運行時裝配,無需在組件之間進行源代碼鏈接。反射允許我們在編寫與執(zhí)行時,使我們的程序代碼能夠接入裝載到可執(zhí)行程序中的類的內(nèi)部信息,而不是源代碼中選定的類協(xié)作的代碼。這使反射成為構(gòu)建靈活的應(yīng)用的主要工具。反射通常具有以下用途[4]:

        (1)定義和加載程序集,加載在程序集清單中列出的模塊以及從此程序集中查找類型并創(chuàng)建該類型的實例;

        (2)了解包含模塊的程序集以及模塊中的類等;

        (3)了解構(gòu)造函數(shù)的名稱、參數(shù)、訪問修飾符等;

        (4)了解方法的名稱、返回類型、參數(shù)、訪問修飾符等;

        (5)了解字段的名稱、訪問修飾符,并獲取或設(shè)置字段值;

        (6)了解事件的名稱、事件處理程序數(shù)據(jù)類型、自定義屬性、聲明類型和反射類型等,并添加或移除事件處理程序;

        (7)了解屬性的名稱、數(shù)據(jù)類型、聲明類型、反射類型和只讀或可寫狀態(tài)等,并獲取或設(shè)置屬性值;

        (8)獲取參數(shù)的名稱、數(shù)據(jù)類型、參數(shù)是輸入?yún)?shù)還是輸出參數(shù)以及參數(shù)在方法簽名中的位置等。

        應(yīng)用程序與外部程序集之間的關(guān)系如圖1所示。

        圖1 GIS基礎(chǔ)框架結(jié)構(gòu)圖

        通過反射的這些特性,就可以在系統(tǒng)運行過程中,動態(tài)地加載位于應(yīng)用程序集中的類型,解析它的結(jié)構(gòu),提取類型中的方法并進行調(diào)用。如果通過一些接口約定,應(yīng)用程序無需知道類型的具體實現(xiàn)細(xì)節(jié),而是將類型實例化為接口的一個實例。同時,由于應(yīng)用程序知道接口的詳細(xì)信息,則相當(dāng)于實現(xiàn)了對類型的透明調(diào)用。本文的設(shè)計正是基于反射的這些特性進行。

        3 基于反射機制的GIS基礎(chǔ)框架設(shè)計

        GIS的核心內(nèi)容是數(shù)據(jù),數(shù)據(jù)訪問和數(shù)據(jù)表現(xiàn)是GIS系統(tǒng)的重要組成部分。在與數(shù)據(jù)相關(guān)的應(yīng)用程序中,最常用的結(jié)構(gòu)為模型-視圖-控制器三層結(jié)構(gòu)模式,本文設(shè)計的框架仍然采用該模式。在模型端,數(shù)據(jù)源的格式對于應(yīng)用系統(tǒng)來說是透明的。但作為一個應(yīng)用框架,系統(tǒng)實現(xiàn)了基本的數(shù)據(jù)訪問接口,因此框架可以支持SHP、DWG、DXF等常見的GIS數(shù)據(jù)格式。在視圖端,采用基于Windows窗體的用戶界面,由工具欄、二/三維數(shù)據(jù)表現(xiàn)窗口、狀態(tài)和控制欄、圖層控制窗口等部分組成。在控制端,對應(yīng)于框架的業(yè)務(wù)邏輯層,它負(fù)責(zé)提供數(shù)據(jù)的輸入輸出和業(yè)務(wù)邏輯的實現(xiàn)??蚣軐崿F(xiàn)了比較基礎(chǔ)的GIS功能,包括漫游、定位、選擇查詢、測量及基礎(chǔ)空間分析等?;A(chǔ)框架的結(jié)構(gòu)如圖2所示。

        圖2 GIS基礎(chǔ)框架結(jié)構(gòu)圖

        GIS基礎(chǔ)框架在基礎(chǔ)GIS引擎之上建立于一個松散的結(jié)構(gòu),它更多的是管理界面和提供接口,其組成包括以下幾個部分:

        (1)基礎(chǔ)GIS引擎:框架的基礎(chǔ),GIS數(shù)據(jù)表現(xiàn)的核心;

        (2)系統(tǒng)配置模塊:控制系統(tǒng)啟動流程,加載并保存配置信息,根據(jù)配置信息設(shè)置系統(tǒng)的界面及各項參數(shù),負(fù)責(zé)更改和保存系統(tǒng)配置信息;

        (3)數(shù)據(jù)訪問模塊:提供基本的GIS數(shù)據(jù)訪問,包括SHP、DXF等,并且以工廠模式設(shè)計一系列訪問接口,供子系統(tǒng)實現(xiàn);

        (4)界面管理模塊:根據(jù)系統(tǒng)初始化參數(shù)等信息實現(xiàn)界面的管理,包括窗口狀態(tài)、場景控制等,管理系統(tǒng)中的元素,如菜單、子窗口等;

        (5)角色控制模塊:提供功能級的角色控制,對系統(tǒng)加載的功能進行角色編碼匹配,以確定功能的可用性,由界面管理模塊控制功能菜單的可見性。

        (6)輔助模塊:提供基礎(chǔ)函數(shù)、文件訪問、數(shù)學(xué)函數(shù)、日志輸出等;

        (7)基礎(chǔ)接口:定義工具ITool、命令I(lǐng)Command等的接口,作為基礎(chǔ)框架的功能約束。子系統(tǒng)的功能必須繼承自這些接口,使之能被基礎(chǔ)框架識別,并使用中介類作為功能的初始化參數(shù)。

        (8)反射訪問模塊:框架的核心部分和松散結(jié)構(gòu)的基礎(chǔ)。提供訪問框架外應(yīng)用程序集中的類型信息,如果類型實現(xiàn)自基礎(chǔ)接口,則可以創(chuàng)建它的一個實例作為功能加載到程序中,并創(chuàng)建該功能的菜單項供用戶調(diào)用;

        (9)中介模塊:提供一個中介類,保存當(dāng)前系統(tǒng)狀態(tài)、用戶狀態(tài)、功能狀態(tài)等信息,并作為各模塊間傳遞參數(shù)的中介。此外,由于框架建立于一種松散結(jié)構(gòu),各應(yīng)用模塊間在沒有鏈接的情況下,無法互相訪問,因此它們的通信也由中介模塊提供的事件消息來實現(xiàn)。

        (10)公共設(shè)置接口:當(dāng)在基礎(chǔ)框架上構(gòu)建GIS應(yīng)用時,需要改變基礎(chǔ)框架的一些基礎(chǔ)設(shè)置,如應(yīng)用的標(biāo)題、圖標(biāo)、關(guān)于信息等;

        其啟動流程如圖3所示。

        圖3 基礎(chǔ)框架啟動流程

        4 基于基礎(chǔ)框架的規(guī)劃管理系統(tǒng)原型實現(xiàn)

        在基礎(chǔ)框架上進一步封裝,則可以生成面向不同應(yīng)用的專業(yè)GIS系統(tǒng)。本文以構(gòu)建一個規(guī)劃管理系統(tǒng)為例進行說明,展現(xiàn)反射機制在專業(yè)GIS系統(tǒng)開發(fā)過程中帶來的靈活性。

        作為一個系統(tǒng)原型,本文實現(xiàn)了規(guī)劃管理中常用的幾個功能:規(guī)劃圖層管理、用地類型統(tǒng)計、地塊的土地性質(zhì)分析、建筑陰影分析、控高分析等。在基礎(chǔ)框架中約定,規(guī)劃系統(tǒng)中的各項功能須繼承自基礎(chǔ)接口。其中,圖層管理等繼承自ICommand,控制規(guī)劃圖層的開與關(guān);分析功能繼承自ITool,提供功能與用戶的交互操作。這些功能作為插件的模式,被基礎(chǔ)框架的檢索機制發(fā)現(xiàn)后,動態(tài)配置到系統(tǒng)菜單中,供用戶調(diào)用。作為角色控制的一部分,這些功能在進入系統(tǒng)前需要進行配置,以提供諸如菜單路徑、權(quán)限等級等相關(guān)信息。規(guī)劃管理系統(tǒng)結(jié)構(gòu)如圖4所示。

        圖4 基于GIS基礎(chǔ)框架的規(guī)劃管理系統(tǒng)結(jié)構(gòu)示意圖

        規(guī)劃管理系統(tǒng)構(gòu)建于GIS基礎(chǔ)框架之上,其中的功能類繼承自基礎(chǔ)接口,并使用中介類獲取基礎(chǔ)框架提供的各項參數(shù)以及與系統(tǒng)框架中的子模塊使用事件消息機制通信。由于規(guī)劃管理系統(tǒng)本身需要訪問其專業(yè)數(shù)據(jù),如果基礎(chǔ)框架不能提供特定類型數(shù)據(jù)訪問的實現(xiàn),那么它需要繼承數(shù)據(jù)訪問模塊中的工廠類,以實現(xiàn)其數(shù)據(jù)的存取。在實現(xiàn)功能模塊后,需要對基礎(chǔ)框架進行一些設(shè)置,可以通過公共設(shè)置接口來實現(xiàn)。規(guī)劃管理系統(tǒng)需要的一些參數(shù)可以通過配置基礎(chǔ)框架的配置文件來提供,在該配置文件中除保存系統(tǒng)參數(shù)外,還保存了一個基于“鍵—值”對的參數(shù)列表。最后,規(guī)劃管理系統(tǒng)調(diào)用基礎(chǔ)框架的啟動函數(shù),啟動系統(tǒng)。系統(tǒng)運行界面如圖5所示。

        圖5 規(guī)劃管理系統(tǒng)原型運行界面

        5 結(jié) 論

        基于反射機制的GIS基礎(chǔ)框架大大增加了GIS應(yīng)用系統(tǒng)開發(fā)的靈活性,通過XML配置應(yīng)用程序的各項參數(shù),在系統(tǒng)啟動時加載到配置表中,達到了類似于Web開發(fā)中的反射注入。此外,由于各功能模塊與系統(tǒng)框架之間沒有鏈接編譯,各功能相關(guān)性大為降低,實現(xiàn)了軟件結(jié)構(gòu)的松散組合。系統(tǒng)框架只提供基礎(chǔ)的GIS功能,并且可以通過修改公共設(shè)置接口來控制這些功能的顯示與否。當(dāng)需要在GIS基礎(chǔ)框架上開發(fā)專業(yè)GIS應(yīng)用時,只需要繼承自基礎(chǔ)接口,開發(fā)工具并生成相應(yīng)的應(yīng)用程序集(可執(zhí)行文件或動態(tài)鏈接庫)。通過對這些應(yīng)用程序集進行配置,可以進一步控制它們在基礎(chǔ)框架中的狀態(tài)(例如相對于當(dāng)前用戶,某項功能是否可用),從而實現(xiàn)在運行階段而不是編譯階段動態(tài)配置系統(tǒng)的目的。通過反射機制,GIS基礎(chǔ)框架并不需要與這些具體功能的應(yīng)用程序集編譯連接,而是運行時由反射訪問模塊通過反射的方式獲取具體功能的實例,由系統(tǒng)進行調(diào)用。

        現(xiàn)如今,GIS應(yīng)用系統(tǒng)大量服務(wù)于數(shù)字城市建設(shè)的各個層面,在得到開發(fā)任務(wù)后,如何快速構(gòu)建出面向?qū)I(yè)應(yīng)用的專業(yè)GIS應(yīng)用系統(tǒng),而不是每次都針對不同的應(yīng)用去構(gòu)建不同的基礎(chǔ)框架。反射機制為這個構(gòu)想提供了一種解決方案,它大大提高了軟件的復(fù)用性和擴展性,讓開發(fā)者可以專注于專業(yè)應(yīng)用,提高基礎(chǔ)代碼的重用效率,從而達到快速開發(fā)的目的。

        [1] Esri中國(北京)有限公司.基于網(wǎng)格化管理的數(shù)字化城市管理信息系統(tǒng)ArcGIS解決方案[D].p3

        [2] 百度百科.反射機制[L].http://baike.baidu.com/view/ 3454964.htm

        [3] 趙利宏,李秀冰,李大林.基于反射機制的插件系統(tǒng)軟件設(shè)計[J].計算機工程與設(shè)計,2010.2(2),P349

        [4] MSDN.反射概述[D].ms-h(huán)elp://MS.MSDNQTR.v80.chs /MS.VisualStudio.v80.chs/dv_fxadvance/html/d1a58e7ffb39-4d50-bf84-e3b8f9bf9775.htm

        The Application of Reflection Mechanism for Creating Loose GIS System Framework

        He XingFu,Li Xiang
        (Chongqing Survey Instituted,Chongqing 400020,China)

        GIS application System now plays more and more important role in city construction and management,and becomes the core of digital city.How to improve the reusability and expansibility of software,shorten development periods,and create GIS system for spatial application quickly in system development process,it′s an issue that needed to be resolved imminently.This paper introduces the reflection mechanism provided by.Net frameworks,try to supply flexible system config and effective data unbinding for application system by creating a loose GIS system framework.And develops a 3D planning management system prototype,exhibits the feasibility and flexible in system quick development by using reflection mechanism,explores a quick way for developing GIS application system.

        reflection mechanism;GIS;city planning;software reusability

        1672-8262(2011)02-49-04

        P208

        B

        2010—08—09

        何興富(1982—),男,工程師,主要研究方向為GIS應(yīng)用系統(tǒng)開發(fā)。

        猜你喜歡
        應(yīng)用程序框架管理系統(tǒng)
        基于James的院內(nèi)郵件管理系統(tǒng)的實現(xiàn)
        框架
        廣義框架的不相交性
        刪除Win10中自帶的應(yīng)用程序
        電腦報(2019年12期)2019-09-10 05:08:20
        基于LED聯(lián)動顯示的違停管理系統(tǒng)
        海盾壓載水管理系統(tǒng)
        中國船檢(2017年3期)2017-05-18 11:33:08
        WTO框架下
        法大研究生(2017年1期)2017-04-10 08:55:06
        一種基于OpenStack的云應(yīng)用開發(fā)框架
        基于RFID的倉儲管理系統(tǒng)實現(xiàn)
        關(guān)閉應(yīng)用程序更新提醒
        電腦迷(2012年15期)2012-04-29 17:09:47
        日韩av东京社区男人的天堂| 国产亚洲一区二区三区三州 | 亚洲高清国产品国语在线观看| 国产综合久久久久影院| 亚洲av无码片在线观看| 大地资源在线播放观看mv| 99国产精品久久久蜜芽| 国产成人av一区二区三区在线 | 免费网站看av片| 超碰cao已满18进入离开官网| 日本真人做人试看60分钟| 最新国产乱人伦偷精品免费网站| 国产色综合天天综合网| 欧美国产成人精品一区二区三区| 久久精品国产99久久丝袜| 亚洲AV综合A∨一区二区| 97色综合| 黑人一区二区三区在线| 天堂视频一区二区免费在线观看 | 中文字幕一区二区三区亚洲| 丰满人妻一区二区三区52 | 一区二区三区午夜视频在线观看 | 老熟妇嗷嗷叫91九色| 亚洲精品一区二在线观看| 成熟的女人毛茸茸色视频| 亚洲不卡免费观看av一区二区| 一本色道久在线综合色| 亚洲一区二区三区特色视频| 欧美精品色婷婷五月综合| 国产私人尤物无码不卡| 男人边做边吃奶头视频 | 偷亚洲偷国产欧美高清| 国产一线视频在线观看高清| 国产精品亚洲最新地址| 蜜桃av中文字幕在线观看| 肉色丝袜足j视频国产| 7777色鬼xxxx欧美色妇| 中文无码一区二区不卡av| 亚洲精品92内射| 精品国产三级a∨在线观看| AV熟妇导航网|