郝赫,王國娟,李天宇,李猛
(1.國網(wǎng)信通產(chǎn)業(yè)集團 北京中電普華信息技術(shù)有限公司,北京 100192;2.國網(wǎng)上海市電力公司信息通信公司 上海 200436)
基于業(yè)務表單松耦合的工作流架構(gòu)設(shè)計與實現(xiàn)
郝赫1,王國娟1,李天宇2,李猛1
(1.國網(wǎng)信通產(chǎn)業(yè)集團 北京中電普華信息技術(shù)有限公司,北京 100192;2.國網(wǎng)上海市電力公司信息通信公司 上海 200436)
為了有效地控制表單(元素)在工作流節(jié)點的可見性,減少維護或傳輸表單副本的數(shù)量,通過對表單模塊化的定義,提出了一種基于業(yè)務表單松耦合的工作流架構(gòu)。該架構(gòu)由三個功能模塊組成:表單模塊、流程模塊和基礎(chǔ)權(quán)限模塊。模塊獨立協(xié)作,基礎(chǔ)權(quán)限模塊通過頁面權(quán)限和頁面字段權(quán)限控制表單(元素)在流程節(jié)點的可見性。該架構(gòu)已經(jīng)在實際生產(chǎn)中得到應用,最后通過對工作流表單實現(xiàn)流程的剖析和實例講解,驗證了該架構(gòu)的有效性、便捷性和靈活性。
工作流;業(yè)務表單;模塊化;可見性
工作流管理聯(lián)盟 (Workflow Management Coalition,WfMC)給出了工作流定義。工作流是一類能夠完全或者部分自動執(zhí)行的業(yè)務過程,它根據(jù)一系列預定義的規(guī)則來傳遞文檔、信息或任務,并使得此過程在不同的執(zhí)行者之間自動傳遞與執(zhí)行[1]。隨著Web系統(tǒng)廣泛應用于社會各行業(yè),尤其是對各個行業(yè)的信息管理產(chǎn)生了舉足輕重的作用。這就要求工作流不僅能夠傳遞Web表單信息,而且能夠定制Web業(yè)務表單以及控制Web表單元素的可見性。為了滿足上述要求,本文首先基于業(yè)務表單基本定義,從表單和工作流結(jié)合的角度,重新對表單進行了定義。然后從新定義中,引出了一種松耦合的工作流架構(gòu),該架構(gòu)不是簡單地通過副本的思想解決表單元素的可見性[2-3],它通過模塊化的思想,把控制表單可見性功能提取出來,組成一個基礎(chǔ)權(quán)限模塊,用來控制表單(元素)的可見性,同時它包含組織機構(gòu)、用戶、角色、資源等信息,為表單模塊和流程模塊的運行提供基礎(chǔ)支撐。
1.1 基本定義
定義1 表單F={fi|i=1,2,…,M}由表單域fi組成(在工作流業(yè)務系統(tǒng)中,表單域?qū)總€工作流節(jié)點),fi={en|n=1,2,…,N},en表示表單中的基本元素,如文本框、下拉框、復選框等元素[4]。
定義1僅從業(yè)務表單的角度給出定義,下面將基于表單基本定義,從表單和工作流結(jié)合的角度,重新定義表單。
1.2 模塊化定義
定義2 表單F={fb,fp,fi|i=1,2,…,M},其中fb為業(yè)務表單域,fp為表單(元素)訪問權(quán)限域,它們完全獨立于流程,fb={en|n=1,2,…,N},en表示業(yè)務表單域中的基本元素,fp={fo,fu,fr,fe},其中,fo,fu,fr,fe分別表示組織機構(gòu)、用戶、角色、資源等,組織機構(gòu)用于支撐整個工作流業(yè)務系統(tǒng)的組織架構(gòu),用戶就是工作流業(yè)務系統(tǒng)中實際使用者,角色與資源相結(jié)合可以控制用戶對工作流業(yè)務系統(tǒng)的操作以及表單元素的可見性。fi為流程相關(guān)表單域,也稱為相關(guān)數(shù)據(jù)域,它是工作流規(guī)則判斷參數(shù),工作流路由選擇的依據(jù)。fi={fcontex,farg},其包括流程上下文和業(yè)務變量。fcontex包括流程實例、活動實例、工作項等,業(yè)務變量farg決定路由的選擇。
定義2中,將表單分為3個部分:業(yè)務表單域、表單(元素)訪問權(quán)限域和流程相關(guān)表單域。業(yè)務表單域只包含業(yè)務元素,且整個業(yè)務流程中只有一個業(yè)務表單域,稱其為完備業(yè)務表單域,它包含了所有需要在流程節(jié)點輸入的信息,其元素在各個流程節(jié)點的可見性通過表單(元素)訪問權(quán)限域?qū)崿F(xiàn)。表單(元素)訪問權(quán)限域通過把資源(包含表單資源和表單元素資源)分配給角色,然后把不同的角色賦予相應的用戶,就可以控制業(yè)務表單(元素)的可見性。這樣只需要在數(shù)據(jù)庫中存儲一份業(yè)務表單域,不需要存儲或傳遞多個副本[2-3],可以避免因為數(shù)據(jù)庫字段值修改造成的數(shù)據(jù)一致性問題。同時它把業(yè)務表單域和表單域元素的可見性進行了物理分離,邏輯上更加清晰。流程相關(guān)表單域中的流程上下文歸屬于流程一側(cè),業(yè)務變量不需要存儲,可以從業(yè)務表單域中直接或者通過運算提取出來,流程相關(guān)表單域信息可以通過API或者Web Service在表單和流程之間傳遞。
基于定義2,通過將表單劃分為3個部分:業(yè)務表單域、表單(元素)訪問權(quán)限域和流程相關(guān)表單域,從而引出了一種基于業(yè)務表單松耦合的工作流架構(gòu)[2-3],它包含 3個功能模塊:表單模塊、流程模塊和基礎(chǔ)權(quán)限模塊。表單模塊用于業(yè)務表單的建模、展示、調(diào)度和持久化等;流程模塊用于工作流的建模、展示、調(diào)度、監(jiān)控和持久化等;基礎(chǔ)權(quán)限模塊作為整個工作流架構(gòu)的基礎(chǔ)服務層,為表單模塊和流程模塊提供元數(shù)據(jù)(組織機構(gòu)、用戶、角色、資源等)支撐,同時具備控制表單(元素)在流程節(jié)點的可見性功能。
由圖 1工作流架構(gòu)[6-9]和表單定義2可知:把工作流表單系統(tǒng)分成3個獨立的功能模塊:流程模塊、表單模塊和基礎(chǔ)權(quán)限模塊。業(yè)務表單域歸屬在表單模塊;表單(元素)訪問權(quán)限域fp歸屬在基礎(chǔ)權(quán)限模塊,fp組成部分fo,fu,fr,fe分別對應基礎(chǔ)權(quán)限模塊的組織機構(gòu)、用戶、角色、資源等;相關(guān)數(shù)據(jù)域fi歸屬于流程模塊和表單模塊的交互信息,流程上下文fcontex來源于流程模塊的建模信息,業(yè)務變量farg來源于表單模塊的實時運行信息。
流程模塊主要控制業(yè)務表單在各個流程節(jié)點的流轉(zhuǎn),它包括規(guī)則引擎、路由引擎、流程引擎等功能[10-11]。規(guī)則引擎是路由引擎工作的基礎(chǔ),它從流程上下文、業(yè)務變量等相關(guān)數(shù)據(jù)中獲取必要的數(shù)據(jù)作為決策數(shù)據(jù)源,然后通過流程模型預定義的規(guī)則表達式計算出結(jié)果,最后把結(jié)果傳遞給路由引擎。路由引擎根據(jù)規(guī)則引擎計算結(jié)果和路由網(wǎng)關(guān)的類型(單一網(wǎng)關(guān)、并行網(wǎng)關(guān)、多路網(wǎng)關(guān)等),最終做出路由選擇。流程引擎負責對業(yè)務流程解析、調(diào)度、執(zhí)行,在規(guī)則引擎和路由引擎基礎(chǔ)上,驅(qū)動業(yè)務表單在不同流程節(jié)點流轉(zhuǎn),它包含流程的啟動、掛起、結(jié)束等功能以及工作項的新建、拒絕、撤回、代理、委托、改派、暫停、取消等功能。

