陳 丹,王 勇,王 瑛
(廣東工業(yè)大學 計算機學院,廣東 廣州510006)
眾所周知,企業(yè)要成為科技創(chuàng)新主體,企業(yè)科研活動在其中起了關鍵性的推動作用[1]。在企業(yè)科研協同工作中涉及到大量系統(tǒng)化、重復性的流程類活動,需要引入工作流技術來解決流程處理效率低、管理復雜的問題。近年來,工作流和科研協同系統(tǒng)得到了快速的發(fā)展。文獻[2,3]應用協同工作環(huán)境套件Duckling來實現計算化學、學術會議領域的科研協同系統(tǒng),并獲得一種社交網絡和協作平臺的解決方案;文獻[4]應用J2EE 體系架構和EJB技術實現科研管理系統(tǒng)。文獻[5]應用開源工作流引擎和J2EE 技術來實現科研項目管理,規(guī)范科研管理的業(yè)務流程和行為。前者的研究主要集中在協同設計、會議和化學等方面,在企業(yè)科研方面研究甚少,應用范圍比較局限;而后者即傳統(tǒng)的工作流科研管理系統(tǒng)更注重固定流程和制度的控制,忽略了企業(yè)科研過程具有業(yè)務流程易變、部門交互復雜、資源共享性差和系統(tǒng)安全性低的問題。針對以上不足,本文實現了以工作流關鍵技術為核心,結合社交網絡工具和J2EE技術的科研協同平臺。
工作流是一中重要的人機協同工作形式,它使得具有固定流程的業(yè)務可以進行全自動化或半自動化的執(zhí)行,合理運用工作流可以達到提高工作效率的目的,詳細定義請參見文獻[6]。工作流管理系統(tǒng)是一種能定義、創(chuàng)建和管理工作流執(zhí)行的系統(tǒng)[7],它的3個主要功能是:建立時,對流程進行過程定義、分析和建模;運行時,對過程定義進行解釋和實例化及對運行實例進行控制;操作時,與用戶和應用程序及IT 工具進行交互。
Petri網,由德國科學家Carl Adam Petri于1962 年提出,是工作流管理系統(tǒng)建模過程中高效而嚴密的分析工具[8]。Petri網是一種基于狀態(tài)的建模方法[9],既有嚴格的數學表述和圖形化的表達方式,又有豐富的系統(tǒng)分析技術。這些特性使得Petri網成為動態(tài)流程建模的有效手段。
Petri網的4 個基本元素包括:托肯(Token)、庫所(Place)、變遷(Transition)、有向?。―irected Arc)。
Petri網的基本定義是:元組PN=(P,T,F)滿足3個條件:①P∩T=;②P∪T≠;③FP×T∪T×P≠。其中,P={P1,P2,…,Pn}是庫所集,T={T1,T2,…,Tn}是變遷集,F是庫所和變遷間的有向弧的集合。在典型的Petri網模型中,用一個黑點表示Token,用一個圓圈表示庫所,用長方形表示變遷,用有向弧表示庫所和變遷間的輸入輸出。庫所中可以包括一個或多個Token,一個Token代表工作流中的一個實例或資源,變遷表示業(yè)務流程中的任務,庫所表示業(yè)務流程實例被執(zhí)行的狀態(tài)。因此在Petri網中,Token此時的分布狀態(tài)可以直觀的表達業(yè)務流程當時的執(zhí)行情況。
同時,Petri網很好的支持工作流的4種路由結構,即順序、并行、選擇和循環(huán)。Petri網理論為了描述這4種路由提出6 種 工 作 流原語[10]:與連接(AND-join)、與分支(AND-split)、或連接(OR-join)、或分支(OR-split)、循環(huán)、因果關系。如圖1所示。
圖1 6種工作流原語
順序路由表示一系列工作任務要按順序串行執(zhí)行;循環(huán)路由表示工作任務需要重復執(zhí)行多次。并行路由表示多條任務分支可以同時并行執(zhí)行,它又分為與連接和與分支兩種結構。與連接表示多條任務分支都執(zhí)行完成后,在分支合并處的任務才能開始執(zhí)行。與分支表示在連接節(jié)點分叉的多條任務分支可以并行執(zhí)行。選擇路由表示多條任務分支的執(zhí)行是相互排斥的,只能擇其一執(zhí)行,它又分為或連接和或分支兩種結構?;蜻B接表示在多條任務分支中選擇一條分支進行執(zhí)行,執(zhí)行完成后通過同一連接節(jié)點進行合并。或分支表示在連接節(jié)點分叉的多條任務分支,只能選擇一條分支繼續(xù)執(zhí)行。
JBPM 是一套開源的工作流管理軟件包,它采用自己定義的JPDL(JBPM process definition language)語言來描述業(yè)務流程的圖形化結構。JPDL語言實際上是一種輕量級的XML結構的流程描述語言,可以明確定義業(yè)務邏輯的各個組成部分,如表1 用于描述科研立項業(yè)務的申報流程。JBPM框架內置許多流程定義活動,包括start、state、task、decision、fork-join和end等提供了Java業(yè)務代碼與業(yè)務流程無縫銜接的綁定機制[11]。同時,JBPM 采用了Hibernate提供 的 對 象 關 系 映 射(object relation mapping,ORM)機制,在數據持久層的角度解決了對象和關系數據庫的映射關系。因此JBPM 能夠兼容大部分數據庫系統(tǒng),在事務處理、數據持久化等方面可以與業(yè)務應用程序進行靈活的集成。
JBPM 的處理過程主要為以下4個步驟:
(1)發(fā)布(加載)流程定義:指通過JBPM 的designer插件(或JPDL 語言)來定義工作流,生成processDefinition.xml文件,再將其加載到應用中的過程[12]。系統(tǒng)流程與業(yè)務操作的分離使得用戶通過改變流程的定義即可靈活變更業(yè)務的流程以及動態(tài)調整任務的分派。
(2)啟動流程:指在給定的流程定義基礎上,實際創(chuàng)建相應的業(yè)務流程實例(即ProcessInstance類)。
(3)處理任務:指JBPM 引擎為流程實例對象生成相應任務的實例,并對這些任務實例進行相應的操作如:觸發(fā)流程向下流動、獲得待處理的任務列表等,最后結束任務實例以推動流程的下一步流轉。
(4)流程監(jiān)控及管理:指在流程流轉過程中,對流程實例和任務實例等相關狀態(tài)進行存儲、監(jiān)控和管理。
工作流的業(yè)務流程中涉及到大量用戶角色的權限訪問控制問題,該問題一直都是信息系統(tǒng)安全穩(wěn)定運行的關鍵。目前,權限管理策略主要是基于角色的訪問控制模型 (rolebased access control,RBAC)。RBAC的核心思想是對象的訪問權按角色進行分組,資源的使用情況受限于已授權的關聯角色個體,角色成為用戶與權限的中介[13]。這種方式使得用戶和權限進行分離,可以將特定的權限分配給兩個或更多的用戶,防止執(zhí)行關鍵操作的控制權限漏洞?;镜腞BAC模型如圖2所示,在進入系統(tǒng)后,用戶通過JSP頁面的會話機制(session)來確定當前用戶具有的訪問控制權限。
表1 科研立項申報流程的XML源碼
圖2 基本的RBAC模型
但是基本的RBAC模型只是一種通用的訪問控制抽象模型,在具體的項目實施中存在一些不足,如訪問控制粒度太粗、各種約束控制通用性差、安全性低等問題,都不能滿足科研項目群體協作的要求。在實際科研協同平臺中,有這樣一些權限要考慮:各級用戶的審批權限、不同部門的成員權限、特定權限的轉移或委托代理等。針對上述問題,本文提出了具有普遍約束集的增強型RBAC 模型,對用戶操作權限進行了靈活配置和多層次管理,如圖3所示。
科研平臺中的普遍約束集包括責任分離、權限委托、協同約束、時間約束和組織約束。責任分離約束是在基本RBAC模型中定義的約束,通過角色來設置用戶的權限,使得具體用戶個體和責任權限進行分離。權限委托表示在特定用戶不能完成權限工作的時候,將特定權限轉移給其他用戶來完成他的工作。協同約束主要解決在團隊協作過程中哪些用戶被授權操作哪些資源的權限問題。時間約束主要是為了方便工作流的管理。組織約束定義了基于組織結構的角色。
根據科研協同管理的需求,將平臺的功能模塊分為三大塊:科研項目管理、科研人員管理、科研協同管理。如圖4所示。
(1)科研項目管理主要通過JBPM 工作流引擎對科研立項、科研結題等流程活動進行協同管理,對科研經費、成果進行統(tǒng)計和監(jiān)管,對日常消息進行瀏覽、查詢和更新。實現了日常科研申報工作的電子化和自動化處理,減少手工流轉的延遲和損耗。
(2)科研人員管理主要通過用戶、角色和權限三方面的配置,來對整個系統(tǒng)的用戶權限進行分配、控制和管理。
(3)科研協同管理主要分為4個模塊即上傳文件、微博互動、博客分享和好友關注。每一個模塊就代表一種社交網絡(SNS)工具。其目的是通過這4 種工具來構建一個企業(yè)內部的社交網絡,讓科研人員、行業(yè)專家和客戶代表等用戶可以進行靈活的動態(tài)交互和資源共享工作。該功能模塊的設計思想是:用戶可以通過好友之間的關注來擴大朋友圈,加強信息的交流和互動;通過上傳文件和發(fā)表博客來分享科研信息資源,運用微博來了解其他人員的最新科研動態(tài)。
企業(yè)科研活動一般分為3個階段:前期科研立項申報階段,中期科研項目組織實施階段,后期科研項目結題階段。根據Petri網的流程建模理論,企業(yè)科研協同平臺的關鍵流程模型如圖5所示。
前期的主要業(yè)務流程是科研團隊進行網上立項申報,填寫項目相關材料如人員、設備、經費等信息,部門主管進行材料真實性的審核,審核通過后再提交給多位行業(yè)專家進行同時評審(用AND-split原語建模)。行業(yè)專家對科研項目的各方面進行專業(yè)評審,評審都結束后意見統(tǒng)一提交給分管經理進行審批(用AND-join原語建模),經理審批結束有3種結果(用OR-split原語建模),審批通過則科研立項申報完成,可以開始組織實施科研計劃;審批不通過的項目則要根據評審意見進行相關材料的補齊重新申報或不申報處理,則此次立項申報也結束(用OR-join原語建模)。
圖3 增強型RBAC模型
圖4 系統(tǒng)功能模塊
中期科研實施階段具有較大的易變性和人為性,主要根據JBPM 技術解耦系統(tǒng)業(yè)務流程的特點,通過改變流程的過程定義,來動態(tài)更改業(yè)務的執(zhí)行流程。后期的項目結題流程與前期的很相似,在分管經理審批通過后,提交給財務人員統(tǒng)計經費以及科研成果鑒定歸檔,最后科研項目結題完成。
考慮到系統(tǒng)的擴展功能、可維護性和可移植性,本系統(tǒng)采用B/S結構模式,以J2EE技術(即SSH2三大框架)來架構系統(tǒng)。該系統(tǒng)體系結構共分為4 層,依次是表示層、業(yè)務邏輯層、數據持久層和數據庫層。系統(tǒng)體系結構如圖6所示。
表示層主要負責頁面顯示和人機交互的工作,由HTML5、JSP和ExtJS3.4構成,使用Struts對用戶界面進行管理。業(yè)務邏輯層是整個系統(tǒng)業(yè)務處理的核心部分,提供了科研協同平臺的全部業(yè)務邏輯功能。由Spring管理各種業(yè)務組件,通過增強型RBAC 對系統(tǒng)的權限進行管理,并交由JBPM 引擎負責業(yè)務流程的定義和執(zhí)行服務。數據持久層采用Hibernate提供的ORM 框架實現對象關系的映射,屏蔽不同數據庫底層細節(jié)的差異;使得數據庫操作代碼與業(yè)務邏輯分離,用戶更專注于上層業(yè)務邏輯的實現。數據庫層主要負責數據的存儲和管理。
系統(tǒng)的整個執(zhí)行過程是首先表示層Struts框架中的actionform 表單封裝WEB瀏覽器發(fā)出的請求參數,然后對應的action類接受用戶請求,并調用業(yè)務邏輯層相應的service類和下層的DAO(或者Hibernate DAO)類來實現系統(tǒng)業(yè)務邏輯。最后,DAO 對數據庫進行各項數據操作。在整個過程中,Spring充當一個容器管理的角色,它對以上類實例化的對象及其關系進行配置和管理。該體系結構使得各層之間進行解耦,提高了系統(tǒng)的重用性和擴展性,同時B/S模式,極大的簡化了客戶端的安裝和維護。
圖5 科研協同平臺的關鍵流程模型
圖6 系統(tǒng)體系結構
基于上述關鍵技術的分析,本文采用Java作為開發(fā)語言,Tomcat6.0作為WEB服務器,MySQL5.1作為后臺數據庫。以MyEclipse6.6為集成開發(fā)環(huán)境,在JDK1.6 環(huán)境下開發(fā)了基于工作流的科研協同平臺。用戶瀏覽器是Microsoft IE8.0或以上版本。
以 “admin”身份登錄系統(tǒng)主界面,進入科研項目管理下的申報管理模塊,點擊科研立項申報,右邊主顯示區(qū)出現立項申報界面,頁面如圖7所示。用戶錄入科研立項相關信息,點擊 “發(fā)送”即可呈報給部門主管審批,審批通過繼續(xù)呈報給下一個領導審批,直到審批完成或者審批不通過,申報流程結束。其中,檔案管理包括經費管理和成果管理模塊。
圖7 立項申報界面
該功能在消息管理模塊中,主要用來查看用戶申報流程的審批狀態(tài)、流轉情況和審批意見等信息,同時可以對緊急流程進行催辦操作,頁面如圖8所示。其中,消息管理包括我的申請、待我審批、經我審批和待我閱讀4個模塊。
圖8 申報查詢界面
為了方便多用戶科研過程的信息交流、資源共享和協同交互,平臺提供了4種科研協同工具,頁面如圖9所示。右邊主界面顯示了整站動態(tài)信息,包括好友信息、各種回復、整站消息、在線成員和上傳文件等動態(tài)。
圖9 協同活動主界面
科研活動中涉及大量的信息資源、知識群體和審批環(huán)節(jié),需要對整個科研過程進行流程規(guī)劃、過程管理和控制,以促進多領域的科研人員進行高效地協同合作。本文以企業(yè)科研活動的流轉過程為研究對象,利用Petri網流程模型可以直觀的表達流程變遷狀態(tài)的特點和JBPM 工作流引擎具有的流程獨立的優(yōu)勢,來增強系統(tǒng)動態(tài)流程處理的靈活性。在系統(tǒng)實現上,采用了J2EE 四層體系架構和增強型RBAC機制,提高了系統(tǒng)的安全性、復用性和跨平臺性。同時系統(tǒng)中引入了社交網絡工具,極大提高了資源共享的效率,為網絡化科研協同環(huán)境的人員交互提供了重要保障。
[1]National Natural Science Foundation of China.China’s e-science blue book [M].Beijing:Science Press,2011 (in Chinese).[國家自然科學基金委員會.中國科研信息化藍皮書[M].北京:科學出版社,2011.]
[2]ZHANG Ruisheng,FAN Xiaoliang,WANG Dongyun,et al.A grid-enabled collaborative research environment for computational chemistry studies [J].Journal of Huazhong University of Science and Technology (Natural Science),2007,35 (z2):32-35 (in Chinese).[張瑞生,范曉亮,王東云,等.面向計算化學研究的網格科研協同工作環(huán)境 [J].華中科技大學學報(自然科學版),2007,35 (z2):32-35.
[3]ZHENG Yihua,NAN Kai,YANG Deting,et al.Realization on conference-oriented cloud collaboration platform [J].Journal of Huazhong University of Science and Technology (Natural Science),2011,39 (z1):176-179 (in Chinese). [鄭依華,南凱,楊德婷,等.面向會議活動的科研協同云平臺實現[J].華中科技大學學報 (自然科學版),2011,39 (z1):176-179.]
[4]LIU Zexuan,JIANG Chunhua.Design and implementation of science research management system based on J2EE technology[J].Computer Engineering and Design,2007,28 (21):5218-5220 (in Chinese). [劉澤 軒,江春華.基于J2EE 架 構的科研管理系統(tǒng)的設計與實現 [J].計算機工程與設計,2007,28 (21):5218-5220.]
[5]ZHENG Yang.Design and implementation of JBPM workflowbased on scientific research management information system[D].Beijing:Beijing Jiaotong University,2011:8-25 (in Chinese).[鄭洋.基于JBPM 工作流科研管理信息系統(tǒng)的設計與實現 [D].北京:北京交通大學,2011:8-25.]
[6]XU Liang,ZHANG Li,FAN Zhiqiang.An approach of realtime workflow modeling based on UML [J].Journal of Computer Research and Development,2010,47 (7):1184-1191(in Chinese).[徐亮,張莉,樊志強.一種基于UML的實時工作流建模方法研究 [J].計算機研究與發(fā)展,2010,47(7):1184-1191.]
[7]YANG Mingshun,HAN Zhoupeng,YU Ting,et al.Design and implementation of a lightweight workflow engine [J].Journal of Xi’an University of Technology,2013,29 (1):20-26 (in Chinese). [楊明順,韓周鵬,余婷,等.一種輕型工作流引擎的設計與實現 [J].西安理工大學學報,2013,29(1):20-26.]
[8]ZHANG Zhiying,WANG Jianwei,WEI Xiaopeng.A method of case adaptation based on Petri net[J].Computer Systems &Applications,2009,18 (4):190-193 (in Chinese). [張 智穎,王建維,魏小鵬.一種基于Petri網推理的實例修改方法[J].計算機系統(tǒng)應用,2009,18 (4):190-193.]
[9]LI Hailing,SHI Benshan,LIU Kejian.Workflow modeling and simulation for implementation stage of construction project based on Petri net [J].Journal of Computer Applications,2011,31 (10):2828-2831 (in Chinese). [李海凌,史本山,劉克劍.基于Petri網的建設工程項目實施階段工作流建模與仿真 [J].計算機應用,2011,31 (10):2828-2831.]
[10]YU Zhenglin,SUN Jingke.Research and design of lightweight workflow model based on improved activity-on-vertex network [J].Journal of Computer Applications,2013,33(1):262-265 (in Chinese). [於正琳,孫精科.基于改 進AOV 網的輕量級工作流模型研究與設計 [J].計算機應用,2013,33 (1):262-265.]
[11]GU Wenxuan,WANG Qiong,XU Tingrong.Study and design of JBPM based workflow management system [J].Computer Applications and Software,2009,26 (5):104-106(in Chinese).[顧文軒,王瓊,徐汀榮.基于JBPM 的工作流管理系統(tǒng)的研究與設計 [J].計算機應用與軟件,2009,26 (5):104-106.]
[12]WANG Wei,XU Wensheng.Automatic algorithm for JBPM process definition file generation [J].Journal of Computer Applications,2012,32 (A02):89-91 (in Chinese). [王偉,徐文勝.JBPM 流程定義文件自動生成算法 [J].計算機應用,2012,32 (A02):89-91.]
[13]XU Hong,TAI Weipeng.Research on workflow-oriented RBAC model[J].Computer Engineering and Design,2012,33 (4):1295-1299 (in Chinese). [徐宏,邰偉鵬.面向工作流的RBAC模型研究 [J].計算機工程與設計,2012,33(4):1295-1299.]