摘 要: 針對自然災害處置對時效性要求高、情況變化快的特點,提出一種基于工作流計算的處置方法。首先依據處置過程的知識模型和處置經驗,將相關軟件功能和數據相互關聯起來,形成標準化處置流程,并進行統一協調控制,使得各系統單元與需要處置的要素相互配合,協調工作,提高應急處置效率。然后建立告警事件與流程匹配模型,根據事件類型自動啟動應急處置流程,提高響應速度。流程化應急情況處置技術,將被動系統轉變為主動系統,并最終達到標準化、規劃化、智能化、高效化的目的。
關鍵詞: 流程化;應急情況處置;事件告警
0 引言
近幾年自然災害頻頻發生,如汶川地震、玉樹地震等,這些自然災害給人民群眾財產造成了巨大的損失,導致大量人員傷亡。為快速有效處置這些突發事件,必須制定相應的處置預案,同時將處置預案模塊化、節點化、流程化,以利于搶險救災指揮部內多要素協同處置。在搶險救災中,快速完成對突發事件的有效響應和處置極為重要,而流程化協同處置[1-2]能有效將指揮部內各單位及保障要素系統組織起來,通過工作流引擎技術[3-4]將處置預案中每個處置節點快速下達到指定處理人員,通過協同處置有效完成對救災資源的組織和安排,快速完成對災情的掌握和人員的救護。
1 系統設計
流程化應急處置軟件系統[5-7]如圖1所示,其中應用層軟件主要包括流程編排工具、關鍵事件告警、預案匹配、流程通用客戶端,服務層主要包括關鍵事件告警服務、工作流引擎、消息分發服務以及數據傳輸服務,數據支撐層主要包括流程數據庫、預案數據庫及資料數據庫。本系統基于Web開發,通過用戶登錄和權限控制實現。
基于流程化的突發事件處置方法包括以下步驟:
(1)利用可視化流程編排工具,指揮員將梳理總結出的應急情況處置程序內容、方法步驟,通過流程工具進行編排、固化,形成程序化、標準化的指揮作業流程。
(2)指揮員建立突發事件與處置流程的關聯關系。
(3)監測到突發事件后,生成告警信息,系統根據告警事件類型及事件信息匹配啟動相應處置流程。
(4)流程引擎負責流程啟動及流程跳轉,流程啟動后,流程引擎把下一流程處置環節信息發送給指揮部流程管控服務,如果當前處置環節與后臺服務關聯,則直接根據服務名稱和地址調用后臺服務實現相關功能。
(5)指揮部流程管控服務接收到流程分發數據后,會根據流程節點關聯的人員信息,把流程待辦任務發送到指定處理人員。
(6)各處理人員接收到流程分發消息后進行提示,指揮員進入流程處置客戶端,查看自己的任務,根據任務內容顯示業務處理界面,完成對任務的處理。
(7)指揮員處理完當前任務后將完成消息發送給流程管控服務,管控服務收到后將消息轉發給工作流引擎,流程跳轉到下一節點,然后重復步驟(4)。
(8)最后一個節點處理完成后發送流程結束消息到工作流引擎,引擎結束流程,并將流程處置過程中所有處理信息記錄下來,形成歷史記錄以便后續查看。
2 關鍵模塊
2.1 流程建模工具
流程建模工具實現突發事件處置過程編排,利用指揮人員在處置突發事件中積累的經驗將過程按照功能模塊、處置人員、處置內容等具體化為若干個節點,按照先后順序將節點以流程圖的方式連接起來,形成處置預案。處置過程流程化提高了某些共用模塊的重用率,有效降低了系統開發工作量,同時將處置經驗知識化,有利于知識積累和存儲。
具體來說,流程建模工具主要實現了以下功能:
(1)流程節點模塊化封裝,流程節點數據主要包括節點輸入/輸出參數、關聯席位及節點分支邏輯處理規則。
(2)流程節點與業務功能模塊的關聯,包括流程節點與后臺服務的直接關聯、流程節點與相關特定業務功能的關聯。
(3)用戶能夠通過拖拽事先定義的流程節點,實現流程的自主及可視化編排,支持以特定語言對流程要素進行描述。
(4)實現處置流程與威脅告警事件的關聯,能夠根據告警事件自動啟動相應處置流程。
(5)用戶通過可視化流程編排工具對流程進行編輯管理,包括新建、修改、保存流程。
圖2是保存流程信息的數據庫模型圖。流程節點和節點連接線構成了流程的基本信息。流程屬性表用于突發事件與處置流程的匹配,由突發事件的受災人數、事件類型等到流程庫中進行匹配,如果找到匹配流程則直接啟動,提高響應速度。流程的每個節點都關聯具體的處置業務,用戶收到待辦任務后根據節點任務關聯表可直接定位到要處理的業務內容。為保證繪制出正確的流程,在流程繪制和保存階段需要對流程進行合法性檢查。在繪制階段的檢查內容包括:
(1)流程開始和結束節點唯一性檢查;
(2)兩個流程節點之間只可以有一條連接線;
(3)連接線的指向性檢查,包括連接線不能指向開始節點、連接線的起始節點不能是結束節點、連接線不能有環路、開始節點的后繼只能有一個任務節點。
流程保存時的檢查內容包括:
(1)流程是否存在開始和結束節點;
(2)除流程開始和結束節點,其他任務節點都必須有前驅和后繼節點。
2.2 告警事件與預案匹配
當有突發事件發生時,關鍵事件告警服務被觸發,并同時記錄突發事件的屬性信息,包括產生事件類型、主體目標位置、目標類型等,告警服務啟動預案匹配機制,利用事件信息和匹配規則在預案庫中尋找符合要求的預案,如果找到,則啟動處置流程,否則提醒指揮人員制定新的預案。主要步驟包括以下方面:
(1)關鍵事件告警服務監測到當前有突發事件發生時,推送告警信息到告警事件應用客戶端。
(2)指揮人員根據事件等級選擇是否對突發事件進行處置,若選擇處置,則啟動相應的處置流程,并獲取當前告警事件關鍵信息,包括事件類型以及事件關聯的關鍵信息。
(3)系統根據告警事件類型獲取與該突發事件關聯的預案匹配規則項(如位置、關鍵詞等),并根據這些匹配規則進行預案匹配。
(4)若成功匹配到預案,則從預案庫中加載并動態調整預案,否則制定相應的應急處置預案。
2.3 工作流引擎
工作流引擎[8]是流程化應急處置的核心組成模塊,負責實現處置流程自動跳轉、流程狀態機維護等核心功能。本文實現的工作流引擎主要包含流程解析、流程管控、流程任務處理及流程歷史數據管理四個模塊。
(1)流程解析模塊:負責解析流程要素,包括流程節點信息及節點與節點之間的關聯信息;實現流程邏輯分支的判斷,如流程路徑選擇等。
(2)流程管控模塊:負責實現流程啟動和終結,流程啟動時,可把整個流程的輸入參數傳遞給流程管控模塊;根據流程節點的邏輯組織,自動實現流程節點自動跳轉和狀態維護。
(3)任務處理模塊:根據流程唯一標識查詢當前待辦任務;將當前待辦任務相關數據發送到流程管控服務,通知相關人員處理;查詢當前流程的辦理記錄。
(4)歷史數據管理模塊:當流程處置完成后,可把流程處置相關數據保存到流程歷史庫中;支持流程歷史數據的查詢、調閱等。
本文根據流程跳轉過程設計了自己的工作流引擎系統,實現了流程的啟動、狀態記錄和待辦任務生成。引擎算法利用圖3所示的數據結構記錄流程運轉狀態和用戶待辦任務,其中流程編號為編排好的流程的序號,節點編號為編排好的流程中任務節點的編號,流程實體編號和節點實體編號為流程運行中生成的編號,即由編排好的流程經啟動后實例化一個運行流程。流程引擎包含三個主要算法模塊,分別是流程啟動、選擇后續環節處置人和任務節點發送。
2.3.1 流程啟動
流程的啟動過程比較簡單,根據要啟動的流程編號找到流程第一個節點,在流程編排中第一個節點的處置人默認為流程啟動人,所以由第一個節點信息創建一條流程節點狀態數據,其中節點狀態為“到達”,并根據啟動人創建用戶任務數據,處置人和發送人都為流程啟動人。
2.3.2 選擇后續環節處置人
用戶登錄后根據用戶編號到用戶任務表中查找處置人為自己的任務,并進入相應的處置內容。用戶完成節點任務后需選擇當前節點的后續節點處置人。在查詢后續節點前首先需要判斷當前節點是否已經被他人處置結束,防止因待辦任務未刷新導致的錯誤處置,判斷方法是到流程節點狀態表中查詢節點狀態。如當前節點未被結束,則根據流程編排信息查詢后續節點,如果當前節點是分支節點,即其后續節點有多個,還需根據當前環節的輸出參數和分支規則判斷正確流向的節點。
對已正確查找出的每一個后續節點,需確定供用戶選擇的節點備選處置人,備選處置人獲取需考慮多種情況。如果當前節點是協同處置且已有其他用戶處置結束,則該節點后續節點的備選處置人已被確定,另外如果后續節點是匯聚節點,即有其他節點流向該節點,則此后續節點的備選處置人還需參考其他前驅節點的選取。確定完后續節點的備選處置人后,還需查詢節點的處置人規則,即此節點是單人處置還是多人處置,根據此處置規則限制用戶從備選處置人中選擇的處置人個數。選擇后續處置人流程圖如圖4所示。
2.3.3 任務節點發送
任務節點發送流程如圖5所示。在獲取后續節點和每個節點的備選處置人后,用戶選擇合適的處置人,保存當前任務的處置信息,將流程發送到下一環節,流程引擎根據整個流程節點的狀態決定是否推進到下一狀態。
首先更新用戶任務表,寫入任務處置時間,表示用戶任務處置結束。獲取當前節點的協同處置規則,協同處置規則有“多人接收任務但僅需一人處置”、“多人接收任務且所有接收人處置”、“多人接收任務且需要超過一定數量的人處理”,根據協同處置規則和用戶任務表判斷當前任務是否處置結束。
如果當前任務節點處置結束,先判斷后續節點是否有未完成的前驅節點,如有則不做其他處理。如果沒有則表示后續節點可達,如果此后續節點是流程結束節點,則流程處置結束,備份流程流轉信息形成歷史數據,當后續節點為普通節點時,根據后續節點信息新建流程節點狀態數據,節點狀態為到達,根據選擇的處置人信息創建用戶任務數據,插入表中。
如果當前任務節點還有其他處置人未處置,則當前節點無法結束,此時根據后續節點創建用戶任務數據,但用戶任務名稱為掛起任務,流程不往前推進,而后續節點的處置人信息也保存在用戶任務表中,供選擇后續節點處置人時使用。用戶在獲取待辦任務時舍棄掛起任務。
工作流引擎在運轉過程中保存下來的數據可實現流程監控功能,以不同顏色表示處置結束和未結束的節點,同時顯示每個節點的處置結束時間、審批意見等信息,方便用戶掌握流程處置進度。同時為提醒用戶按時完成任務,實現時限管理服務,采用循環觸發機制,每隔一段時間對流程任務進行掃描,如發現超時未完成的任務,則在用戶登錄時進行警告提醒。
2.4 工作流客戶端
工作流客戶端主要輔助指揮員實現流程任務的處置,客戶端以插件的方式集成到各系統軟件內,主要功能包括流程狀態監視、待辦工作顯示、任務處理及流程記錄顯示四個方面。
工作流客戶端處置流程如圖6所示,處置過程為:
(1)工作流客戶端接收到流程管控服務推送到本系統的待辦任務提示,顯示本系統需要處理的流程任務,并展現當前流程已辦理任務的處置記錄,從而輔助指揮員進行處置決策。
(2)流程節點通過與軟件業務功能模板的綁定,自動實現任務提示到任務處理的跳轉。
(3)用戶完成任務處理后,調用流程處置相關接口提交處置結果數據到工作流引擎,進而實現任務數據的保存及流程的下一步跳轉。
3 結論
針對當前自然災害日益頻繁的問題,本文提出了一種基于流程化的事件處置方法。首先對常見突發事件進行處置過程編排,建立流程處置節點與業務功能以及指揮所人員的關聯關系,然后利用告警事件與流程匹配模型,根據事件類型等信息快速啟動應急預案,使處理過程在指揮部內快速流轉,有效地收集信息,充分利用指揮部內各要素系統的處理能力,完成對突發事件的快速處置,同時提供能統一查詢已處理任務、待辦任務和進行任務處置的客戶端,方便用戶查看處置過程。本文提出的方法能有效地組織多用戶協同處置突發事件,充分組織和利用救災資源,快速完成對突發事件的響應和處置。
參考文獻
[1] LEYMANN F, ROLLER D. Workflow-based applications[J]. IBM Systems Journal, 1997, 36(1):102-123.
[2] VAN DER AALST T W M P. Workflow Modeling using Proclets[J]. In Proceedings of CoopIS′00, 2003:1129-1134.
[3] 羅海濱,范玉順,吳澄.工作流技術綜述[J].軟件學報,2000(7):899-907.
[4] 李紅臣,史美林.工作流模型及其形式化描述[J].計算機學報,2003(11):1456-1463.
[5] 李海波,戰德臣,徐曉飛.基于工作流引擎的構件組裝體系結構[J].軟件學報,2006(6):1404-1410.
[6] 張曉剛,李明樹.基于工作流的知識流建模與控制[J].軟件學報,2005(2):184-193.
[7] BASU A, BLANNING R W. A formal approach to workflow analysis.[J]. Information Systems Research, 2000, 11(1):17-36.
[8] OKADA K, HAYAMI H, SAGEHASHI K. From workflow to interworkflow[J]. Wuhan University Journal of Natural Sciences, 2001(6):198-203.