天天看點

自主技術流程執行引擎,能夠直接執行BPMN模型,并允許安全的修改

作者:三胖有話講

文丨三胖有話講

編輯丨三胖有話講

前言

企業過程是所有企業的基本組成部分,作為業務流程管理部署的組成部分,模型、語言和執行引擎的使用現在已經司空見慣。從定義上講,這些過程以組織的知識、結構和活動來描述一個企業,并且通常對于實作組織的競争優勢至關重要。

是以,設計、執行以及對系統或環境中的變化做出響應都對于建立和維護高效的業務營運至關重要。

是以,部署高品質和有效的業務流程管理系統對于許多現代企業來說至關重要。然而,目前對靈活工作方法的趨勢,及時的組織反應時間,分布式組織内群組織間的合作,以及不斷變化的市場,正在創造新的和複雜的業務環境。

自主技術流程執行引擎,能夠直接執行BPMN模型,并允許安全的修改

這帶來了增加的複雜性,進一步促使企業的業務流程需要實時動态變化;越來越動态的環境要求關鍵業務流程在設計和行為上都更加靈活和自動化。

然而,許多公司現在發現,對傳統BPMS的投資往往導緻投資回報率較低,因為常見的問題是無法建立對業務人員有意義,并且能夠提供實時流程靈活性和快速适應變化的業務流程模型,以有效應對許多現代企業所特有的流動業務條件。

正如我們與制造領域的客戶合作時發現的那樣,通常需要實時地改變執行過程結構,而不幹擾運作中的流程執行個體的完整性。如果BPMS沒有内在地支援以這種方式進行變更,結果可能是可靠性和可見性的降低,特别是從管理的角度來看。

自主技術流程執行引擎,能夠直接執行BPMN模型,并允許安全的修改

研究人員的觀察是,目前許多關于BPM的流程化方法太過僵化,對變更的響應不夠靈活,尤其在自動化方面。

事實上,許多業務流程管理系統解決方案僅提供設計時模組化,既不支援在運作時确定流程結構,也不支援直接執行業界标準的業務流程模組化符号流程模型,而無需先将BPMN轉換為中介格式,以便準備執行。

實際上,這些問題意味着流程模型可能在設計時因為必須編碼所有可能的選項而變得過于複雜和脆弱,因為一旦進入執行階段,無法動态更改。

自主技術流程執行引擎,能夠直接執行BPMN模型,并允許安全的修改

今天咱們講的是替代方法是采用目标的概念,這在其他BPMS供應商和從業者中已被認可,是一種本質上強大且直覺的業務流程模組化方式。

是以,我們建議對标準BPMN進行擴充,以支援目标和計劃的概念,并引入一個基于自主技術的經過行業驗證的流程執行引擎,能夠直接執行面向目标的BPMN模型,并最重要的是允許安全地實時修改模型和執行過程執行個體。

以目标為導向的方法的起點是對高層業務管理的觀察,其特點是配置設定實作目标和決策點。這在營運層面也是如此,但随着通過預先建立或臨時制定的流程引入實作目标和決策點的具體知識,抽象程度會降低。

自主技術流程執行引擎,能夠直接執行BPMN模型,并允許安全的修改

對于人類來說,設定目标、将目标分解為子目标,并定義或重用計劃以實作這些目标是很自然的。這也适用于例行跟蹤計劃執行以及在問題出現或更好地在問題出現之前進行及時和适當的處理。

另一方面,計算機更容易通過提供固定的程式進行訓示。這就是為什麼許多BPM解決方案傾向于過程自動化,其中明确指定的流程規範描述了在所有設想情況下要采取的确切操作。這導緻了執行高效但表現力和響應能力有限的流程。

為了在不犧牲靈活性的前提下保持有效性,我們認為計劃和目标的概念應在BPM解決方案中占據核心地位。是以,我們的方法使用了目标導向的業務流程規範,清晰地将要實作的目标與用于實作或維持這些目标的一組任務計劃分開。

自主技術流程執行引擎,能夠直接執行BPMN模型,并允許安全的修改

這導緻了建立能夠處理更高複雜性和變化的BPM部署,使用直接可執行的面向目标的流程模型,其結構可以編碼多個自由度,支援實時決策。

