摘要:本文基于對構(gòu)件及面向構(gòu)件的軟件開發(fā)技術(shù)的研究,設(shè)計(jì)了一種基于構(gòu)件的農(nóng)村管理信息系統(tǒng),采用.NET構(gòu)件技術(shù)進(jìn)行了系統(tǒng)實(shí)現(xiàn),實(shí)現(xiàn)了構(gòu)件的動態(tài)裝配,系統(tǒng)可擴(kuò)展性好,能夠根據(jù)農(nóng)村管理的個(gè)性化需求進(jìn)行快速定制開發(fā)。
關(guān)鍵詞:構(gòu)件; 面向構(gòu)件的軟件開發(fā)方法(CBD); 農(nóng)村管理信息系統(tǒng)(VMS)
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)14-20893-02
1 引言
信息化是新農(nóng)村建設(shè)的重要內(nèi)容和關(guān)鍵要素,體現(xiàn)了新農(nóng)村建設(shè)的時(shí)代特征,覆蓋社會主義新農(nóng)村建設(shè)的全局,通過實(shí)施農(nóng)村管理信息系統(tǒng),可以促進(jìn)村務(wù)公開、提高管理的效率、規(guī)范管理的標(biāo)準(zhǔn)化程度、增加管理的透明度、提高農(nóng)村干部群眾整體素質(zhì)、提高管理決策的水平、促進(jìn)農(nóng)村信息化、現(xiàn)代化建設(shè)。然而,我國有4萬多個(gè)鄉(xiāng)級行政單位,管理模式各有特點(diǎn),通用型的農(nóng)村管理系統(tǒng)無法適應(yīng)農(nóng)村電子村務(wù)的個(gè)性化需求的,缺乏個(gè)性化的軟件應(yīng)用系統(tǒng)已成為阻礙農(nóng)村信息化進(jìn)程的重要因素。
“基于構(gòu)件的農(nóng)村管理信息系統(tǒng)”采用基于構(gòu)件的平臺架構(gòu),可根據(jù)用戶實(shí)際需求進(jìn)行快速定制,同時(shí),當(dāng)用戶的需求發(fā)生變化時(shí),能夠通過平臺快速調(diào)整系統(tǒng),實(shí)現(xiàn)“隨需應(yīng)變”。平臺采用.NET構(gòu)件化技術(shù)實(shí)現(xiàn),投入試點(diǎn)應(yīng)用,能夠快速適用農(nóng)村用戶的個(gè)性化需求,運(yùn)行效果良好。
2 基于構(gòu)件的軟件開發(fā)技術(shù)
構(gòu)件又稱組件,是軟件開發(fā)、復(fù)用和軟件組裝的實(shí)體單元,它是指封裝了數(shù)據(jù)和功能、在運(yùn)行時(shí)能夠通過參數(shù)進(jìn)行配置的模塊[3]。
面向構(gòu)件的軟件開發(fā)方法(CBD)是以構(gòu)件為核心,一般來說,基于構(gòu)件的軟件開發(fā)包括三個(gè)相關(guān)的過程:構(gòu)件的開發(fā)、構(gòu)件的管理和基于構(gòu)件組裝的系統(tǒng)開發(fā)[1]。文獻(xiàn)[3]認(rèn)為,“在基于構(gòu)件的軟件開發(fā)中,系統(tǒng)開發(fā)的重點(diǎn)從程序設(shè)計(jì)變成構(gòu)件組裝”。 基于構(gòu)件的軟件開發(fā)與其他開發(fā)過程不同之處在于它在分析、設(shè)計(jì)、實(shí)現(xiàn)等各個(gè)階段中所充實(shí)的工作不再是從零開始,在每個(gè)階段開發(fā)人員首先要通過構(gòu)件庫管理系統(tǒng)在已有的構(gòu)件庫中檢索需要的構(gòu)件,對于新增、修改的構(gòu)件要根據(jù)構(gòu)件庫的標(biāo)準(zhǔn)加入到構(gòu)件中去,豐富系統(tǒng)構(gòu)建苦,為以后的系統(tǒng)開發(fā)提供好的支持[2]。
3 面向構(gòu)件的農(nóng)村管理信息系統(tǒng)設(shè)計(jì)
3.1 軟件體系結(jié)構(gòu)
圖1為為軟件總體結(jié)構(gòu),從總體上分為三層,數(shù)據(jù)訪問層、應(yīng)用構(gòu)件層、應(yīng)用系統(tǒng)層。數(shù)據(jù)訪問層封裝了數(shù)據(jù)訪問構(gòu)件,采用OR Mapping方式對數(shù)據(jù)進(jìn)行訪問;應(yīng)用構(gòu)件層對農(nóng)村管理信息系統(tǒng)提供各種基礎(chǔ)應(yīng)用構(gòu)件,包括工作流引擎、報(bào)表管理構(gòu)件、用戶管理構(gòu)件等;應(yīng)系統(tǒng)層即為農(nóng)村管理信息系統(tǒng)的各子系統(tǒng),采用應(yīng)用構(gòu)件層中的各類構(gòu)件組裝開發(fā)。
3.2 應(yīng)用系統(tǒng)功能
應(yīng)用系統(tǒng)主要包括人口管理、資源管理、經(jīng)濟(jì)管理、社務(wù)管理、黨群管理、村務(wù)公開、辦公自動化等應(yīng)用子系統(tǒng)。同時(shí),能通過數(shù)據(jù)接口與其它軟件交換數(shù)據(jù)。
4 系統(tǒng)的實(shí)現(xiàn)
4.1 主要構(gòu)件的實(shí)現(xiàn)
本系統(tǒng)的實(shí)現(xiàn)基于.NET FrameWork2.0,采用Visual Studio2005作為開發(fā)環(huán)境,C#為開發(fā)語言。C#被稱為面向組件的語言,可以非常容易的開發(fā)出基于.NET的構(gòu)件,在本系統(tǒng)我們采用.NET的Class Library作為構(gòu)件模型,通過遵循IComponent接口的標(biāo)準(zhǔn)來實(shí)現(xiàn)一個(gè)構(gòu)件,所以有構(gòu)件都是派生于Component類,由Component類來實(shí)現(xiàn)IComponent接口,將構(gòu)件編譯進(jìn)DLL文件中以構(gòu)件庫的形式提供應(yīng)用系統(tǒng)層調(diào)用。以下為系統(tǒng)中實(shí)現(xiàn)的部份構(gòu)件:
VMS.AppSetting:對應(yīng)用程序配置進(jìn)行讀寫的類,應(yīng)用程序配置數(shù)據(jù)采用RC2算法進(jìn)行加密,并且使用SHA1算法進(jìn)行散列,以防止數(shù)據(jù)被修改。
VMS.ExceptionManager:本構(gòu)件用于錯(cuò)誤管理,可以自定義錯(cuò)誤的相關(guān)信息,以便向用戶顯示友好信息。
VMS.AdvanceSearch:用于實(shí)現(xiàn)高級查詢的構(gòu)件,VMS.AdvanceSearch.AdvanceSearchOption用于將查詢條件裝配到Hash表中,VMS.AdvanceSearch.SearchAssemblage用于根據(jù)Hash表中的查詢條件裝配查詢語句。
VMS.UserAuthentication:用于使用系統(tǒng)的用戶登錄和權(quán)限控制的組件。
4.2 構(gòu)件裝配的實(shí)現(xiàn)
構(gòu)件的裝配是構(gòu)件重用的一種重要方式,在本系統(tǒng)中我們采用了.NET反射技術(shù)實(shí)現(xiàn)構(gòu)件的動態(tài)撥插,將應(yīng)用構(gòu)件、數(shù)據(jù)訪問構(gòu)件的DLL和其中的類名放在一個(gè)配置文件中,程序啟動時(shí)讀取這個(gè)文件,就可以自動地加載外部指定的DLL,實(shí)現(xiàn)程序的組件動態(tài)裝配。構(gòu)件裝配信息寫入XML格式的文件中,以下為用戶登錄驗(yàn)證的構(gòu)件裝配信息:
以下為應(yīng)用系統(tǒng)中用戶登錄驗(yàn)證實(shí)現(xiàn):
public void Login(string userId,string password)
{string comFileName = ComHelper.getComponetFileName(\"VMS. UserAuthentication\");
string comName = ComHelper.getComponetName(\"VMS. UserAuthentication\");
Assembly assembly = Assembly.LoadFrom(comFileName);
Type T = assembly.GetType(comName);
MethodInfo mi = T.GetMethod(\"Login\");
object o = Activator.CreateInstance(T);
object[] par = new object[] {userName,password};
mi.Invoke(o, par);}
5 結(jié)束語
該系統(tǒng)基于.NET的軟件構(gòu)件技術(shù),采用面向構(gòu)件的軟件開發(fā)方式,在構(gòu)件庫的基礎(chǔ)上快速開發(fā)農(nóng)村管理信息系統(tǒng),功能涵蓋人口、計(jì)生、黨群、社務(wù)、農(nóng)保、資源及經(jīng)營等農(nóng)村管理工作的各個(gè)方面,在基本功能方面,既滿足農(nóng)村管理的各種情況,同時(shí)又適應(yīng)農(nóng)村業(yè)務(wù)各種變化的需要,特別是社會主義新農(nóng)村建設(shè)的需要,采用面向構(gòu)件的架構(gòu)使系統(tǒng)快速適應(yīng)村、鎮(zhèn)、縣各級政府個(gè)性化需求,已投入試點(diǎn)運(yùn)行,系統(tǒng)運(yùn)行穩(wěn)定,可擴(kuò)展性較強(qiáng),運(yùn)行效果良好。
參考文獻(xiàn):
[1] 梅宏. ABC:基于體系結(jié)構(gòu)、面向構(gòu)件的軟件開發(fā)方法[M]. 軟件學(xué)報(bào),2003,14(4):721-732.
[2] 張世琨,張文娟, 常欣, 等. 基于軟件體系結(jié)構(gòu)的可復(fù)用構(gòu)件制作和組裝[J]. 軟件學(xué)報(bào),2001,12(9):1351-1358.
[3] 王珉, 吳廣茂, 田林, 等. CBD的組件選擇方法及其應(yīng)用[J]. 計(jì)算機(jī)工程與應(yīng)用, 2006,(7):33-35.
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文