欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
jbpm簡(jiǎn)介

JBoss jBPM為設計及開(kāi)發(fā)工作流和業(yè)務(wù)流程管理系統提供了一個(gè)先進(jìn)的平臺。由API、特定領(lǐng)域的語(yǔ)言和圖形建模工具組成的框架讓開(kāi)發(fā)人員和業(yè)務(wù)分析人員能夠使用通用平臺進(jìn)行溝通及操作。

工作流管理和業(yè)務(wù)流程管理(BPM)正在迅速成為企業(yè)獲得軟件敏捷性和適應性的重要方法。JBoss jBPM是一個(gè)面向流程的工作流/BPM框架和工具集,它使業(yè)務(wù)分析人員能夠與軟件組件進(jìn)行交互、有助于獲得有效的業(yè)務(wù)解決方案。

許多企業(yè)在積極尋求一種結構化方法,以便設計業(yè)務(wù)動(dòng)作/事務(wù),并且優(yōu)先使用自動(dòng)化流程加以執行。業(yè)務(wù)流程管理(BPM)和工作流管理使用動(dòng)作、任務(wù)和流程等概念,提供了解決這個(gè)問(wèn)題的辦法。

業(yè)務(wù)流程管理一詞通常是指企業(yè)通過(guò)一系列活動(dòng),以能夠適應動(dòng)態(tài)變化的環(huán)境的方式,自動(dòng)管理及優(yōu)化流程。這些活動(dòng)通常尋求來(lái)自軟件工程和工具的幫助。因而,BPM一詞往往直接用來(lái)指軟件工程技術(shù)和工具。

BPM體現為三個(gè)不同的實(shí)踐

1.流程設計:指設計現有及新的流程這一任務(wù);

2.流程執行:執行自動(dòng)化序列的相關(guān)事件,這些事件涉及軟件流程以及/或者人為活動(dòng);

3.流程監控:觀(guān)察及審查單個(gè)流程的狀態(tài),以便這些流程的統計數字和性能可以加以記錄、報告及優(yōu)化。

BPM力求讓軟件工程師們能夠與業(yè)務(wù)分析人員共享同樣的概念和框架,因而,軟件開(kāi)發(fā)商試圖創(chuàng )建這樣的工具,讓企業(yè)可以通過(guò)使用圖形建模工具、特定領(lǐng)域的語(yǔ)言和專(zhuān)有應用軟件,獲取、設計及優(yōu)化業(yè)務(wù)流程。

JBoss jBPM 3.0提供了這樣的功能:使用業(yè)務(wù)流程執行語(yǔ)言(BPEL)、靈活而且可插入的應用編程接口(API)、本地流程定義語(yǔ)言以及圖形建模工具,利用基于行業(yè)標準的編制機制開(kāi)發(fā)新的自動(dòng)化業(yè)務(wù)流程和工作流。

JBoss jBPM是采用開(kāi)放源代碼(LGPL許可證)的框架,包括了Java API、工具和定義語(yǔ)言,可以充當Web應用或者獨立的Java應用。JBoss jBPM相當于業(yè)務(wù)分析人員和開(kāi)發(fā)人員之間的中介,為他們提供了名為jPDL的通用流程定義語(yǔ)言。

JBoss jBPM架構綜述

JBoss jBPM定義了使用JBoss流程定義語(yǔ)言編寫(xiě)的文件里面的流程定義。jPDL是一種面向圖形編程(GOP)的語(yǔ)言,它基于節點(diǎn)、轉換和動(dòng)作組成的模型。在這種模型里面,節點(diǎn)是在流程定義過(guò)程中彼此相遇時(shí)執行的命令。轉換負責指導流程定義的執行過(guò)程,而動(dòng)作在節點(diǎn)或者轉換事件發(fā)生時(shí)執行特定邏輯。

jBPM中,流程定義被封裝成流程檔案(process archives)。流程檔案被傳送到jPDL流程引擎加以執行。jPDL流程引擎負責遍歷流程圖、執行定義的動(dòng)作、維持流程狀態(tài),并且記錄所有流程事件。

