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

微內核工作流引擎的設計與實現*

2015-03-14 09:23:30何榮茂薛永奎
艦船電子工程 2015年2期
關鍵詞:辦公自動化引擎系統

何榮茂 薛永奎 李 洋

(中國洛陽電子裝備試驗中心 洛陽 471003)

?

微內核工作流引擎的設計與實現*

何榮茂 薛永奎 李 洋

(中國洛陽電子裝備試驗中心 洛陽 471003)

為了克服傳統工作流引擎構建不靈活和擴展不方便的缺點,論文探討了利用Windows .NET框架進行工作流引擎設計的方法。該方法采用分層思想,把工作流引擎分為流程內核、數據訪問層和對外接口層三部分,實現了微內核的工作流引擎。設計完成的工作流引擎與傳統工作流引擎相比,有更好的靈活性和擴展性。同時把該工作流引擎應用到實際的辦公自動化系統中,表現出較好的穩定性和擴展性。

微內核; 工作流引擎; 業務流程; 業務邏輯

Class Number TP3

1 引言

辦公自動化是以先進的科學技術為支撐的一門綜合性技術,它將現代化辦公和計算機技術、網絡技術有效結合起來,是信息化社會的必然產物。目前,國外發展比較成熟的辦公自動化系統有兩個:一是IBM的Lotus Domino/Notes,其本身具有強大的工作流設計能力。利用Lotus Domino/Notes既可以實現C/S模式的辦公自動化系統,又可以適應B/S的應用模式。但Lotus Domino/Notes的靈活性較差,外在表現形式單一,開發成本高。二是Microsoft的Exchange Server,它與Lotus Domino/Notes有許多相似之處,同樣具有強大的工作流設置能力[1,4,7]。但基于Exchange Server的二次開發難度較大,目前在市場上單純基于Exchange Server的工作流系統比較少見。穩定高效的工作流系統是這兩個辦公自動化系統的主要優勢,但由于這兩個辦公自動化系統開發的較早,目前靈活性較差,已不能適應辦公流程的動態變化。

Windows .NET框架具有很強的擴展性和靈活性,與各類應用程序可進行數據傳遞,能夠與操作系統平臺進行良好的結合,能夠方便地使用各類中間件,在外在表現形式上十分靈活,開發難度和成本低。本文介紹了基于Windows .NET框架的工作流引擎設計方法,設計完成了具有微內核的工作流引擎。該工作流引擎降低了各組件的耦合度,使得流程引擎更加容易進行功能擴展,并且整個系統運行更加穩定。

2 工作流與工作流引擎

2.1 工作流

工作流(Workflow)是一類能夠完全或者部分自動執行的經營過程,它根據一系列過程規則使文檔、信息或任務能夠在不同的執行者之間進行傳遞與執行。因此,工作流反映了業務過程如下幾個方面的問題,即業務過程是什么(有哪些活動、任務組成)、怎么做(活動的執行條件、規則以及交互的信息,也就是控制流和信息流的定義)、由誰來做(人或者計算機應用程序,也就是組織角色的定義)、做得怎樣(通過工作流管理系統進行監控)[5]。圖1說明了與工作流有關的一些術語及其之間的相互關系[3,6,8~9]。

圖1 工作流基本概念間的關系

1) 業務過程是指為了實現某個目標,在參考者和組織機構之間進行文檔、信息、任務的傳遞或處理而進行的一系列相互關聯的活動。

2) 過程定義即過程建模,是業務過程的計算機形式表示,定義的是過程運行中涉及到的各種參數。

3) 活動是組成過程的一個邏輯步驟,也稱為工作流的一個環節。根據是否需要人工提供數據或完成某些任務可以分為人工活動和自動活動兩類。其中人工活動是指業務執行過程中無需借助計算機就能實現的活動,而自動活動是指需借助計算機才能實現的活動。

4) 過程實例/活動實例是指實際運行中的一個過程/活動。每個實例代表一個能獨立控制執行,具有內部狀態的線程,可被外界通過標識進行存取訪問。

5) 工作項是在過程實例中等待參與者的活動實例。

6) 調用的應用工具是指活動實例執行過程中被調用的計算機工具或應用。

2.2 工作流引擎

工作流執行部件,即工作流引擎(Workflow Engine),負責解釋過程定義、創建模型實例、調度模型實例任務、推進流程等。作為工作流的核心,其應能提供以下幾個方面的功能支持:解釋過程定義;創建過程實例并控制其執行;調度各項活動;為用戶工作表添加工作項;通過應用程序接口(API)調用應用程序;提供監督和管理功能等[2,5,11]。

3 工作流引擎的設計

