黃海英 張今革 葉思斯
(1.南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司 廣東省廣州市 510663 2.電網(wǎng)數(shù)字電網(wǎng)研究院有限公司 廣東省廣州市 510663)
最開(kāi)始我國(guó)的IT 運(yùn)維的管理工作相對(duì)簡(jiǎn)單,由于當(dāng)時(shí)的互聯(lián)網(wǎng)沒(méi)有得到普及,計(jì)算機(jī)技術(shù)算是一門(mén)比較新的概念,國(guó)內(nèi)對(duì)于計(jì)算機(jī)軟件和硬件的應(yīng)用相對(duì)來(lái)說(shuō)不那么復(fù)雜,所以這個(gè)時(shí)候的IT運(yùn)維主要管理的是計(jì)算機(jī)硬件和網(wǎng)絡(luò)環(huán)境等相關(guān)設(shè)備,這其中技術(shù)性比較高的工作主要集中在對(duì)于網(wǎng)絡(luò)的監(jiān)控和管理,IT 運(yùn)維人員需要保證網(wǎng)絡(luò)環(huán)境可靠安全。當(dāng)網(wǎng)絡(luò)出現(xiàn)故障的時(shí)候,應(yīng)該能夠在短時(shí)間內(nèi)定位故障產(chǎn)生的原因和問(wèn)題發(fā)生點(diǎn),這樣能夠?qū)ο到y(tǒng)的各個(gè)構(gòu)件的工作狀態(tài)做到合理監(jiān)控。之后,進(jìn)入21 世紀(jì),尤其是2010年之后,中國(guó)的互聯(lián)網(wǎng)產(chǎn)業(yè)迅速發(fā)展,IT 技術(shù)得到普遍應(yīng)用,社會(huì)上對(duì)于IT 系統(tǒng)的需求量增多,要求提升,這就使IT 運(yùn)維工作變得更加復(fù)雜,由于企業(yè)的IT 運(yùn)維管理已經(jīng)不再僅僅局限于網(wǎng)絡(luò)監(jiān)控,而更注重于系統(tǒng)的全面和綜合性的管理,對(duì)于業(yè)務(wù)系統(tǒng)有更多的關(guān)注,所以更多的企業(yè)能夠認(rèn)識(shí)到一個(gè)具有良好工作狀態(tài)和工作能力的IT 運(yùn)維部門(mén)對(duì)于企業(yè)正常業(yè)務(wù)開(kāi)展的必要性。單一的網(wǎng)絡(luò)監(jiān)控和系統(tǒng)維護(hù)不能夠滿足目前日益增長(zhǎng)的企業(yè)對(duì)于系統(tǒng)綜合性管理的需要,系統(tǒng)變得更加復(fù)雜的同時(shí)節(jié)點(diǎn)數(shù)目也在不斷上升,現(xiàn)在的IT運(yùn)維管理工作應(yīng)該集中在如何管控業(yè)務(wù)系統(tǒng)的各個(gè)工作流程。
目前中國(guó)企業(yè)的IT 運(yùn)維工作還存在一些普遍性問(wèn)題,主要有以下幾點(diǎn):
目前在我國(guó)企業(yè)發(fā)展過(guò)程中,規(guī)范化的IT 運(yùn)維工作流程這方面的應(yīng)用意識(shí)還沒(méi)有形成,運(yùn)維工作的缺少流程化規(guī)定和標(biāo)準(zhǔn),在很多企業(yè)的IT 運(yùn)維部門(mén),問(wèn)題的解決和系統(tǒng)的維護(hù),很大程度上依靠有工作經(jīng)驗(yàn)的自身的IT 運(yùn)維人員的經(jīng)驗(yàn)和意識(shí),這樣的運(yùn)維工作可想而知的質(zhì)量比較差,效率比較低,而且不利于之后其他運(yùn)維人員對(duì)于歷史遺留問(wèn)題的了解和解決。當(dāng)這部分關(guān)鍵的運(yùn)維人員從企業(yè)離開(kāi)之后,后來(lái)的運(yùn)維人員對(duì)于運(yùn)維工作由于不了解之前的問(wèn)題解決措施以及沒(méi)有標(biāo)準(zhǔn)化的解決方案,所以會(huì)對(duì)運(yùn)維工作帶來(lái)更大的負(fù)面影響。目前隨著IT 技術(shù)在各行各業(yè)的企業(yè)中顯示著越來(lái)越重要的作用,很多企業(yè)已經(jīng)意識(shí)到運(yùn)維工作標(biāo)準(zhǔn)化和流程化的必要,我國(guó)IT 運(yùn)維工作開(kāi)始進(jìn)行給想運(yùn)維工作流程的規(guī)范制定。
前文已經(jīng)提到,只有IT 運(yùn)維工作流程變得流程化以及標(biāo)準(zhǔn)化才能夠?qū)⑵髽I(yè)運(yùn)維人員的個(gè)人因素的影響降到最低限度,企業(yè)對(duì)于IT 運(yùn)維工作制定了標(biāo)準(zhǔn)化流程之后,IT 運(yùn)維人員應(yīng)該嚴(yán)格按照這樣的標(biāo)準(zhǔn)進(jìn)行,之后即使在流程系統(tǒng)中進(jìn)行相應(yīng)流程的設(shè)定以此便于實(shí)現(xiàn)IT 運(yùn)維工作的計(jì)算機(jī)化。但是實(shí)際工作中,運(yùn)維人員在沒(méi)有流程的情況下處理關(guān)鍵問(wèn)題只能憑借自己的經(jīng)驗(yàn),或者按照模糊的流程處理問(wèn)題,在多數(shù)情況下,運(yùn)維工作者之間的溝通還停留在面對(duì)面交流,電話或者郵件的方式,這種交流都是計(jì)算機(jī)化程度不高的體現(xiàn)。
IT 運(yùn)維工作進(jìn)行過(guò)程中很多工作需要各類子系統(tǒng)之間的交互工作,例如在獲取到預(yù)警信息時(shí)需要與告警系統(tǒng)交互,進(jìn)行資源設(shè)備的變換過(guò)程中需要和資源管理系統(tǒng)進(jìn)行交互便于資源的更新,但是目前看來(lái)國(guó)內(nèi)能夠使用流程原件整合IT 運(yùn)維管理系統(tǒng)的企業(yè)算是鳳毛麟角,信息的交互性在IT 運(yùn)維中需要提升的地方還很多。
工作流管理系統(tǒng)的主要作用是為了更好進(jìn)行系統(tǒng)地任務(wù)分配和資源調(diào)度的系統(tǒng),可以按照流程定義文件中預(yù)先定義好的任務(wù)流程邏輯自動(dòng)進(jìn)行工作任務(wù)的資源分配和優(yōu)先級(jí)分配。工作流引擎在進(jìn)行任務(wù)分配以及流轉(zhuǎn)邏輯的過(guò)程中能夠自動(dòng)進(jìn)行,讓不同的參與者共享信息,提高工作過(guò)程的效率。工作流管理系統(tǒng)在實(shí)際應(yīng)用中,主要有兩種模式,分別是平臺(tái)式和嵌入式,平臺(tái)式工作流是相對(duì)獨(dú)立的工作系統(tǒng),以工作流引擎為基礎(chǔ),氛圍權(quán)限管理功能模塊,用戶管理功能模塊,報(bào)表管理以及表單設(shè)計(jì)等等,而嵌入式工作流系統(tǒng)由于體量小能夠更容易地嵌入其他大型的軟件應(yīng)用之中,這里的嵌入式工作流管理系統(tǒng)主要的作用使維護(hù)流程正常進(jìn)行以及解析工作流定義文件。相比于平臺(tái)式工作流管理系統(tǒng),嵌入式工作流管理系統(tǒng)更加簡(jiǎn)單,功能相對(duì)比較少,體量更小,所以具備開(kāi)發(fā)工期短,二次開(kāi)發(fā)耗費(fèi)少的特點(diǎn),而平臺(tái)式工作流系統(tǒng)由于拓展性比較差,業(yè)務(wù)流程比較復(fù)雜并且系統(tǒng)自身更加龐大,所以在開(kāi)發(fā)上顯得難度更大,成本更高,但是平臺(tái)式工作流功能更齊全,功能模塊也更加豐富,在實(shí)際工作中系統(tǒng)構(gòu)建工作能夠更快進(jìn)行。所以說(shuō),平臺(tái)式和嵌入式工作流都有各自的優(yōu)勢(shì)和不足,在不同的應(yīng)用情景往往會(huì)選擇不同的工作流系統(tǒng)進(jìn)行工作虧的管理工作。
規(guī)則引擎也屬于引擎模塊的一種,在定義上,規(guī)則引擎使能讀取規(guī)則定義腳本中的規(guī)則之后通過(guò)條件判斷以及邏輯分析過(guò)程得到規(guī)則匹配結(jié)果的引擎。應(yīng)用程序中的規(guī)則引擎能夠作為組件進(jìn)行嵌入,應(yīng)用中的數(shù)據(jù)被輸送到規(guī)則引擎中去,通過(guò)計(jì)算分析得到匹配結(jié)果,使用規(guī)則引擎對(duì)于系統(tǒng)的良性影響主要集中在以下幾個(gè)方面:
2.2.1 程序與業(yè)務(wù)邏輯之間分離
業(yè)務(wù)邏輯在規(guī)則文件中得到集中化解讀,這樣如果規(guī)則定義發(fā)生了改變,那么只有規(guī)則文件需要進(jìn)行修改,而原本應(yīng)用程序的結(jié)構(gòu),工作流轉(zhuǎn)邏輯等等都可以繼續(xù)保留,這樣就實(shí)現(xiàn)了程序本身與業(yè)務(wù)的解耦合,大大提高了系統(tǒng)的靈活性。
2.2.2 降低維護(hù)應(yīng)用的成本
如果一個(gè)應(yīng)用系統(tǒng)中缺少規(guī)則引擎,那么進(jìn)行一個(gè)發(fā)雜功能的實(shí)現(xiàn)往往需要大量的邏輯分析和判斷結(jié)果,而計(jì)算機(jī)高級(jí)語(yǔ)言往往使用的是條件語(yǔ)句,也就是IF-ELSE 進(jìn)行判斷,一些比較復(fù)雜的功能往往存在多層條件語(yǔ)句的嵌套,這樣的程序代碼缺乏可讀性,而且一旦發(fā)生了需求上的變更,這種代碼結(jié)構(gòu)的改變是巨大的,而且這種邏輯結(jié)構(gòu)如果選擇追加邏輯判斷存在巨大的潛在風(fēng)險(xiǎn),很容易因?yàn)樾⌒〉拇a缺陷導(dǎo)致整個(gè)系統(tǒng)的崩潰。規(guī)則引擎與系統(tǒng)的融合能夠有效解決這個(gè)問(wèn)題,他提供的語(yǔ)法規(guī)則能夠成為高級(jí)語(yǔ)言條件判斷語(yǔ)句缺陷的補(bǔ)充,在進(jìn)行規(guī)則文件的編寫(xiě)定義過(guò)程中不需要很多的條件嵌套就能夠完成高級(jí)語(yǔ)言多層嵌套才能夠?qū)崿F(xiàn)的業(yè)務(wù)邏輯,所以即使后續(xù)的需求發(fā)生變更,基于規(guī)則引擎的系統(tǒng)能夠以比較小的代價(jià)進(jìn)行應(yīng)用程序變更支持。
2.2.3 降低應(yīng)用程序的復(fù)雜度
規(guī)則引擎應(yīng)用于系統(tǒng)之后,規(guī)則腳本的執(zhí)行能夠是規(guī)則引擎工作和流程引擎的工作相結(jié)合,例如在BPMN2.0 規(guī)范中定義的BusinessRuleTask 就支持這種功能,大大降低了系統(tǒng)運(yùn)營(yíng)過(guò)程中維護(hù)成本的困難程度,在一定程度啊上降低了后期維護(hù)代價(jià),能夠更好地支持變更。
在基于工作流和規(guī)則引擎的IT運(yùn)維流程管理系統(tǒng)開(kāi)發(fā)過(guò)程中,應(yīng)該明確不同業(yè)務(wù)流程需要不同的參與者,這些參與者在系統(tǒng)中的角色不同,分配的權(quán)限也不同,為了對(duì)權(quán)限管理工作進(jìn)行規(guī)范化和流程化定義,所以設(shè)計(jì)過(guò)程提前引入了權(quán)限管理概念,也就是基于角色訪問(wèn)控制(RBAC)權(quán)限管理辦法。實(shí)行該方法進(jìn)行訪問(wèn)權(quán)限管理的過(guò)程中,用戶并沒(méi)有在進(jìn)入系統(tǒng)之初就被分配相應(yīng)的權(quán)限,實(shí)際上,系統(tǒng)首先將權(quán)限賦予角色,然后為不同的用戶賦予不同的角色,這樣在實(shí)際系統(tǒng)權(quán)限管理中,角色,權(quán)限以及用戶之間主要是這樣地關(guān)系,用戶擁有特定的角色,不同的角色擁有不同的權(quán)限。這樣一來(lái),這個(gè)方法的關(guān)鍵在于角色的分配以及權(quán)限功能的控制管理,RBAC 中用戶實(shí)體,權(quán)限,權(quán)限角色關(guān)聯(lián)實(shí)體,用戶角色關(guān)聯(lián)實(shí)體這些維護(hù)者權(quán)限,用戶和角色這三個(gè)概念。
現(xiàn)在基于角色控制訪問(wèn)權(quán)限管理規(guī)范和Apache Shiro 框架的整合能夠更好進(jìn)行權(quán)限訪問(wèn)的控制,Shiro 能夠有效進(jìn)行會(huì)話管理,加密,認(rèn)證以及授權(quán)工作,進(jìn)入應(yīng)用系統(tǒng)之后框架會(huì)查看用戶的類進(jìn)行用戶權(quán)限的獲取工作,在用戶進(jìn)行系統(tǒng)資源的訪問(wèn)時(shí)Shiro 會(huì)判定訪問(wèn)該資源的用戶角色是否擁有對(duì)應(yīng)的權(quán)限,如果符合規(guī)定則用戶獲取資源,反之用戶地訪問(wèn)被攔截。Shiro 框架具備一些權(quán)限有關(guān)的JSP 表現(xiàn),這些JSP 表現(xiàn),通過(guò)控件能夠進(jìn)行權(quán)限判定控制是否展示內(nèi)容,用戶進(jìn)行應(yīng)用系統(tǒng)的資源訪問(wèn)時(shí)因?yàn)镾hiro 框架的作用,這一過(guò)程中地資源訪問(wèn)并不需要開(kāi)發(fā)人員另外編寫(xiě)代碼段控制訪問(wèn)過(guò)程,極大的降低了系統(tǒng)開(kāi)發(fā)過(guò)程中的難度和總體工作量,這樣軟件系統(tǒng)的開(kāi)發(fā)者就會(huì)有更多的時(shí)間和精力去完善功能性需求,系統(tǒng)的核心功能會(huì)得到進(jìn)一步完善。
JPA 是持久化應(yīng)用程序接口規(guī)范的簡(jiǎn)稱,有Sun 公司制定,JPA 的提出是為了將ORM 框架進(jìn)行規(guī)范和統(tǒng)一,應(yīng)用系統(tǒng)的整個(gè)生命周期的開(kāi)發(fā)能夠具備統(tǒng)一性。JPA 的概念出現(xiàn)之后,各類ORM 框架先后在自身的框架中對(duì)這一規(guī)范進(jìn)行應(yīng)用,在這樣的情況下,無(wú)論開(kāi)發(fā)者選擇的ORM框架是哪一種,調(diào)用的接口是一致的,這樣就為后續(xù)工作的開(kāi)發(fā)提供便利。持久層開(kāi)發(fā)和代碼編寫(xiě)工作更加規(guī)范,而具體選擇哪一種ORM 框架和持久性開(kāi)發(fā)工作不再具備強(qiáng)關(guān)聯(lián)關(guān)系,提高了系統(tǒng)結(jié)構(gòu)上的靈活性。系統(tǒng)使用JPA 的主要優(yōu)勢(shì)有以下幾個(gè)部分:
2.4.1 實(shí)體關(guān)系映射更加簡(jiǎn)潔
JPA 實(shí)體關(guān)系映射和Hibernate 相似,支持Java 注解和XML配置,在進(jìn)行實(shí)體聲明的時(shí)侯需要進(jìn)行一個(gè)類的建立,類映射成為表,而類的成員與表中的字段相互映射。通過(guò)注解能夠指定映射尸體的聯(lián)合主鍵以及單一主鍵,另外各個(gè)字段對(duì)應(yīng)的表中的字段名字,類型以及長(zhǎng)度可以設(shè)定,每個(gè)表的外鍵可以省定,實(shí)體之間的多種關(guān)系也可以設(shè)定。開(kāi)發(fā)人員在已經(jīng)提前接觸過(guò)ORM 開(kāi)發(fā)框架的情況下不需要過(guò)多的學(xué)習(xí)和了解,僅僅依靠文檔和簡(jiǎn)單的說(shuō)明就能夠了解JPA 的實(shí)體關(guān)系映射相關(guān)內(nèi)容。
2.4.2 持久化查詢語(yǔ)言強(qiáng)大
JPA 提供了強(qiáng)大的查詢語(yǔ)言,即JPQL,JPQL 能夠?qū)?shí)體對(duì)象進(jìn)行查詢,這樣程序和SQL 語(yǔ)句之間的關(guān)聯(lián)關(guān)系被弱化,實(shí)現(xiàn)了兩者的解耦合。查詢語(yǔ)言具有結(jié)構(gòu)化查詢語(yǔ)言的特點(diǎn),同時(shí)具備結(jié)構(gòu)化查詢語(yǔ)句強(qiáng)大的查詢能力,JPQL 具備豐富的條件表達(dá)式,支持聚合,排序,分組,子查詢以及參數(shù)查詢等基本功能。在僅僅使用JPQL 查詢語(yǔ)言的情況下能夠完成傳統(tǒng)SQL 語(yǔ)言絕大部分的查詢功能,而JPQL 查詢表達(dá)式和SQL 的標(biāo)準(zhǔn)化查詢表達(dá)式十分相近,所以在進(jìn)行JPQL 語(yǔ)言的學(xué)習(xí)時(shí)很容易上手,學(xué)習(xí)成本低,效率高。
Spring MVC 是Spring 框架中基于MVC 設(shè)計(jì)架構(gòu)的一種輕型WEB 框架,由于Spring MVC 具備清楚的試圖,控制器結(jié)構(gòu)以及模型,所以結(jié)構(gòu)比較簡(jiǎn)單,使用上更加方便。Spring MVC 本身具有強(qiáng)大而功能豐富的視圖解析器,在實(shí)際應(yīng)用過(guò)程中,需要進(jìn)行URL請(qǐng)求獲得XML 數(shù)據(jù)文件或者JSON 數(shù)據(jù)文件,通過(guò)頁(yè)面控制層在業(yè)務(wù)邏輯層獲取的MAP,將這種數(shù)據(jù)格式進(jìn)行XML 格式的轉(zhuǎn)換,然后傳入響應(yīng)工作流中。Spring MVC 自身具備JSON 文件的格式解析器,可以將MAP 文件自動(dòng)轉(zhuǎn)變?yōu)閄ML 格式或者JSON 格式,傳入響應(yīng)流種之后,避免了用戶顯示編碼過(guò)程中。大大提升了控制層的開(kāi)發(fā)效率,同時(shí)本身的學(xué)習(xí)成本比較低,提高開(kāi)發(fā)人員的系統(tǒng)開(kāi)發(fā)效率。
本文系統(tǒng)地分析了目前我國(guó)基于工作流和規(guī)則引擎的IT 運(yùn)維流程管理系統(tǒng)開(kāi)發(fā)和應(yīng)用現(xiàn)狀,指出其中存在的不足,之后對(duì)基于工作流和規(guī)則引擎的IT 運(yùn)維流程管理系統(tǒng)涉及到的相關(guān)技術(shù)進(jìn)行系統(tǒng)的闡述,重點(diǎn)介紹了工作流的概念,作用以及在系統(tǒng)中能夠產(chǎn)生的顯著優(yōu)勢(shì),介紹了規(guī)則引擎在運(yùn)維管理系統(tǒng)中的積極影響以及作用機(jī)制,也簡(jiǎn)要介紹了其他幾種技術(shù)在系統(tǒng)中的應(yīng)用。通過(guò)本文的簡(jiǎn)單概述,希望對(duì)相關(guān)學(xué)者了解基于工作流和規(guī)則引擎的IT 運(yùn)維流程管理系統(tǒng)開(kāi)發(fā)的關(guān)鍵技術(shù)有所幫助。