999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于自定義表單的工作流過程定義分析與設計

2009-12-31 00:00:00范會聯
計算機應用研究 2009年9期

摘 要:為了實現自定義表單與工作流過程的有效結合,提出了一種基于自定義表單的工作流系統體系結構。首先分析了表單模型的定義及表單系統的設計方法,然后將工作流處理過程定義為擴展后的流程節點的有序集合,通過在工作流過程描述中將表單ID與流程實例聯系起來的方法實現了表單中包含基本業務數據而流轉規則在流程節點中定義的松耦合結合方式,從而提高了工作流系統的靈活性和擴展性。

關鍵詞:表單模型; 工作流; 節點類型; 引擎

中圖分類號:TP311.5文獻標志碼:A

文章編號:1001-3695(2009)09-3372-03

doi:10.3969/j.issn.1001-3695.2009.09.048

Analysis and design of workflow process definition based on custom form

FAN Hui-lian

(Dept. of Computer Science, Yangtze Normal University, Chongqing 408100, China)

Abstract:In order to effectively integrate custom form and workflow process, put forward a architecture of workflow based on custom form. First, analyzed the design methods of form mode and form system. Then, defined workflow process as orderly collections of expansion process nodes, and through link the form ID and process instance which defined in workflow describes to achieve loosely coupled — form contains the basic business data and flow node in the process contains the control rules ,so as to enhance the flexibility and scalability of workflow system.

Key words:form model; workflow; node type; engine

作為實現企業信息化的重要底層支撐技術,流程建模是工作流管理應用于電子商務、企業資源規劃等信息管理領域中必須解決和無法回避的一個關鍵問題[1]。近年來基于流程引擎技術構建的應用系統越來越受到客戶的追捧和認可,能否支持 流程可定制、可更改、可運行,也逐漸成為客戶衡量應用系統靈活性、可擴展性的主要標準之一。在基于Web的工作流系統中,用戶在工作流程中各個節點需要查看和填寫的內容通常被包含于表單之中,實際應用中,由于內容的不同,用戶可能使用的表單是多種多樣的。有些工作流產品會預先定義好一組表單模板,然后限定用戶在這些模板中進行選擇。這種做法雖然容易實現,但難以滿足用戶需求的變更。本文提出另一種表單與工作流按松耦合方式實現用戶自定義表單并能與工作流有效結合的工作流過程定義方法及工作流系統結構。

1 表單模型定義及表單系統設計

1.1 表單模型定義

在基于Web 的工作流系統中,工作流和外部應用都可以訪問的、與應用領域相關的數據一般使用表單表示。將表單視為一張HTML頁面,它是工作流系統可以訪問和控制的數據域集合。因此,工作流的處理過程,就是該頁面在多個用戶之間傳遞、填充數據的過程。基于這一處理方式,可以將表單視為多個表單項的組合,每一個表單項都是用戶需要填寫的內容。通過一系列的要素,可以對表單項進行定義。

為了簡化起見,討論每個工作流程中只允許使用一張表單的情況。在這種情況下,用戶只需要為一個新定義的流程指定一張表單即可,而不是為每一個節點都指定相應的表單。可以證明,在不同節點使用多張表單的工作流,可以轉換成在所有節點都使用同一表單的工作流。

假定某一工作流中包含了m個節點(N1,N2,…,Nm),其中節點Ni所使用的表單Fi中,共含有ti個表單項(Ei1,Ei2,…,Eiti),則可以重新定義一張表單F′,它包含Fi(i=1,2,…,m)個表單的所有表單項,從而在每個節點均使用表單F′,并且定義如下規則:當且僅當在節點Ni,表單項Fi(Ei1,Ei2,…,Eiti)是可用的。因此,在此新規則下的工作流與原有的工作流等價[2]。

