《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 一種針對事件處置的工作流系統(tǒng)設計
一種針對事件處置的工作流系統(tǒng)設計
2015年微型機與應用第17期
李 磊,施衛(wèi)峰
(中國電子科技集團公司第二十八研究所,江蘇 南京 210007)
摘要: 針對自然災害處置對時效性要求高、情況變化快的特點,提出一種基于工作流計算的處置方法。首先依據(jù)處置過程的知識模型和處置經(jīng)驗,將相關軟件功能和數(shù)據(jù)相互關聯(lián)起來,形成標準化處置流程,并進行統(tǒng)一協(xié)調(diào)控制,使得各系統(tǒng)單元與需要處置的要素相互配合,協(xié)調(diào)工作,提高應急處置效率。然后建立告警事件與流程匹配模型,根據(jù)事件類型自動啟動應急處置流程,提高響應速度。流程化應急情況處置技術,將被動系統(tǒng)轉(zhuǎn)變?yōu)橹鲃酉到y(tǒng),并最終達到標準化、規(guī)劃化、智能化、高效化的目的。
Abstract:
Key words :

  摘  要: 針對自然災害處置對時效性要求高、情況變化快的特點,提出一種基于工作流計算的處置方法。首先依據(jù)處置過程的知識模型和處置經(jīng)驗,將相關軟件功能和數(shù)據(jù)相互關聯(lián)起來,形成標準化處置流程,并進行統(tǒng)一協(xié)調(diào)控制,使得各系統(tǒng)單元與需要處置的要素相互配合,協(xié)調(diào)工作,提高應急處置效率。然后建立告警事件與流程匹配模型,根據(jù)事件類型自動啟動應急處置流程,提高響應速度。流程化應急情況處置技術,將被動系統(tǒng)轉(zhuǎn)變?yōu)橹鲃酉到y(tǒng),并最終達到標準化、規(guī)劃化、智能化、高效化的目的。

  關鍵詞: 流程化;應急情況處置;事件告警

0 引言

  近幾年自然災害頻頻發(fā)生,如汶川地震、玉樹地震等,這些自然災害給人民群眾財產(chǎn)造成了巨大的損失,導致大量人員傷亡。為快速有效處置這些突發(fā)事件,必須制定相應的處置預案,同時將處置預案模塊化、節(jié)點化、流程化,以利于搶險救災指揮部內(nèi)多要素協(xié)同處置。在搶險救災中,快速完成對突發(fā)事件的有效響應和處置極為重要,而流程化協(xié)同處置[1-2]能有效將指揮部內(nèi)各單位及保障要素系統(tǒng)組織起來,通過工作流引擎技術[3-4]將處置預案中每個處置節(jié)點快速下達到指定處理人員,通過協(xié)同處置有效完成對救災資源的組織和安排,快速完成對災情的掌握和人員的救護。

1 系統(tǒng)設計

001.jpg

  流程化應急處置軟件系統(tǒng)[5-7]如圖1所示,其中應用層軟件主要包括流程編排工具、關鍵事件告警、預案匹配、流程通用客戶端,服務層主要包括關鍵事件告警服務、工作流引擎、消息分發(fā)服務以及數(shù)據(jù)傳輸服務,數(shù)據(jù)支撐層主要包括流程數(shù)據(jù)庫、預案數(shù)據(jù)庫及資料數(shù)據(jù)庫。本系統(tǒng)基于Web開發(fā),通過用戶登錄和權限控制實現(xiàn)。

  基于流程化的突發(fā)事件處置方法包括以下步驟:

 ?。?)利用可視化流程編排工具,指揮員將梳理總結出的應急情況處置程序內(nèi)容、方法步驟,通過流程工具進行編排、固化,形成程序化、標準化的指揮作業(yè)流程。

 ?。?)指揮員建立突發(fā)事件與處置流程的關聯(lián)關系。

  (3)監(jiān)測到突發(fā)事件后,生成告警信息,系統(tǒng)根據(jù)告警事件類型及事件信息匹配啟動相應處置流程。

  (4)流程引擎負責流程啟動及流程跳轉(zhuǎn),流程啟動后,流程引擎把下一流程處置環(huán)節(jié)信息發(fā)送給指揮部流程管控服務,如果當前處置環(huán)節(jié)與后臺服務關聯(lián),則直接根據(jù)服務名稱和地址調(diào)用后臺服務實現(xiàn)相關功能。

  (5)指揮部流程管控服務接收到流程分發(fā)數(shù)據(jù)后,會根據(jù)流程節(jié)點關聯(lián)的人員信息,把流程待辦任務發(fā)送到指定處理人員。

  (6)各處理人員接收到流程分發(fā)消息后進行提示,指揮員進入流程處置客戶端,查看自己的任務,根據(jù)任務內(nèi)容顯示業(yè)務處理界面,完成對任務的處理。

  (7)指揮員處理完當前任務后將完成消息發(fā)送給流程管控服務,管控服務收到后將消息轉(zhuǎn)發(fā)給工作流引擎,流程跳轉(zhuǎn)到下一節(jié)點,然后重復步驟(4)。

  (8)最后一個節(jié)點處理完成后發(fā)送流程結束消息到工作流引擎,引擎結束流程,并將流程處置過程中所有處理信息記錄下來,形成歷史記錄以便后續(xù)查看。