傳統的工作流引擎沒有突出內核概念,把涉及工作流的各種功能直接整合在工作流引擎中,如任務分配、條件計算、事項操作和數據保存等,如圖2所示[6,10]。這種架構有個明顯的缺點,就是在某一個功能需要擴展時需要重構工作流的代碼,擴展性不強。

圖2 傳統工作流引擎

為了降低流程引擎中各個組件的耦合度,使得流程引擎更加容易進行功能的擴展,設計了圖3所示的微內核工作流引擎架構(兩端系統邊界間部分),該架構把工作流引擎劃分為引擎內核、數據訪問和外部接口三個層,實現了復雜業務流程與工作流引擎內核的剝離,易于功能的擴展。

圖3 微內核工作流引擎架構

3.1 流程引擎內核

3.1.1 工作流程模型

流程引擎內核主要包括流程定義、流程分析和流程執行三部分,其中流程定義采用典型的有向狀態機模型,把流程分解為多個狀態,各個狀態之間定義若干個流轉路徑。完整的一個流程從唯一一個起始狀態開始,經過若干個狀態,結束于某一個終止狀態。流程模型如圖4所示。

圖4 工作流程模型

流程從起始節點開始,通過不停的激活操作,使得流程在不同的狀態之間進行流轉。流程的狀態支持以下三種激活操作:

1) 人工方式。這是較常見的方式,即在流程產生下一步活動時,同時為相應的人員分配一個需要處理的任務(如填寫審批意見等)。在人員沒有完成相關任務的時候,流程不會產生任何變化,處于一個停滯狀態;當人員對任務進行相應操作后,再次激活了流程,使流程繼續流轉下去,產生新的狀態。

2) 自動方式。這種方式不需要人的干預,當流程流轉到自動狀態時,流程并不產生任何人工任務,系統通過內部的自動計算,直接進行再次的流轉操作,產生新的狀態。

3) 定時觸發。這種方式通過在人工方式的基礎上添加定時器實現,當配置的定時器觸發的時候,系統強行結束當前的人工任務,并進行流程的流轉。這通常應用于有時間限制的任務中。

3.1.2 流程流轉模型

設計完成的工作流引擎支持以下六種模型的流程流轉:串行流轉、自循環流轉、自動流轉、條件選擇流轉、同步聚合流轉和動態自動流轉。圖5描述了各種流轉模型。

圖5 流程流轉模型

1) 串行流轉。這是最簡單的流轉模型,按照順序依次流轉。

2) 自循環流轉。流程可以流轉到自身的狀態,以達到反復執行某一個任務的目的。

3) 自動流轉。在流轉過程中有個自動狀態,條件的判斷有系統自動完成,系統根據計算的結果選擇唯一的一條遷移路徑進行流程的流轉。

4) 條件選擇流轉。某一狀態有多條路徑可供選擇,每條路徑都帶有一定的條件判斷,但是每次只能選擇其中的一條路徑進行流程的流轉。

5) 同步聚合流轉。和分支流轉模型組合使用,在聚合節點等待所有分支的到來,在所有分支執行完成以后,才激活流程的后續狀態,繼續往下執行。聚合節點可以配置成自動狀態,也可以配置成一個需要人工參與的普通任務。

6) 動態自動流轉。流程在某些條件滿足的場景下,可以不按照預定義的流程流轉路徑,進行自動跳轉。

3.1.3 流程分析

流程分析主要具有兩種功能,第一個功能是對完成定義的流程進行語法分析,確定其是否滿足流程定義的要求,對于不滿足要求的流程,系統將給出相應提示;第二個功能是對正在執行的流程進行分析,判斷其當前工作狀態和下一工作狀態,為流程的執行提供基礎。對于定義正確的流程,內核只對其語法分析一次,其后的分析都是基于狀態分析。

3.1.4 流程執行

流程執行是在流程完成分析的基礎上進行流程狀態的改變,從而完成流程的流轉。在流程進行流轉的同時,將觸發相應的任務,直到達到終止狀態。為了更好地進行解耦合,在內核中只對觸發的任務進行定義,而具體的觸發任務事件在外部接口層的任務接口中完成。

3.2 數據訪問層

數據訪問層是工作流引擎與外部數據進行交互的接口,它封裝了工作流引擎訪問外部數據的業務邏輯。由于流程狀態、活動實例、審批意見等信息都存儲于外部介質中,所以工作流引擎需要頻繁的訪問外部數據。為了減少I/O帶來的性能損失,對該組件進一步封裝,設計了語句檢查和操作調度模塊。其中語句檢查模塊在對語法進行檢查的同時還對語句使用率進行檢查,按照語句使用率進行排序,對頻繁與外部進行數據交換的語句進行緩存。同時為了更好地適應外部不同的數據源,數據訪問層還根據不同的數據庫訪問接口集成了相應的數據訪問適配器,便于系統與外部不同數據源間的數據互操作。

3.3 對外接口層

對外接口層主要完成工作流引擎中流程和任務的對外操作邏輯封裝,為具體的業務流程提供底層支持,其主要包括流程對外接口和任務對外接口。其中流程對外接口主要提供操作流程實例的操作,任務對外接口主要提供操作任務實例的操作。在流程對外接口中設計了包括啟動流程、掛起流程在內的15個常用操作,在任務對外接口中設計了包括聲明任務、查詢任務在內的16個常用操作。這些操作基本涵蓋了常用的流程和任務操作,可完成流程和任務間的高效轉換和執行。

4 工作流引擎的實現

在系統開發過程中,采用VS 2010作為開發環境,C#作為開發語言,同時使用SQL Server2005作為后臺數據庫,采用面向對象的思想,對流程和業務邏輯進行封裝,完成了微內核的工作流引擎。同時把該工作流引擎應用到單位的辦公自動化系統中,系統具有較高的執行效率,表現出較好的穩定性和擴展性。

4.1 關鍵模塊

4.1.1 工作流初始化

工作流初始化的功能主要是為工作流模型創建新的實例,其根據已有的流程ID來實例化新的流程,如果未找到已有的流程ID則退出初始化;若找到流程ID,則生成實例的唯一標識,并根據流程ID和標識實例一個新的流程。

///

/// 實例化一個已有的流程ID

///

/// 工作流ID

public bool Stream(intStreamID)

{

bool result=true;

OI.Streams.StreamoStream = new OI.Streams.Stream();

if(oStream.Search(StreamID))

{

streamDef=oStream.StreamDef;

LoadStream(streamDef,SteramID);

}

else

{

result=false;

}

return result;

}

4.1.2 提交任務項

提交任務項功能是應用程序將任務項提交回工作流引擎的接口,在該函數中將根據輸入參數所制定的是否將工作項設置為完成狀態來進行不同的處理。不需要將任務項設置為完成狀態,即isFinish為false時,工作流引擎只需要將該流程的狀態標識符設置為false即可;當isFinish為true時,工作流引擎會將流程的狀態標識符設置為true,同時試圖推進流程的進行。首先工作流引擎會依據當前任務相對應節點的激發規則來判斷是否對當前任務進行狀態遷移。若需要狀態遷移,則調用FireTransition對變遷做激發處理。

///

/// 提交任務項

///

/// 任務項ID

/// 是否完成

public void CommitWorkItem(intworkItemID,boolisFinish)

{

if(isFinish)

{

OI.Streams.Stream.SetWorkStateFinish(workItemID);

intcaseID=-1;

boolcanFire= OI.Streams.Stream.getNext(workItemID,refcaseID);

if(canFire)

FireTransition(caseID,workItemID);

}

else

{

OI.Streams.Stream.SetWorkStateInProgress(workItemID);

}

}

4.2 具體實現

圖6 用車申請界面

在單位具體的辦公自動化系統中,所有的公文起草是基于模板的,即在系統中預先設置了各種公文的模板,在進行公文流轉前需要按照預置的模板進行公文起草。下面以用車申請為例說明公文流轉的具體實現過程。用車申請時應當有一個用車申請的模板,如圖6所示。若沒有該模板,申請人可以建立該模板,建立好的模板同部門的人員均可以再次使用。流程發起者(或申請者)填寫完用車單位、帶車人、電話、起止地點、用車時間等基本信息后,需選擇相應的流程,點擊提交后,用車申請單將按照選擇的流程進行自動流轉,直到流程執行完成為止。

5 結語

傳統的工作流引擎沒有很好地實現業務與邏輯的分離,存在構建不靈活、擴展不方便的問題。本文按照分層的思想,把工作流引擎進行分層構建,設計了微內核結構的工作流引擎,實現了具體業務與邏輯的分離。把該引擎應用于單位的辦公自動化系統中,表現出較好的穩定性和擴展性。

[1] 李亞.工作流管理流系統[J].計算機世界,1998(11):1.

[2] 李紅巖.基于工作流技術的OA系統研究[J].長春工業大學學報:自然科學版,2008,29(3):352-355.

[3] 陳傳波,劉黎志.一個基于Web的工作流引擎及其實現[J].計算機工程與科學,2004,26(11):8-11.

[4] 宮慶濤.基于工作流的辦公自動化系統[D].長春:吉林大學計算機科學與技術學院,2008.

[5] 羅海濱,范玉順,吳澄.工作流技術綜述[J].軟件學報,2000,11(7):899-904.

[6] 胡華,宋荷慶,土會進.面向Web的工作流管理[J].計算機工程與設計,2002(4):31-33.