定義 表單F={Fi︱i=1,2,…,s},由一系列表單域Fi組成,每個表單域由2個表單元素和相應的處理規則組成,即Fi={〈Ei,Rules〉。其中:E表示表單中的元素,如文本框、下拉框、復選框等;Rules={ruleType,rule},ruleType表示規則類型分為運算規則、類型檢查規則以及流程節點處理規則。其中,運算規則用于實現表單元素之間的算術運算、字符串運算、邏輯運算等,類型檢查規則主要用于保證輸入數據類型的正確性。流程節點處理規則控制該域應在流程中的哪些節點處理,即一個表單域可以在多個流程節點中顯示或編輯。各個節點間根據表單中域的劃分及域中表單元素的rule分別進行控制。

1.2 表單系統設計

表單系統設計采用分層建模的方法進行設計與開發,分為數據層建模、業務層建模以及表現層建模三個層次,在實現思想上,區別于傳統的基于代碼生成的方式,表單系統采用基于描述的方法來提高表單的可維護性、可擴展性以及靈活性。在體系結構選擇上,表單系統將系統中的各個支撐功能按模塊進行劃分,采用Web service及MBean等技術將支撐功能發布成一個個的服務以實現系統的松耦合部署。其中MBean用來存放并管理表單模型,Web service用來提高系統的可維護性及減輕單個系統的負載。在模塊劃分上,表單系統分為兩大模塊,即表單定制模塊和表單引擎模塊,表單定制模塊采用XML來描述表單數據模型、業務模型和表示模型[3]。

表單引擎模塊捕獲客戶端提交的操作,調用相關支撐服務進行處理,包括獲取表單實體信息和提交表單實體信息,從而完成一次用戶的交互。完成表單的提交后,如果表單是為工作流服務的,則表單引擎將處理結果傳遞給工作流引擎,完成一個任務的提交流程。表單引擎包括表單模型解析、表單模型—表單實體映射、表單實體數據的處理(包括表單實體數據校驗、表單實體數據的引用數據的生成、表單實體數據的XML2SQLMap持久化、表單實體數據的訪問控制、表單實體數據的操作記錄等)以及表單相關服務的調用。為實現系統的松耦合結構,上述各個功能以Web service的形式發布,表單引擎負責調度這些服務來驅動表單系統的流轉。

2 工作流過程定義

2.1 定義新的流程節點

工作流處理過程包括一組活動及其之間的聯系、過程的起始和終止規則以及與每個活動相關的信息,即流程事務信息、流程順序、流程的約束條件三個方面。其中流程事務信息代表業務處理過程中一個實際的處理步驟,在工作流過程描述中通常用一個流程節點表示;流程順序表示業務流程的執行順序;流程的約束條件規定了實際業務處理過程中各個處理步驟之間處理權限傳遞所應遵循的規則[4]。因此,工作流過程定義歸納為是對工作流過程描述、活動、導航規則、參與者以及相關數據的定義。過程描述是對工作流過程惟一標志符、名稱和解決的問題等信息的描述;活動表示需要由一些相關資源處理,或者由計算機應用程序處理的任務集合;導航規則用于將活動相互聯系起來,實現活動之間的導航,表明活動之間的邏輯跳轉順序和條件。參與者描述了在過程定義中各個活動所需要的參與者;工作流相關數據是指那些在流程運行期間,各個流程實例內創建及使用的數據,這些數據可被參與者、活動和導航規則所訪問[5]。

本文基本思想是將工作流處理過程描述為處理節點的有序集合。通過擴展流程事務信息(即流程節點)所包含的內容,使其將流轉順序和約束條件信息包含進來,通過流程節點一種設計元素來完成對工作流的定義。新的方法是將擴展后的流程節點結構定義為復合多元組Node=(nodeID,Attribute,Pre,Next,Type,Status,Pcondition,Ncondition),結構如圖1所示。

Attribute={a1,a2,…,an}代表流程事務的屬性集合,包含流程節點名稱、參與者或者角色信息,以及相關數據,即a={nodeName,role,data}。

Type={only-next,only-pre,or-split,and-split,switch-case,or-join,and-join}用于記錄此流程節點的類型[6],其目的是通過在節點中設置流程節點類型標志來表示流程順序和約束條件。根據流程節點的前驅節點與后繼節點的數目和對節點處理權限傳遞方式的不同,將流程節點分為六種類型:only-next表示該節點至多存在一個后繼節點;only-pre表示該節點至多存在一個前驅節點;or-split表示該節點存在兩個或兩個以上的后繼節點,并且在該節點完成處理后,將處理權傳遞給其后繼節點中的任一個即可;switch-case表示該節點存在兩個或兩個以上的后繼節點,在該節點完成處理后,根據定義的判斷條件,如果條件滿足則將工作流導向不同的分支;and-split表示該節點存在兩個或兩個以上的后繼節點,并且在該節點完成處理后,將處理權同時傳遞給其所有后繼節點;or-join表示該節點存在兩個或兩個以上的前驅節點,并且只要有一個前驅節點完成處理后該節點即獲得處理權,在處理回退操作時僅需要將處理權回退給前驅節點中的一個即可;and-join表示該節點存在兩個或兩個以上的前驅節點,并且需要所有前驅節點都完成處理后該節點才能獲得處理權,在處理回退操作時需要將處理權回退給所有前驅節點。

Status={inactive,active,done}用于描述流程節點的狀態信息,inactive表示該節點尚未獲得處理權,active表示該節點獲得處理權并等待執行,done表示該節點已經處理結束并已成功轉移處理權給其他節點。

Pcondition為流程從該節點轉移到前驅節點的回退條件,Ncondition為流程從該前驅節點轉移到后繼節點的前進條件。

Pre = {pre1,pre2,…,pren}為此流程節點的前驅節點引用集合,Next={next1,next2,…,nextn}為此流程節點的后繼節點引用集合。

通過擴展流程節點所包含的內容,使工作流所必需的流程順序及約束條件信息被直接合并到了流程節點的定義中,從而使流程節點成為工作流的關鍵結構,因此,工作流過程就是一系列處理操作的有序集合,而過程定義也可以描述為“一個開始節點+一系列有序的中間節點+一個結束節點”,節點間的觸發、依賴關系保障了工作流過程正確有序地執行。同時結合放在工作流描述文件中頭部的全局控制定義(如流程用到的表單ID、優先級等對工作流屬性信息的描述和對其涉及的資源信息的描述),就構成了完整的業務流程。

2.2 工作流引擎的運轉

工作流引擎啟動后,即處于無限循環處理過程中,除非發生系統異常或者用戶中止引擎運行。一次完整的節點處理過程包括[7]:

a)查看控制信息。在每個循環的開始引擎必須先查看控制信息表(如有無撤銷流程實例操作等)。如果當前沒有用戶發來的控制信息則進入實例表讀取下一實例;否則必須執行控制信息表中的工作流控制命令,執行完畢后進入實例表。

