《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 一種高擴(kuò)展性的設(shè)備管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
一種高擴(kuò)展性的設(shè)備管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
2014年微型機(jī)與應(yīng)用第16期
李文藻1,黃 強(qiáng)2,楊宗澤3
1.成都信息工程學(xué)院 通信工程學(xué)院,四川 成都 610225; 2.四川大學(xué)華西醫(yī)院 公共實(shí)驗(yàn)技術(shù)中心,四川 成都 610041; 3.四川大學(xué)華西醫(yī)院 疾病遺傳資源中心,四川 成都 610041
摘要: 在某科研單位的設(shè)備使用場(chǎng)景及實(shí)際需求背景下,為了實(shí)現(xiàn)設(shè)備的靈活管理與流程管理,介紹了一種基于B/S模式的可擴(kuò)展性較高的設(shè)備管理系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)方式。系統(tǒng)通過(guò)Microsoft Visual Studio .NET平臺(tái)技術(shù),利用C#語(yǔ)言與SQL Server數(shù)據(jù)庫(kù),最終實(shí)現(xiàn)了操作方便、擴(kuò)展容易、數(shù)據(jù)傳輸可靠的以WEB進(jìn)行數(shù)據(jù)錄入及查詢的設(shè)備管理系統(tǒng)。實(shí)際使用證明,該系統(tǒng)極大地提高了設(shè)備管理的工作效率,并且通過(guò)擴(kuò)展性設(shè)計(jì)極大地延長(zhǎng)了系統(tǒng)的生命周期。
Abstract:
Key words :

  摘  要: 在某科研單位的設(shè)備使用場(chǎng)景及實(shí)際需求背景下,為了實(shí)現(xiàn)設(shè)備的靈活管理與流程管理,介紹了一種基于B/S模式的可擴(kuò)展性較高的設(shè)備管理系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)方式。系統(tǒng)通過(guò)Microsoft Visual Studio .NET平臺(tái)技術(shù),利用C#語(yǔ)言與SQL Server數(shù)據(jù)庫(kù),最終實(shí)現(xiàn)了操作方便、擴(kuò)展容易、數(shù)據(jù)傳輸可靠的以WEB進(jìn)行數(shù)據(jù)錄入及查詢的設(shè)備管理系統(tǒng)。實(shí)際使用證明,該系統(tǒng)極大地提高了設(shè)備管理的工作效率,并且通過(guò)擴(kuò)展性設(shè)計(jì)極大地延長(zhǎng)了系統(tǒng)的生命周期。

  關(guān)鍵詞: B/S模式;設(shè)備管理系統(tǒng);C#語(yǔ)言;SQL Sever數(shù)據(jù)庫(kù)

  目前在眾多企業(yè)及科研單位,其設(shè)備管理通常通過(guò)人工利用表格錄入進(jìn)行查詢及報(bào)廢等工作,這樣的方式隨著設(shè)備的增加、設(shè)備流動(dòng)性的加強(qiáng)以及業(yè)務(wù)邏輯的復(fù)雜,逐步呈現(xiàn)出管理過(guò)程繁復(fù)、容易出錯(cuò)并且不易追朔的特征。本系統(tǒng)是根據(jù)某科研單位的需求,合作開(kāi)發(fā)的一套基于網(wǎng)絡(luò)化的設(shè)備管理平臺(tái)。該科研單位由于設(shè)備逐步增加,業(yè)務(wù)流程逐步改革,傳統(tǒng)的人工模式不能適應(yīng)設(shè)備管理的需要,本系統(tǒng)在設(shè)備管理上可極大地減輕管理人員的負(fù)擔(dān),更符合該單位目前需求與未來(lái)發(fā)展。

  C#是運(yùn)行于.NET Framework上由微軟公司發(fā)布的面向?qū)ο蟮拈_(kāi)發(fā)語(yǔ)言,它在2000年由Anders Hejlsberg主持開(kāi)發(fā),對(duì)整個(gè)IT界具有很大的影響[1-2]。其中最重要的影響是在.NET平臺(tái)下開(kāi)發(fā)應(yīng)用程序變得更加簡(jiǎn)便、現(xiàn)代及通用,并且.NET使Internet的行為方式被改變,利用一種較為新型的開(kāi)發(fā)、發(fā)行及使用方式,更好地體現(xiàn)了軟件服從于服務(wù)的思想[3]。隨著國(guó)內(nèi)網(wǎng)絡(luò)信息交流的頻繁與局域網(wǎng)的發(fā)展,其網(wǎng)絡(luò)數(shù)據(jù)帶寬得到了較大提高[4],其中B/S模式的管理系統(tǒng)也具有無(wú)需安裝客戶端,在目前網(wǎng)絡(luò)條件下具有訪問(wèn)快捷與變更靈活等特征,所以設(shè)計(jì)以.NET平臺(tái)下利用C#語(yǔ)言開(kāi)發(fā)的B/S系統(tǒng),結(jié)合SQL Sever數(shù)據(jù)庫(kù)的三層模型,是開(kāi)發(fā)設(shè)備管理系統(tǒng)較為理想的方式。

