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