圖1 工作流架構(gòu)Fig.1 Workflow architecture
表單模塊提供業(yè)務表單制定、數(shù)據(jù)錄入與展示界面,同時提供業(yè)務邏輯實現(xiàn)、數(shù)據(jù)持久化的接口功能[12-13]。表單模塊只負責業(yè)務信息管理,流程流轉(zhuǎn)全部交付給流程負責,交互信息(流程上下文、業(yè)務變量等相關(guān)信息)通過API或者Web Service接口實現(xiàn)。表單(元素)的可見性交付給基礎(chǔ)權(quán)限模塊負責。
基礎(chǔ)權(quán)限模塊控制權(quán)限分為兩個層次:頁面權(quán)限和頁面字段權(quán)限。頁面權(quán)限是用來控制整個頁面的可見性,而頁面字段權(quán)限則是控制頁面里面的字段的可見性。頁面權(quán)限是通過頁面資源和角色[14-15]來控制的,頁面權(quán)限的級別分為可見與不可見兩種。頁面字段權(quán)限是通過資源和標簽來實現(xiàn)的,頁面字段權(quán)限級別分為不可見、只讀和可編輯3種。當用戶A、B、C都擁有頁面資源的角色時,他們就都可以查看到整個頁面,頁面字段權(quán)限在頁面每個字段前添加<bsp:permit id=”<%=attribueName%>”permissionType=”<%=value%>”default PermissionType=”<%=defaultValue%>”>標簽。標簽<bsp: permit>的id值為數(shù)據(jù)庫字段名,權(quán)限類型permissionType值有3個選項invisible、read-only和editable,基礎(chǔ)權(quán)限模塊根據(jù)頁面字段權(quán)限分配結(jié)果,不同頁面字段權(quán)限的角色獲取不同的值,最終實現(xiàn)頁面字段權(quán)限的控制。為了減少頁面字段權(quán)限分配的繁瑣工作,標簽屬性defaultPermissionType可以統(tǒng)一為表單設(shè)置一個默認值。當permissionType值為空時,默認值起作用;否則permissionType起作用。
下面給出運用圖1工作流架構(gòu)實現(xiàn)工作流建模和業(yè)務表單定制以及表單(元素)可見性控制的過程。
步驟1對流程進行建模,根據(jù)實際的業(yè)務場景,確定活動的數(shù)量、網(wǎng)關(guān)類型以及流程規(guī)則,繪制出工作流程圖。流程建模包含四個要素:事件、活動、網(wǎng)關(guān)和連線。事件包含(消息)開始事件、結(jié)束事件和終止事件等,(消息)開始事件是流程啟動的入口點,結(jié)束事件表示一個流程分支的結(jié)束,終止事件表示終止整個流程的執(zhí)行,即所有正在執(zhí)行的活動均會被終止?;顒影ㄈ斯せ顒雍妥詣踊顒拥?,它是流程圖中的一個流程節(jié)點,人工活動表示一個人機交互的業(yè)務處理單元,自動活動表示一個由系統(tǒng)自動完成的業(yè)務邏輯或第三方提供的服務。網(wǎng)關(guān)就是路由選擇,分為單一網(wǎng)關(guān)、并行網(wǎng)關(guān)和多路網(wǎng)關(guān),它們的區(qū)別在于路由選擇的情景不一樣,單一網(wǎng)關(guān)具有排它性,同時只有一條路徑是可行的;并行網(wǎng)關(guān)是指多條路徑同時滿足條件時,才能通過;多路網(wǎng)關(guān)是指有一條路徑滿足條件時,就可以通過,它和單一網(wǎng)關(guān)的區(qū)別是多路網(wǎng)關(guān)不具有排它性。連線就是把事件、活動、網(wǎng)關(guān)連接起來,構(gòu)成完整的工作流程圖,每條連線包含流程規(guī)則。

