activiti搭建(五)BPMN介紹


    轉載請注明源地址:http://www.cnblogs.com/lighten/p/5931207.html 

    對於BPMN我也不是十分清楚,目前也只是因為對於Modeler中不熟悉的組件查詢,來對這部分的內容進行學習,不求一次理解,邊學邊理解吧。所以這一章的介紹會比較簡單,但也足夠了。

    Modeler中的組件列表划分和BPMN的略微有些不同,而且有些內容好像也沒有,最后移植到自己的demo中,還遇到了一些問題,如果可能的話,之后會詳細介紹一下Modeler的構成,大致是官方文檔的第七節Overview以及第十節Process(重要),網上已有人將其歸納總結過了 http://wenku.baidu.com/view/92b1bc06cc17552707220854.html?from=search,可以直接看這個鏈接中的內容。我下面的是對其與官方文檔校對之后的內容,說明這欄沒有翻譯(太耗時)。

    BPMN(Business Process Modeling Notation),業務流程建模與標注,可以用其定義的一系列符號(我稱為組件)組成業務流程圖。接下來分類別來介紹這些組件。官方網站:http://www.bpmn.org/ 里面有BPMN v2.0的介紹和例子,如果有不懂的可以查看一下。http://www.omg.org/spec/BPMN/2.0/ 文檔以及XML校驗文件XSD下載地址。這里面才是詳細介紹,不過都是英文的,我也懶得看了,只是一些基礎應用而已,如果有需要的時候再看。http://www.omg.org/cgi-bin/doc?dtc/10-06-02 這里是官方給的一些例子,教導你如何使用這些組件。

1 流對象(Flow Objects)

    流對象是最為基礎的概念了,十分重要。

1.1 事件(Events)P271

    事件都是用一個圓圈來代表,影響流程的流動,一般有一個原因(trigger)或者一個影響(result)。標准定義了三種事件:開始,中間和結束。從定義和分類名稱上來看也能猜到事件的作用了,控制流程的開始,中間流轉和結束,這些控制可能采取觸發器(trigger)來完成,或者是導致一個結果(結束或拋出)。

(1)開始事件

中文

英文

Trigger

說明

Marker

開始事件 Start Event None   image
條件開始事件 Conditional start event Conditional   image
消息開始事件 Message start event Message   image[16]
多重啟動事件 Multiple start event Multiple   image
多重並行開始事件 Parallel multiple start event Parallel
Multiple
  image
信號開始事件 Signal start event signal   image
定時開始事件 Timer start event Timer   image[12]
(2)中間事件 Intermediate event
    中間事件的使用有兩種方式:
      1.出於兩種目的在一個正常的工作流中放置中間事件:中間事件可以用於“catch”事件觸發器,或者是“throw”事件觸發器。
      2.一個中間事件放置於一個活動(Activity)中間,僅能夠用於“catch”事件觸發器,也就是捕獲一個事件,做相應的處理。
中文 英文 Trigger 說明 Marker
中間事件 None Intermediate Event None   image
消息事件 Message Intermediate Event Message   image
定時事件 Timer Intermediate Event Timer   image
升級事件 Escalation Intermediate Event Escalation   image
補償事件 Compensation Intermediate Event Compensation   image
條件事件 Conditional Intermediate Event Conditional   image
鏈接事件 Link Intermediate Event Link   image
信號事件 Signal Intermediate Event Signal   image
多重事件 Multiple Intermediate Event Multiple   image
並行多重事件 Parallel Multiple Intermediate Event Parallel Multiple   image
    中間事件遠不止這些,剩余的是和activiti boundary相關的,這里就不一一列舉了,具體查看官網文檔P284頁。
(3)結束事件 End Event
    結束事件必須是一個順序流的目標,不能是源頭,可以有多個順序流指向同一個結束流。一個流程可以有多個結束事件,也可以沒有結束事件,但是如果存在開始事件,就必須有至少一個結束事件。如果不使用結束事件,那么所有流對象沒有任何流出序列(順序)流(即不同為一個源序列流)來標志流程過程結束。流程不會結束,直到所有的並行路徑完成了。
中文 英文 Trigger 說明 Marker
結束事件 None End Event None   image
消息結束事件 Message
End Event
Message   image
錯誤結束事件 Error
End Event
Error   image
升級結束事件 Escalation
End Event
Escalation   image
取消結束事件 Cancel
End Event
Cancel   image
補償結束事件 Compensation
End Event
Compensation   image
信號結束事件 Signal
End Event
Signal   image
終止結束事件 Terminate
End Event
Terminate   image
多重結束事件 Multiple
End Event
Multiple   image

1.2 活動(Activities)P181

