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