JBoss jBPM在以下組件里面進(jìn)行封裝:

流程引擎: 該組件通過(guò)下列委托組件(delegate component)來(lái)執行定義的流程動(dòng)作、維持流程狀態(tài),并記錄所有流程事件:請求處理程序、狀態(tài)管理程序、日志管理程序、定義加載程序、執行服務(wù)。

流程監管器: 該模塊跟蹤、審查及報告流程在執行時(shí)的狀態(tài)。

流程語(yǔ)言: 流程定義語(yǔ)言(jPDL)基于GOP。

交互服務(wù): 這些服務(wù)把遺留應用提供成流程執行時(shí)所用的功能或者數據。

1表明了這些組件之間的關(guān)系。

如圖1所示,含有動(dòng)作處理程序的jBPM流程定義由jBPM流程引擎加以加載及執行。 如果流程引擎在流程定義過(guò)程中遇到擁有相關(guān)動(dòng)作的節點(diǎn),所有相關(guān)的動(dòng)作處理程序就會(huì )被調用。動(dòng)作處理程序是Java代碼的實(shí)例,在執行時(shí)能夠與外部系統進(jìn)行交互。

下面就是簡(jiǎn)單的動(dòng)作處理程序的示例:

import org.jbpm.graph.def.*;

import org.jbpm.graph.exe.*;

public class MyActionHandler

implements ActionHandler

{

public void execute(ExecutionContext executionContext)

 {

System.out.println("MyActionHandler has executed: " + executionContext);

 }

}

流程檔案里面的PDL文件名為process-definition.xml。該文件含有諸流程的正式描述。以下示子表明了process-definition.xml文件的例子:

< ?xml version="1.0" encoding="UTF-8"?>

< !DOCTYPE process-definition PUBLIC "-//jbpm/jBPM Mapping DTD 2.0//EN" "http://jBPM.org/dtd/processdefinition-2.0.dtd">

< process-definition name="purchase process">

< !--...-->

< !-- START-STATE -->

< start-state name="request a purchase">

 < transition to="evaluating"/>

< /start-state>

< !-- NODES -->

< state name="evaluating">

 < !--...-->

 < transition name="approve" to="purchase approved"/>

 < transition name="disapprove" to="done"/>

< /state>

< fork name="purchase approved">

 < transition to="decrement inventory" />

 < transition to="increment revenue" />

< /fork>

< state name="decrement inventory">

 < !--...-->

 < transition to="join" />

< /state>

< state name="increment revenue">

 < !--...-->

 < transition to="join" />

< /state>

< join name="join">

 < transition to="done" />

< /join>

< !-- END-STATE -->

< end-state name="done" />

< /process-definition>

流程定義基于定向圖(directed graph)。有向圖由節點(diǎn)、轉換、一個(gè)起始狀態(tài)以及一個(gè)終止狀態(tài)組成。每個(gè)節點(diǎn)的類(lèi)型定義了該節點(diǎn)的運行時(shí)行為。流程定義在執行時(shí),以下實(shí)體就會(huì )起到作用:

流程實(shí)例: 流程實(shí)例是流程定義的一次執行。

標記: 標記是一條執行路徑。標記是運行時(shí)概念,它含有指向定向圖中節點(diǎn)的指針。一旦創(chuàng )建了流程實(shí)例,就會(huì )創(chuàng )建主要執行路徑的標記。該標記名為流程實(shí)例的根標記,它位于流程定義的起始狀態(tài)。

信號: 信號指示標記繼續由轉換實(shí)現的圖像執行。

節點(diǎn): 節點(diǎn)負責圖像執行的繼續進(jìn)行。如果標記進(jìn)入節點(diǎn),節點(diǎn)就會(huì )執行。不會(huì )傳播執行的節點(diǎn)被認為是狀態(tài)節點(diǎn)。

動(dòng)作:動(dòng)作是流程執行過(guò)程中出現事件時(shí)執行的Java代碼的實(shí)例。主要的事件類(lèi)型有:進(jìn)入節點(diǎn)、離開(kāi)節點(diǎn)進(jìn)行轉換。