(1)Tasks 任務 P186

    task在流程流中是一個原子性的活動,當流程中的作業不能被打斷時task被用作一個更細級別的細節。通常,一個終端用戶或者應用其執行操作表現為task的形式。task對象在子流程中具有相同的形狀,都是長方形有着圓角。

    有三種特殊的task圖標:循環、多重實例和補償,一個task可能會有一個或兩個這類圖標。 image

    其它的task:

中文 英文 說明 圖標
服務任務 Service Task   image
發送任務 Send Task   image
接收任務 Receive Task   image
用戶任務 User Task   image
手工任務 Manual Task   image
業務規則任務 Business Rule
Task
  image
腳本任務 Script Task   image

    這些任務中,需要人參與自身完成的有Manual Task和User Task。Manual Task是一個不受任何商業流程引擎管理的任務,User Task是。不受管理意味着流程引擎無法追蹤其任務的開始和完成。舉個例子,這個可能就是一張充滿指令的紙,為電話技術人員幫顧客安裝電話。

(2)Sub-Processes 子流程 P203

    子流程是一個活動的內部細節建模,使用活動、事件和網關以及序列流。子流程是流程內部的一個圖形對象,但是它也能夠被打開來展現更低一層的流程。子流程定義了一個上下文范圍,可用於屬性可見性、事務的范圍,異常處理,事件或者是補償。

    BPMN定義了五種子流程,其中Collapsed Sub-Process可以被另外四種組合取代。另外四種是loop、multi-instance、Compensation、Ad-Hoc。

image

image

    下面是一些用法:

imageimage

(3)Call Activity 調用活動 P213

    調用活動確定使用了全局流程或者全局任務的流程中的一點。調用過程用作為包裝器來調用全局流程或全局任務執行中。激活調用活動將導致稱為全局流程或者全局任務的控制轉移。

imageimage

image

    調用活動必須滿足數據要求,同時調用CallableElement返回數據。這意味着在活動的InputOutputSpecification中需要包含這些元素,並且必須精確的和CallableElement的元素匹配。這些元素包括:DataInputs、DataOutputs、InputSets、OutputSets。

1.3 網關(Gateways)P317

    網關用於控制序列流如何在一個流程中收斂和發散的交互。如果一個流程不需要控制,那么網關就是非必需的。“網關”一詞意味着有一個門機制。允許或不允許通過網關——也就是說,執行到網關的時候,當網關機制被調用,輸入可以被合並在一起,或者輸出分離成若干部分。

中文 英文 說明 圖標
互斥網關 Exclusive Gateway   image
事件網關 Event-Based
Gateway
  image
並行事件網關 Parallel
Event-Based
Gateway
  image
相容網關 Inclusive Gateway   image
復雜網關 Complex Gateway   image
並行網關 Parallel Gateway   image

2 數據(Data)P233

    傳統的流程建模要求能夠模擬物品(物理或信息的)在流程中的創建、操作和執行過程。重要的方面就是能夠捕獲數據的結構,並且查詢或者操作結構。

    BPMN本身並不提供內置的模型來描述數據結構或查詢數據的語言表達式。相反,它規范hooks來允許使用外部定義的數據結構和表達式語言。此外,在同一個模型中,BPMN允許不同的數據結構和表達式語言。這些語言的兼容性和驗證是在規范的范圍之外,變成了工具供應商的職責。

    BPMN使用XML Schema和XPath作為其默認的數據結構和表達式語言,但是供應商可以自由替換他們自己的語言。

中文 英文 說明 圖標
數據對象 Data Object   image
集合型數據對象 collection
DataObject
  image
數據存儲 Data Store   image
輸入數據 Data Input   image
輸出 Data Output   image
    還有一些其它的用法,具體看官方文檔。

3 連接對象(Connecting Objects)P59

image

4 泳道(Swimlanes)

4.1 池子(Pools)

    池是一個容器,與其他的池相隔離。通常用在交互流程中。池主要作用於兩個獨立的實體或者參與者之間的物理划分。各個池中的活動通常是有自身的流程的。因此,順序流通常不會越過多個池,而消息流是可以的(這段話摘自:http://wenku.baidu.com/view/59b540d228ea81c758f5783c.html?from=search

image

image

4.2 泳道(Lanes)

    Pool的子划分,可以垂直或者水平,用來對活動的組織和分類。Lane更加接近我們傳統的泳道的概念。Lane常用來將活動按照角色划分,流程可以在一個pool中跨Lane流轉,但是在一個pool中一般不會這樣(出處與上面相同)。

image

image

5 工件(Artifacts)

5.1 組(Group)

    將一部分元素按邏輯或特定目的進行分組,便於查看和管理,用於解釋和描述目的,不會影響流程的流轉(出處同上)。

image

5.2 文字注釋(Text Annotation)

    提供一些附加性的文本信息給流程圖的閱讀者。

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM