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