|
對工作流做了一定的研究。并把JBPM工作流管理系統(tǒng)應(yīng)用于中。JBPM的開放性、可擴展性以及圖形化流程設(shè)計使得工作流設(shè)計能快速滿足用戶的需求。 1工作流及工作流管理系統(tǒng) 1.1工作流及工作流管理系統(tǒng)定義 根據(jù)工作流管理聯(lián)盟(wfMC)的定義,工作流(Workflow)就是業(yè)務(wù)過程整體或部分的計算機化或自動化。簡單地說,工作流就是一系列相互銜接、自動進(jìn)行的業(yè)務(wù)活動或任務(wù)。一個工作流的終點可能就是另一個工作流的起點。工作流技術(shù)的主要特點是過程的自動化處理。工作流管理系統(tǒng)是指運行在一個或多個工作流引擎軟件上的用于定義、實現(xiàn)和管理工作流運行的一套軟件。這套軟件按照在計算機中預(yù)先定義好的工作流邏輯推進(jìn)工作流實例的執(zhí)行。 1.2基于JBPM的工作流管理系統(tǒng) JBPM,全稱是JavaBusinessProcessManagement,是基于J2EE的輕量級工作流引擎。工作流引擎是工作流管理系統(tǒng)的核心組件,對流程實例,任務(wù)實例進(jìn)行管理。JBPM是一個開源的、靈活的、易擴展的工作流管理系統(tǒng),用JAVA語言開發(fā),其核心類庫是’J2SE類庫,用于管理流程定義和流程實例執(zhí)行時的運行環(huán)境。JBPM特色之一是采用了自己定義的JPDL(JBossProcessdefinitionlanguage)流程描述語言。JPDL認(rèn)為一個任務(wù)流程可以被看作是一個UML狀態(tài)圖。JPDL就是詳細(xì)定義了這個狀態(tài)圖的每個部分,如起始、結(jié)束狀態(tài),狀態(tài)之間的轉(zhuǎn)換:這種圖形化的流程定義,直觀地描述業(yè)務(wù)流程。JBPM的另一個特色是在持久層使用Hibemate來管理其數(shù)據(jù)庫。這樣,JBPM就將數(shù)據(jù)的管理職能分離出去,自己則專注于商務(wù)邏輯的處理。 2JBPM工作流管理系統(tǒng)在OA中的應(yīng)用 2.1工作流建模 工作流建模可以幫助企業(yè)將實際業(yè)務(wù)流程轉(zhuǎn)化為計算機可以識別的數(shù)字信息,存儲模型,以便工作流運行時調(diào)用,在JBPM中,采用JPDL流程描述語言圖形化建模,如圖1所示。JPDL流程文件保存為processdinination.xml文件。 在JBPM中,流程定義被封裝成流程檔案。流程檔案被傳送到JPDL流程引擎加以執(zhí)行。JPDL流程引擎負(fù)責(zé)遍歷流程圖、執(zhí)行定義的動作、維持流程狀態(tài),并且記錄所有流程事件。JBPM利用狀態(tài)機作為控制狀態(tài)變化的基礎(chǔ),并且擴充活動圖的建模模型。 工作流建模中,主要包括節(jié)點、任務(wù)定義等。在圖中示例中,用到的節(jié)點與對應(yīng)的節(jié)點任務(wù)有:開始狀態(tài)節(jié)點(start-state),任務(wù)為發(fā)文流程實例化的開始:結(jié)束狀態(tài)節(jié)點(end-state),任務(wù)為發(fā)文實例的結(jié)束;任務(wù)節(jié)點(task"node),任務(wù)為來文登記、擬辦意見、分管主任簽批、分管領(lǐng)導(dǎo)審閱、A、B部門領(lǐng)導(dǎo)審核、主辦人匯總處理、置于信息欄公開瀏覽:判定節(jié)點(decision),任務(wù)為是否公開傳閱;自動節(jié)點(node),任務(wù)為歸檔。 2.2工作流應(yīng)用 2.2.1工作流基本要素 工作流基本要素包括參與者、活動、數(shù)據(jù)。參與者是任務(wù)的執(zhí)行者,JBPM目前只需要參與者的ID,對參與者的具體解釋由業(yè)務(wù)應(yīng)用層負(fù)責(zé);任務(wù)創(chuàng)建時可以指定任務(wù)的參與者,也可以不指定,在此應(yīng)用中,沒有采用JBPM的.identity組件:活動(任務(wù))是組成流程定義的節(jié)點,流轉(zhuǎn)就是從一個節(jié)點到另一個節(jié)點的行為;數(shù)據(jù)為對活動的說明,數(shù)據(jù)隨著活動的流轉(zhuǎn)從一個節(jié)點轉(zhuǎn)移到另一個節(jié)點,具體表現(xiàn)形式為存儲在數(shù)據(jù)庫中的工作列表,在JBPM中,持久層數(shù)據(jù)庫的管理交由hibernate負(fù)責(zé)。 2.2.2工作流過程 (1)流程定義(ProcessDefinition),。主要定義流程的業(yè)務(wù)邏輯,包含業(yè)務(wù)節(jié)點和流程,在圖1中,可以看到是一個有向圖結(jié)構(gòu)。計算機能夠理解的是一個xml文件,在JBPM的特有標(biāo)記</process—definition>中定義節(jié)點,以及節(jié)點間的流轉(zhuǎn)。業(yè)務(wù)的一次實際流轉(zhuǎn)過程為一個流程實例,流程實例(Processlnstance)直觀的體現(xiàn)就是存儲在數(shù)據(jù)庫里的數(shù)據(jù),有開始時間和結(jié)束時間。
圖1.工作流模型 (2)流程部署。是把定義好的流程放入計算機系統(tǒng)中。
(5)執(zhí)行流程。流程實例啟動后會產(chǎn)生一系列舊任務(wù)實例信息.這些任務(wù)實例信息就足供參與者來辦理的,為了能找到當(dāng)前用戶的代辦信息,需要獲取任務(wù)列袁。任務(wù)列表通過如下語句獲?。?/p> LisLlist=taskMgmtScssion.findTaskInstance(userID) 根據(jù)某個用戶的ID找到用過戶列表,找到列表后調(diào)出任務(wù)就可以辦理了。 (6)完成任務(wù)。流程調(diào)用TaskInstancc接口end()方法來站束當(dāng)前的任務(wù),和任務(wù)開始時樣,任務(wù)的站束時間會被填寫,接著下一個節(jié)點初始化開始。當(dāng)前任務(wù)的結(jié)束和下一個流程節(jié)點的開始是在一個事物內(nèi)完成,從而保證了數(shù)據(jù)的完整性。 2.2.3人工選擇流程的走向 前面定義公文流轉(zhuǎn)文什的時候.在“是否公開傳閱”節(jié)點,有兩個路由可以選擇,一個路由是轉(zhuǎn)到“分管領(lǐng)導(dǎo)審批”節(jié)點,一個是轉(zhuǎn)到“置于信息公開欄瀏覽”節(jié)點。在xml定義流程代碼中.具體表現(xiàn)為此節(jié)點處有兩條transition語句,可以人工選擇流程的走向。 2.2.4程序自動選擇流程走向 通過設(shè)置decision節(jié)點來自動選擇流欄走向,在xmI定義流程代碼中,具體表現(xiàn)為在decision節(jié)點中定義JBPM特有的</condilion>標(biāo)記來實現(xiàn)選擇條件的判斷,從而實現(xiàn)流程走向的自動選擇。 2.2.5使用泳道為多個任務(wù)指定相同的參與者 當(dāng)一個人處理多個任務(wù),為了避免jaca類的過度膨脹,JBPM提供了泳道(Swimlane)的方式用來解決這一問題。 2.2.6會簽的應(yīng)用 在OA中,為了科學(xué)決策和避免腐敗,對于某些任務(wù)需要多個用戶共同完成,這就是JBPM中的會簽技術(shù)。在圖1中,A部門和B部門領(lǐng)導(dǎo)都批準(zhǔn)公文后,任務(wù)才完成,交由主辦人匯總。在這里可以通過Action動態(tài)創(chuàng)建TaskInstance來“會整”。 3結(jié)束語 JBPM工作流系統(tǒng)應(yīng)用于OA系統(tǒng)當(dāng)中,使得OA有關(guān)流轉(zhuǎn)問題容易實現(xiàn)。JBPM的開放性、可擴展性、圖形化建模等特性,在處理這些工作流模型時,可以快速靈活地部署,及時滿足客戶的需求,是一個理想的工作流引擎。
信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com
|