b)查看實例表獲取當前執行節點。所有流程實例按優先級進入實例隊列中,根據運行情況,獲取應處理節點信息。如是結束節點,則結束當前實例。

c)節點處理操作

(a)檢測當前節點觸發條件是否達到,相關數據是否完備。

(b)按照當前節點處理描述,進行節點操作,如果操作成功則觸發目標節點,并傳送相關數據。

d)將相關數據信息、交互信息返回給用戶,并更改節點狀態和流程實例隊列。

3 基于自定義表單的工作流系統

工作流過程與表單的聯系點在于表單處理數據的方式及由流程根據表單處理結果而帶來的表單流轉。對應一個具體工作流實例,通過給其指定一個表單實例的方式將兩者聯系起來。表單引擎捕獲表單客戶端發出的數據請求,然后通過解析表單定義來處理表單數據;工作流引擎根據表單處理結果,將表單進行流轉,執行流程的下一步。其中表單的數據僅涉及基本業務數據,工作流所涉及的控制數據在流程節點中定義。

整個工作流系統包含兩大引擎(即表單引擎和工作流引擎)、兩大模型定義庫(即工作流模型定義庫和表單模型定義庫)以及數據訪問層,工作流系統的數據持久化建立在公共的持久層之上并針對各種需要進行特殊處理。基于自定義表單的工作流系統整體結構[8]如圖2所示。

流程模型與表單模型的定義采用XML進行描述,在定義這兩個模型時需要進行協調,即在定義流程模型時需要修改表單定義中表單域的流程節點處理規則,如在某個流程節點是否呈現等。而流程模型在定義時也要結合具體業務規則并引用指定表單定義中相應表單域的值來決定回退條件和前進條件,從而使流程引擎在處理表單時能捕獲表單域的值并決定流轉條件以及在某階段是否呈現。

流程調度引擎和表單調度引擎之間的交互通過工作流—表單交互接口來實現表單實體數據和流程數據的傳遞。表單引擎捕獲客戶端請求,將客戶端提交的請求數據根據表單定義模型解析、校驗并持久化。流程引擎通過工作流—表單交互接口獲取控制流需要的表單數據,然后根據執行結果和相應規則執行流程的調度,并生成任務列表。

流程實例列表,即工作流流轉過程中系統分配給任務執行人的工作任務列表。每個流程實例通過指定的表單ID調用表單引擎從而定位到具體的任務信息,即該流程實例需要處理的表單實例。表單引擎捕獲請求后調用數據持久化服務和表單加載服務進行處理并將處理結果呈現給用戶,表單引擎在加載表單時,根據表單定義中表單域的相應規則決定表單中每個域的值以及是否在該節點顯現;當用戶進行表單的操作后,流程引擎根據表單處理結果并結合流程節點中定義的流轉規則決定流程的流轉順序,從而完成流程任務在某個階段的處理。

4 實例

該工作流系統的原型已在某學校的辦公自動化系統中成功實施。圖3是一個需經過部門領導和財務領導審核的財務報銷流程的表單設計主要內容及流程設計。財務報銷表單在整個報銷流程中流轉,通過控制表單中元素的處理規則實現在整個流轉過程是否顯示。其主要內容設計如表1所示。