2 jBPM圖形建模設計器

使用jBPM圖形建模設計器,就很容易創(chuàng )建流程定義。設計器目前作為Eclipse插件而安裝。圖2表明了圖形建模設計器的示例屏幕。

圖形設計器可以用來(lái)創(chuàng )建流程定義、把動(dòng)作處理程序與事件連接起來(lái)、編輯定義來(lái)源、創(chuàng )建流程檔案、測試流程定義,等等。

部署JBoss jBPM

JBoss jBPM把流程定義存儲在數據庫中。因而,把流程部署到JBoss jBPM里面需要解析process-definition.xml,并且把它存儲在JBoss jBPM數據庫中??赏ㄟ^(guò)以下方法實(shí)現這項工作:

使用由JBoss jBPM提供的par Ant任務(wù)來(lái)創(chuàng )建流程檔案。

使用deploypar實(shí)用程序。該實(shí)用程序還可以創(chuàng )建流程檔案,并且把流程檔案部署到jBPM數據庫上。Deploypar實(shí)用程序把jBPM.properties文件作為一個(gè)屬性。該文件指定了配置選項,其中包括流程檔案所要部署到的那個(gè)數據庫。

通過(guò)編程解析process-definition.xml,并把它存儲到數據存儲區中。

JBoss jBPM完成一些簡(jiǎn)單步驟

JBoss jBPM充當編制引擎,它位于企業(yè)應用的中間,能夠實(shí)現不同應用之間的集成和協(xié)調。

本文使用隨同jBPM交付的示例部署,討論如何利用jBPMjPDL來(lái)創(chuàng )建及修改具有Web功能的簡(jiǎn)單的訂單處理系統。

1.下載JBoss jBPM