目标導向提供了一種強大、直覺的模組化和執行過程的方法,适用于業務經理和流程分析員。流程被描述為目标層次結構,每個葉子目标與一個或多個計劃相關聯,描述了實作目标所需執行的整個流程的一部分。

因為計劃可以在運作時選擇,是以流程結構内建靈活性,允許在不需要停止或重新啟動整個過程的情況下安全地實時修改工作流程。

自主技術流程執行引擎,能夠直接執行BPMN模型,并允許安全的修改

“自主式流程執行”通過建立回報回路,不僅在流程工程師和流程模型之間建立回報,還在受到流程任務影響的底層系統之間建立回報。

本章的目的是介紹我們的方法和“Living Systems Autonomic Business Process Management套件”。

為了說明我們的方法,我們描述了一個目前的大規模業務案例,其中戴姆勒公司正在使用這項技術來管理他們整個“Engineering Change Management”和采購流程目錄。

自主技術流程執行引擎,能夠直接執行BPMN模型,并允許安全的修改

ECM方面涵蓋了所有産品(的變更描述、分析、決策和執行的流程文檔和執行。ECM對于戴姆勒來說是一項關鍵的業務操作。

如果能有效處理,将獲得顯著的成本降低和市場響應時間的好處,但它也受到動态和不可預測的環境影響,其中許多不在企業的直接和完全控制之下。

Goal-Oriented Business Process Modelling Notation (GO-BPMN)是由Whitestein Technologies建立的用于指定目标導向流程模型的可視化模組化語言。

該語言是對标準BPMN的增強,支援顯式模組化目标、計劃及其之間的關系,靈感來自Agent Modeling Language 中定義的心理模組化方法。

自主技術流程執行引擎,能夠直接執行BPMN模型,并允許安全的修改

通過将業務目标的聲明性模組化與業務流程的過程化規範相結合,GO-BPMN提供了一種靈活的模組化流程的方式,可直接應用于設計具有動态變化支援的靈活業務流程。

在GO-BPMN中,一個流程模型由目标和計劃組成,按照層次結構進行組織,計劃包含由流程引擎執行的BPMN工作流程。對于可由人執行的活動,提供與組織模型的映射。

在特定流程模型執行個體的運作時,哪些目标将被激活,哪些計劃将被選擇并執行,取決于與流程目标和計劃相關聯的上下文條件的值。

自主技術流程執行引擎,能夠直接執行BPMN模型,并允許安全的修改

目标概念

在GO-BPMN中“目标”這個術語的常見了解是指努力的結果或達成的成就。GO-BPMN中的目标概念基本上與此相同,即目标定義了流程在執行過程中必須達到或保持的狀态。

GO-BPMN定義了兩種類型的目标,即“實作目标”和“保持目标”。實作目标代表流程在執行過程中必須達到的明确裡程碑、目标、願望等,而保持目标代表保持特定條件持續存在。

目标可以組成層次結構,隻有當所有關聯的子目标都成功時,才會認為目标達成。

自主技術流程執行引擎,能夠直接執行BPMN模型,并允許安全的修改

在GO-BPMN中模組化的業務流程可以看作是一組必須實作或保持的目标層次結構。隻有目标層次結構中的葉子目标與一個或多個計劃相連,這些計劃包含朝着實作或保持目标目标執行的活動。

目标具有業務條件或規則,用于控制它們的執行,進而控制整個流程的執行。例如,實作目标在預條件方面進行定義,即必須将其評估為true,然後實作目标才能變為活動狀态。

當GO-BPMN模型被執行時,被模組化的目标變得具有狀态,并且LS/ABPM過程導航引擎會努力實作它們。實作目标的可能狀态包括:未激活、準備就緒、停用、運作或失敗。保持目标的可能狀态包括:未激活、準備就緒、運作或停用。

自主技術流程執行引擎,能夠直接執行BPMN模型,并允許安全的修改

計劃概念

GO-BPMN中的計劃包含了實作或保持目标所需的功能活動的BPMN編碼規範。在GO-BPMN中,功能活動稱為任務,可以是人工執行或機器執行的。

LS/ABPM過程導航引擎會自動執行機器可執行的任務,并向流程參與者釋出待辦事項,以便處理人工可執行的任務。最終使用者可以通過前端浏覽他們的待辦事項清單并執行所需的任務。

計劃體使用BPMN進行編碼,包括所有标準元素,例如流程、控制網關、子流程、任務、BPMN啟動事件、結束事件、中間事件、事務等。

自主技術流程執行引擎,能夠直接執行BPMN模型,并允許安全的修改

GO-BPMN表達式語言

LS/ABPM使用表達式語言來編寫控制GO-BPMN過程執行流的業務條件、觸發器、任務參數、條件流等。GO-BPMN表達式語言是一種強類型語言,它提供兩種資料類型:内置類型和使用者定義類型。

内置類型包括Object、Null、Boolean、Decimal、Integer、Date、String、List、Set、Map、Reference和Closure。使用者定義類型是記錄類型,即通過笛卡爾積操作組合的類型,産生新的類型。

例如,業務對象,用于儲存應用程式資料,可以表示為記錄類型。記錄類型還支援子類型化,作為在類型上的部分順序,用于表示一個類型是否可替換另一個類型。

自主技術流程執行引擎,能夠直接執行BPMN模型,并允許安全的修改

該語言還支援變量的定義,即在編譯時聲明的具有類型的存儲槽。在GO-BPMN中,變量可以具有不同的作用域,即不同的可見性。可能的作用域包括GO-BPMN子產品、計劃或BPMN子流程。

還可以定義特定于應用程式的函數。函數由聲明和實作組成。函數體可以用Java、Groovy或表達式語言本身編寫。

在LS/ABPM過程模型中,可以使用辨別符引用其他命名元素。例如,程序模型名稱、目标、計劃、組織結構元素會自動反映為适當名稱的辨別符。其他命名元素包括子產品名稱、子產品導入、子產品參數、本地化實體等。

自主技術流程執行引擎,能夠直接執行BPMN模型,并允許安全的修改

類型化變量、函數和命名元素可以與語言運算符結合使用來建構表達式。在GO-BPMN中,所有表達式都有一個預期的類型。

例如,用于定義目标和計劃條件的表達式預期是Boolean類型,Catch Signal Intermediate Event篩選器預期是Closure類型{Object:Boolean}等。

LS/ABPM過程導航引擎是一個應用程式,開發用于LS/TS中間件運作時,由一組以目标為導向的代理組成,作為過程執行個體控制器。

自主技術流程執行引擎,能夠直接執行BPMN模型,并允許安全的修改

每個代理控制器都配置設定給一個過程執行個體,負責在目标和計劃的組合中協調過程代數和任務結構,并考慮目标和計劃的前提條件。

當使用過程模組化工具建立一個過程模型時,它直接加載到新的過程控制器代理中,其中過程目标被映射到目标導向執行引擎中的邏輯目标。

然後,控制器通過啟動整個目标層次結構并等待在系統環境中感覺到适當觸發器來激活目标并推進過程執行。

自主技術流程執行引擎,能夠直接執行BPMN模型,并允許安全的修改

每個過程控制器都處于自己的自主回報控制循環的核心,它利用對受過程執行個體影響的系統1的觀察來影響與相應過程執行個體相關的決策,例如,應該激活哪些目标和選擇哪些計劃來滿足目标要求。

這種自主要制使得過程執行個體能夠自配置和自優化,實作過程的靈活性和彈性。

通過在運作時導航目标-計劃層次結構,實作運作時執行靈活性,例如,在這個示例中,子目标B可以由三個可用的計劃之一滿足,而根據特定上下文參數的狀态選擇第三個計劃。

自主技術流程執行引擎,能夠直接執行BPMN模型,并允許安全的修改

通過這種方式,每個目标被激活時,過程的執行路徑被确定,并且在多個計劃可用于滿足任何給定目标時,上下文變量斷言決策标準。

總結

在執行的過程執行個體之間的互動是通過負責這些執行個體的過程控制器之間的信号通信來管理的。如果執行個體由同一個控制器管理,則互動是局部的,如果不是,則是遠端的。

互動可以是不同過程的目标和計劃之間的簡單綁定,也可以是更複雜的關系,協調多個控制器的活動。

自主技術流程執行引擎,能夠直接執行BPMN模型,并允許安全的修改

當多個過程執行個體進行互動時,會仔細監控和控制自主回報循環的影響,以確定所有效果都具有可追溯的因果關系,并且沒有意外的副作用。

繼續閱讀