專(zhuān)利名稱(chēng):一種基于xpdl的工作流系統(tǒng)的架構(gòu)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及工作流系統(tǒng)的架構(gòu)方法,特別涉及一種基于XPDL的工作流系統(tǒng) 的架構(gòu)方法。
背景技術(shù):
工作流系統(tǒng)包含一系列的公共組件,組件間采用一套被定義好的方法進(jìn)行協(xié) 作;不同的產(chǎn)品在這些公共的組件中,表現(xiàn)出不同的處理能力。為了實(shí)現(xiàn)工作流 產(chǎn)品間的協(xié)同工作,需要在這些組件間制定一套標(biāo)準(zhǔn)的接口和數(shù)據(jù)交換格式。通 過(guò)實(shí)現(xiàn)這些標(biāo)準(zhǔn)接口,可以達(dá)到產(chǎn)品問(wèn)的協(xié)同工作,實(shí)現(xiàn)信息資源異構(gòu)、分布、 松散耦合的特性。
當(dāng)前工作流技術(shù)面臨的主要問(wèn)題
(1) 建模語(yǔ)言存在一定局限適用人群?jiǎn)我?,適合描述特殊的工作流過(guò)程定 義,不能表達(dá)結(jié)構(gòu)相近的過(guò)程模型;
(2) 缺乏靈活性和通用性現(xiàn)代企業(yè)自身業(yè)務(wù)流程的復(fù)雜性向工作流管理系 統(tǒng)提出了更高的要求,例如工作流的適應(yīng)性、流程異常和過(guò)程改進(jìn)等問(wèn)題;
(3) 系統(tǒng)集成困難在分布式、異構(gòu)計(jì)算環(huán)境下,面向虛擬組織的工作流管 理系統(tǒng)組件之間的集成比較困難,成本很高。
發(fā)明內(nèi)容
本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷,提供一種具有良好的 可擴(kuò)展性和通用性的基于XPDL的工作流系統(tǒng)的架構(gòu)方法。
本發(fā)明的目的可以通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn) 一種基于XPDL的工作流系統(tǒng) 的架構(gòu)方法,其特征在于,該架構(gòu)方法包括以下步驟
(1) XPDL過(guò)程的定義與解析;
(2) 組織模型的建立;
(3) JMX管理框架的構(gòu)建;(4) 客戶(hù)端應(yīng)用程序的設(shè)計(jì);
(5) 系統(tǒng)流程監(jiān)控的設(shè)計(jì)。
所述的XPDL過(guò)程定義與解析包括以下步驟
(1) 流程建模;
(2) 基于XPDL的過(guò)程解析。 所述的組織模型的建立包括-
(1) 系統(tǒng)用戶(hù)包括流程發(fā)起者和流程參與者,具體表現(xiàn)為角色、個(gè)人、系 統(tǒng)和組織集體;
(2) 角色包括動(dòng)態(tài)類(lèi)型和靜態(tài)類(lèi)型;
(3) 動(dòng)態(tài)類(lèi)型為根據(jù)需求,動(dòng)態(tài)添加、修改和刪除的動(dòng)態(tài)角色;
(4) 靜態(tài)角色為系統(tǒng)初始化的集合,具有最基本的權(quán)限。 所述的JMX管理框架的構(gòu)建包括以下步驟
(1) 對(duì)每一個(gè)需要管理的資源創(chuàng)建一個(gè)MBean的實(shí)例;
(2) 編寫(xiě)MBean描述文件,該描述文件描述了對(duì)應(yīng)MBean所定義的屬性和
方法;
(3 )通過(guò)讀取MBean描述文件,生成Mbeanlnfo和MBean實(shí)例。 所述的客戶(hù)端應(yīng)用程序采用JSP-Struts-Hibernate框架。 所述的系統(tǒng)流程監(jiān)控的設(shè)計(jì)包括
(1) 流程事件讀入過(guò)程和寫(xiě)入過(guò)程,所述的流程事件表示流程實(shí)例中可監(jiān)控 的活動(dòng)節(jié)點(diǎn);
(2) 在讀入數(shù)據(jù)的過(guò)程中,通過(guò)讀取流程的可視化元數(shù)據(jù),在內(nèi)存中動(dòng)態(tài)生 成圖像,通過(guò)JSP顯示流程實(shí)例的運(yùn)行狀態(tài);
(3) 寫(xiě)入過(guò)程由用戶(hù)設(shè)置流程實(shí)例的監(jiān)控點(diǎn),即對(duì)于一個(gè)流程實(shí)例的所有活 動(dòng)節(jié)點(diǎn),根據(jù)具體需求動(dòng)態(tài)設(shè)置監(jiān)控點(diǎn),過(guò)濾不需要監(jiān)控的節(jié)點(diǎn)。
與現(xiàn)有技術(shù)相比,本發(fā)明選用XPDL規(guī)范的XML作為流程建模語(yǔ)言,設(shè)計(jì)和 實(shí)現(xiàn)了工作流引擎;使用可擴(kuò)展的管理框架JMX,集中對(duì)系統(tǒng)資源和數(shù)據(jù)進(jìn)行管 理和控制;同時(shí),在此基礎(chǔ)上構(gòu)建客戶(hù)端應(yīng)用模塊和流程監(jiān)控組件,設(shè)計(jì)了靈活 的系統(tǒng)用戶(hù)組織模型,實(shí)現(xiàn)了異構(gòu)分布式環(huán)境下的工作流管理系統(tǒng)。該系統(tǒng)基于 組件化的程序設(shè)計(jì)思想,具有良好的可擴(kuò)展性和通用性。
圖1是本發(fā)明一種基于XPDL的工作流系統(tǒng)的組織模型示意圖2是本發(fā)明一種基于XPDL的工作流系統(tǒng)的利用JMX對(duì)系統(tǒng)資源進(jìn)行管理 的結(jié)構(gòu)示意圖3是本發(fā)明一種基于XPDL的工作流系統(tǒng)的客戶(hù)端應(yīng)用程序的框架圖; 圖4是本發(fā)明一種基于XPDL的工作流系統(tǒng)的系統(tǒng)框架圖。
具體實(shí)施例方式
如圖1所示,本發(fā)明使用XPDL作為流程定義語(yǔ)言,在此基礎(chǔ)上,設(shè)計(jì)和實(shí) 現(xiàn)了工作流引擎;采用JSP-Struts-ffibemate框架構(gòu)建客戶(hù)端應(yīng)用程序,作為用戶(hù) 與系統(tǒng)的交互方式,完成可持久化對(duì)象與關(guān)系型數(shù)據(jù)庫(kù)實(shí)體的映射;并利用JMX 框架對(duì)工作流管理系統(tǒng)的信息資源進(jìn)行管理和控制,實(shí)現(xiàn)了可擴(kuò)展的管理框架與 基于XPDL的工作流引擎的有效集成。
一、XPDL過(guò)程定義與解析
(1) 流程建模
系統(tǒng)使用流程建模工具定義工作流程,并生成符合XPDL規(guī)范的流程定義文件。
在文檔結(jié)構(gòu)的設(shè)計(jì)中,Package元素作為根節(jié)點(diǎn),WorkflowProcesses , ExtendedAttributes和PackageHeader元素構(gòu)成了 Package的子節(jié)點(diǎn)。設(shè)想可以把一 類(lèi)工作流程放到同一個(gè)工作包中,這些流程可以共享相同的參與者和數(shù)據(jù)。文檔 主體是WorkflowProcess集合,每一個(gè)WorkflowProcess包含的子節(jié)點(diǎn)是 ProcessHeader, ExtendedAttributes, Activities禾口 Transitions。 ProcessHeader保存 過(guò)程定義的詳細(xì)信息,例如過(guò)程版本、優(yōu)先級(jí)、有效時(shí)間等。Activities是活動(dòng)、 轉(zhuǎn)移的自包含集合, 一個(gè)集合中的轉(zhuǎn)移只能與本集合中的活動(dòng)相關(guān)聯(lián),即活動(dòng)的 轉(zhuǎn)移不能跨越兩個(gè)不相同的活動(dòng)集合。Transitions作為表示活動(dòng)之間關(guān)聯(lián)的集合存 在,它由N個(gè)關(guān)系實(shí)體所構(gòu)成,每個(gè)關(guān)系實(shí)體關(guān)聯(lián)了兩個(gè)節(jié)點(diǎn)實(shí)體。 ExtendedAttributes定義了實(shí)體的擴(kuò)展屬性。
(2) 基于XPDL的過(guò)程解析 系統(tǒng)的流程解析器是工作流引擎運(yùn)作的核心部分,流程定義的過(guò)程元素通過(guò)
解析器生成可持久化對(duì)象,并映射到數(shù)據(jù)庫(kù)中??蛻?hù)端應(yīng)用程序和流程監(jiān)控組件通過(guò)對(duì)數(shù)據(jù)庫(kù)可持久化實(shí)體的操縱實(shí)現(xiàn)流程的管理和監(jiān)控。解析器的工作機(jī)制是
利用XPDLParserFactory對(duì)象對(duì)工作流程包進(jìn)行解析。
流程解析產(chǎn)生WorkflowPackage對(duì)象,利用該對(duì)象可以獲得上傳工作包的所 有流程信息,例如使用getMainProcess()方法獲得工作包中的主過(guò)程 WorkflowProcess對(duì)象。通過(guò)WorkflowProcess對(duì)象可以產(chǎn)生其他相應(yīng)流程實(shí)體, 對(duì)應(yīng)的類(lèi)主要包括WorkflowActivity, WorkflowProcessHeader, WorkflowScript, WorkflowTransition。這些類(lèi)分別實(shí)現(xiàn)了 XPDLElement接口 。
二、 組織模型
系統(tǒng)的組織模型運(yùn)行在工作流引擎之上,并由客戶(hù)端應(yīng)用程序定義用戶(hù)、角 色和權(quán)限之間的關(guān)系,作為用戶(hù)授權(quán)的基礎(chǔ),有效地解決了用戶(hù)和工作流系統(tǒng)協(xié) 同工作的問(wèn)題。
如圖2所示,系統(tǒng)用戶(hù)主要由流程發(fā)起者和參與者構(gòu)成,具體表現(xiàn)為角色、 個(gè)人、系統(tǒng)和組織集體。角色由動(dòng)態(tài)和靜態(tài)類(lèi)型構(gòu)成,系統(tǒng)可以根據(jù)需求,動(dòng)態(tài) 添加、修改和刪除動(dòng)態(tài)角色;靜態(tài)角色是系統(tǒng)初始化的集合,具有最基本的權(quán)限。 用戶(hù)授權(quán)時(shí),可以將流程授權(quán)為角色、組織等一類(lèi)用戶(hù),結(jié)果表現(xiàn)屬于該類(lèi)型中 的所有用戶(hù)都可以參與流程的運(yùn)行;同時(shí),也可以將流程指定為單一用戶(hù)或個(gè)體 用戶(hù),使之具有參與流程進(jìn)行的權(quán)限。
三、 JMX管理框架
使用JMX,將各種被管理的資源封裝成Mbean實(shí)例,實(shí)現(xiàn)了一個(gè)可擴(kuò)展的管 理框架,如圖3所示。
構(gòu)建一個(gè)JMX的管理框架主要步驟
(1) 對(duì)每一個(gè)需要管理的資源創(chuàng)建一個(gè)MBean的實(shí)例;
(2) 編寫(xiě)MBean描述文件,該類(lèi)文件描述了對(duì)應(yīng)MBean所定義的屬性和方
法;
(3) 通過(guò)讀取MBean描述文件,生成Mbeanlnfo和MBean實(shí)例。
四、 客戶(hù)端應(yīng)用程序
基于B / S計(jì)算模型的客戶(hù)端采用JSP-Struts-Hibernate框架,這一架構(gòu)是基于 組件化的程序設(shè)計(jì)思想和可擴(kuò)展的XML標(biāo)記語(yǔ)言的數(shù)據(jù)交換的應(yīng)用,它對(duì)JSP頁(yè) 面信息進(jìn)行配置管理和集中控制,創(chuàng)建了可持久化對(duì)象實(shí)體與關(guān)系型數(shù)據(jù)庫(kù)的映 射,實(shí)現(xiàn)了數(shù)據(jù)表示層、業(yè)務(wù)邏輯層和可持久化層的分離,如圖4所示。五、系統(tǒng)流程監(jiān)控
Workflow Monitor包括流程事件讀入過(guò)程和寫(xiě)入過(guò)程,流程事件表示流程實(shí)例 中可監(jiān)控的活動(dòng)節(jié)點(diǎn)。在讀入數(shù)據(jù)的過(guò)程中,通過(guò)讀取流程的可視化元數(shù)據(jù),在 內(nèi)存中動(dòng)態(tài)生成圖像,通過(guò)JSP顯示流程實(shí)例的運(yùn)行狀態(tài);寫(xiě)入事件可以允許用 戶(hù)設(shè)置流程實(shí)例的監(jiān)控點(diǎn),即對(duì)于一個(gè)流程實(shí)例的所有活動(dòng)節(jié)點(diǎn),根據(jù)具體需求 動(dòng)態(tài)設(shè)置監(jiān)控點(diǎn),過(guò)濾不需要監(jiān)控的節(jié)點(diǎn)。具體實(shí)現(xiàn)方法是客戶(hù)端通過(guò)事件發(fā)生 器調(diào)用遠(yuǎn)程的WebService接口,將監(jiān)控的事件信息寫(xiě)入流程實(shí)例監(jiān)控表中。流程 實(shí)例的監(jiān)控視圖通過(guò)XML進(jìn)行配置管理,XML文件記錄流程實(shí)例和節(jié)點(diǎn)的信息, 包含流程實(shí)例的ID,監(jiān)控節(jié)點(diǎn)的ID、 Name,節(jié)點(diǎn)圖片的狀態(tài)、位置和大小。因 此,通過(guò)讀取XML配置文件和數(shù)據(jù)庫(kù)表中監(jiān)控事件的狀態(tài)可以控制流程視圖的顯 示。
權(quán)利要求
1.一種基于XPDL的工作流系統(tǒng)的架構(gòu)方法,其特征在于,該架構(gòu)方法包括以下步驟(1)XPDL過(guò)程的定義與解析;(2)組織模型的建立;(3)JMX管理框架的構(gòu)建;(4)客戶(hù)端應(yīng)用程序的設(shè)計(jì);(5)系統(tǒng)流程監(jiān)控的設(shè)計(jì)。
2. 根據(jù)權(quán)利要求1所述的一種基于XPDL的工作流系統(tǒng)的架構(gòu)方法,其特 征在于,所述的XPDL過(guò)程定義與解析包括以下步驟(1) 流程建模;(2) 基于XPDL的過(guò)程解析。
3. 根據(jù)權(quán)利要求1所述的一種基于XPDL的工作流系統(tǒng)的架構(gòu)方法,其特 征在于,所述的組織模型的建立包括(1) 系統(tǒng)用戶(hù)包括流程發(fā)起者和流程參與者,具體表現(xiàn)為角色、個(gè)人、 系統(tǒng)和組織集體;(2) 角色包括動(dòng)態(tài)類(lèi)型和靜態(tài)類(lèi)型;(3) 動(dòng)態(tài)類(lèi)型為根據(jù)需求,動(dòng)態(tài)添加、修改和刪除的動(dòng)態(tài)角色;(4) 靜態(tài)角色為系統(tǒng)初始化的集合,具有最基本的權(quán)限。
4. 根據(jù)權(quán)利要求1所述的一種基于XPDL的工作流系統(tǒng)的架構(gòu)方法,其特 征在于,所述的JMX管理框架的構(gòu)建包括以下步驟(1) 對(duì)每一個(gè)需要管理的資源創(chuàng)建一個(gè)MBean的實(shí)例;(2) 編寫(xiě)MBean描述文件,該描述文件描述了對(duì)應(yīng)MBean所定義的屬性 和方法;(3) 通過(guò)讀取MBean描述文件,生成Mbeanlnfo和MBean實(shí)例。
5. 根據(jù)權(quán)利要求1所述的一種基于XPDL的工作流系統(tǒng)的架構(gòu)方法,其特 征在于,所述的客戶(hù)端應(yīng)用程序采用JSP-Stmts-Hibernate框架。
6. 根據(jù)權(quán)利要求1所述的一種基于XPDL的工作流系統(tǒng)的架構(gòu)方法,其特征在于,所述的系統(tǒng)流程監(jiān)控的設(shè)計(jì)包括(1) 流程事件讀入過(guò)程和寫(xiě)入過(guò)程,所述的流程事件表示流程實(shí)例中可 監(jiān)控的活動(dòng)節(jié)點(diǎn);(2) 在讀入數(shù)據(jù)的過(guò)程中,通過(guò)讀取流程的可視化元數(shù)據(jù),在內(nèi)存中動(dòng) 態(tài)生成圖像,通過(guò)JSP顯示流程實(shí)例的運(yùn)行狀態(tài);(3) 寫(xiě)入過(guò)程由用戶(hù)設(shè)置流程實(shí)例的監(jiān)控點(diǎn),即對(duì)于一個(gè)流程實(shí)例的所 有活動(dòng)節(jié)點(diǎn),根據(jù)具體需求動(dòng)態(tài)設(shè)置監(jiān)控點(diǎn),過(guò)濾不需要監(jiān)控的節(jié)點(diǎn)。
全文摘要
本發(fā)明涉及一種基于XPDL的工作流系統(tǒng)的架構(gòu)方法,該架構(gòu)方法包括以下步驟XPDL過(guò)程的定義與解析;組織模型的建立;JMX管理框架的構(gòu)建;客戶(hù)端應(yīng)用程序的設(shè)計(jì);系統(tǒng)流程監(jiān)控的設(shè)計(jì)。與現(xiàn)有技術(shù)相比,本發(fā)明選用XPDL規(guī)范的XML作為流程建模語(yǔ)言,設(shè)計(jì)和實(shí)現(xiàn)了工作流引擎;使用可擴(kuò)展的管理框架JMX,集中對(duì)系統(tǒng)資源和數(shù)據(jù)進(jìn)行管理和控制;同時(shí),在此基礎(chǔ)上構(gòu)建客戶(hù)端應(yīng)用模塊和流程監(jiān)控組件,設(shè)計(jì)了靈活的系統(tǒng)用戶(hù)組織模型,實(shí)現(xiàn)了異構(gòu)分布式環(huán)境下的工作流管理系統(tǒng)。該系統(tǒng)基于組件化的程序設(shè)計(jì)思想,具有良好的可擴(kuò)展性和通用性。
文檔編號(hào)G06F9/44GK101620528SQ20081003989
公開(kāi)日2010年1月6日 申請(qǐng)日期2008年6月30日 優(yōu)先權(quán)日2008年6月30日
發(fā)明者謐 馮 申請(qǐng)人:上海全成通信技術(shù)有限公司