鄭慧君
摘 要: 運(yùn)維管理平臺(tái)能夠提高運(yùn)維效率,規(guī)范運(yùn)維管理行為,為企業(yè)提供更為優(yōu)質(zhì)的服務(wù)?;谀称髽I(yè)的實(shí)際運(yùn)維管理需求,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)運(yùn)維管理平臺(tái)。系統(tǒng)采用B/S結(jié)構(gòu),選擇VS2010和SQL server 2008開(kāi)發(fā)工具。詳細(xì)地論述了系統(tǒng)的功能,采用擴(kuò)展三層體系結(jié)構(gòu)對(duì)系統(tǒng)進(jìn)行了軟件結(jié)構(gòu)設(shè)計(jì),并通過(guò)CURD操作對(duì)三層結(jié)構(gòu)的代碼進(jìn)行優(yōu)化。系統(tǒng)通過(guò)測(cè)試后運(yùn)行良好,具有較好的穩(wěn)定性和可擴(kuò)展性。
關(guān)鍵詞: 運(yùn)維管理; 三層結(jié)構(gòu); 權(quán)限管理; 系統(tǒng)設(shè)計(jì)
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2017)04-50-04
Abstract: Operation management platform can improve the operation efficiency, standardize operation management behavior, and provide better services for enterprises. Based off the operation management needs of an enterprise, an operation management platform is designed and realized. The system uses B/S structure, select VS2010 and server SQL 2008 as the development tools. The system functions is discussed in detail, the extended three-tier architecture is used to design the software structure of the system, and the code of three-tier architecture is optimized through the integration of CURD operations. After testing, the system runs well and has good stability and expansibility.
Key words: operation management; three-tier architecture; authority management; system design
0 引言
隨著IT技術(shù)的不斷發(fā)展,企業(yè)規(guī)模的不斷擴(kuò)大,硬件環(huán)境和軟件環(huán)境日益復(fù)雜,對(duì)硬件和軟件系統(tǒng)的依賴性也越來(lái)越強(qiáng),IT風(fēng)險(xiǎn)也越來(lái)越大,給企業(yè)運(yùn)維管理人員帶來(lái)了極大的壓力[1]。傳統(tǒng)的運(yùn)維管理完全依靠手工方式對(duì)大量的硬件、軟件系統(tǒng)進(jìn)行監(jiān)控與管理,實(shí)時(shí)性差,無(wú)法保證各種硬件和軟件的正常運(yùn)行,無(wú)法保證企業(yè)硬件、軟件和網(wǎng)絡(luò)環(huán)境的穩(wěn)定性,無(wú)法采集設(shè)備的狀態(tài)信息,無(wú)法進(jìn)行故障預(yù)警、跟蹤和快速處理[2-3]。為了規(guī)范IT運(yùn)維管理方法、提高運(yùn)維服務(wù)質(zhì)量,國(guó)內(nèi)的一些大型企業(yè)引入了ITIL、ISO/IEC20000等IT服務(wù)管理方法和標(biāo)準(zhǔn)理論,使管理有章可循,降低IT風(fēng)險(xiǎn)[4]。
目前,一些大型軟件開(kāi)發(fā)企業(yè)也進(jìn)行了運(yùn)維管理平臺(tái)的開(kāi)發(fā),但是還沒(méi)有形成統(tǒng)一的標(biāo)準(zhǔn)[5]。運(yùn)維管理平臺(tái)主要以“IT業(yè)務(wù)模型”和“運(yùn)維管理需求”兩個(gè)核心進(jìn)行開(kāi)發(fā),有機(jī)的整合了企業(yè)的各種IT基礎(chǔ)設(shè)施如:網(wǎng)絡(luò)設(shè)備、計(jì)算機(jī)硬件、軟件系統(tǒng)等,能夠?qū)\(yùn)行的設(shè)備或系統(tǒng)進(jìn)行實(shí)時(shí)監(jiān)控并以日志的形式記錄系統(tǒng)故障,以短信或其他方式通知相關(guān)維護(hù)人員,縮短故障恢復(fù)時(shí)間,降低IT風(fēng)險(xiǎn),提高服務(wù)質(zhì)量[6]。大多數(shù)運(yùn)維管理平臺(tái)采用B/S架構(gòu),只需進(jìn)行服務(wù)器端的部署,使用簡(jiǎn)單,便于操作,并內(nèi)置了多種運(yùn)維管理輔助模塊,如各種運(yùn)維流程管理、可視化的圖文報(bào)表等[7-8]。本文以某企業(yè)的實(shí)際運(yùn)維需求出發(fā),利用Visual Studio 2010平臺(tái)和SQL Server 2008數(shù)據(jù)庫(kù)軟件,采用三層體系結(jié)構(gòu)設(shè)計(jì)了一個(gè)運(yùn)維服務(wù)平臺(tái)。
1 系統(tǒng)功能設(shè)計(jì)
通過(guò)對(duì)某企業(yè)進(jìn)行需求調(diào)研,分析企業(yè)運(yùn)維管理系統(tǒng)主要包括:運(yùn)維流程管理、運(yùn)維護(hù)知識(shí)庫(kù)管理、用戶資源管理及基礎(chǔ)數(shù)據(jù)管理等四大功能模塊。系統(tǒng)功能模塊如圖1所示。
⑴ 基礎(chǔ)數(shù)據(jù)管理
基礎(chǔ)數(shù)據(jù)管理主要是系統(tǒng)中原始數(shù)據(jù)的維護(hù),包括設(shè)備、故障原因、設(shè)備類型、子系統(tǒng)和節(jié)點(diǎn)等信息的管理。
⑵ 運(yùn)維知識(shí)庫(kù)管理
知識(shí)庫(kù)管理主要包括對(duì)設(shè)備資料的管理,運(yùn)維標(biāo)準(zhǔn)管理、應(yīng)急預(yù)案管理以及知識(shí)庫(kù)管理。這幾種類型的管理主要是文檔的管理,都有內(nèi)容描述,解決方案,以及附件等,直接單一模塊化實(shí)現(xiàn),通過(guò)type區(qū)分各個(gè)類型。主要包括增加文檔,更新文檔,刪除文檔,查詢文件的功能。
⑶ 運(yùn)維流程管理
運(yùn)維流程管理是系統(tǒng)的核心模塊,包括運(yùn)維計(jì)劃管理、故障維修管理以及統(tǒng)計(jì)匯總管理。運(yùn)維計(jì)劃是一個(gè)創(chuàng)建計(jì)劃到巡檢實(shí)施的過(guò)程,主要包括計(jì)劃和巡檢。運(yùn)維故障維修管理是系統(tǒng)最核心的業(yè)務(wù)實(shí)施過(guò)程,也是一個(gè)企業(yè)、運(yùn)維主管及維修人員相互交互的工作流程,從申報(bào)故障,到派工,維修,申請(qǐng)費(fèi)用審批,最后總結(jié)并評(píng)價(jià)運(yùn)維護(hù)人員的工作績(jī)效。
⑷ 用戶資源管理
用戶資源管理包括員工的信息管理、部門(mén)信息管理、運(yùn)維制度管理、運(yùn)維績(jī)效評(píng)估,以及系統(tǒng)角色權(quán)限管理等。管理員通過(guò)對(duì)用戶進(jìn)行角色授權(quán),實(shí)現(xiàn)系統(tǒng)的權(quán)限分配。
2 軟件體系結(jié)構(gòu)
考慮到運(yùn)維管理平臺(tái)的擴(kuò)展性和迭代開(kāi)發(fā)流程,在設(shè)計(jì)運(yùn)維平臺(tái)時(shí),后端采用當(dāng)前最流行的三層架構(gòu)進(jìn)行設(shè)計(jì),并結(jié)合ASP.NET成熟穩(wěn)定而且迅速的開(kāi)發(fā)技術(shù)擴(kuò)展應(yīng)用。前端網(wǎng)頁(yè)渲染和處理,采用jQuery技術(shù)、Json技術(shù)和DWZ框架進(jìn)行實(shí)現(xiàn)[9-10]。圖2為該系統(tǒng)的軟件體系結(jié)構(gòu)。
⑴ 客戶層
客戶層通常響應(yīng)瀏覽器發(fā)來(lái)的Hmtl請(qǐng)求,或者Ajax發(fā)來(lái)的Xhr請(qǐng)求,交由ASP.NET容器進(jìn)行處理(容器一般是IIS結(jié)構(gòu)ASP.NET的一體化Web服務(wù)器)。
⑵ 過(guò)濾層
ASP.NET容器將請(qǐng)求傳遞到過(guò)濾層進(jìn)行登錄驗(yàn)證,或者權(quán)限判斷,驗(yàn)證用戶請(qǐng)求的合法性,若不合法則返回錯(cuò)誤結(jié)果,若合法則交由表示層的Aspx處理器或者Ashx處理器進(jìn)行處理。
⑶ 表示層
對(duì)于普通的查詢請(qǐng)求,主要是由Aspx處理器進(jìn)行解析,而對(duì)于增、刪、改及導(dǎo)入等特殊功能,則由Ashx處理器進(jìn)行解析,解析器主要完成請(qǐng)求參數(shù)的驗(yàn)證和構(gòu)造業(yè)務(wù)環(huán)境的工作。
⑷ BLL業(yè)務(wù)處理層
請(qǐng)求處理器調(diào)用根據(jù)請(qǐng)求,調(diào)用BLL層的業(yè)務(wù)接口進(jìn)行業(yè)務(wù)處理,如故障、計(jì)劃、巡檢等業(yè)務(wù)處理,或者知識(shí)庫(kù)、用戶等業(yè)務(wù)的處理,又或者一些數(shù)據(jù)統(tǒng)計(jì)匯總的處理,又或者是文件請(qǐng)求處理,報(bào)表打印的處理等。
⑸ DAL數(shù)據(jù)處理層
BLL層是大粒度的業(yè)務(wù)流程管理,業(yè)務(wù)的處理會(huì)對(duì)應(yīng)到各個(gè)數(shù)據(jù)表的讀寫(xiě)等操作,在進(jìn)行適當(dāng)?shù)臉I(yè)務(wù)處理過(guò)程,BLL業(yè)務(wù)接口將調(diào)用DAL層一個(gè)或多個(gè)DAL模塊讀寫(xiě)數(shù)據(jù),如故障管理的業(yè)務(wù)功能可能會(huì)同時(shí)使用故障表的讀取,設(shè)備表的讀取。
⑹ 數(shù)據(jù)連接池
為了方便統(tǒng)一數(shù)據(jù)連接池的管理,對(duì)數(shù)據(jù)庫(kù)底層進(jìn)行一層封裝,這樣在系DAL模塊讀寫(xiě)數(shù)據(jù)的時(shí)候,一方面可以減少連接池或緩存的請(qǐng)求,另一方面可以設(shè)計(jì)統(tǒng)一的事務(wù)管理,保證數(shù)據(jù)庫(kù)的完整性。
ASP.NET是面向?qū)ο蟮拈_(kāi)發(fā)技術(shù),系統(tǒng)為每個(gè)基本數(shù)據(jù)實(shí)體設(shè)計(jì)了實(shí)體對(duì)象類,對(duì)數(shù)據(jù)庫(kù)進(jìn)行一層ORM轉(zhuǎn)換,將基本數(shù)據(jù)數(shù)據(jù)映射成標(biāo)準(zhǔn)的對(duì)象結(jié)構(gòu),方便于整個(gè)系統(tǒng)API的調(diào)用。
3 系統(tǒng)關(guān)鍵技術(shù)實(shí)現(xiàn)
3.1 三層結(jié)構(gòu)的實(shí)現(xiàn)
本文在軟件系統(tǒng)的開(kāi)發(fā)過(guò)程中嘗試對(duì)三層架構(gòu)的代碼進(jìn)行優(yōu)化處理,通過(guò)繼承機(jī)制以及泛型機(jī)制,將各個(gè)模塊通過(guò)CURD操作進(jìn)行抽像統(tǒng)一處理,使各模塊之間水平上分層,垂直成為一個(gè)整體。
首先為DAL層定義一個(gè)BaseDal基類,整合所有的通用的數(shù)據(jù)庫(kù)CURD(Create、Update、Retrieve和Delete)操作,即增加、刪除、修改和查詢操作,同時(shí)包括批量更新,批量刪除以及特殊SQL語(yǔ)句的轉(zhuǎn)換等,底層數(shù)據(jù)庫(kù)由BaseDal進(jìn)行控制并轉(zhuǎn)換成對(duì)象結(jié)果集。
其次為BLL層定義一個(gè)BaseBll基類,也將所有通用的業(yè)務(wù)操作,如增加,刪除,更新,分頁(yè)查詢等操作,在繼承處理上,采用泛型操作,每個(gè)子類繼承其父類,并指定具體的實(shí)體對(duì)象,從而實(shí)現(xiàn)對(duì)不同實(shí)體表的CURD操作。
當(dāng)定義新的模塊,如增加Fault管理模塊時(shí),則可以創(chuàng)建Fault實(shí)體對(duì)象,定義FaultDal類繼承BaseDal基類并設(shè)置泛型對(duì)象為Fault,同時(shí)定義FaultBll為繼承BaseBll基類,設(shè)置泛型對(duì)象為Fault,這樣系統(tǒng)將為FaultDal及FaultBll自動(dòng)生成一系列針對(duì)User實(shí)體增刪改查的數(shù)據(jù)操作,一系列針對(duì)用戶的業(yè)務(wù)操作,并可以被表示層直接調(diào)用處理。
3.2 SQLHelper類的實(shí)現(xiàn)
SQLHelper類實(shí)現(xiàn)系統(tǒng)所有數(shù)據(jù)的操作,是系統(tǒng)對(duì)底層數(shù)據(jù)庫(kù)操作的接口,供DAL層調(diào)用,使用ADO.NET的SqlConnection類、Dataset類、SqlCommand類、SqlDataAdapter類、IDataParameter類進(jìn)行SQLHelper類的封裝,實(shí)現(xiàn)執(zhí)行SQL查詢和添加、刪除和修改操作,還可以執(zhí)行查詢和增刪改存儲(chǔ)過(guò)程。以下為SQLHelper類的函數(shù):
⑴ SQLHelper:構(gòu)造函數(shù)讀取web.config文件中的數(shù)據(jù)庫(kù)連接語(yǔ)句;
⑵ GetDatasetBySQL:執(zhí)行SQL查詢語(yǔ)句,返回?cái)?shù)據(jù)集;
⑶ ExecuteNonQuery:執(zhí)行增刪改SQL語(yǔ)句;
⑷ GetDatasetByProc:執(zhí)行帶參數(shù)的查詢存儲(chǔ)過(guò)程;
⑸ ExeProc:執(zhí)行帶參數(shù)的存儲(chǔ)過(guò)程。
由于以上函數(shù)的參數(shù)都是SQL語(yǔ)句或存儲(chǔ)過(guò)程名稱,跟具體的數(shù)據(jù)庫(kù)和表無(wú)關(guān),因此SQLHelper類具有很好的通用性,可以一次編寫(xiě),多次使用。
4 結(jié)束語(yǔ)
本文詳細(xì)闡述基于某企業(yè)運(yùn)維管理工作的需求,以ASP.NET和Web技術(shù)為支撐,進(jìn)行了軟件工程的開(kāi)發(fā)流程設(shè)計(jì),實(shí)現(xiàn)了運(yùn)維管理平臺(tái)。利用擴(kuò)展的三層體系結(jié)構(gòu)對(duì)系統(tǒng)進(jìn)行了軟件體系結(jié)構(gòu)設(shè)計(jì),并利用CURD操作對(duì)三層結(jié)構(gòu)進(jìn)行了優(yōu)化,以提高軟件的可擴(kuò)展性。經(jīng)過(guò)測(cè)試,項(xiàng)目運(yùn)行效果較好。下一步將從運(yùn)維管理工作的工作流優(yōu)化,數(shù)據(jù)報(bào)告的挖掘和實(shí)現(xiàn),系統(tǒng)開(kāi)放接口的設(shè)計(jì)和實(shí)現(xiàn),以及運(yùn)維平臺(tái)的手機(jī)系統(tǒng)開(kāi)發(fā)等方面著手開(kāi)展研究工作。
參考文獻(xiàn)(References):
[1] 宋瑩,潘振祥,王志勇.政府部門(mén)外網(wǎng)運(yùn)維管理研究[J].電子設(shè)計(jì)工程,2012.11(20):32-35
[2] 邢守志.企業(yè)運(yùn)維服務(wù)管理系統(tǒng)在線告警子系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).計(jì)算機(jī)與數(shù)字工程[J].2013:5(41)858-861
[3] 萬(wàn)潤(rùn)澤,張興艷,李亮.基于ITSS的故障智能診斷和處理系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程,2014.1(42)145-149
[4] 文必龍,趙晶浩,張璇,趙滿.IT系統(tǒng)運(yùn)維管理研究[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2013.3(22):1-5
[5] 陳 林,崔 糖,袁德砦.基于Web的運(yùn)維流程管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2015.1(35):189-191
[6] 武佳寧.云計(jì)算環(huán)境下IT運(yùn)維管理模式研究[J].信息技術(shù),2015.8:51-53
[7] 周宇潔.大數(shù)據(jù)時(shí)代動(dòng)環(huán)集中運(yùn)維管理淺析[J].信息技術(shù),2015.11:144-146
[8] 趙建華.數(shù)字化校園建設(shè)下大數(shù)據(jù)時(shí)代高效IT運(yùn)維管理[J].長(zhǎng)春師范大學(xué)學(xué)報(bào),2015.34(12):47-49
[9] 馬麗,封蕾.基于MVC三層架構(gòu)的美術(shù)資源庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2016.15(24)85-87
[10] 孟勛.MVC與三層結(jié)構(gòu)技術(shù)的應(yīng)用研究[J].軟件工程師,2013.9:23-25