圖2 工作流業(yè)務表單實現(xiàn)流程Fig.2 Workflow processes to achieve business forms
步驟2確定每個活動節(jié)點的表單域。即確定每個活動節(jié)點上的表單元素以及可見性。每個活動節(jié)點對應一個表單域。
步驟3合并表單域。互斥表單域是兩個及以上活動節(jié)點的角色(或用戶)相同,且表單元素的數(shù)目或者可見性不同。首先,列出這個工作流程圖中的所有角色(或用戶),相同的角色(或用戶)合并為一個;其次,分別列舉出各個角色(或用戶)的互斥表單域,互斥表單域的個數(shù)一般為該角色(或用戶)的活動節(jié)點數(shù)據(jù);再次,求出所有角色(或用戶)的互斥表單域數(shù)目的最大值,具有最大互斥表單域數(shù)目的角色(用戶)稱為基準角色(用戶),基準角色(用戶)的表單域稱為基準表單域;最后,把其它角色(或用戶)的互斥表單域合并到基準表單域中,合并的原則是就近原則,就近原則有兩層含義:一是在工作流程圖中到基準表單域節(jié)點的物理距離(單位為活動節(jié)點個數(shù))近;二是與基準表單域頁面字段權(quán)限屬性(不可見、只讀和可編輯)相近。所有角色(或用戶)互斥表單域合并完后,就形成了擴展表單域,擴展表單域的數(shù)目等于基準表單域的數(shù)目。
有種比較典型的工作流場景:工作流程圖不具有互斥表單域,即工作流程圖各個活動節(jié)點的角色(或用戶)互不相同。如圖3合并表單域中的右邊一條分支,其處理如圖 3所示,把所有活動節(jié)點的表單域合并成一個擴展表單域。