[7] 范玉順.工作流管理技術基礎[M].北京:清華大學出版社,2001.

[8] WFMC.The workflow management coalition specification: workflow standard interoperability W F2XML binding[Z].Document Number WFMC-TC-1023.

[9] 王舒暢.基于SOA的工作流管理系統設計[J].長春工業大學學報(自然科學版),2009,4(30):406-411.

[10] 姜彥,金志剛,王立.基于微內核的工作流引擎集群技術[J].微處理機,2008(2):69-70,77.

[11] 侯瀟,高延武.面向工作流的分析、設計與開發[EB/OL].http://www.paper.edu.cn

Design and Implementation of Workflow Engine Based on Microkernel

HE Rongmao XUE Yongkui LI Yang

(Chinese Luoyang Electronic Equipment Test Center,Luoyang 471003)

In order to overcome the disadvantages of traditional workflow engine’s inflexibility in construction and inconvenience in expansion,the method of designing a workflow engine using the windows .NET framework is discussed in this paper.This method adopts the idea of layering and the microkernel workflow engine is implemented,in which the workflow engine is divided into three parts,including workflow kernel,data access layer and external interface layer.Compared to the traditional workflow engine,the microkernel workflow engine designed is more flexible and extendable.And when the microkernel workflow engine designed is applied in the actual OA system,it has the characters of better stability and expansibility.

microkernel,workflow engine,workflow,business logic

2014年8月18日,

2014年10月3日

何榮茂,男,工程師,研究方向:信息資源開發與應用。薛永奎,男,碩士,工程師,研究方向:信息資源開發與應用。李洋,男,碩士,工程師,研究方向:信息資源開發與應用。

TP3

10.3969/j.issn1672-9730.2015.02.030

猜你喜歡
辦公自動化引擎系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
淺談辦公自動化系統的設計與應用
活力(2019年21期)2019-04-01 12:17:06
辦公自動化中的計算機應用
藍谷: “涉藍”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
辦公自動化系統軟件教學探索
辦公室自動化、辦公自動化與OA
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
主站蜘蛛池模板: 色综合五月| yy6080理论大片一级久久| 国产精品天干天干在线观看| 最近最新中文字幕在线第一页| 青青操视频免费观看| 国产麻豆永久视频| 日韩二区三区无| 一区二区偷拍美女撒尿视频| 国产成人91精品免费网址在线| 激情爆乳一区二区| 国产成人91精品| 国产sm重味一区二区三区| 亚洲福利片无码最新在线播放| AV在线天堂进入| 欧洲欧美人成免费全部视频| 91久久偷偷做嫩草影院电| 久久人人97超碰人人澡爱香蕉| www.亚洲一区二区三区| 99色亚洲国产精品11p| 国产亚洲精品97在线观看| 欧美特黄一级大黄录像| 国产一区二区在线视频观看| 国产亚洲欧美日韩在线观看一区二区| jizz亚洲高清在线观看| 成人在线天堂| 国产jizz| 亚洲区视频在线观看| 欧美午夜理伦三级在线观看| 777国产精品永久免费观看| 97在线免费视频| 国内99精品激情视频精品| 日韩欧美中文字幕一本| 亚洲精品无码专区在线观看| 日韩 欧美 国产 精品 综合| 国产成人h在线观看网站站| 欧美笫一页| 尤物国产在线| 中国成人在线视频| 手机精品福利在线观看| 国产成人精品18| 老司机久久精品视频| 亚洲成人动漫在线观看| 99视频免费观看| 中文无码精品a∨在线观看| 亚洲国产系列| 精品亚洲欧美中文字幕在线看| 国产人免费人成免费视频| 欧美亚洲一二三区| 国产精品成人一区二区不卡 | 国产精品久久自在自线观看| 国产午夜无码片在线观看网站| 国产黑丝视频在线观看| 亚洲欧美不卡| 国产精品无码一二三视频| 国内精品久久人妻无码大片高| 亚洲欧美成人在线视频| a毛片免费看| 园内精品自拍视频在线播放| 成人夜夜嗨| 青青青视频91在线 | 久久青草免费91观看| 国产主播福利在线观看| 日韩欧美中文| 人妻少妇乱子伦精品无码专区毛片| 1769国产精品视频免费观看| 欧美.成人.综合在线| 欧美日韩资源| 亚洲无码91视频| 2021国产乱人伦在线播放| 国产精品所毛片视频| 欧美69视频在线| 日韩无码视频专区| 精品久久久久无码| 欧美伦理一区| 国产熟女一级毛片| 亚洲婷婷丁香| 久久这里只有精品23| 91亚洲视频下载| 精品亚洲欧美中文字幕在线看| 日本在线欧美在线| 亚洲国产精品日韩专区AV| 成人午夜天|