摘 要: 在某科研單位的設備使用場景及實際需求背景下,為了實現設備的靈活管理與流程管理,介紹了一種基于B/S模式的可擴展性較高的設備管理系統的設計及實現方式。系統通過Microsoft Visual Studio .NET平臺技術,利用C#語言與SQL Server數據庫,最終實現了操作方便、擴展容易、數據傳輸可靠的以WEB進行數據錄入及查詢的設備管理系統。實際使用證明,該系統極大地提高了設備管理的工作效率,并且通過擴展性設計極大地延長了系統的生命周期。
關鍵詞: B/S模式;設備管理系統;C#語言;SQL Sever數據庫
目前在眾多企業及科研單位,其設備管理通常通過人工利用表格錄入進行查詢及報廢等工作,這樣的方式隨著設備的增加、設備流動性的加強以及業務邏輯的復雜,逐步呈現出管理過程繁復、容易出錯并且不易追朔的特征。本系統是根據某科研單位的需求,合作開發的一套基于網絡化的設備管理平臺。該科研單位由于設備逐步增加,業務流程逐步改革,傳統的人工模式不能適應設備管理的需要,本系統在設備管理上可極大地減輕管理人員的負擔,更符合該單位目前需求與未來發展。
C#是運行于.NET Framework上由微軟公司發布的面向對象的開發語言,它在2000年由Anders Hejlsberg主持開發,對整個IT界具有很大的影響[1-2]。其中最重要的影響是在.NET平臺下開發應用程序變得更加簡便、現代及通用,并且.NET使Internet的行為方式被改變,利用一種較為新型的開發、發行及使用方式,更好地體現了軟件服從于服務的思想[3]。隨著國內網絡信息交流的頻繁與局域網的發展,其網絡數據帶寬得到了較大提高[4],其中B/S模式的管理系統也具有無需安裝客戶端,在目前網絡條件下具有訪問快捷與變更靈活等特征,所以設計以.NET平臺下利用C#語言開發的B/S系統,結合SQL Sever數據庫的三層模型,是開發設備管理系統較為理想的方式。
1 系統需求與功能分析
在對該單位設備管理流程以及管理對象進行認真調研及分析后,確定了系統的基本功能與需求。系統需要對科研設備進行統一的管理及部署,實現對設備信息的錄入及查詢兩大基本模塊,并可以由一般權限人員對設備進行查詢。系統主要由服務器、數據庫、交換設備以及瀏覽終端組成,其網絡部署拓撲如圖1所示。
使用者角色為管理員與普通用戶,其權限的職能劃分如下:
(1)管理員權限:主管信息系統的設備及信息錄入、刪除、設備信息修改等。
(2)瀏覽用戶權限:可以查詢單個設備信息、檢索類設備信息、系統留言信息等。
以上權限根據其應用需求,適合采用模塊化設計,并根據用戶的認證權限決定各模塊是否顯示。
通過實際管理流程分析,針對設備屬性方面分為設備操作屬性與設備自身屬性。設備操作屬性包括設備的調撥、報廢、錄入、刪除及維修。其自身屬性包括設備所屬地、名稱、價值、管理員信息及參數等數據。而合理的參數設置以及在系統設計中充分考慮到設備的屬性修改的便捷性,對系統的擴展及生命力具有重要的意義。
2 設備管理系統的設計
2.1 系統模塊設計
設備管理系統的管理對象是設備,根據用戶的實際使用情況,系統主要劃分為設備管理操作模塊、系統設置管理模塊、信息查詢模塊與密碼修改模塊4大部分,參考Aspect-Orient Programming(AOP)設計思想[5],各模塊之間橫切關注點分離開,其功能劃分具有更好的封裝性。其功能框圖如圖2所示。
各模塊主要功能如下:
(1)設備管理模塊:系統管理員權限可見,負責設備的信息錄入、修改、維修登記、調撥登記以及報廢登記,可細分為圖2所示的5個主要操作頁面。
通過系統設置管理模塊,可以大大提高系統的通用性以及系統使用的便捷性,避免了由于諸如部門更名而系統必須修改的情況。
(3)信息查詢模塊:系統管理員權限與瀏覽用戶權限均可見,主要負責對設備統計搜索查詢、維修搜索查詢、調撥搜索查詢以及報廢統計查詢。查詢中必須定義:
其中,D1為查詢設備集,D2為維修設備集,D3為調撥設備集,D4為報廢設備集。在系統中存在唯一查詢De的一個頁面,保證全部設備可列出,并由狀態欄顯示其所屬子集。其他頁面查詢只顯示子集列表,通過這樣的設計,隨著設備量的增加,能保證設備可列數量較少,提高工作效率,也可以通過限制顯示列表數量的方式,為后續的手機系統作為查詢終端奠定可擴展的空間[6]。
2.2 系統擴展性設計
設備管理系統的設計應遵循易用性與可擴展性原則[7]。隨著使用單位的部門名稱變更、管理流程變更以及功能模塊的增加,都會讓初始設計的系統陷入不能使用的尷尬境地。從使用者的角度,設備管理系統開發周期長、設計成本高、數據庫導入、導出與修改的方法繁復,其做系統更換的代價較大,也極大地影響了一個系統的生命周期。針對以上出現的問題,如何設計系統的可擴展性是評判系統設計優良的一個重要指標。本系統中的擴展性設計基于以下兩方面:
(1)部門與設備個別特征的可配置性。在系統中,考慮到通用性與擴展性的需求,部門設計中以部門為管理單位,對設備進行歸屬部門的掛靠,并由組織機構模塊負責部門的錄入,其功能模塊如圖3所示。
圖3中,實線框表示可設置的操作對象模塊,虛線框表示相應步驟中的操作功能選擇,通過這樣的設計,在部門發生變動的情況下也可以具有很好的通用性與擴展性。
(2)設備管理系統架構采用軟件架構上采用的表現層、邏輯層和數據訪問層3層架構。系統中功能目錄結構利用數據庫實現表現層與邏輯層的聯系,頁面中目錄以樹形結構顯示,并由H_systemtree表中Parentid項與序號ID項進行樹形目錄顯示及葉節點、根節點的確定。H_systemtree表結構設計如表1所示。
通過設計H_systemtree表控制目錄樹顯示,具有修改方便、擴展性強的特點,通過數據表項的修改,可以方便調整目錄樹的顯示結構,也可以通過頁面的鏈接較為快速地對系統進行模塊化的擴充。
3 設備管理系統關鍵技術的實現
3.1 數據庫實現
通過用戶的實際需要,首先設計了包括H_DeviceInfo在內的10余張表,以滿足用戶的數據存儲訪問以及系統控制的需要。由于會面臨多次數據庫的訪問,因此在系統中聲明一個新的訪問接口類,其繼承通用類OleDbmanager,并調用類的多個構造函數,以實現在未來數據庫類型更改的情況下,或是有修改數據類型的鏈接時,對這個實現類進行修改就可以適應,而不需要去改變接口的定義,從而避免由于上層應用程序變更而變更接口的定義[8]。連接數據庫構造函數定義部分代碼如下:
Public IDbConnection connectDb();
{
If(Connection==NULL)
{
Connection=new OleDbConnection(Connect_string)
}
try{Connection.open();}
return Connection;
}
3.2 ArrayList對象的數據存儲
根據設備管理系統信息錄入的特點,通用性的設計標題類數據利用HTML標記語言中的td標記進行單元格定義,并由td標記標簽進行靜態文本的顯示,這樣的好處是方便修改背景色、表格大小等屬性。利用asp:textbox控件進行數據的獲取,利用asp:dropdownlist控件進行數據選擇,利用asp:button控件進行操作函數的觸發。對程序設計進行規定后,其后續的開發以及設備上線后的調試與修改,將會具有一定的便捷性。在asp:textbox控件與asp:dropdownlist控件填寫完相應的信息以后,會由asp:button進行具體的數據獲取與執行,進行數據庫的寫入。
在數據庫寫入時,考慮到程序的擴展性,利用數組的方法進行數據庫的對齊寫入。一般情況下,有ArrayList和LinkedList兩個實現類可以實現數組的結構,但是這兩種方法的實現方式不一致,Linklist類是由鏈表實現,而ArrayList類則是由數組實現。由于對齊方式寫入數據庫方式更能保證數據的查錯與修改,具有更好的格式性[9],這里考慮利用ArrayList類中Add方法進行數據的獲取保存,并通過調用SQL語句寫入數據庫。其關鍵代碼如下:
/*獲取模塊中所需信息*/
ArrayList Device=new ArrayList();
…
Device.Add(DeviceNo.text);//設備編號
Device.Add(DeviceName);//設備名
…
/*插入數據庫*/
String SQL="insert into H_DeviceInfo(…deviceNo,deviceName…)values("+…,′"Device[n]+"′,′"Device[n+1]+"′…)";
通過以上方式,就可以把設備編號與設備名稱分別插入到表H_DeviceInfo中的deviceNo項與deviceName項中。在查詢模塊中,其數據的讀出顯示也采用類似的原理。通過這樣的設計,較大程度地加強了程序的可讀性,并使程序在后續的修改中實現了較為便捷的目的。
系統設計以某科研單位的實際需求為設計依據,概述了基于.NET利用C#語言開發的設備管理系統的設計過程,參考AOP的編程思想,提出了其中關鍵技術的實現方式。并且在設計及實現的過程中,通過使用模塊化設計、樹形菜單的數據庫控制及顯示、新聲明數據庫接口、控件使用相對單一和橫切關注點分離的編程思想,提高了程序的可讀性、簡易性,最終實現了可擴展、生命周期長以及通用性高的設備管理系統。該系統可以較為方便地部署,通過后續的系統運行測試,代替了傳統的設備管理模式,也驗證了系統的擴展性及可靠性,并且可以方便地擴展到手持終端的查詢,豐富系統訪問途徑。
參考文獻
[1] 張榮,王培俊,曹永彥,等.基于ASP .NET技術的實驗中心信息化管理平臺的設計[J].計算機技術與發展,2011,21(5):235-237.
[2] 林金田,譚鑒榮,周欽強,等.基于Web氣象技術裝備管理與查詢系統設計[J].成都信息工程學院學報,2009,24(3):264-267.
[3] 曹蕾,李楠,寧燕子,等.基于C#. Net的公司內部管理系統的設計與實現[J].數字技術與應用,2011,2(2):50-52.
[4] Zhang Donglai, CODDINGTON P, WENDELBORN A. Web services workflow with result data forwarding as resources [J]. Future Generation Computer Systems,2011,27(6):694-702.
[5] 陳旻.基于ADO .NET數據庫訪問實例的設計實現與應用[J].軟件導刊,2010,9(7):101-103.
[6] MAES S H. Distributed device information management system as a distributed information repository system: U.S. Patent 7,949,569[P].(2011-5-24).http://www.freepatentsonline.com/y2008/0183753.html
[7] 周芹,周遠龍,王磊.基于B/S結構的高校設備管理系統設計[J].軟件導刊,2013,12(2):82-83.
[8] 陳月娟,李慧,劉光遠,等.基于AOP的信息管理系統的研究與實現[J].計算機應用與軟件,2010,27(2):130-133.
[9] SENTHIL J, ARUMUGAM S, KAPOOR S M A A. Automatic code generation for recurring code patterns in Web based applications and increasing efficiency of data access code[J]. International Journal of Computer Science, 2012, 9(3):473-476.