圖3 合并表單域Fig.3 Consolidation form fields
步驟4按照模塊化定義處理表單域。所有擴展表單域的表單元素的集合構(gòu)成業(yè)務表單(注意不包含表單元素的可見性),即定義2中的fb業(yè)務表單域。業(yè)務表單的可見性通過訪問權(quán)限域控制,其原理是通過頁面權(quán)限和頁面字段權(quán)限實現(xiàn),頁面權(quán)限控制的對象就是一個擴展表單域,即擴展表單域是頁面控制權(quán)限的最小單元,而同一個擴展表單域的表單元素可見性通過頁面字段權(quán)限來控制。相關(guān)數(shù)據(jù)域中的業(yè)務變量來源于工作流程活動節(jié)點表單域,而活動節(jié)點表單域就是擴展表單域在該活動節(jié)點角色上的映射。
步驟5由步驟4模塊化定義處理表單域后,輸出結(jié)果分為3部分:業(yè)務表單、訪問權(quán)限和相關(guān)數(shù)據(jù)。業(yè)務表單生成持久化模型;訪問權(quán)限通過頁面權(quán)限和頁面權(quán)限字段來控制表單(元素)的可見性;查看相關(guān)數(shù)據(jù)域中的業(yè)務變量是否影響到工作流程圖流程規(guī)則和路由選擇,如果有影響,則修改被影響的工作流程圖中元素(活動、網(wǎng)關(guān)和連線等)的屬性,完善工作流程圖。
文中從表單和工作流結(jié)合的角度,基于表單的基本定義,對表單物理含義進行深入研究后,給出了表單的模塊化定義,進而引出松耦合的工作流架構(gòu)。該架構(gòu)不僅能夠傳遞Web表單信息,而且能夠定制Web業(yè)務表單以及清晰簡便地控制Web表單元素的可見性。本文最后給出了該工作流架構(gòu)實現(xiàn)上述功能的流程圖以及實例。另外,文中流程架構(gòu)的基礎(chǔ)權(quán)限模塊可以與流程模塊和表單模塊分別組合,形成工作流平臺和業(yè)務表單平臺。
[1]Workflow Management Coalition.Workflow management coalition terminology and glossary[R].Technical Report,WfMC2 TC2101 l,Brussels:Workflow Management Coalition,1996.
[2]唐文忠,莫偉棟.基于共享模型的工作流表單系統(tǒng)設(shè)計[J].北京航空航天大學學報,2008,34(4):391-395.
[3]陳丹,王勇,王瑛.基于工作流的科研協(xié)同平臺的研究與實現(xiàn)[J].計算機工程與設(shè)計,2014,35(3):791-797.
[4]丁蒼峰.輕量級工作流引擎架構(gòu)設(shè)計[J].電子設(shè)計工程,2011,19(6):20-22.
[5]孫承愛,王蕊,王曉雯.基于Flex的動態(tài)工作流建模工具的設(shè)計與實現(xiàn)[J].計算機應用與軟件,2013,30(9):134-136.
[6]陳儒,肖剛,張元鳴,等.基于事務規(guī)則的面向服務工作流模型研究[J].計算機應用與軟件,2014,31(6):5-9.
[7]徐瑞軍.基于XForms的所見即所得的電子表單工具設(shè)計與實現(xiàn)[D].北京:北京交通大學,2008.
[8]張靖康,石宇良,王海豹.擴展的RBAC權(quán)限管理模型的設(shè)計與研究[J].電子設(shè)計工程,2013,21(3):50-53.
Design and implementation of the loose coupling workflow architecture based on business form
HAO He1,WANG Guo-juan1,LI Tian-yu2,LI Meng1
(1.Beijing China Power Information Technology Co.Ltd,Beijing 100192,China;2.Information and Communication Company,State Grid Shanghai Municipal Electric Power Company,Shanghai 200436,China)
In order to control the visibility of the form (element)in the workflow nodes effectively and reduce the number of copies of the form maintained or transferred,a business form loose coupling architecture of workflow is put forward based on the modularized definition of the form.The architecture consists of three functional modules:the form module,process module,basic permissions module.Three modules are independent and collaborative.Basic permissions module controls the visibility of the form (elements)through the page (field)permissions.The architecture has been applied in the practical production.Finally effectiveness,convenience and flexibility of the proposed architecture is verified through process analysis and instance interpretation of workflow implementation.
workflow;business form;modularize;visibility
TP
A
1674-6236(2016)04-0137-03
2015-04-02 稿件編號:201504011
郝 赫(1980—),男,北京人,碩士,高級工程師。研究方向:電力信息化建設(shè)。