劉利靜?燕鵬飛
摘 要 隨著海事衛星業務范圍日益擴大,為了能夠更好兼容三、四代星及未來的五代星業務,提升整體業務受理的交易量和成功率,縮短業務受理時長,其現有業務支撐系統需要不斷更新。本論文將研究和實現基于工作流的業務受理系統。工作流處理模塊采用開源的Activiti5工作流引擎實現業務受理數據的數據轉換、數據分發及全流程自動處理功能。最終消除半手工工作狀態,保持各系統數據一致的需求。
關鍵詞 Activiti5;工作流;業務受理系統;海事衛星
前言
國際海事衛星(Inmarsat)是第一個可以覆蓋面積為全球范圍的商用移動衛星通信系統[1],現已發展成為海、陸、空范圍內話音、傳真、數據等衛星通信服務。全球有四大關口站,其中北京關口站為其中之一。
目前北京關口站業務子系統已經形成第四代海事衛星[2]網絡體系。四代星業務支撐系統主要是用于支撐電信通信業務的業務受理與業務需求的擴展[3],提供業務開通、變更、注銷,以及對計費數據的賬務處理功能,服務于海事衛星全體用戶及系統管理部門。
業務受理是業務支撐系統重要的組成部分,通過內外需求驅動來優化整個系統運營流程,從而提升資金安全,最終滿足系統業務、財務審計及管理需求等。
由于現有的業務支撐系統實現非模塊化,大量的建設需求及相關信息處于半手工管理階段,使得各交互系統之間的數據存在數據不一致情況。鑒于此,本論文將設計和實現一套基于開源的Activiti5工作流的業務受理系統,通過全自動的流程處理,減少半手工處理帶來的數據差異。
1 工作流工作機制
1.1 工作流技術
生產與辦公自動化領域在發展過程中為了優化管理,將生產/辦公處理過程中具有共性的內容進行抽象,涉及的人員通過角色權限抽象成數據信息,涉及的共性工作通過任務來進行處理,涉及不同人員/部門之間工作的調度等抽象為系統中的執行規則與過程,將生產/辦公處理過程通過軟件技術進行處理,從中孕育出了工作流技術[4],提升整個領域的處理效率。
1993年工作流管理聯盟(Workflow Management Coalition, WMFC)成立,定義工作流為:“工作流是一類能夠完全或者部分自動執行的經營過程,它根據一系列過程規則、文檔、信息或任務能夠在不同的執行者之間進行傳遞與執行”[5]。從上可以看出工作流管理聯盟對于兩者的定義重點在于工作流的執行工作上。
WMFC定義了工作流最基本的概念,其中提出的廣泛應用的術語有:工作流、業務流程、過程定義、過程定義工具、活動、過程/活動實例、工作流管理系統、工作流引擎、工作項、工作列表等,工作流管理聯盟定義的工作流基本概念間關系圖,如圖1所示。
1.2 業務流程建模標記語言(BPMN2.0)
(1)BPMN2.0
WMFC的成立在一定程度上促使了整個業務流程管理市場繁榮發展,業務流程管理基本內容是將現實生產活動按照相應的管理過程進行抽象,通過統一管理,使流程涉及的人員能夠在恰當的時間點完成各自的任務且任務內容準確無誤,最終實現減少流程冗余及處理流程優化的目標。
業務流程建模標注語言(Business Process Modeling Notation, BPMN)是業務流程設計與流程實現之間搭建的一條標準化的橋梁,該語言使用圖示的形式簡單清晰的表達生產活動中的業務流程信息,這種圖示與常見的業務流程圖圖示相似[6]。
對象管理組織(Object Management Group,OMG)在2011年發布了BPMN2.0規范。2.0版本引用了XML語言描述,使用XML語言定義流程節點的執行先后順序,完成了業務流程可執行化的描述。因為BPMN2.0的出現,業務流程管理的流程建模與模型的序列化執行可以使用同一種規范化定義標準。
(2)BPMN2.0圖形標記
BPMN2.0定義了用于業務流程處理主要圖形標記,圖形內容包含有五個基本元素,分別是將各個分開的業務過程/任務/活動連接在一起的連接對象;各節點直接進行相互傳遞的數據信息;用于分辨多部門或者多系統或者多用戶間各自獨立的流程定義的泳道;為各個活動提供上下文途徑的擴展符號——工件(Artifacts)[6];標識基本工作流處理事件或者任務的工作流對象。2.0版本定義了流程的開始、結束、流程過程判斷等,其包含了事件(Events)、活動節點(Activities)及網關(Gateways)三類基本要素。
①事件
事件一般用圓圈表示,可以用于表示業務流程活動的開始、結束,當出現邊界判斷或者定時判斷時候,也可以使用事件進行定義。在實際使用過程中存在多個業務系統之間整合,此時也可以通過使用事件增強整個系統之間交互控制。BPMN2.0中定義的事件有:開始事件(Start Events)、中間事件(Intermediate Events)、結束事件(End Events)等。
②活動
工作流建模中將存在從啟動到結束有一定過程狀態的內容定義為活動,活動一般用圓角型圖示進行表示,常見的活動的有任務(Task)、流向(Sequence Flow)及子流程(Sub-Process)等。
任務:可以用于表示工作流執行活動內容,任務與其他類型節點或者其他任務之間的連接通過順序流來實現。
順序流:是帶箭頭的有向連接線,在進行順序定義的時候同時有源頭ID定義及目的ID定義。工作流建模中涉及的所有元素之間的連接均通過順序流連接。
子流程:主要功能是實現流程的繼承。當出現多重復雜流程時,可以通過創建不同級別的流程進行實現。
③網關
工作流建模過程中存在流程判斷與流程并行執行情況,這種情況可以通過網關來實現。BPMN2.0中定義的網關有:并行網關(Parallel Gateway)、排他型網關(Exclusive Gateway)、包容型網關(Inclusive Gateway)。
并行網關:是經過該網關的活動可以同時被執行,該網關所有輸入的順序流對應的源活動節點均執行完畢后,才能繼續執行網關輸出流連接的活動節點。
排他型網關:是經過該網關可能有多條順序流輸出,但是最終只有一條滿足參數判斷條件的輸出流被調用執行。
包容型網關:被用來進行條件性拆分或者歸并順序流。
1.3 Activiti5引擎
(1)Activiti5
Activiti5以BPMN2.0標準化語言為基礎,可以通過標準化的建模語言與可執行化的描述完成相應工作流的建立與執行,使應用該開源工作流引擎的企業能夠處理形式多樣的問題。Activiti5最終的目標是為了創建更靈活開放的業務流程管理處理方案[7]。
Activiti5擁有活躍的生命力與潛在的可能性,原因在于在底層開發框架許可上選擇的是Apache,這樣使得整個架構可以開放給全世界,而不僅僅是將歸屬權限制在某個公司或者個人。
(2)Activiti5與BPMN2.0
BPMN2.0定義了標準的建模圖示與可序列化執行的描述信息,Activiti5在設計與研發中嚴格按照BPMN2.0標準執行,實現了其中大部分的圖示定義與可序列化執行語義的描述。Activiti5是開源的業務流程管理軟件和工作流系統引擎,同時通過自定義擴展元素與屬性,在實際生產過程自動化建設過程中,可以實現更多的業務功能。這些擴展的元素與屬性同樣支持BPMN2.0標準規范。
Activiti5通過BpmnParseHandler類進行BPMN2.0 XML流程定義文件的解析。其解析過程為從頂部節點開始解析,逐級深入,從定義的屬性、導入、分項定義、消息、接口、錯誤信息到過程定義,最后進行可視化定義的讀取與分析。
除了以上內容外,Activiti5還引入了監聽機制,包含:BPMN解析監聽、任務監聽、執行監聽、事務監聽。
2 工作流處理模塊設計與實現
2.1 工作流處理模塊需求分析
海事衛星業務受理系統需要將用戶提交的業務受理信息,進行數據解析處理并發送到不同系統中。與業務受理系統進行交互的有Inmarsat系統、Billing系統、賬管系統、流控系統及870系統。
各交互系統需要的數據類型、數據格式相差很大,對受理數據進行數據解析轉換處理在工作流處理模塊進行操作。各平臺數據處理的時候根據其開通的關鍵性及后續處理便捷性進行排序。
現有系統目前對于各平臺數據處理部分處于半手工狀態,因而為了能夠實現數據處理的及時性、準確性,引用Activiti開源工作流進行配置處理。Inmarsat系統通過報文文件方式進行數據訂購/變更/退訂操作,因而工作流流程處理過程中采用異步的方式實現。當某個平臺處理失敗的時候,需要考慮錯單、異常訂單處理機制。
因而工作流處理模塊需要實現的內容如下:
(1)Activiti工作流的啟動、查詢、停止等操作控制與管理。
(2)需要解析訂單信息,將訂單信息轉化為各個外圍平臺識別的報文信息。
(3)出現異常情況的錯單處理,訂單重發或者訂單撤單操作等。
(4)所有平臺均處理完成后,整個工作流數據的歸檔操作。
2.2 Activiti5在海事衛星受理系統中的應用實現
工作流管理模塊主要實現工作流的啟動、查詢與終止操作。訂單模塊創建訂單完成后,調用工作流處理模塊進行訂單的派發操作。初始化時調用Activiti啟動工作流,每個訂單生成唯一的流程實例ID(PROC_INST_ID),每個訂單發送到不同平臺,生成不同的TASK_ID。當訂單派發處理完成后,調用Activiti終止工作流,管理工作流的生命周期。Activiti流程圖如圖6所示。
圖6 Activiti流程圖
工作流管理模塊實現了對工作流流程的控制與分發,整個流程設計自動化完成處理,減少了人工操作及各系統之間的數據差異。系統中實現的工作流主要使用節點有開始事件、順序流、JAVA服務任務、用戶任務、排他型網關及結束事件。每個節點實現的任務不同。針對Acitiviti流程圖中重要節點定義圖形符號、類型及功能描述如表1所示。
(1)JAVA服務任務:工單預處理節點的XML定義如下。
節點參數定義:
id參數定義為 servicetask_orderPreprocessor;name名稱為工單預處理(判斷是否發送inmarsat);
activiti:expression是該節點調用的表達式,Expression表達式可以用于Java Service Tasks、Task Listeners和Condition Sequence Flows中。
activiti:resultVariableName表示該節點執行完畢后,執行結果賦值的參數名稱,如節點正常結束,節點最終輸出結果為param=Continue(param參數值用于順序流判定)。
節點功能:
該節點實現的功能為先判斷是否發送Inmarsat平臺,如果發送直接調用發送Inmarsat任務,不發送則調用通知訂單處理模塊進行轉實例操作。
(2)用戶任務:發送Inmarsat節點的XML定義如下。
節點參數定義:
id定義為usertask_inmarsat。name名稱定義為發送inmarsat。
activiti:async參數定義服務處理是異步操作;當設置async=”true”的時候,流程引擎采用JobExecutor來異步執行,引擎首先會將該任務實例化一條job記錄,插入act_ru_job表中,然后JobExecutor掃描該表并加鎖執行該job。
extensionElements:User Task的擴展屬性定義,任務監控(Task Listener)定義是用戶任務的擴展屬性。
activiti:taskListener:使用任務監聽器方式實現該節點功能,通過方法表達式完成類調用,在此該節點功能具體的實現類方法為interOrderAllBusiServiceImpl.orderSendInmarsat(task)(task參數保存當前任務的相關信息)。
節點功能:
對訂單數據進行解析并轉化成Inmarsat平臺可以識別的文件,并增加任務監控,出現異常的時候捕獲異常,并進行相應的異常處理。
(3)排他型網關:網關節點的XML定義如下。
節點參數定義:
id定義為exclusivegateway1;name名稱定義為Exclusive Gateway;
節點功能:
排他型網關連接一個輸入流,三個輸出流,三個輸出流分別為:判斷參數值是Continue調用通知受理轉實例分支;判斷參數值是Repeat調用發送Inmarsat節點;判斷參數值是Exception調用錯單處理節點。
(4)順序流:連接排他型網關exclusivegateway1有三個輸出順序流。
節點參數定義(以flow90節點為例):
id定義為flow90。
sourceRef定義flow90順序流的源頭節點是id為exclusivegateway1的排他型網關。
targetRef定義flow90順序流的目標節點是id為servicetask_accept的服務任務。
conditionExpression定義順序流flow90分支條件判斷表達式,使用單變量的boolean表達式進行判斷處理,順序流flow90分支的條件判斷定義為:${param==Continue},增加CDATA標記是格式化字符數據。
節點功能:
flow90的源頭節點是網關,目標節點是服務任務通知訂單處理模塊進行轉實例操作節點;flow91的源頭節點是網關,目標節點是發送數據到Inmarsat系統節點;flow72的源頭節點是網關,目標節點是錯單處理節點。
輸出順序流的定義如下所示:
sourceRef=”exclusivegateway1” targetRef=”servicetask_accept”>
sourceRef=”exclusivegateway1” targetRef=”usertask_inmarsat”>
sourceRef=”exclusivegateway1” targetRef=”usertask_error_1”>
3 結束語
本文研究和實現了基于工作流的業務受理系統,通過引用開源的Activiti5工作流引擎,實現了海事衛星業務受理系訂單的全自動處理功能,解決了之前應用系統的半手工訂單處理問題,最終避免了各系統之間數據不一致情況。而與五代星業務融合是后續事衛星業務范圍日益擴大,五代星業務也在慢慢成熟,需要推廣到市場中,如何實現與五代星業務融合,也將是非常有意義的工作。
參考文獻
[1] 王震東,趙興生.國際海事衛星組織的通信業務[J].現代通信,1997,(8):28-31.
[2] 鄒栫潔.第四代國際海事衛星技術的特點研究[J].中國海事,2012,(11):53-56.
[3] 莊少燉.基于Spring的輕量級Web框架研究與實現[D].成都:電子科技大學,2009.
[4] 于萬鈞.工作流管理技術研究[D].吉林:吉林大學,2004.
[5] Palmer N.Workflow Management Coalition[M].New York:Springer US,2009:179.
[6] Rosing M V,White S,Cummins F,et al.Business Process Model and Notation—BPMN[J].Complete Business Process Handbook,2015,(95):429-453.
[7] Tijs Rademakers,Ron van Liempd.Activiti in Action[M].New York:Manning Publications,2007:51-52.
作者簡介
劉利靜(1987-),女,河南新鄉人,中國交通通信信息中心,研究方向:交通信息化。
燕鵬飛(1981-),男,內蒙古烏蘭察布人,中國交通通信信息中心,研究方向:交通信息化。