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

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

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

    posts - 26,comments - 77,trackbacks - 0
         摘要: 隨著jBPM4.0GA版本的發布,使用jBPM4的人也開始多起來,雖然我們已經翻譯了jBPM-4的用戶手冊和開發指南,但jBPM4的官方文檔內容還是不夠全面,雖然理論知識比較豐富,但是缺少實踐教授內容。我們推出的《每天一課,jBPM4》是jBPM4第一份系列視頻教程,手把手教您學會jBPM4,并將jBPM4應用在工作流管理平臺中,同時我們還會提供視頻課程里的源代碼。  閱讀全文
    posted @ 2009-07-29 18:04 卡宴 閱讀(3143) | 評論 (7)編輯 收藏
         摘要: 這2天我們忙著做了下jBPM4和Spring Security的專題頁面,提供了不少關于jBPM4和Spring Security的技術資料和示例。  閱讀全文
    posted @ 2009-07-28 14:02 卡宴 閱讀(1697) | 評論 (4)編輯 收藏
         摘要: 在oa里我們實現一套權限管理,包括資源管理、角色管理、用戶管理、菜單管理以及組織機構管理,整套權限采用的是RBAC的模型。下面給大家分享下效果,同時也提供源碼下載,希望大家多提建議。  閱讀全文
    posted @ 2009-07-22 11:56 卡宴 閱讀(2536) | 評論 (6)編輯 收藏
         摘要: 鑒于各位都非常期待PDF的版本,我便把用戶指南提供給大家下載,希望大家能夠多多反饋,這樣才能提高我們的翻譯質量,對大家更是有好處。開發指南的內容更豐富些,如果有感興趣幫忙校稿的朋友可以聯系我們O(∩_∩)O哈哈~  閱讀全文
    posted @ 2009-07-15 01:14 卡宴 閱讀(1949) | 評論 (10)編輯 收藏

    開發文檔更新到了jBPM4的GA版本,這次開發文檔變更非常大,添加了好幾章,并且原來的部分章節也改了名字,具體細節可以查看修改日志。不過架構那章更新的并不多,和jBPM4實際的架構還有些區別,所以這部分大家最好看jBPM4的源碼。(用戶指南的翻譯見上一篇博客)

    1. 簡介
    1.1. 目標讀者
    1.2. 概述
    1.3. 源代碼和WIKI
    1.4. Maven倉庫
    1.5. 依賴庫
    2. 孵化器
    2.1. timer定時器
    2.1.1. 持續時間表達式
    2.1.2. 工作日歷
    2.1.3. 定時器流向
    2.1.4. 定時器事件
    2.1.5. 定時器工作時間
    2.1.6. 定時器重復
    2.2. group
    2.2.1. 簡單group
    2.2.2. group 定時器
    2.2.3. group 多入口
    2.2.4. group 同步
    2.2.5. group 秘密
    2.3. 創建組
    2.4. Task outcomes
    3. 從jBPM3轉換到jBPM4
    3.1. jBPM4的目標
    3.2. 知識范圍
    3.3. 流程轉換工具
    3.3.1. 概述
    3.3.2. 參數
    3.3.3. 使用示例
    3.3.4. 高級應用
    3.4. 解釋和修改
    4. 流程虛擬機
    5. 架構
    5.1. APIs
    5.2. 活動API
    5.3. 事件監聽API
    5.4. 客戶端API
    5.5. 環境
    5.6. 命令
    5.7. 服務
    6. 實現基本活動
    6.1. ActivityBehaviour
    6.2. ActivityBehaviour實例
    6.3. ExternalActivityBehaviour
    6.4. ExternalActivity實例
    6.5. 基本流程執行
    6.6. 事件
    6.7. 事件傳播
    7. 流程剖析
    8. 高級圖形執行
    8.1. 循環
    8.2. 默認執行行為
    8.3. 功能活動
    8.4. 執行和線程
    8.5. 流程同步
    8.6. 異常處理器
    8.7. 流程修改
    8.8. 鎖定和流程狀態
    9. 配置
    9.1. 基本配置
    9.2. 自定義身份認證組件
    10. 持久化
    11. 計劃執行器
    11.1. 概述
    11.2. 配置
    12. 高級郵件支持
    12.1. 生產者
    12.1.1. 默認生產者
    12.2. 模板
    12.3. 服務器
    12.3.1. 多服務器
    12.4. 擴展點
    12.4.1. 自定義生產者
    12.4.1.1. 例子:自定義附件
    13. 軟件日志
    13.1. 配置
    13.2. 目錄
    13.3. JDK日志
    13.4. 調試持久化
    14. 歷史
    15. JBoss集成
    15.1. 打包流程歸檔
    15.2. 把流程歸檔發布成一個jBoss實例
    15.3. 流程發布和版本管理
    15.4. 流程引擎和J2EE/JEE編程模型
    16. Spring集成
    16.1. 概述
    16.2. 配置
    16.3. 使用
    16.4. 測試
    A. 修改日志
    posted @ 2009-07-14 00:28 卡宴 閱讀(3342) | 評論 (11)編輯 收藏
    jBPM4的GA將會在明天發布,官方的用戶手冊已經更新到GA版本了。每次新的版本一發布,我們也會立刻更新,這次用戶手冊主要是修改了jPDL的內容,然后給變量那章添加了不少內容,其他章節基本都是補充了部分內容?,F在還沒有經過完整的校對,有翻譯不妥的地方還請大家多提反饋意見。

    1. 導言
    1.1. 許可證與最終用戶許可協議
    1.2. 下載
    1.3. 源碼
    1.4. 什么是jBPM
    1.5. 文檔內容
    1.6. 從jBPM 3升級到jBPM 4
    2. 安裝配置
    2.1. 發布
    2.2. 必須安裝的軟件
    2.3. 快速上手
    2.4. Ant腳本
    2.5. JBoss
    2.6. Database
    2.7. Tomcat
    2.8. 配置文件
    2.9. 流程設計器(GPD)
    2.9.1. 獲得eclipse
    2.9.2. 添加更新站點gpd/jbpm-gpd-site.zip
    2.9.3. 定義jBPM用戶庫
    2.9.4. 在目錄中添加jPDL4模式
    2.9.5. 導入示例
    2.9.6. 使用ant添加部分文件
    3. 流程設計器(GPD)
    3.1. 創建一個新的流程文件
    3.2. 編輯流程文件的源碼
    4. 部署業務歸檔
    4.1. 部署流程文件和流程資源
    4.2. 部署java類
    5. 服務
    5.1. 流程定義,流程實例和執行
    5.2. ProcessEngine流程引擎
    5.3. Deploying a process部署流程
    5.4. 卸載已發布的流程定義
    5.5. 刪除流程定義
    5.6. 啟動一個新的流程實例
    5.6.1. 最新的流程實例
    5.6.2. 指定流程版本
    5.6.3. 使用key
    5.6.4. 使用變量
    5.7. 執行等待的流向
    5.8. TaskService任務服務
    5.9. HistoryService歷史服務
    5.10. ManagementService管理服務
    6. jPDL
    6.1. process流程處理
    6.2. 控制流程Activities活動
    6.2.1. start啟動
    6.2.2. State狀態節點
    6.2.2.1. 序列狀態節點
    6.2.2.2. 可選擇的狀態節點
    6.2.3. decision決定節點
    6.2.3.1. decision決定條件
    6.2.3.2. decision expression唯一性表達式
    6.2.3.3. Decision handler決定處理器
    6.2.4. concurrency并發
    6.2.5. end結束
    6.2.5.1. end process instance結束流程處理實例
    6.2.5.2. end execution結束流向
    6.2.5.3. end multiple多個結束
    6.2.5.4. end State結束狀態
    6.2.6. task
    6.2.6.1. 任務分配者
    6.2.6.2. task候選人
    6.2.6.3. 任務分配處理器
    6.2.6.4. 任務泳道
    6.2.6.5. 任務變量
    6.2.6.6. 在任務中支持e-mail
    6.2.7. sub-process子流程
    6.2.7.1. sub-process變量
    6.2.7.2. sub-process外出值
    6.2.7.3. sub-process外向活動
    6.2.8. custom
    6.3. 原子活動
    6.3.1. java
    6.3.2. script腳本
    6.3.2.1. script expression腳本表達式
    6.3.2.2. script 文本
    6.3.3. hql
    6.3.4. sql
    6.3.5. mail
    6.4. Common activity contents通用活動內容
    6.5. Events事件
    6.5.1. 事件監聽器示例
    6.5.2. 事件傳播
    6.6. 異步調用
    6.6.1. 異步活動
    6.6.2. 異步分支
    6.7. 用戶代碼
    7. Variables變量
    7.1. 變量作用域
    7.2. 變量類型
    8. Scripting腳本
    9. Indentity身份認證
    10. 支持郵件
    10.1. 生產者
    10.1.1. 默認生產者
    10.2. 模板
    10.3. 服務器
    10.3.1. 多服務器
    10.4. 擴展點
    10.4.1. 自定義生產者
    10.4.1.1. 例子:自定義附件
    A. 修改日志
    posted @ 2009-07-09 10:35 卡宴 閱讀(1473) | 評論 (4)編輯 收藏
      最近一直在整流程控制臺,發現還是有不少成就感的,尤其昨天又實現了動畫回放流程。這可是忽悠領導的最佳手段啊,我先給大家看一下我們控制臺的規劃和進度(提供源碼下載地址
    ):

    -------------------------------------------------近期
    * 細化task的生命周期,重新整理task操作
    * 流程實例歷史
      * 表格方式查看流程歷史
     

    ------------------------------------------------- 遠景
    * 流程仿真
    * 修改流程圖
    * 細粒度權限控制
    * 回退
    * 會簽
    * 委派
    * swimlane
    * BI
    * BAM
    * 儀表盤


    -------------------------------------------------ChangeLog

    * 2009-07-01
    * [DONE] 實現動畫方式回放流程

    * [DONE] 實現deployment的suspend, resume(CR1顯示已暫停定義列表時出現問題,trunk下已修正,等待GA)
    * [DONE] 實現processInstance的suspend, resume, end(CR1和trunk里,都沒有暴露suspend和resume方法)
    * [DONE] 實現personalTasks, groupTasks, take task, cancel task

    * 2009-06-29

    * [DONE] 登陸頁面,登錄名和密碼為1/1
    * [DONE] 添加start和signal,complete task時,添加變量
    * [DONE] 整合web流程設計器,可以直接發布流程定義
    * [DONE] 國際化

    * 2009-06-01 and before

    * [DONE] 發布xml格式的流程定義
    * [DONE] 流程定義管理(list, start, delete)
    * [DONE] 顯示流程圖(只在Process Instance詳細信息中可顯示)
    * [DONE] 流程實例管理(list, signal, view, delete)
    * [DONE] 任務管理(list, complete)
    * [DONE] 追蹤流程圖(顯示Process Instance的當前位置)
    * [DONE] 多流向選擇
    * [DONE] 用戶權限(user, group, membership的CRUD功能)
    * [DONE] 報表(most active process)

    呵呵,現在實現的功能畢竟還是有限,我們的功能規劃在一定程度上可能有些局限,希望大家能給多提提建議,認為控制臺里還可以加些什么功能。這可是開源的啊,大家為了自己也要多提出建議來,O(∩_∩)O哈哈~

    下面是我們控制臺一些功能的視頻演示,包括流程設計和發布,動畫回放流程等。
    大家可以看看視頻:http://www.family168.com/bbs/dispbbs.asp?boardid=6&Id=473
    截圖請看:http://www.family168.com/bbs/dispbbs.asp?boardid=6&Id=463
    svn的下載地址:http://jbpmside.googlecode.com/svn/trunk

    posted @ 2009-07-02 12:34 卡宴 閱讀(1143) | 評論 (4)編輯 收藏
         摘要: 我們的控制臺現已實現了流程管理、流程監控、流程建模和仿真以及報表等,建模和仿真是使用js做了一個web設計器jPDL整合在控制臺中。  閱讀全文
    posted @ 2009-06-29 14:11 卡宴 閱讀(1662) | 評論 (1)編輯 收藏
    要知道如何將jBPM4與Spring整合,可以先了解jBPM4的IOC容器,如果不了解的可以先看ronghao的這篇文章http://www.javaeye.com/topic/381607,是介紹jBPM4的IOC容器的。下面我們介紹jBPM與Spring整合的2種方式:
       第一種:手工將SessionFactory放入jBPM4中。
       第1步:更改jbpm.spring.default.cfg.xml配置文件,將下面的部分注釋掉
      <!--
        <hibernate-configuration>
          <cfg resource="jbpm.hibernate.cfg.xml" />
        </hibernate-configuration>

        <hibernate-session-factory />
      -->
       注釋的部分是在jBPM4中創建了sessionFactory,而我們只需要一個sessionFactory。既然要將jBPM4與Spring的整 合,那就希望由Spring來統一管理sessionFactory和事務,在Spring的配置文件中構造一個sessionFactory。 ProcessEngine是jBPM4的Facade模式,一切由它與外部交互,
      第2步:在Spring配置文件中寫一個bean:
    <bean id="processEngine" class="com.family168.jbpm.ProcessEngineFactoryBean">
            <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
    第3步:在ProcessFactoryBean中注入SessionFactory:
      public void setSessionFactory(SessionFactory sessionFactory) {
            this.sessionFactory = sessionFactory;
      }
    第4步:在ProcessFactoryBean中創建一個SpringConfiguration,然后將sessionFactory放入 SpringConfiguration中,再從SpringConfiguration得到processEngine,代碼如下:
         public void afterPropertiesSet() {
            SpringConfiguration cfg = new      SpringConfiguration(jbpmConfigurationLocation);
            cfg.setApplicationContext(applicationContext);

            cfg.setSessionFactory(sessionFactory);
            this.processEngine = cfg.buildProcessEngine();
        }
    然后我們的工作就可以開展了,可以從processEngine得到所有的service。比如:
        ProcessEngine processEngine = (ProcessEngine) ctx.getBean("processEngine");
        RepositoryService repositoryService = processEngine.getRepositoryService();。
    第2種:獲得Hibernate的SessionFactory。
      第1步:與第一種方式的第1步一樣。
      第2步:更改jbpm.tx.spring.cfg.xml配置文件:
      將     
         <standard-transaction-interceptor/>
      改成    <spring-transaction-interceptor current="true" />
      然后將
        <transaction/>
        <hibernate-session/>
      改成 <hibernate-session current="true"/>
    這部分修改是將jBPM4創建的spring事務和hibernate的session改成從當前的ThreadLocal中獲得session和事務。
    第3步:在Spring配置文件中寫bean,processEngine和template:
    <bean id="jbpmConfiguration" class="org.jbpm.pvm.internal.cfg.SpringConfiguration">
            <constructor-arg value="jbpm/jbpm.cfg.xml" />
        </bean>

        <bean id="processEngine" factory-bean="jbpmConfiguration" factory-method="buildProcessEngine" />

        <bean id="jbpmTemplate" class="com.family168.jbpm.JbpmTemplate">
            <property name="processEngine" ref="processEngine"/>
            <property name="dataSource" ref="dataSource"/>
        </bean>
    processEngine直接使用factory-bean指向jbpmConfiguration,也就是 org.jbpm.pvm.internal.cfg.SpringConfiguration,并從SpringConfiguration的 buildProcessEngine中獲得。
    jbpmTemplate主要是控制事務,在processEngine外面創建事務,這樣使用的時候會先調用jbpmTemplate,再調用processEngine,否則它會說事務沒有啟動。在jbpmTemplate中注入processEngine:
        public void setProcessEngine(ProcessEngine processEngine) {
            this.processEngine = processEngine;
        }
        這里我的理解是我們在上面已經將事務改成從當前的Threadlocal中獲得,所以jBPM4是必須當前有事務,如果我沒有創建事務的話,在使用 processEngine時就會說事務沒有啟動。所以我們就封裝了一個jbpmTemplate,如果我的理解有誤還請大家指出。
       第1種整合方式的例子下載http://www.family168.com/,第2種整合方式之后可以看我們的jBPM-Side里的控制臺。

    posted @ 2009-06-29 13:27 卡宴 閱讀(1482) | 評論 (0)編輯 收藏
    7.6. 流程同步

    為了進行流程同步建模,在執行中這是一個父子樹形結構。 這個想法是執行主路徑是樹的根。 流程的主路徑也被稱作流程實例。 當在給定流程定義上啟動或創建一個新流程實例時, 執行便被創建。

    現在,因為執行的主路徑和流程實例是相同對象, 這保證了用法的簡單, 在沒有同步情況的簡單流程下。
    基本執行結構的UML類圖



    圖 7.6. 基本執行結構的UML類圖

    為了建立執行的多同步路徑,活動實現比如一個分支或切分 創建子執行, 使用ActivityExecution.createExecution方法。 活動實現比如結合或合并可以停止流程的這些同步路徑, 通過調用執行同步的stop方法。

    只有葉子執行可以激活,非葉子執行應該不是激活的。 這個執行的樹形結構沒有堅持一個同步或結合行為的特殊類型。 它從事著分支或和切分 和結合或和合并來使用執行樹結構, 用任何方式,他們想定義期望的同步行為。 這里我們看一個同步執行的例子。
    執行的同步路徑



    圖 7.7. 執行的同步路徑

    這里有執行的一個付款和一個發貨路徑。 在這種情況,水平線上的活動展示了分支和結合。這個執行顯示了三個執行。 執行的主路徑不是激活的(顯示成灰色) 執行的付款和發貨路徑是激活的,分別指向了 bill和ship活動。

    從事活動行為的實現,是他們想使用的執行結構。 假設多個任務必須在執行進行之前完成。 活動行為可以為這個產生一系列子執行。 或者可以選擇,任務組件可以支持任務組, 分配給單獨的執行。在那種情況, 任務組件成為同步任務的響應, 因此把這個責任移動到執行樹形結構范圍之外。
    7.7. 異常處理器

    在所有分配到流程的代碼中,像 Activity,EventListeners和 Condition,可能分配給異常處理器。 這可以想成是把這些實現的方法實現包含在try-catch塊中。 但是為了構建更多可復用的構建塊, 為了委派類和異常處理邏輯, 異常處理器可以添加到核心流程模型中。

    一個異常處理器可以分配給任何流程元素。 當一個異常發生在一個委派類中,一個匹配的異常處理器就會被找到。 如果找到了一個這樣的異常處理器,它會有一個處理這個異常的機會。

    如果一個異常處理器處理完成,沒有出現問題,然后這個異常會 被認為是處理了,就會在委派代碼調用后繼續。 比如,一個轉移有三個動作,第二個動作拋出一個異常, 這個異常被異常處理器處理,然后

    編寫自動活動,異常處理器提醒是很容易的。 默認是任意執行。沒有方法需要在執行中調用。 所以如果一個自動活動拋出一個異常,被異常處理器處理, 這個執行會在這個執行后繼續執行。這對于控制流向活動 就會有一個更大的困難。它們可能需要包含try-finally塊 來調用執行中對應的方法,在異常處理器 獲得一個機會來處理異常。比如,如果活動是等待狀態, 然后發生了一個異常,這里就會有一個風險,線程會跳出 execution.waitForSignal()的調用, 導致執行在這個活動以后繼續執行。

    TODO: exceptionhandler.isRethrowMasked

    TODO: transactional exception handlers

    TODO: we never catch errors
    7.8. 流程修改

    TODO: 流程修改
    7.9. 鎖定和流程狀態

    一個執行的狀態不是激活就是鎖定。 一個激活的執行不是執行就是等待外部觸發器。 如果一個執行不是STATE_ACTIVE,那么它就是被鎖定。 一個鎖定的執行是只讀的,不能接受任何外部觸發器。

    當一個新執行被創建時,它是STATE_ACTIVE。 為了把狀態修改成鎖定狀態,使用lock(String)。一些STATE_*常量 被提供了,它們演示了最常用的鎖定狀態。 但是在圖片中的'...'狀態展示了任何字符串 都可以作為狀態提供給lock方法。
    執行的狀態



    圖 7.8. 執行的狀態

    如果一個執行被鎖定,修改執行的方法會 拋出一個PvmException,信息會引用真實的鎖定狀態。 觸發事件,更新變量,更新優先級,添加注釋 不會當做是修改執行。 子節點的創建和刪除也不會檢測, 這意味著那些方法可以被外部API客戶和活動行為調用, 即使執行在鎖定狀態。

    確保比較getState()和STATE_*常量時 使用.equals,不要使用'==',因為如果執行從持久存儲加載。 會創建一個新字符串,而不是使用常量。

    一個執行實現會被鎖定:

        * 當它結束
        * 當它暫停
        * 在異步延續過程中

    更多的,鎖定可以被活動實現使用, 讓執行在等待狀態下只讀,然后為這個執行傳遞 的外部實例就像這樣:

        * 一個人員任務
        * 一個服務調用
        * 一個等待狀態當探測器檢測一個文件的出現時就結束

    在這些情況,策略是外部實例應該獲得 執行的完全控制,因為它想要控制什么應該允許,什么不應該。 為了獲得那種控制,他們鎖定了執行,所以所有內部交互 必須通過外部實例傳遞。

    一個創建外部實例的主要原因是, 它們可以在執行已經執行過還存在。比如, 在服務調用的情況,定時器可以導致執行獲得超時轉移。 當響應在超時后到達,服務調用實例應該 確認它沒有signal這個執行。所以服務調用可以看做 一個活動實例(活動實例) 是對活動每個執行的唯一實例。

    外部實例它們自己負責管理執行鎖定。 如果定時器和客戶端應用結果是選擇 外部實例,而不是直接選擇執行,然后在理論上是不必要的。 它是從事活動行為實現,無論它希望 執行鎖定還是解鎖。
    posted @ 2009-06-26 12:05 卡宴 閱讀(1084) | 評論 (0)編輯 收藏
    僅列出標題
    共3頁: 上一頁 1 2 3 下一頁 
    主站蜘蛛池模板: 亚洲视频免费观看| 亚洲精品亚洲人成人网| 蜜芽亚洲av无码精品色午夜| 国产精品免费大片一区二区| 亚洲国产精品视频| 国产99精品一区二区三区免费| 免费欧洲美女牲交视频| 免费精品久久久久久中文字幕| 亚洲v国产v天堂a无码久久| 国产精品自拍亚洲| 亚洲人成无码www久久久| 久青草视频97国内免费影视| 亚洲精品中文字幕无码蜜桃| 一区二区三区四区免费视频| 337p日本欧洲亚洲大胆色噜噜 | 夜色阁亚洲一区二区三区| 国产精品亚洲а∨天堂2021| 亚洲精品国产高清不卡在线| 国产在线观a免费观看| 亚洲A∨无码一区二区三区| 久草在视频免费福利| 国产精品亚洲色婷婷99久久精品| 亚洲精品高清在线| 久久久免费的精品| 亚洲一卡2卡三卡4卡无卡下载| 国产大片91精品免费观看男同| 国产男女爽爽爽免费视频| 亚洲一区二区三区四区在线观看| 久久精品网站免费观看| 国产亚洲视频在线播放大全| 久久九九亚洲精品| 18国产精品白浆在线观看免费 | 亚洲黄网在线观看| 午夜无遮挡羞羞漫画免费| 一级特级aaaa毛片免费观看| 亚洲色偷偷偷网站色偷一区| 国产成人免费福利网站| 美女在线视频观看影院免费天天看 | 亚洲国产精华液2020| 国产啪亚洲国产精品无码| 18级成人毛片免费观看|