2 關鍵模塊

  2.1 流程建模工具

  流程建模工具實現(xiàn)突發(fā)事件處置過程編排,利用指揮人員在處置突發(fā)事件中積累的經(jīng)驗將過程按照功能模塊、處置人員、處置內(nèi)容等具體化為若干個節(jié)點,按照先后順序?qū)⒐?jié)點以流程圖的方式連接起來,形成處置預案。處置過程流程化提高了某些共用模塊的重用率,有效降低了系統(tǒng)開發(fā)工作量,同時將處置經(jīng)驗知識化,有利于知識積累和存儲。

  具體來說,流程建模工具主要實現(xiàn)了以下功能:

  (1)流程節(jié)點模塊化封裝,流程節(jié)點數(shù)據(jù)主要包括節(jié)點輸入/輸出參數(shù)、關聯(lián)席位及節(jié)點分支邏輯處理規(guī)則。

 ?。?)流程節(jié)點與業(yè)務功能模塊的關聯(lián),包括流程節(jié)點與后臺服務的直接關聯(lián)、流程節(jié)點與相關特定業(yè)務功能的關聯(lián)。

 ?。?)用戶能夠通過拖拽事先定義的流程節(jié)點,實現(xiàn)流程的自主及可視化編排,支持以特定語言對流程要素進行描述。

 ?。?)實現(xiàn)處置流程與威脅告警事件的關聯(lián),能夠根據(jù)告警事件自動啟動相應處置流程。

  (5)用戶通過可視化流程編排工具對流程進行編輯管理,包括新建、修改、保存流程。

002.jpg

  圖2是保存流程信息的數(shù)據(jù)庫模型圖。流程節(jié)點和節(jié)點連接線構成了流程的基本信息。流程屬性表用于突發(fā)事件與處置流程的匹配,由突發(fā)事件的受災人數(shù)、事件類型等到流程庫中進行匹配,如果找到匹配流程則直接啟動,提高響應速度。流程的每個節(jié)點都關聯(lián)具體的處置業(yè)務,用戶收到待辦任務后根據(jù)節(jié)點任務關聯(lián)表可直接定位到要處理的業(yè)務內(nèi)容。為保證繪制出正確的流程,在流程繪制和保存階段需要對流程進行合法性檢查。在繪制階段的檢查內(nèi)容包括:

  (1)流程開始和結束節(jié)點唯一性檢查;

 ?。?)兩個流程節(jié)點之間只可以有一條連接線;

 ?。?)連接線的指向性檢查,包括連接線不能指向開始節(jié)點、連接線的起始節(jié)點不能是結束節(jié)點、連接線不能有環(huán)路、開始節(jié)點的后繼只能有一個任務節(jié)點。

  流程保存時的檢查內(nèi)容包括:

 ?。?)流程是否存在開始和結束節(jié)點;

 ?。?)除流程開始和結束節(jié)點,其他任務節(jié)點都必須有前驅(qū)和后繼節(jié)點。

  2.2 告警事件與預案匹配

  當有突發(fā)事件發(fā)生時,關鍵事件告警服務被觸發(fā),并同時記錄突發(fā)事件的屬性信息,包括產(chǎn)生事件類型、主體目標位置、目標類型等,告警服務啟動預案匹配機制,利用事件信息和匹配規(guī)則在預案庫中尋找符合要求的預案,如果找到,則啟動處置流程,否則提醒指揮人員制定新的預案。主要步驟包括以下方面:

  (1)關鍵事件告警服務監(jiān)測到當前有突發(fā)事件發(fā)生時,推送告警信息到告警事件應用客戶端。

 ?。?)指揮人員根據(jù)事件等級選擇是否對突發(fā)事件進行處置,若選擇處置,則啟動相應的處置流程,并獲取當前告警事件關鍵信息,包括事件類型以及事件關聯(lián)的關鍵信息。

 ?。?)系統(tǒng)根據(jù)告警事件類型獲取與該突發(fā)事件關聯(lián)的預案匹配規(guī)則項(如位置、關鍵詞等),并根據(jù)這些匹配規(guī)則進行預案匹配。

 ?。?)若成功匹配到預案,則從預案庫中加載并動態(tài)調(diào)整預案,否則制定相應的應急處置預案。

  2.3 工作流引擎

  工作流引擎[8]是流程化應急處置的核心組成模塊,負責實現(xiàn)處置流程自動跳轉(zhuǎn)、流程狀態(tài)機維護等核心功能。本文實現(xiàn)的工作流引擎主要包含流程解析、流程管控、流程任務處理及流程歷史數(shù)據(jù)管理四個模塊。

 ?。?)流程解析模塊:負責解析流程要素,包括流程節(jié)點信息及節(jié)點與節(jié)點之間的關聯(lián)信息;實現(xiàn)流程邏輯分支的判斷,如流程路徑選擇等。

 ?。?)流程管控模塊:負責實現(xiàn)流程啟動和終結,流程啟動時,可把整個流程的輸入?yún)?shù)傳遞給流程管控模塊;根據(jù)流程節(jié)點的邏輯組織,自動實現(xiàn)流程節(jié)點自動跳轉(zhuǎn)和狀態(tài)維護。

 ?。?)任務處理模塊:根據(jù)流程唯一標識查詢當前待辦任務;將當前待辦任務相關數(shù)據(jù)發(fā)送到流程管控服務,通知相關人員處理;查詢當前流程的辦理記錄。

  (4)歷史數(shù)據(jù)管理模塊:當流程處置完成后,可把流程處置相關數(shù)據(jù)保存到流程歷史庫中;支持流程歷史數(shù)據(jù)的查詢、調(diào)閱等。