5 結束語

本文提出了一種采用表單模型和工作流過程定義相結合、表單引擎和工作流引擎相分離、通過表單—工作流交互接口使兩者結合從而使表單在工作流系統中完成流程流轉和任務處理的方法,該方法使表單服務于流程系統,同時多個流程節點共享一個表單,從而減少了表單的定義,方便了表單的維護。文中所描述的方法可以滿足目前工作流應用的通常需求,也可以在本文的基礎上作進一步改進,以滿足更廣泛的實際應用要求。

參考文獻:

[1]李紅臣,史美林.工作流模型及其形式化描述[J].計算機學報,2003,26(11):1458-1459.

[2]殷武峰,武友新.基于工作流系統的表單研究和應用[J].微機算信息,2007,23(12-3):186-187.

[3]PERERA K S P.Temenos[EB/OL].(2005-11-06)[2008-11-20].http://www.microsoft.com/china/MSDN/library/architecture/AJ1Metadat.mspx.

[4]楊永健,韓鴻雁,韓鴻鶯. 辦公自動化中工作流過程定義的設計與實現[J]. 四川大學學報, 2007,39 (1):152-154.

[5]Workflow Management Coalition.WfMC-TC-1025, Workflow process definition interface XML process definition language[S].2002.

[6]RUSSELL N, TERHOFSTEDE A H M. Workflow control-flow patterns[EB/OL].(2006-06-22) [2008-12-03].http://www.workflowpatterns.com/documentation/documents/BPM-06-22.pdf.

[7]金鑫,許靜,李學孟,等.基于XML的工作流引擎的設計與實現[J].計算機工程,2007,33(23):72-73.

[8]唐文忠,莫偉棟. 基于共享模型的工作流表單系統設計[J]. 北京航空航天大學學報, 2008,34(4):391-394.

主站蜘蛛池模板: 这里只有精品在线播放| 欧美亚洲一区二区三区在线| 欧美天堂久久| 久久国产精品77777| 国产在线无码一区二区三区| 色综合久久88色综合天天提莫| 亚洲男女天堂| 国产福利在线观看精品| 午夜免费视频网站| 精品亚洲国产成人AV| 国产毛片高清一级国语| 欧亚日韩Av| 刘亦菲一区二区在线观看| 亚洲欧美日韩天堂| 亚洲日本精品一区二区| 久久精品亚洲中文字幕乱码| 国产日韩精品一区在线不卡| 国产福利拍拍拍| 四虎国产精品永久在线网址| 国产午夜精品一区二区三区软件| 欧美国产日韩另类| 精品少妇三级亚洲| 一级毛片在线播放免费观看| 午夜人性色福利无码视频在线观看| 国产成人91精品| 黄色三级网站免费| 欧美成人国产| 亚洲va视频| 看国产一级毛片| 992tv国产人成在线观看| 欧美国产日产一区二区| 国产91在线|日本| h网站在线播放| 日本在线亚洲| 欧洲亚洲一区| 思思热精品在线8| 日韩成人免费网站| 免费在线观看av| 国产日本欧美亚洲精品视| 又猛又黄又爽无遮挡的视频网站| 色综合成人| 午夜毛片免费看| 色综合天天综合中文网| 国产成熟女人性满足视频| 欧美综合激情| 这里只有精品国产| 免费观看男人免费桶女人视频| 中国美女**毛片录像在线| 国产福利免费视频| 免费高清自慰一区二区三区| 国产菊爆视频在线观看| 67194成是人免费无码| 欧美A级V片在线观看| 国产极品嫩模在线观看91| 狠狠亚洲五月天| 91精品国产一区自在线拍| 99热这里都是国产精品| 日本a∨在线观看| 成人免费黄色小视频| 精品国产污污免费网站| 蜜臀av性久久久久蜜臀aⅴ麻豆| 亚洲无码精彩视频在线观看| 国产乱人免费视频| 欧美日本在线观看| 国产麻豆精品久久一二三| 日本不卡在线播放| 国产人妖视频一区在线观看| 呦视频在线一区二区三区| 久久这里只有精品66| 99久久精品免费看国产电影| 一级香蕉视频在线观看| 2024av在线无码中文最新| 制服无码网站| 在线视频一区二区三区不卡| 人妻丝袜无码视频| 亚洲成人动漫在线观看 | 欧美一区福利| 色视频久久| 国产一区成人| 一本久道久综合久久鬼色| 午夜福利免费视频| 国产亚洲欧美在线中文bt天堂 |