<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    paulwong

    JBPM4中常用概念總結

    1. 流程定義(Process Definition)
       流程定義是記錄在xml文件中的對流程的描述,它包含唯一的流程開始節點和多個流程功能節點,每個節點之間使用transition進行連接。
        Process Definition使用id, key和version進行標識,jBPM中可能包含多個key值相同的Process Definition,key值相同的Process Definition會擁有不同的version值,而id是使用key-version的形式用來表示唯一的Process Definition的。
       jBPM中使用RepositoryService來控制流程定義的發布,瀏覽,刪除等操作。

    2. 流程實例(Process Instance)
       以流程定義為藍本生成的流程實例,在jBPM屬于Execution的一種。
       當我們執行start時,會根據流程定義啟動一個新的流程實例,然后它會根據流程定義里的節點運行,在遇到state或task時停頓,等待外部用戶調用signal,最后會執行到end節點,結束整個流程。
       jBPM中只允許有一個start節點,所以每個流程都是單一入口的,jBPM4中可以允許有多個end節點,所以我們可以在任意位置結束流程。
       jBPM中使用ExecutionService來控制流程實例的啟動,瀏覽,執行,刪除等操作

    3. state節點
       狀態結點是一個典型的等待狀態。同任務結點不同的是,狀態結點不會向任務列表添加任務實例。當業務進程需要等待外部系統的干預時,這種結點是很有用的。(需要外部系統干預,但又不是讓人去干預)假設如下情況:在進入該結點時,通過node-enter事件向外部系統發送一個消息,然后結點進入等待狀態;當外部系統完成處理,并回送一個消息,這將導致觸發一個signal()方法的運行,該方法重新激活正在等待的流程繼續下行
       jBPM中使用ExecutionService來控制對state的signal操作。

    4. task節點
       任務結點(task-node)任務結點是代表由人介入的一個或多個任務。因此當流程運行到一個任務結點時,會生成“任務實例對象(task instances)”,并添加到參與人的任務列表中,之后結點會處于等待狀態,直到參與人完成他們的任務,并激活流程繼續向下執行。
       task節點可以使用assignee, swimelane等方式為任務定義分配到某個人或者某個組,對應的用戶可以執行completeTask()結束任務,并控制任務結束后流程實例向哪個方向前進。
       jBPM中使用TaskService控制task的各項操作。

    5. Identity身份驗證
       jBPM中的身份驗證分為User, Group和Membership三部分,用戶表示登陸用戶,Group表示用戶組,用戶和用戶組之間的關聯關系保存在Membership中。User和Group與Task中的assignee和swimelane是息息相關的。
       
    6.事件
       Event反映的是流程執行中的各個時刻。在流程執行中 JBPM引擎會在計算下一個狀態的時候觸發各種事件。一個事件通常和流程定義中的一個元素相關聯,比如流程定義本身,節點或者轉移。大部分的元素能夠觸發不同類型的事件,比如一個節點可以觸發節點進入事件,節點離開事件。事件其實是和動作連接在一起的。每個事件維護一個動作列表。當JBPM引擎觸發一個事件的時候,該事件維護的動作列表中的動作將被執行。

    JBPM中事件類型是寫死在事件類中的,共有16種:
    EVENTTYPE_TRANSITION = "transition"; // 轉移
    EVENTTYPE_BEFORE_SIGNAL = "before-signal"; // 發信號前
    EVENTTYPE_AFTER_SIGNAL = "after-signal"; // 發信號后
    EVENTTYPE_PROCESS_START = "process-start"; // 處理開始狀態
    EVENTTYPE_PROCESS_END = "process-end"; // 處理結束狀態
    EVENTTYPE_NODE_ENTER = "node-enter"; // 進入節點
    EVENTTYPE_NODE_LEAVE = "node-leave"; // 離開節點
    EVENTTYPE_SUPERSTATE_ENTER = "superstate-enter"; // 進入超級狀態
    EVENTTYPE_SUPERSTATE_LEAVE = "superstate-leave"; // 離開超級狀態
    EVENTTYPE_SUBPROCESS_CREATED = "subprocess-created"; // 子流程創建
    EVENTTYPE_SUBPROCESS_END = "subprocess-end"; // 子流程結束
    EVENTTYPE_TASK_CREATE = "task-create"; // 任務創建
    EVENTTYPE_TASK_ASSIGN = "task-assign"; // 任務分派
    EVENTTYPE_TASK_START = "task-start"; // 任務啟動
    EVENTTYPE_TASK_END = "task-end"; // 任務結束
    EVENTTYPE_TIMER = "timer"; // 定時器

    7.transition
       關聯兩個節點,用于表示節點的走向

    8.常用類說明
       ProcessEngine:它是整個jBPM4的入口,并且是單例模式。通過它可以獲取processEngine,并藉此獲得工作流引擎所提供的各種服務
        
       RepositoryService:控制流程定義的發布,瀏覽,刪除等操作
        
       ExecutionService:控制流程實例的啟動,瀏覽,執行,刪除等操作

       IdentityService:控制身份的各項操作

    *********************************************************************************************

    對jBPM4.3數據庫的幾張表簡單介紹


    JBPM4_DEPLOYMENT   流程定義表 
    JBPM4_DEPLOYPROP 流程定義屬性表

    JBPM4_EXECUTION  流程實例表 
    JBPM4_HIST_ACTINST 流程活動(節點)實例表

    JBPM4_HIST_DETAIL  流程歷史詳細表

    JBPM4_HIST_PROCINST 流程實例歷史表

    JBPM4_HIST_TASK  流程任務實例歷史表 
    JBPM4_HIST_VAR  流程變量(上下文)歷史表

    JBPM4_ID_GROUP 角色表 
    JBPM4_ID_MEMBERSHIP 用戶角色表 
    JBPM4_ID_USER  用戶表 
    JBPM4_JOB  定時表 
    JBPM4_LOB  存儲表
     
    JBPM4_PARTICIPATION 參與者表 
    JBPM4_SWIMLANE  泳道表 
    JBPM4_TASK 任務表 
    JBPM4_VARIABLE 上下文表

    紅色的表為經常使用的表.這里不使用JBPM自己的權限角色定義.

    發布一個流程deploy后
    jbpm4_deployment新增一條記錄
    jbpm4_deployprop新增三條記錄
    jbpm4_lob新增一條記錄

    開始一個流程startProcessInstanceByKey后
    jbpm4_execution新增一條記錄
    jbpm4_hist_actinst新增一條記錄
    jbpm4_hist_procinst新增一條記錄
    jbpm4_hist_task新增一條記錄
    jbpm4_task新增一條記錄

    流程定義相關的布署信息就存儲在(1) JBPM4_DEPLOYMENT、(2) JBPM4_DEPLOYPROP 及(3) JBPM4_LOB 中。上傳一個包含png和jpdl.xml的zip包后,JBPM4_DEPLOYMENT多一條記錄 JBPM4_DEPLOYPROP多三條, JBPM4_LOB多兩條。 
    (4)J B PM4_HIST_PROCINST 與(5) JBPM4_HIST_ACTINST 分別存放的是Process Instance、Activity Instance的歷史記錄。
    (6)JBPM4_EXECUTION 主要是存放JBPM4的執行信息,Execution機制代替了JBPM3的Token機制(詳細參閱JBPM4的PVM機制,過段時間我也會進一步分析)。
    (7)JBPM4_TASK 存放需要人來完成的Activities,需要人來參與完成的Activity 被稱為Task。
    (8)JBPM4_PARTICIPATION 存放Participation的信息,Participation的種類有Candidate、Client、Owner、 Replaced Assignee和Viewer。而具體的Participation既可以是單一用戶,也可以是用戶組。
    (9)JBPM4_SWIMLANE。 Swim Lane是一種Runtime Process Role。通過Swim Lane,多個Task可以一次分配到同一Actor身上。
    (10) JBPM4 _VARIABLE 存的是進行時的臨時變量。
    (11) JBPM4_HIST_DETAIL 保存Variable的變更記錄。 
    (12)JBPM4_HIST_VAR 保存歷史的變量 。 
    (13) JBPM4_HIST_TASK Task的歷史信息。 
    (14)JBPM4_ID_GROUP (15)JBPM_ID_MEMBERSHIP (16)JBPM4_ID_USER 這三張表很常見了,基本的權限控制,關于用戶認證方面建議還是自己開發一套,JBPM4的功能太簡單了,使用中有很多需要難以滿足。 
    (17) JBPM4_JOB 存放的是Timer的定義。

    posted on 2011-04-16 12:55 paulwong 閱讀(1020) 評論(1)  編輯  收藏 所屬分類: JBPM

    Feedback

    # re: JBPM4中常用概念總結 2011-12-28 10:38 yknife

    都是一些需要自己整理的東西,樓主幫忙整理好了,LZ好人啊  回復  更多評論   


    主站蜘蛛池模板: 四虎在线播放免费永久视频 | 久久精品免费一区二区| 色偷偷女男人的天堂亚洲网| 日本高清免费aaaaa大片视频| 一级一片免费视频播放| 亚洲熟妇av一区二区三区下载| 永久免费视频v片www| 国产免费爽爽视频在线观看 | 亚洲成av人片不卡无码久久| 久久免费国产视频| 久久精品亚洲日本波多野结衣 | 亚洲aⅴ天堂av天堂无码麻豆 | 又大又硬又粗又黄的视频免费看 | 免费视频专区一国产盗摄| 日韩少妇内射免费播放| 亚洲麻豆精品果冻传媒| 日韩亚洲精品福利| 亚色九九九全国免费视频| 国产男女爽爽爽免费视频| 亚洲综合一区国产精品| 亚洲AV无码一区二区二三区软件| 波多野结衣久久高清免费| 57pao国产成视频免费播放| 国产伦精品一区二区免费| 亚洲熟妇无码一区二区三区导航| 精品国产_亚洲人成在线高清| 国产精品色午夜免费视频| 182tv免费视视频线路一二三| 国产三级在线免费观看| 色婷婷六月亚洲综合香蕉| 亚洲成人高清在线观看| 亚洲精品无码久久久久sm| 亚洲精品麻豆av| 日本一道一区二区免费看 | 精选影视免费在线 | 亚洲AⅤ男人的天堂在线观看 | 久久亚洲精品无码av| 亚洲国产熟亚洲女视频| 亚洲特级aaaaaa毛片| 婷婷精品国产亚洲AV麻豆不片 | 爱丫爱丫影院在线观看免费|