003.jpg

  本文根據(jù)流程跳轉(zhuǎn)過程設計了自己的工作流引擎系統(tǒng),實現(xiàn)了流程的啟動、狀態(tài)記錄和待辦任務生成。引擎算法利用圖3所示的數(shù)據(jù)結構記錄流程運轉(zhuǎn)狀態(tài)和用戶待辦任務,其中流程編號為編排好的流程的序號,節(jié)點編號為編排好的流程中任務節(jié)點的編號,流程實體編號和節(jié)點實體編號為流程運行中生成的編號,即由編排好的流程經(jīng)啟動后實例化一個運行流程。流程引擎包含三個主要算法模塊,分別是流程啟動、選擇后續(xù)環(huán)節(jié)處置人和任務節(jié)點發(fā)送。

  2.3.1 流程啟動

  流程的啟動過程比較簡單,根據(jù)要啟動的流程編號找到流程第一個節(jié)點,在流程編排中第一個節(jié)點的處置人默認為流程啟動人,所以由第一個節(jié)點信息創(chuàng)建一條流程節(jié)點狀態(tài)數(shù)據(jù),其中節(jié)點狀態(tài)為“到達”,并根據(jù)啟動人創(chuàng)建用戶任務數(shù)據(jù),處置人和發(fā)送人都為流程啟動人。

  2.3.2 選擇后續(xù)環(huán)節(jié)處置人

  用戶登錄后根據(jù)用戶編號到用戶任務表中查找處置人為自己的任務,并進入相應的處置內(nèi)容。用戶完成節(jié)點任務后需選擇當前節(jié)點的后續(xù)節(jié)點處置人。在查詢后續(xù)節(jié)點前首先需要判斷當前節(jié)點是否已經(jīng)被他人處置結束,防止因待辦任務未刷新導致的錯誤處置,判斷方法是到流程節(jié)點狀態(tài)表中查詢節(jié)點狀態(tài)。如當前節(jié)點未被結束,則根據(jù)流程編排信息查詢后續(xù)節(jié)點,如果當前節(jié)點是分支節(jié)點,即其后續(xù)節(jié)點有多個,還需根據(jù)當前環(huán)節(jié)的輸出參數(shù)和分支規(guī)則判斷正確流向的節(jié)點。

  對已正確查找出的每一個后續(xù)節(jié)點,需確定供用戶選擇的節(jié)點備選處置人,備選處置人獲取需考慮多種情況。如果當前節(jié)點是協(xié)同處置且已有其他用戶處置結束,則該節(jié)點后續(xù)節(jié)點的備選處置人已被確定,另外如果后續(xù)節(jié)點是匯聚節(jié)點,即有其他節(jié)點流向該節(jié)點,則此后續(xù)節(jié)點的備選處置人還需參考其他前驅(qū)節(jié)點的選取。確定完后續(xù)節(jié)點的備選處置人后,還需查詢節(jié)點的處置人規(guī)則,即此節(jié)點是單人處置還是多人處置,根據(jù)此處置規(guī)則限制用戶從備選處置人中選擇的處置人個數(shù)。選擇后續(xù)處置人流程圖如圖4所示。

004.jpg

  2.3.3 任務節(jié)點發(fā)送