1 系統(tǒng)需求與功能分析

  在對(duì)該單位設(shè)備管理流程以及管理對(duì)象進(jìn)行認(rèn)真調(diào)研及分析后,確定了系統(tǒng)的基本功能與需求。系統(tǒng)需要對(duì)科研設(shè)備進(jìn)行統(tǒng)一的管理及部署,實(shí)現(xiàn)對(duì)設(shè)備信息的錄入及查詢兩大基本模塊,并可以由一般權(quán)限人員對(duì)設(shè)備進(jìn)行查詢。系統(tǒng)主要由服務(wù)器、數(shù)據(jù)庫(kù)、交換設(shè)備以及瀏覽終端組成,其網(wǎng)絡(luò)部署拓?fù)淙鐖D1所示。

001.jpg

  使用者角色為管理員與普通用戶,其權(quán)限的職能劃分如下:

  (1)管理員權(quán)限:主管信息系統(tǒng)的設(shè)備及信息錄入、刪除、設(shè)備信息修改等。

 ?。?)瀏覽用戶權(quán)限:可以查詢單個(gè)設(shè)備信息、檢索類(lèi)設(shè)備信息、系統(tǒng)留言信息等。

  以上權(quán)限根據(jù)其應(yīng)用需求,適合采用模塊化設(shè)計(jì),并根據(jù)用戶的認(rèn)證權(quán)限決定各模塊是否顯示。

  通過(guò)實(shí)際管理流程分析,針對(duì)設(shè)備屬性方面分為設(shè)備操作屬性與設(shè)備自身屬性。設(shè)備操作屬性包括設(shè)備的調(diào)撥、報(bào)廢、錄入、刪除及維修。其自身屬性包括設(shè)備所屬地、名稱(chēng)、價(jià)值、管理員信息及參數(shù)等數(shù)據(jù)。而合理的參數(shù)設(shè)置以及在系統(tǒng)設(shè)計(jì)中充分考慮到設(shè)備的屬性修改的便捷性,對(duì)系統(tǒng)的擴(kuò)展及生命力具有重要的意義。

2 設(shè)備管理系統(tǒng)的設(shè)計(jì)

  2.1 系統(tǒng)模塊設(shè)計(jì)

  設(shè)備管理系統(tǒng)的管理對(duì)象是設(shè)備,根據(jù)用戶的實(shí)際使用情況,系統(tǒng)主要?jiǎng)澐譃樵O(shè)備管理操作模塊、系統(tǒng)設(shè)置管理模塊、信息查詢模塊與密碼修改模塊4大部分,參考Aspect-Orient Programming(AOP)設(shè)計(jì)思想[5],各模塊之間橫切關(guān)注點(diǎn)分離開(kāi),其功能劃分具有更好的封裝性。其功能框圖如圖2所示。

002.jpg

  各模塊主要功能如下:

 ?。?)設(shè)備管理模塊:系統(tǒng)管理員權(quán)限可見(jiàn),負(fù)責(zé)設(shè)備的信息錄入、修改、維修登記、調(diào)撥登記以及報(bào)廢登記,可細(xì)分為圖2所示的5個(gè)主要操作頁(yè)面。

  ZI2)9UB1XT_9FE~93K`1MJ2.jpg

  通過(guò)系統(tǒng)設(shè)置管理模塊,可以大大提高系統(tǒng)的通用性以及系統(tǒng)使用的便捷性,避免了由于諸如部門(mén)更名而系統(tǒng)必須修改的情況。

  (3)信息查詢模塊:系統(tǒng)管理員權(quán)限與瀏覽用戶權(quán)限均可見(jiàn),主要負(fù)責(zé)對(duì)設(shè)備統(tǒng)計(jì)搜索查詢、維修搜索查詢、調(diào)撥搜索查詢以及報(bào)廢統(tǒng)計(jì)查詢。查詢中必須定義:

  099EVVZ0NW}EHW8S}]HEDL4.png

  其中,D1為查詢?cè)O(shè)備集,D2為維修設(shè)備集,D3為調(diào)撥設(shè)備集,D4為報(bào)廢設(shè)備集。在系統(tǒng)中存在唯一查詢De的一個(gè)頁(yè)面,保證全部設(shè)備可列出,并由狀態(tài)欄顯示其所屬子集。其他頁(yè)面查詢只顯示子集列表,通過(guò)這樣的設(shè)計(jì),隨著設(shè)備量的增加,能保證設(shè)備可列數(shù)量較少,提高工作效率,也可以通過(guò)限制顯示列表數(shù)量的方式,為后續(xù)的手機(jī)系統(tǒng)作為查詢終端奠定可擴(kuò)展的空間[6]。

  2.2 系統(tǒng)擴(kuò)展性設(shè)計(jì)

  設(shè)備管理系統(tǒng)的設(shè)計(jì)應(yīng)遵循易用性與可擴(kuò)展性原則[7]。隨著使用單位的部門(mén)名稱(chēng)變更、管理流程變更以及功能模塊的增加,都會(huì)讓初始設(shè)計(jì)的系統(tǒng)陷入不能使用的尷尬境地。從使用者的角度,設(shè)備管理系統(tǒng)開(kāi)發(fā)周期長(zhǎng)、設(shè)計(jì)成本高、數(shù)據(jù)庫(kù)導(dǎo)入、導(dǎo)出與修改的方法繁復(fù),其做系統(tǒng)更換的代價(jià)較大,也極大地影響了一個(gè)系統(tǒng)的生命周期。針對(duì)以上出現(xiàn)的問(wèn)題,如何設(shè)計(jì)系統(tǒng)的可擴(kuò)展性是評(píng)判系統(tǒng)設(shè)計(jì)優(yōu)良的一個(gè)重要指標(biāo)。本系統(tǒng)中的擴(kuò)展性設(shè)計(jì)基于以下兩方面:

 ?。?)部門(mén)與設(shè)備個(gè)別特征的可配置性。在系統(tǒng)中,考慮到通用性與擴(kuò)展性的需求,部門(mén)設(shè)計(jì)中以部門(mén)為管理單位,對(duì)設(shè)備進(jìn)行歸屬部門(mén)的掛靠,并由組織機(jī)構(gòu)模塊負(fù)責(zé)部門(mén)的錄入,其功能模塊如圖3所示。

003.jpg

  圖3中,實(shí)線框表示可設(shè)置的操作對(duì)象模塊,虛線框表示相應(yīng)步驟中的操作功能選擇,通過(guò)這樣的設(shè)計(jì),在部門(mén)發(fā)生變動(dòng)的情況下也可以具有很好的通用性與擴(kuò)展性。

 ?。?)設(shè)備管理系統(tǒng)架構(gòu)采用軟件架構(gòu)上采用的表現(xiàn)層、邏輯層和數(shù)據(jù)訪問(wèn)層3層架構(gòu)。系統(tǒng)中功能目錄結(jié)構(gòu)利用數(shù)據(jù)庫(kù)實(shí)現(xiàn)表現(xiàn)層與邏輯層的聯(lián)系,頁(yè)面中目錄以樹(shù)形結(jié)構(gòu)顯示,并由H_systemtree表中Parentid項(xiàng)與序號(hào)ID項(xiàng)進(jìn)行樹(shù)形目錄顯示及葉節(jié)點(diǎn)、根節(jié)點(diǎn)的確定。H_systemtree表結(jié)構(gòu)設(shè)計(jì)如表1所示。

004.jpg

  通過(guò)設(shè)計(jì)H_systemtree表控制目錄樹(shù)顯示,具有修改方便、擴(kuò)展性強(qiáng)的特點(diǎn),通過(guò)數(shù)據(jù)表項(xiàng)的修改,可以方便調(diào)整目錄樹(shù)的顯示結(jié)構(gòu),也可以通過(guò)頁(yè)面的鏈接較為快速地對(duì)系統(tǒng)進(jìn)行模塊化的擴(kuò)充。

3 設(shè)備管理系統(tǒng)關(guān)鍵技術(shù)的實(shí)現(xiàn)

  3.1 數(shù)據(jù)庫(kù)實(shí)現(xiàn)

  通過(guò)用戶的實(shí)際需要,首先設(shè)計(jì)了包括H_DeviceInfo在內(nèi)的10余張表,以滿足用戶的數(shù)據(jù)存儲(chǔ)訪問(wèn)以及系統(tǒng)控制的需要。由于會(huì)面臨多次數(shù)據(jù)庫(kù)的訪問(wèn),因此在系統(tǒng)中聲明一個(gè)新的訪問(wèn)接口類(lèi),其繼承通用類(lèi)OleDbmanager,并調(diào)用類(lèi)的多個(gè)構(gòu)造函數(shù),以實(shí)現(xiàn)在未來(lái)數(shù)據(jù)庫(kù)類(lèi)型更改的情況下,或是有修改數(shù)據(jù)類(lèi)型的鏈接時(shí),對(duì)這個(gè)實(shí)現(xiàn)類(lèi)進(jìn)行修改就可以適應(yīng),而不需要去改變接口的定義,從而避免由于上層應(yīng)用程序變更而變更接口的定義[8]。連接數(shù)據(jù)庫(kù)構(gòu)造函數(shù)定義部分代碼如下:

  Public IDbConnection connectDb();

  {

  If(Connection==NULL)

  {

  Connection=new OleDbConnection(Connect_string)

  }

  try{Connection.open();}

  return Connection;

  }

  3.2 ArrayList對(duì)象的數(shù)據(jù)存儲(chǔ)

  根據(jù)設(shè)備管理系統(tǒng)信息錄入的特點(diǎn),通用性的設(shè)計(jì)標(biāo)題類(lèi)數(shù)據(jù)利用HTML標(biāo)記語(yǔ)言中的td標(biāo)記進(jìn)行單元格定義,并由td標(biāo)記標(biāo)簽進(jìn)行靜態(tài)文本的顯示,這樣的好處是方便修改背景色、表格大小等屬性。利用asp:textbox控件進(jìn)行數(shù)據(jù)的獲取,利用asp:dropdownlist控件進(jìn)行數(shù)據(jù)選擇,利用asp:button控件進(jìn)行操作函數(shù)的觸發(fā)。對(duì)程序設(shè)計(jì)進(jìn)行規(guī)定后,其后續(xù)的開(kāi)發(fā)以及設(shè)備上線后的調(diào)試與修改,將會(huì)具有一定的便捷性。在asp:textbox控件與asp:dropdownlist控件填寫(xiě)完相應(yīng)的信息以后,會(huì)由asp:button進(jìn)行具體的數(shù)據(jù)獲取與執(zhí)行,進(jìn)行數(shù)據(jù)庫(kù)的寫(xiě)入。

  在數(shù)據(jù)庫(kù)寫(xiě)入時(shí),考慮到程序的擴(kuò)展性,利用數(shù)組的方法進(jìn)行數(shù)據(jù)庫(kù)的對(duì)齊寫(xiě)入。一般情況下,有ArrayList和LinkedList兩個(gè)實(shí)現(xiàn)類(lèi)可以實(shí)現(xiàn)數(shù)組的結(jié)構(gòu),但是這兩種方法的實(shí)現(xiàn)方式不一致,Linklist類(lèi)是由鏈表實(shí)現(xiàn),而ArrayList類(lèi)則是由數(shù)組實(shí)現(xiàn)。由于對(duì)齊方式寫(xiě)入數(shù)據(jù)庫(kù)方式更能保證數(shù)據(jù)的查錯(cuò)與修改,具有更好的格式性[9],這里考慮利用ArrayList類(lèi)中Add方法進(jìn)行數(shù)據(jù)的獲取保存,并通過(guò)調(diào)用SQL語(yǔ)句寫(xiě)入數(shù)據(jù)庫(kù)。其關(guān)鍵代碼如下:

  /*獲取模塊中所需信息*/

  ArrayList Device=new ArrayList();

  …

  Device.Add(DeviceNo.text);//設(shè)備編號(hào)

  Device.Add(DeviceName);//設(shè)備名

  …

  /*插入數(shù)據(jù)庫(kù)*/

  String SQL="insert into H_DeviceInfo(…deviceNo,deviceName…)values("+…,′"Device[n]+"′,′"Device[n+1]+"′…)";

  通過(guò)以上方式,就可以把設(shè)備編號(hào)與設(shè)備名稱(chēng)分別插入到表H_DeviceInfo中的deviceNo項(xiàng)與deviceName項(xiàng)中。在查詢模塊中,其數(shù)據(jù)的讀出顯示也采用類(lèi)似的原理。通過(guò)這樣的設(shè)計(jì),較大程度地加強(qiáng)了程序的可讀性,并使程序在后續(xù)的修改中實(shí)現(xiàn)了較為便捷的目的。

  系統(tǒng)設(shè)計(jì)以某科研單位的實(shí)際需求為設(shè)計(jì)依據(jù),概述了基于.NET利用C#語(yǔ)言開(kāi)發(fā)的設(shè)備管理系統(tǒng)的設(shè)計(jì)過(guò)程,參考AOP的編程思想,提出了其中關(guān)鍵技術(shù)的實(shí)現(xiàn)方式。并且在設(shè)計(jì)及實(shí)現(xiàn)的過(guò)程中,通過(guò)使用模塊化設(shè)計(jì)、樹(shù)形菜單的數(shù)據(jù)庫(kù)控制及顯示、新聲明數(shù)據(jù)庫(kù)接口、控件使用相對(duì)單一和橫切關(guān)注點(diǎn)分離的編程思想,提高了程序的可讀性、簡(jiǎn)易性,最終實(shí)現(xiàn)了可擴(kuò)展、生命周期長(zhǎng)以及通用性高的設(shè)備管理系統(tǒng)。該系統(tǒng)可以較為方便地部署,通過(guò)后續(xù)的系統(tǒng)運(yùn)行測(cè)試,代替了傳統(tǒng)的設(shè)備管理模式,也驗(yàn)證了系統(tǒng)的擴(kuò)展性及可靠性,并且可以方便地?cái)U(kuò)展到手持終端的查詢,豐富系統(tǒng)訪問(wèn)途徑。

  參考文獻(xiàn)

  [1] 張榮,王培俊,曹永彥,等.基于ASP .NET技術(shù)的實(shí)驗(yàn)中心信息化管理平臺(tái)的設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(5):235-237.

  [2] 林金田,譚鑒榮,周欽強(qiáng),等.基于Web氣象技術(shù)裝備管理與查詢系統(tǒng)設(shè)計(jì)[J].成都信息工程學(xué)院學(xué)報(bào),2009,24(3):264-267.

  [3] 曹蕾,李楠,寧燕子,等.基于C#. Net的公司內(nèi)部管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].數(shù)字技術(shù)與應(yīng)用,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數(shù)據(jù)庫(kù)訪問(wèn)實(shí)例的設(shè)計(jì)實(shí)現(xiàn)與應(yīng)用[J].軟件導(dǎo)刊,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] 周芹,周遠(yuǎn)龍,王磊.基于B/S結(jié)構(gòu)的高校設(shè)備管理系統(tǒng)設(shè)計(jì)[J].軟件導(dǎo)刊,2013,12(2):82-83.

  [8] 陳月娟,李慧,劉光遠(yuǎn),等.基于AOP的信息管理系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,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.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。