日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jbpm4.4+ssh配置

發布時間:2024/4/15 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jbpm4.4+ssh配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 1.? JBPM簡介
  • JBPM,全稱是Java Business Process Management(業務流程管理),它是覆蓋了業務流程管理、工作流、服務協作等領域的一個開源的、靈活的、易擴展的基于java實現的流程業務處理框架(Business Process Management)。jBPM是公開源代碼項目,它使用要遵循 Apache License。
    ??? 支撐企業的流程性業務應用:解釋業務規則,使得協作自動化

    2.JBPM最大特色

     ? 就是它的商務邏輯定義沒有采用目前的一些規范,如WfMC´s XPDL, BPML, ebXML, BPEL4WS等,而是采用了它自己定義的JBoss jBPM Process definition language (jPdl)。jPdl認為一個商務流程可以被看作是一個UML狀態圖。jPdl就是詳細定義了這個狀態圖的每個部分,如起始、結束狀態,狀態之間的轉換,過圖型化的流程定義,直觀地描述業務流程。

    jBPM的另一個特色是它使用Hibernate來管理它的數據庫。Hibernate是目前Java領域最好的一種數據存儲層解決方案,只要是 Hibernate 支持的數據庫, jBPM 也就支持。通過Hibernate,jBPM將數據的管理職能分離出去,自己專注于商務邏輯的處理。

    3.JBPM帶來的益處

    實現了無紙化的工作模式;
    過程可監控:便于對執行過程的跟蹤和監控
    數據可管理:便于對數據進行檢索、分析
    可靠性:減少人-人交互的主觀錯誤的機率
    4.JBPM常見應用領域
    行政管理:行政、事業單位、大中型(國有)企業
    產品研發和制造:用于對整個研發、生產制造過程的管理和調度
    電子商務:訂單處理
    其他 如大型內容管理系統的多步審核
    5.JBPM常見場景
    公文流轉、行政審批、訂單處理、產品研發、制造過程
    其他需要多個角色協作、多步完成的活動

    6.JBPM模型說明

    加載流程定義:
    定義工具可以系統提供,也可以只是讀取定義結果
    啟動流程:
    啟動選定的流程,創建流程實例
    辦理任務(流程的每一步):
    執行流程的每個步驟(不一定都需要人參與:自動任務節點)
    記錄流程的狀態:
    對狀態的管理是工作流引擎的主要職責

    7.JBPM主要概念

    流程定義:預先定義的業務流轉邏輯
    流程實例:業務的一次實際流轉過程
    參與者:任務的執行者
    活動(任務):組成流程定義的節點
    活動實例:組成流程實例的元素
    流轉:從一個節點到另一個節點這一行為
    工作列表:當前需要辦理的任務集合
    工作流引擎:工作流的核心組件,對流程實例、任務實例以及其狀態進行管理

    8.JBPM套件的組成

    jPDL Designer:流程定義設計器,流程建模工具
    jPDL Library:流程執行引擎
    WebConsole:參與者和流程執行環境的交互界面,流程運行期間的監控工具

    9. 使用jBPM開發工作流的一般流程

    1) jBPM的運行需要數據庫的支持,因此系統設計時要選定所用數據庫。只要是Hibernate支持的數據庫,jBPM就支持。數據庫的初始化可以由jBPM自動完成,也可以通過ant generate.ddl任務生成SQL語句,在jBPM外部自己創建所需的表。

      2) 使用jPdl定義工作流,生成processdinination.xml文件。可以采用GUI工具gpdl,但目前只支持jBPM1.0,而且bug很多。XML的DTD定義文件在jBPM下載包中。

      3) Ant create.pde生成pde包的工作目錄。將processdinination.xml文件和其它需要的文件放在指定的目錄下,使用ant build.precess.archives生成pde包。pde包的格式采用jar。

      4) 更改pde工作目錄/src/config/jbpm.properties的相關屬性,主要是設定相關的數據庫連接信息。注意要將數據庫的JDBC驅動放在pde工作目錄的lib目錄下。

      5) Ant deploy.process.archives將剛才生成的pde部署到數據庫。實際上就是向數據庫插入一些相關數據。

    6) 利用jBPM API函數開發相應的工作流程。

    10.jbpm表結構介紹

    10.1資源庫和運行時表結構

    JBPM4_DEPLOYMENT,JBPM4_DEPLOYPROP,JBPM4_LOB存儲流程定義相關的部署信息

    JBPM4_EXECUTION主要是存放JBPM4的執行信息,Execution機制代替了JBPM3的Token機制

    JBPM4_TASK存放需要人來完成的Activities(活動),需要人來參與完成的Activity 被稱為Task

    JBPM4_PARTICIPATION參與者表,存放參與者信息,參與者的種類有Candidate、Client、Owner、Replaced Assignee和Viewer。而具體的參與者既可以是單一用戶,也可以是用戶組

    JBPM4_SWIMLANE泳道表。SwimLane是一種Runtime Process Role。通過SwimLane,多個Task可以一次分配到同一Actor身上

    JBPM4_JOB? 存放的是Timer 的定義

    JBPM4_VARIABLE 存的是進行時的臨時變量。

    10.2歷史數據庫表結構

    JBPM4_HIST_PROCINST 與JBPM4_HIST_ACTINST 分別存放Process Instance和Activity Instance的歷史記錄

    JBPM4_HIST_DETAIL 保存 Variable的變更記錄

    JBPM4_HIST_VAR 保存歷史的變量 JBPM4_HIST_TASK Task的歷史信息

    身份認證表結構

    JBPM4_ID_GROUP ,JBPM_ID_MEMBERSHIP ,JBPM4_ID_USER 這三張表很常見,基本的權限控制,關于用戶認證方面建議還是自己開發一套,組件自帶的功能太簡單,使用中有很多需求難以滿足

    除了前面述及的17張表外,還有一張引擎參數表,這是一張獨立的表,在此沒有單獨列出

    ?

    11.GPD(圖形化流程設計器) for Eclipse插件安裝

    • · 幫助-->軟件更新(Help --> Software Updates)
    • · 選擇“有效軟件”標簽(Available Software)
    • · 點擊添加站點(Add Site)
    • · 在對話框里添加站點擊(Add Site)對話框,點擊壓縮包(Archive)
    • · 找到gpd/jbpm-gpd-site.zip
    • · 點擊“確定”(ok)自動回到“軟件更新和擴展”對話框
    • · 選擇jPDL 4 流程設計器更新站點(jPDL 4 GPD Update Site)
    • · 點擊安裝(Install)
    • · 在安裝(Install)對話框中,選擇Flow Common Feature 和jPDL 4 Feature
    • · 點擊下一步(Next)
    • · 選擇接受(Accept),并點完成(Finish)
    • · 重啟Eclipse

    12. 基于Web的Signavio流程設計器

    jBPM3開始,這個著名的開源項目就因為沒有基于瀏覽器的圖形化流程設計器而飽受用戶詬病,沒錯,進入了Web時代,流程設計器沒有理由總是停留在CS(Client Server)階段。有很多公司認識到了這一點,因此市場上的jBPM Web流程設計器并不少見,但它們或不開放源代碼、或基于特定的業務、或存在支持升級問題。總之,沒有RedHat JBoss jBPM的官方認證和支持,您用著總會不放心,不是嗎?

    現在您不用擔心了。從Version 4.1開始,jBPM官方發布包綁定了一個完全開源的基于Web的BPM流程設計器,代號為Signavio。

    12.1jBPM Web流程設計器簡介

    Signavio Web流程建模工具是和JBoss jBPM團隊、德國的Signavio公司和Hasso Plattner Institute(HPI軟件工程研究所)緊密協作的成果。Signavio項目基于Web建模工具Oryx,Oryx是由HPI主持的開源項目。HPI和Signavio公司都會持續地在Oryx項目和Signavio項目中投入人員和資金的支持。關于這兩個項目,您可以在Google Code上找到:http://code.google.com/p/signavio-oryx-initiative/。

    使用Signavio可以讓業務流程分析人員通過瀏覽器建立業務流程模型。Signavio輸出的流程文件格式正是jPDL。這意味著Signavio設計出的流程定義文件可以直接導入到Eclipse GPD,反之亦然。流程定義文件會保存在硬盤上,位于 $jbpm_home/signavio-repository中,這個參數在安裝腳本中有默認值。

    下圖是Signavio流程設計器的使用界面,它能很好地支持IE和Firefox瀏覽器。

    ?

    注意:Signavio是基于web的業務流程建模工具,綁定在jBPM中,是100%開源的(基于MIT開放源代碼許可證)。同時,Signavio公司也提供商業版的同名工具,毫無疑問,商業版的Signavio有更多的功能。

    12.2獨立安裝Signavio

    復制 $jbpm_home/install/src/signavio/jbpmeditor.war 到您的目標Web容器中。

    12.3配置Signavio

    Signavio配置很簡單,大多數參數在web.xml中修改即可,您可以在 jbpmeditor.war/WEB-INF/ 目錄中找到。其中最重要的是 fileSystemRootDirectory 參數。這個參數的值必須為一個物理上存在的本地目錄,它指定了流程定義文件(即*.jpdl.xml 文件)存儲的位置,以下是此參數的web.xml片段:

    12.3 Signavio缺點:

    1:不支持中文。

    2:只能用firefox打開頁面。

    13.在目錄中添加jPDL4模式

    • · 點擊窗口-->屬性(Windows-->Preferences)
    • · 選擇XML-->目錄(XML-->CataLog)
    • · 點擊添加(Add)
    • · 添加XML目錄(Add XML Catalog Entry)的窗口打開
    • · 點擊map-icon的圖標下面的按鈕并選擇文件系統(File System)
    • · 在打開的對話框中,選擇jBPM安裝目錄下src文件夾中jpdl.xsd文件
    • · 點擊打開(Open)并且關閉所有的對話框

    14.ssh+jbpm整合

    • · 加入jbpm.jar包, 文件位置在jbpm發布包根目錄下
      • 加入jbpm配置文件,文件位置在jbpm發布包根目錄/examples/src下: ?
      • · Spring配置文件加入以下代碼:
      • · Hibernate配置文件加入以下代碼: ? ???第一次執行時需放開第一行代碼 以便在目標數據庫中創建jBPM 表結構;創建之后需手動注釋第一行代碼;
        ???? ?? 或者在jbpm-4.4/install目錄下執行cmd命令: ant create.jbpm.schema 。

    15.部署到tomcat6.0

    需刪除tomcat6.0 lib目錄下el-api.jar 包,因為會和jbpm的包產生沖突。然后導入jbpm發布包lib目錄下的以下三個包:

    ?

    Ok,啟動服務。

    16.示例項目

    ???????? TestJBPM是一個簡單的jbpm+ssh+oracle10g+tomcat6整合項目,實現了一個簡單的請假流程。工程由myeclipse打開。

    流程圖如下:

    部署前需修改jbpm.hibernate.cfg.xml文件,改為您自己的數據庫連接方式

    導入庫文件 testJbpm.dmp

    apache-tomcat-6.0.20 下有部署好的Signavio流程設計器,啟動tomcat前,需要在c盤下創建test文件夾。

    17JBPM工作流小結

    經過兩周的學習和討論,我們了解了工作流的概念、并逐步分析和熟悉了jbpm工作流的特點和應用,現對jbpm工作流總結如下。
    ?? 17.1關于JBPM工作流
    ??? ????17.1.1工作流
    ? ?? 工作流是一項分離業務操作和系統流程的技術。工作流由實體(Entity)、參與者(Participant)、流程定義(Flow Definition)、工作流引擎(Engine) 四部分組成。
    ????? 實體是工作流的主體,是需要隨著工作流一起流動的物件(Object)。例如,在一個采購申請批準流程中,實體就是采購申請單;在公文審批流程中,實體就是公文。
    ??參與者是各個處理步驟中的責任人,可能是人,也可能是某個職能部門,還可能是某個自動化的設備;
    ??流程定義是預定義的工作步驟,它規定了實體流動的路線。它可能是完全定義的,即對每種可能的情況都能完全確定下一個參與者,也可能是不完全定義的,需要參與者根據情況決定下一個參與者;
    ??工作流引擎是驅動實體按流程定義從一個參與者流向下一個參與者的機制
    ? ?? ?前三個要素是靜態的,而第四個要素是動態的,它將前三者結合起來,是工作流的核心組成元素。
    ?? ?????17.1.2JBPM

    ??? jBPM,全稱是Java Business Process Management,是一種基于J2EE的輕量級工作流管理系統。
    ??? ???jBPM的一個特色是采用了它自己定義的JBoss jBPM Process definition language (jPdl)。jPdl認為一個商務流程可以被看作是一個UML狀態圖。jPdl就是詳細定義了這個狀態圖的每個部分,如起始、結束狀態,狀態之間的轉換等。
    ?? ??? jBPM的另一個特色是它使用Hibernate來管理它的數據庫。Hibernate是目前Java領域最好的一種數據持久層解決方案。通過Hibernate,jBPM將數據的管理職能分離出去,自己專注于商務邏輯的處理。
    ?? 17.2JBPM工作流的應用分析
    ?????? 17.2.1jbpm工作流步驟:
    ?????? 1、加載(發布)流程定義
    ?????? 這個意思是,我們通過jbpm的designer插件,或者是用其他工具,制定出processDefinition
    ,然后將其加載到應用中的過程。這個加載可以是寫入內存中,或者是直接寫入數據庫等。
    ?????? 2、啟動流程
    ?????? 創建流程實例的過程。具體創建實例的方法有多種,可根據自己的需要自行選擇。
    ?????? 3、處理任務
    ?????? 在流程流轉的過程中,JBPM引擎會為我們生成任務的實例,我們就需要針對這些任務實例來進行處理,然后結束這些任務實例,并推動流程的流轉。
    ?????? 4、記錄流程的相關狀態
    ?????? 記錄流程狀態這點包括且不限于以下內容:
    ?????? 1)流程實例的開啟
    ?????? 2)任務實例的創建
    ?????? 3)任務實例的開始執行
    ?????? 4)任務實例的結束
    ?????? 5)流程實例的結束
    ?????? 17.2.2使用jBPM的優勢
    ?????? 將業務流程復雜的系統結構清晰話,提供系統運行時的靈活性
    ?????? 1、解耦系統業務流程
    ?????? 流程獨立,可以使用工具定義和建模,利于跟蹤、監控、管理、調度、優化和重整
    ?????? 2、提高系統的靈活性
    ?????? 系統流程定義生產環境的修改和調整,用戶和外部工具交互,任務的動態分派
    ?????? 17.2.3使用jBPM時的問題
    ?????? 1、對當前任務的條件查詢
    ?????? jBPM不提供靈活進行條件查詢的api,如果需要,可以自定義hibernate查詢,從jbpm相應的數據表中查詢任務數據。但需要對jBPM機制比較了解,而且有些復雜條件難以用jBPM本身的信息查到。
    ?????? 2、當前任務的分頁
    ?????? 在上一問題的基礎上,使用hibernate分頁。
    ?????? 3、統計各個流程實例的狀態
    ?????? 可以通過流程實例,在jbpm系統表中查詢,也可以在業務表的相應數據上加上狀態列來統計。前一個比較麻煩,后一個比較直觀,但不會因使用jBMP而使用工作量減少。
    ?????? 4、工作流數據與業務數據結合
    ?????? 一般通過在流程實例中添加相應的一筆數據的標識作為變量來關聯。也可以有針對性的擴展jbpm的系統表來實現與業務的關聯性。
    ?????? 5、修改流程后的歷史數據兼容性問題
    ?????? Jbpm工作流流程定義有版本的概念,修改流程后要重新發布,與舊的流程不是一個同一個版本。系統可以區別開新舊流程來。
    ?? 17.3結論
    ?? 1、工作量
    ?? 初步的結論是:引入工作流技術不會明顯減少系統開發工作量。相反,在一般情況下,會增加一部分工作量。如果項目流程比較少,而且比較固定,則使用工作流技術會明顯增加開發工作量。如果項目流程多,而且比較復雜,則使用工作流技術會使項目結構層次更加清晰、更具有擴展性,根據需求有可能要修改和擴展現有開源工作流類庫與數據庫結構,也會增加額外的工作量。但權衡之下,利大于弊。
    ??? 2、關于業務數據與jBPM本身的數據
    ??? 理論上說,如果使用jBPM,可以將所有業務數據放到jBPM的context中管理,不再維護業務數據表。但這樣的結果是在流程之外的環境(比如在統計報表中)中無法容易的得到業務數據。所以一般會建立業務數據表,我不使用工作流時一樣,然后讓jBMP從業務數據表中得到業務數據,而不在jBPM中保留業務數據。因此,使用jBPM后,在業務數據方面基本不會減少工作
    ??? 3、工作流學習成本
    ??? 工作流本身的概念較復雜,使用jbpm,需要學習其工作流的定義和結構,流程定義工具和語言、了解其數據結構。與其它工作流產品(如Shark)相比,jBPM對Java開發人員來說學習較低成本,在做流程復雜的項目時,學習成本可以接受。
    ??? 4、系統用戶和角色與工作流整合
    ??? 流程的流轉和任務的分派完成,都是用戶在控制,所以需要將用戶、角色和權限整合到jbpm工作流中。
    ??? 5、系統業務的整合和調整
    ??? 將流程抽取后,原本連續的業務處理變成一個個的任務節點。需要在每個業務相關處理處添加工作流流程控制、在每個節點處實現相關的業務和流程切入點。
    ??? 6、適用范圍
    ??? Jbpm工作流適用于:
    ??1、項目流程比較多,流程復雜的項目。
    ??? 2、系統運行和維護、升級時,流程可能需要修改、調整和跟蹤、控制的項目。

    轉載于:https://www.cnblogs.com/cmzcheng/archive/2011/11/20/2255806.html

    總結

    以上是生活随笔為你收集整理的jbpm4.4+ssh配置的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。