王晶 胡曉亮 崔然
摘 ?要: 針對(duì)線下審批效率低下,以及現(xiàn)有政務(wù)系統(tǒng)缺乏靈活性和存在一定的安全隱患等問題,研究了工作流技術(shù)以及基于OAuth2.0協(xié)議的用戶驗(yàn)證和授權(quán)機(jī)制,使用C#語言設(shè)計(jì)并實(shí)現(xiàn)了基于工作流平臺(tái)的電子審批系統(tǒng)。系統(tǒng)能夠適應(yīng)高校和企事業(yè)單位日常行政事務(wù)管理的需求,提高了審批流程的效率和規(guī)范性。
關(guān)鍵詞: 流程引擎; C#; 審批系統(tǒng); OAuth2.0
中圖分類號(hào):TP311.5 ? ? ? ? ?文獻(xiàn)標(biāo)志碼:A ? ? 文章編號(hào):1006-8228(2019)11-58-04
Abstract: In view of the inefficiency of offline approval and the lack of flexibility and safety of existing e-government systems, this paper researches workflow technology and OAuth2.0 protocol based user authentication mechanism, and by using C# language, designs and implements an electronic approval system based on workflow engine. The system can adapt to the needs of daily administrative affairs management of universities and enterprises, and improve the efficiency and standardization of the approval process.
Key words: workflow engine; C#; approval system; OAuth2.0
0 引言
審批流程是高校和企事業(yè)單位日常行政管理的一個(gè)重要組成部分,大多數(shù)審批流程往往需要協(xié)調(diào)各部門共同完成。在“互聯(lián)網(wǎng)+”大環(huán)境下,許多政府部門的電子政務(wù)系統(tǒng)實(shí)現(xiàn)了電子審批功能,正逐步取代線下審批,但政務(wù)系統(tǒng)缺乏靈活性,文獻(xiàn)[3]指出,各部門資源分散、標(biāo)準(zhǔn)不一、協(xié)作困難是效率低下的原因之一。由于業(yè)務(wù)流程常常需要各部門協(xié)調(diào)修改、部門人員崗位調(diào)動(dòng)相對(duì)頻繁,也使得系統(tǒng)后期維護(hù)耗費(fèi)更多成本。針對(duì)以上問題,采用工作流技術(shù)和OAuth2.0協(xié)議,能夠在縮短審批時(shí)間的同時(shí),提高系統(tǒng)安全性,適應(yīng)業(yè)務(wù)流程變化。將審批過程中產(chǎn)生的數(shù)據(jù)和信息備案,有效的監(jiān)管審批過程,使審批流程更加規(guī)范安全,易于維護(hù)。
1 相關(guān)技術(shù)介紹
1.1 工作流技術(shù)
工作流思想最早起源于國外,二十世紀(jì)九十年代出現(xiàn)越來越多的相關(guān)研究和開發(fā),并于1993年成立工作流管理聯(lián)盟(WfMC),國外逐漸出現(xiàn)許多開源工作流引擎,如文獻(xiàn)[1-2]中提到的JBPM和Activiti等。近年來,工作流技術(shù)發(fā)展迅速,國內(nèi)優(yōu)秀的工作流平臺(tái)也日漸豐富,能夠更好的適應(yīng)國內(nèi)業(yè)務(wù)流程缺少統(tǒng)一標(biāo)準(zhǔn)、復(fù)雜多變的情況。
工作流管理聯(lián)盟關(guān)于工作流的定義是:工作流是一類能夠完成或部分完成自動(dòng)執(zhí)行的業(yè)務(wù)流程,在此過程中,文檔、信息或任務(wù)按照一系列過程規(guī)則在不同的執(zhí)行者之間傳遞和執(zhí)行[4]。使用工作流技術(shù)可以將業(yè)務(wù)管理中較為系統(tǒng)化、重復(fù)性高的過程抽取出來,形成一個(gè)完整的處理流程,由計(jì)算機(jī)自動(dòng)化執(zhí)行。工作流技術(shù)與業(yè)務(wù)流程重組(BPR)密切相關(guān),它們的核心思想是集成技術(shù)手段和管理知識(shí)將抽象的業(yè)務(wù)邏輯轉(zhuǎn)變?yōu)榫唧w的、可操控的工程化過程,以流程為中心,以客戶的需求和滿意度為目標(biāo),改善企業(yè)單位在業(yè)務(wù)管理中存在的成本、服務(wù)、效率等問題。
工作流引擎是工作流技術(shù)的核心,用于解析流程的運(yùn)行,在業(yè)務(wù)處理量大、業(yè)務(wù)流程系統(tǒng)性強(qiáng)、流程涉及多個(gè)部門的情境下?lián)碛衅洫?dú)特的優(yōu)勢(shì)。如圖1所示,工作流引擎在工作流管理系統(tǒng)中承擔(dān)著處理業(yè)務(wù)邏輯的重要角色,提供一定的規(guī)則解釋建模工具生成的工作流過程定義,實(shí)例化工作流模型,調(diào)用組織結(jié)構(gòu)模型數(shù)據(jù)和其他工作流相關(guān)數(shù)據(jù)對(duì)角色和資源進(jìn)行管理維護(hù)。
1.2 用戶驗(yàn)證和授權(quán)機(jī)制
當(dāng)?shù)谌綉?yīng)用試圖通過接口獲取訪問受保護(hù)的資源時(shí),需要通過認(rèn)證機(jī)制來獲得授權(quán),如果接口沒有使用有效認(rèn)證措施進(jìn)行保護(hù),則存在嚴(yán)重的安全隱患,匿名用戶通過掃描接口的鏈接,就可以調(diào)用該接口獲取數(shù)據(jù)。
OAuth2.0協(xié)議是一種基于Token的認(rèn)證協(xié)議,是目前常用的認(rèn)證方式,由服務(wù)器端按照規(guī)則生成字符串作為令牌用于客戶端服務(wù)請(qǐng)求,無需多次使用用戶信息進(jìn)行驗(yàn)證,可有效減輕服務(wù)器壓力并提高系統(tǒng)的安全性,授權(quán)的基本流程如圖2所示[5]。
1.3 工作流平臺(tái)的優(yōu)勢(shì)特點(diǎn)
⑴ 靈活性:支持基于Web的流程設(shè)置器,結(jié)點(diǎn)設(shè)置操作便利,支持四種路由結(jié)構(gòu)包括順序、選擇、循環(huán)、分支。對(duì)于有嚴(yán)格時(shí)間限制的工作,可以在步驟結(jié)點(diǎn)中設(shè)置辦理承諾時(shí)限和超時(shí)時(shí)限,采用時(shí)間和事件觸發(fā)機(jī)制相結(jié)合的方式,控制該步驟的執(zhí)行時(shí)間。
⑵ 接口完備:核心接口以用戶和流程為中心,功能主要是獲取用戶相關(guān)信息,獲取、導(dǎo)出和修改指定流程詳情數(shù)據(jù)。此外具備平臺(tái)接口、通知接口、文件接口、任務(wù)集成接口等,實(shí)際業(yè)務(wù)中將應(yīng)用這些接口按照平臺(tái)規(guī)范集成其他系統(tǒng)任務(wù),實(shí)現(xiàn)業(yè)務(wù)流程管理和控制。
⑶ 可擴(kuò)展性:工作流引擎依靠訪問和處理權(quán)限的設(shè)置,可以對(duì)業(yè)務(wù)交接、跳轉(zhuǎn)、自動(dòng)處理、自定義時(shí)限等流程活動(dòng)進(jìn)行管理和監(jiān)督,能擴(kuò)展特殊權(quán)限去實(shí)現(xiàn)特殊需求,更好地適應(yīng)業(yè)務(wù)流程更新以及業(yè)務(wù)處理中臨時(shí)出現(xiàn)的特殊情況。
2 系統(tǒng)分析與設(shè)計(jì)
2.1 系統(tǒng)需求分析
電子審批系統(tǒng)為滿足各部門協(xié)同高效的審批工作,應(yīng)實(shí)現(xiàn)隨時(shí)隨地通過瀏覽器或移動(dòng)端即可訪問和使用系統(tǒng)功能,申請(qǐng)人線上提交一份申請(qǐng)材料便可自動(dòng)流轉(zhuǎn)于各部門之間進(jìn)行審批。結(jié)合相關(guān)技術(shù)分析,電子審批系統(tǒng)應(yīng)具備的功能需求包括信息顯示模塊、流程管理模塊和用戶管理模塊。同時(shí),審批系統(tǒng)中涉及許多重要信息和數(shù)據(jù),系統(tǒng)應(yīng)具備安全性,對(duì)信息進(jìn)行有效的保護(hù),避免數(shù)據(jù)丟失和泄露。
此外,執(zhí)行過程和相關(guān)數(shù)據(jù)能夠較好的反應(yīng)出業(yè)務(wù)流程中存在的不足,系統(tǒng)需要具有數(shù)據(jù)備案的功能,為后期進(jìn)行數(shù)據(jù)統(tǒng)計(jì)分析和制定更好的業(yè)務(wù)流程做準(zhǔn)備。
2.2 系統(tǒng)體系架構(gòu)設(shè)計(jì)
根據(jù)系統(tǒng)需求分析結(jié)果,以及對(duì)系統(tǒng)的可行性、安全性和可靠性多方面考慮進(jìn)行系統(tǒng)設(shè)計(jì)。系統(tǒng)采用工作流平臺(tái)保證系統(tǒng)服務(wù)的靈活高效,用戶驗(yàn)證和授權(quán)機(jī)制提高系統(tǒng)安全性。如圖3所示,系統(tǒng)架構(gòu)分為四層。系統(tǒng)底層是基礎(chǔ)服務(wù)層,提供數(shù)據(jù)存儲(chǔ)、服務(wù)器資源和網(wǎng)絡(luò)設(shè)施,保障數(shù)據(jù)存儲(chǔ)和分析計(jì)算等需求;平臺(tái)服務(wù)層主要依托于工作流平臺(tái)和表單引擎,將表單字段與業(yè)務(wù)流程相關(guān)聯(lián),并利用工作流引擎提供的豐富的接口進(jìn)行系統(tǒng)邏輯層開發(fā),保障業(yè)務(wù)流程有序執(zhí)行;軟件服務(wù)層面向用戶提供系統(tǒng)各模塊功能服務(wù),該層擴(kuò)展性強(qiáng),與平臺(tái)服務(wù)緊密協(xié)調(diào),保障對(duì)用戶提供靈活可靠的服務(wù)。
2.3 系統(tǒng)功能模塊設(shè)計(jì)
電子審批系統(tǒng)核心功能是流程管理和用戶管理,依靠工作流引擎和數(shù)據(jù)庫的支撐實(shí)現(xiàn)功能需求,功能模塊分為信息顯示模塊、流程管理模塊和用戶管理模塊,如圖4所示。
⑴ 信息顯示模塊是用戶登錄系統(tǒng)的入口,也是發(fā)起審批申請(qǐng)、處理審批流程和查詢待辦流程的信息顯示平臺(tái),能夠支持PC端和移動(dòng)端兩種方式顯示,對(duì)流程辦理情況進(jìn)行有效的反饋。
⑵ 流程管理模塊實(shí)現(xiàn)流程構(gòu)建和監(jiān)控、流程處理及審批、數(shù)據(jù)備案的功能。系統(tǒng)管理員可對(duì)流程整個(gè)執(zhí)行過程進(jìn)行監(jiān)控,能夠查詢流程執(zhí)行情況及執(zhí)行效率。流程構(gòu)建依靠表單設(shè)計(jì)器和流程設(shè)置器,根據(jù)業(yè)務(wù)流程需求,對(duì)流程進(jìn)行精簡(jiǎn)建模。流程處理功能為用戶提供申請(qǐng)所需的所有材料模板,用戶填寫申請(qǐng)后點(diǎn)擊提交自動(dòng)觸發(fā)審批流程,此步驟加入時(shí)間戳可以明確流程處理時(shí)間。數(shù)據(jù)備案功能用于對(duì)流程中涉及的字段數(shù)據(jù)和流程信息來存檔,作為審批流程的憑證并為后期數(shù)據(jù)分析做支持。
⑶ 用戶管理模塊對(duì)用戶訪問權(quán)限進(jìn)行控制,維護(hù)各部門組織機(jī)構(gòu),對(duì)審批流程的各個(gè)環(huán)節(jié)明確限定負(fù)責(zé)人及權(quán)限,并且在流程建模過程中綁定數(shù)據(jù)項(xiàng),自動(dòng)完善流程各步驟需填寫的信息,提高流程管理的規(guī)范性和安全性。
3 系統(tǒng)實(shí)現(xiàn)及應(yīng)用
3.1 具體流程實(shí)例
目前電子審批系統(tǒng)中包括車輛審批、教職工出國審批、會(huì)議議題審批等流程。下面以教職工出國審批流程為例介紹具體應(yīng)用,該流程審批過程如圖5所示。
3.2 發(fā)起審批流程
登錄系統(tǒng)門戶平臺(tái),選擇教職工出國審批流程,跳轉(zhuǎn)到申請(qǐng)界面。如圖6所示,申請(qǐng)人填寫基本信息表,點(diǎn)擊左上角“提交外事部門審核出國材料”即可呈送給外事專員進(jìn)行材料審核。
3.3 相關(guān)部門并行審批
相關(guān)部門審批采用并行方式,各部門同時(shí)收到審批待辦通知,各部門審批不受其他部門影響。在流程模型中設(shè)置并行結(jié)點(diǎn),后臺(tái)代碼中添加部門信息和執(zhí)行條件,相關(guān)代碼如下:
public InfoPlusResponse OnStepHmDepChkActionNextDoing(InfoPlusEvent e){
if (entity.RltvDepItem == null){
entity.RltvDepItem = new List
}
//相關(guān)部門信息
SDUSTAbroadAplRltvDepItem rltvDep1 = new SDUSTAbroadAplRltvDepItem();
rltvDep1.RltvDepName = new CodeItem("XXXXXXXX", "財(cái)務(wù)處", "", "");
rltvDep1.RltvDepID = rltvDep1.RltvDepName.CodeId;
entity.RltvDepItem.Add(rltvDep1);
……
return response;
}
將各并行分支的執(zhí)行人信息、執(zhí)行時(shí)間自動(dòng)填入審批表,完成審批后將審批結(jié)果匯集到合并結(jié)點(diǎn)。
3.4 數(shù)據(jù)備案
審批流程結(jié)束后,流程執(zhí)行的整個(gè)過程將以XML格式進(jìn)行備案,并將表單中重要字段內(nèi)容存入業(yè)務(wù)數(shù)據(jù)庫。
4 結(jié)束語
本文設(shè)計(jì)實(shí)現(xiàn)的基于工作流平臺(tái)的電子審批系統(tǒng)經(jīng)過一段時(shí)間的實(shí)際應(yīng)用,能夠滿足現(xiàn)實(shí)需求。為進(jìn)一步方便用戶使用和提高效率,系統(tǒng)下一步應(yīng)整合現(xiàn)存的所有業(yè)務(wù)流程數(shù)據(jù)庫,實(shí)現(xiàn)與用戶相關(guān)的大量重復(fù)數(shù)據(jù)能夠自動(dòng)填充,審批環(huán)節(jié)自動(dòng)提取部門所需信息,以減少用戶的工作量。
參考文獻(xiàn)(References):
[1] 陳丹,王勇,王瑛.基于工作流的科研協(xié)同平臺(tái)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2014,35(3):791-797
[2] 孫勇.基于Activiti的考勤工作流系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)時(shí)代,2016.2:75-78
[3] 李軍鵬.基于“互聯(lián)網(wǎng)+”的放管服改革研究——以江蘇省“不見面審批(服務(wù))”與江蘇政務(wù)服務(wù)網(wǎng)建設(shè)為例[J].電子政務(wù),2018.6:74-80
[4] 范玉順,羅海濱,林慧,等.工作流管理技術(shù)基礎(chǔ)[M].北京: 清華大學(xué)出版社,2001.
[5] OAuth2.0 Authorization Framework[EB/OL].[2019-03-25].https://auth0.com/docs/protocols/oauth2