JBoss jBPM入門(mén)套件(http://www.jboss.com/products/jBPM/downloads)包括了執行JBoss jBPM所需的一切,只是沒(méi)有Java開(kāi)發(fā)者工具包(JDK)。JBoss jBPM入門(mén)套件里面的JBoss應用服務(wù)器需要J2SE 1.4或者更新版本。

下載入門(mén)套件后,把它解壓縮到選擇的目錄下面。一旦解壓縮了該入門(mén)套件,就有了類(lèi)似如下的目錄結構:

● Jbpm-starters-kit-3.1。

● Jbpm:含有JBoss jBPM產(chǎn)品的源代碼。

● jbpm-bpel:含有JBoss jBPMBPEL擴展件方面的信息。

● jbpm-db:含有把JBoss jBPM連接到其他數據庫的示例配置。

● jbpm-designer:含有用于JBoss jBPM可視化流程設計器的Eclipse插件。

● jbpm-server:含有JBoss應用服務(wù)器和JBoss jBPM引擎以及示例流程。

2.執行JBoss jBPM引擎

為了啟動(dòng)部署了jBPMJBoss應用服務(wù)器,進(jìn)入jbpm-server目錄,執行里面的啟動(dòng)腳本。命令窗口會(huì )隨同jBPM控制臺窗口一起出現,類(lèi)似圖3。

現在,打開(kāi)瀏覽器窗口,輸入http://localhost:8080/jbpm。就會(huì )看到JBoss jBPM的示例Web應用的登錄頁(yè)面。

cookie monster用戶(hù)的身份登錄,選擇創(chuàng )建新的Web銷(xiāo)售訂單鏈接。這會(huì )創(chuàng )建預制的“Web銷(xiāo)售流程的新實(shí)例,如圖4所示。

實(shí)際的定義文件:processdefinition.xml位于websale.par里面,如以下列表所示:

< ?xml version="1.0"?>

< process-definition name="websale"

xmlns="urn:jbpm.org:jpdl-3.1">

< !-- SWIMLANES (= process roles) -->

< swimlane name="buyer" />

< swimlane name="salesman">

< assignment expression="user(ernie)" />

< /swimlane>

< swimlane name="accountant">

< assignment expression="user(bert)" />

< /swimlane>

< swimlane name="shipper">

< assignment expression="user(grover)" />

< /swimlane>

< !-- NODES -->

< start-state name="create new web sale order">

< task swimlane="buyer">

< controller>

< variable name="item"/>

< variable name="quantity"/>

< variable name="address"/>

< /controller>

< /task>

< transition to="evaluate web order" />

< /start-state>

< task-node name="evaluate web order">

< task swimlane="salesman">

< timer duedate="20 seconds" repeat="10 seconds">

< action class="org.jbpm.websale.RemindActor">

< swimlaneName>salesman< /swimlaneName>

< /action>

< /timer>

< controller>

< variable name="item" access="read"/>

< variable name="quantity" access="read"/>

< variable name="address" access="read"/>

< variable name="comment"/>

< /controller>

< /task>

< transition name="ok" to="salefork" />

< transition name="more info needed" to="fix web order data" />

< /task-node>

< task-node name="fix web order data">

< task swimlane="buyer">

< controller>

< variable name="comment" access="read"/>

< variable name="item" />

< variable name="quantity" />

< variable name="address" />

< /controller>

< /task>

< transition to="evaluate web order" />

< /task-node>

< fork name="salefork">

< transition name="payment" to="wait for money" />

< transition name="shipping" to="ship item" />

< /fork>

< task-node name="wait for money">

< task swimlane="accountant">

< controller>

< variable name="item" access="read" />

< variable name="quantity" access="read" />

< variable name="address" access="read" />

< variable name="money received" />

< /controller>

< /task>

< transition to="update books" />

< /task-node>

< node name="update books">

< action class="org.jbpm.websale.UpdateBooks">

< msg>accountancy application is now informed of the payment< /msg>

< /action>

< transition to="salejoin" />

< /node>

< node name="ship item">

< action class="org.jbpm.websale.ShipItem">

< swimlaneName>shipper< /swimlaneName>

< msg>${shipper} now ships ${item} to ${address}< /msg>

< /action>

< transition to="salejoin" />

< /node>

< join name="salejoin">

< transition to="end" />

< /join>

< end-state name="end" />

< /process-definition>

一旦創(chuàng )建新的Web銷(xiāo)售訂單頁(yè)面加載完畢,填寫(xiě)物品數量表格字段,其中cookie作為物品,1作為數量。然后選擇保存結束任務(wù),即可完成創(chuàng )建新的Web銷(xiāo)售訂單任務(wù)。Web應用會(huì )向jBPM發(fā)出信號,要求把Web銷(xiāo)售流程標記轉移到評估Web訂單任務(wù),然后使用輸入數據作為流程變量。這時(shí)候,登錄頁(yè)面會(huì )再次顯示。你會(huì )注意到這樣一則消息:新的任務(wù)已分配給‘ernie’。

現在,選擇以另一個(gè)用戶(hù)登錄鏈接、以ernie的身份登錄。你會(huì )注意到:評估Web訂單任務(wù)呈高亮顯示。把所需地址輸入到注釋字段,然后選擇需要更多信息按鈕。這樣就可以把流程標記轉移到修復Web訂單數據任務(wù),并且讓瀏覽器回到登錄頁(yè)面。

這時(shí)候,可以以cookie monster用戶(hù)的身份登錄,選擇修復Web訂單數據鏈接,就可以查看高亮顯示的任務(wù)如何變化、體現流程標記在執行流程中的位置。

重復流程定義在瀏覽器窗口中顯示的步驟,出現提示時(shí)以相應用戶(hù)的身份登錄,完成填寫(xiě)每項新任務(wù)的表格。你最終會(huì )進(jìn)入到流程末端,這時(shí)就會(huì )出現屏幕,告訴你流程已完成。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
JBoss ESB-jBPM集成
prp中的Jbpm替代方案
jbpm 4.4 表結構
一個(gè)jbpm工作流管理示例(一)
第七章.流程模型
【轉】jBPM4:ForEach的使用
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久