005.jpg

  任務節(jié)點發(fā)送流程如圖5所示。在獲取后續(xù)節(jié)點和每個節(jié)點的備選處置人后,用戶選擇合適的處置人,保存當前任務的處置信息,將流程發(fā)送到下一環(huán)節(jié),流程引擎根據(jù)整個流程節(jié)點的狀態(tài)決定是否推進到下一狀態(tài)。

  首先更新用戶任務表,寫入任務處置時間,表示用戶任務處置結束。獲取當前節(jié)點的協(xié)同處置規(guī)則,協(xié)同處置規(guī)則有“多人接收任務但僅需一人處置”、“多人接收任務且所有接收人處置”、“多人接收任務且需要超過一定數(shù)量的人處理”,根據(jù)協(xié)同處置規(guī)則和用戶任務表判斷當前任務是否處置結束。

  如果當前任務節(jié)點處置結束,先判斷后續(xù)節(jié)點是否有未完成的前驅(qū)節(jié)點,如有則不做其他處理。如果沒有則表示后續(xù)節(jié)點可達,如果此后續(xù)節(jié)點是流程結束節(jié)點,則流程處置結束,備份流程流轉(zhuǎn)信息形成歷史數(shù)據(jù),當后續(xù)節(jié)點為普通節(jié)點時,根據(jù)后續(xù)節(jié)點信息新建流程節(jié)點狀態(tài)數(shù)據(jù),節(jié)點狀態(tài)為到達,根據(jù)選擇的處置人信息創(chuàng)建用戶任務數(shù)據(jù),插入表中。

  如果當前任務節(jié)點還有其他處置人未處置,則當前節(jié)點無法結束,此時根據(jù)后續(xù)節(jié)點創(chuàng)建用戶任務數(shù)據(jù),但用戶任務名稱為掛起任務,流程不往前推進,而后續(xù)節(jié)點的處置人信息也保存在用戶任務表中,供選擇后續(xù)節(jié)點處置人時使用。用戶在獲取待辦任務時舍棄掛起任務。

  工作流引擎在運轉(zhuǎn)過程中保存下來的數(shù)據(jù)可實現(xiàn)流程監(jiān)控功能,以不同顏色表示處置結束和未結束的節(jié)點,同時顯示每個節(jié)點的處置結束時間、審批意見等信息,方便用戶掌握流程處置進度。同時為提醒用戶按時完成任務,實現(xiàn)時限管理服務,采用循環(huán)觸發(fā)機制,每隔一段時間對流程任務進行掃描,如發(fā)現(xiàn)超時未完成的任務,則在用戶登錄時進行警告提醒。

  2.4 工作流客戶端

  工作流客戶端主要輔助指揮員實現(xiàn)流程任務的處置,客戶端以插件的方式集成到各系統(tǒng)軟件內(nèi),主要功能包括流程狀態(tài)監(jiān)視、待辦工作顯示、任務處理及流程記錄顯示四個方面。

006.jpg

  工作流客戶端處置流程如圖6所示,處置過程為:

  (1)工作流客戶端接收到流程管控服務推送到本系統(tǒng)的待辦任務提示,顯示本系統(tǒng)需要處理的流程任務,并展現(xiàn)當前流程已辦理任務的處置記錄,從而輔助指揮員進行處置決策。

 ?。?)流程節(jié)點通過與軟件業(yè)務功能模板的綁定,自動實現(xiàn)任務提示到任務處理的跳轉(zhuǎn)。

 ?。?)用戶完成任務處理后,調(diào)用流程處置相關接口提交處置結果數(shù)據(jù)到工作流引擎,進而實現(xiàn)任務數(shù)據(jù)的保存及流程的下一步跳轉(zhuǎn)。

3 結論

  針對當前自然災害日益頻繁的問題,本文提出了一種基于流程化的事件處置方法。首先對常見突發(fā)事件進行處置過程編排,建立流程處置節(jié)點與業(yè)務功能以及指揮所人員的關聯(lián)關系,然后利用告警事件與流程匹配模型,根據(jù)事件類型等信息快速啟動應急預案,使處理過程在指揮部內(nèi)快速流轉(zhuǎn),有效地收集信息,充分利用指揮部內(nèi)各要素系統(tǒng)的處理能力,完成對突發(fā)事件的快速處置,同時提供能統(tǒng)一查詢已處理任務、待辦任務和進行任務處置的客戶端,方便用戶查看處置過程。本文提出的方法能有效地組織多用戶協(xié)同處置突發(fā)事件,充分組織和利用救災資源,快速完成對突發(fā)事件的響應和處置。

  參考文獻

  [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] 李海波,戰(zhàn)德臣,徐曉飛.基于工作流引擎的構件組裝體系結構[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.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉(zhuǎn)載。