国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于S2SH的協(xié)同工作流技術分析與應用框架

2016-01-19 02:31譚恒周鳳
科技與創(chuàng)新 2016年1期
關鍵詞:工作流

譚恒 周鳳

摘 要:鑒于實際應用需求和工作流管理系統(tǒng)的特點,將角色概念引入工作流模型中,并以Activiti工作流引擎為基礎,結合輕量級框架S2SH改進傳統(tǒng)工作流模型,分析工作流技術。結果表明,在工作流模型中引入角色動態(tài)和靜態(tài)綁定機制,不僅可以提高系統(tǒng)的安全性,還能實現(xiàn)對系統(tǒng)的安全訪問控制。此外,在開發(fā)新的流程調度軟件時,可以通過對事先定義的業(yè)務處理接口編寫少量代碼,并將其擴展,從而實現(xiàn)對業(yè)務過程的控制,為工作流業(yè)務的開展提供靈活、可擴展的快速開發(fā)平臺。另外,還簡要介紹了基于角色的工作流模型的應用實例,以期為日后的相關工作提供參考。

關鍵詞:Activiti引擎;工作流;輕量級框架;流程調度軟件

中圖分類號:TP311.52 文獻標識碼:A DOI:10.15913/j.cnki.kjycx.2016.01.016

工作流是將一組工作任務結合起來完成某個過程的活動。它能夠事先定義觸發(fā)順序和觸發(fā)條件,并通過計算機在一個或多個參與者的控制下按照某種預定規(guī)則自動傳遞文檔、信息或者任務。在工作流管理系統(tǒng)中,工作流流程引擎處于核心位置,負責生成流程運行時的各種實例、數據監(jiān)控和管理流程的運行情況。

在明確了工作流引擎的原理、認識到傳統(tǒng)工作流的不足后,在改進、擴展傳統(tǒng)工作流模型時,引入了以典型的MVC模式架構為基礎的設計理念,提出了基于Java EE的輕量級框架Struts2、Hibernate和工作流框架Activiti技術開發(fā)的原型體系結構,即基于S2SH協(xié)同工作流技術的應用框架。

該結構可以支持多個體交互,實現(xiàn)多角色、多資源的流程驅動。軟件設計人員只需在該應用框架原型的基礎上根據實際業(yè)務需要擴展應用接口,并在配置文件中定義處理流程的每一個任務結點、流結點和網關等信息。由于工作流引擎提供了流程定義工具可擴展接口,所以,流程定義工具會先解釋配置文件中的工作流定義,然后轉交給工作流引擎執(zhí)行,由它維護工作流控制數據和角色模型數據,并完成監(jiān)聽觸發(fā)事件的任務。當所有觸發(fā)事件按照流程定義執(zhí)行完后,便形成了一個完整的應用流程。目前,該應用框架已在多角色資源協(xié)同的環(huán)境和復雜流程的建模中運行,效果顯著。

1 工作流技術與Activiti引擎的基本原理

在開發(fā)應用系統(tǒng)的過程中,整個應用系統(tǒng)架構并不是由單一的工作流管理系統(tǒng)組成,涉及到工作流部分的業(yè)務組件只是其中的一部分。而對于一個復雜系統(tǒng)的開發(fā),會涉及到許多其他領域的復雜業(yè)務,因此,需要將工作流框架與其他框架相結合,開發(fā)出一個可擴展的工作流系統(tǒng)。本文用輕量級框架Struts2、Hibernate和以工作流框架Activiti為核心的輕量級流程引擎搭建可擴展型流程調度應用框架,以滿足各類基于數據流系統(tǒng)的開發(fā)。通過Activiti工作流框架與Struts2、Hibernate的集成,能提高系統(tǒng)的柔性,適應業(yè)務流程的變化,實現(xiàn)更好的業(yè)務過程控制,提高顧客服務質量,降低系統(tǒng)開發(fā)和維護成本。Activiti核心組成部分Activiti引擎中的ProcessEngine是最核心的類,其他的類都是由它而來的。利用ProcessEngine可以獲取到RepositoryService、RuntimeService、TaskService、HistoryService等核心組件。各Service的作用分別為:RepositoryService負責管理流程定義;RuntimeService負責執(zhí)行管理,包括啟動、推進、刪除流程實例等操作;TaskService負責流程任務管理;HistoryService負責歷史管理(執(zhí)行完的數據管理)。

2 應用框架設計

應用框架以Activiti工作流引擎為核心,在不違背Activiti編程接口和有關約定的前提下,由Spring集中管理流程引擎和其他業(yè)務接口。這樣做,無需直接在代碼中new相關的對象,而是通過Spring容器來組裝(控制翻轉),從而降低組件之間的耦合性。當系統(tǒng)需要擴展其他子系統(tǒng)時,可以直接復用本應用框架,不需要在基本的功能上投入過多精力。在此過程中,系統(tǒng)開發(fā)人員可以專注于其他組件的開發(fā),進而縮短相關基于工作流系統(tǒng)的開發(fā)周期,降低工作難度?;赟2SH協(xié)同工作流技術的應用框架如圖1所示。

2.1 集成框架功能

在系統(tǒng)運行過程中,由Web容器自動完成對Spring容器對象監(jiān)聽器的初始化工作,并加載Struts2的核心過濾器。待初始化工作完成后,它將通過Struts.xml的配置信息URL匹配映射截獲所有以.action(或.do,由系統(tǒng)開發(fā)人員自定義指定)結尾的URL請求。當客戶端由用戶提交表單或者一個觸發(fā)事件向Web應用程序器提交一個請求時,請求的參數會通過HTTP協(xié)議提交到Web服務器。Struts的控制器接收到HTTP請求,經過已復寫的Struts攔截器(權限驗證攔截+Struts默認攔截器)成功過濾后,可以訪問ActionServlet開發(fā)類中對應的Action方法,然后由Struts.xml中的映射直接調用相應的JSP。

Activiti工作流框架底層是基于Spring和ibatis存在的。雖然Hibernate、ibatis都是當前業(yè)界優(yōu)秀的O/R mapping框架,但是,只需定義好pojo到數據庫表的映射關系,就可以通過Hibernate 提供的方法完成持久層操作。這樣做,在很大程度上提高了系統(tǒng)的開發(fā)效率,所以,可將Hibernate與系統(tǒng)集成起來完成對數據層的操作。由應用架構圖可知,Spring容器可以管理系統(tǒng)中所有的業(yè)務和組件類。在實際項目開發(fā)過程中,通常將核心業(yè)務注入到Spring容器,而Activiti工作流引擎則由Spring管理。當Hibernate與Spring 集成應用時,需要在Spring的配置文件中配置Hibernate用到的一系列資源,比如Hibernate的配置、數據源(Data-Source)的配置。將Activiti工作流框架與Struts2、Hibernate有效地整合在一起,采取基于MVC的設計模式后,可以充分發(fā)揮各個框架的優(yōu)勢,從而解決單獨使用這些框架開發(fā)系統(tǒng)時存在的不足。

2.2 基于角色的安全訪問控制模型

在設計該框架時,引入了基于角色的安全訪問控制,并且系統(tǒng)中各種權限的操作不是直接授予具體的用戶,而是在用戶集合與權限集合之間建立一個角色集合,每種角色都有相應的權限。一旦用戶被分配了相應的角色后,該用戶就擁有該角色所有的操作權限。這樣做的好處是不必在每次創(chuàng)建用戶時都分配權限,只需要分配用戶相應的角色即可,而且角色的權限變更比用戶的權限變更要少得多。這樣不僅能簡化用戶的權限管理,還能減少系統(tǒng)的開銷。另外,通過權限控制可以防止系統(tǒng)的工作流應用數據被非法用戶修改。

此外,對于工作流系統(tǒng)的訪問控制機制,應當遵循職責分離的原則,比如在銀行業(yè)務中,授權付款和實施付款應該分開操作,如果發(fā)生權限交叉,則有可能出現(xiàn)欺騙行為。一般職責分離又分為動態(tài)分離和靜態(tài)分離。動態(tài)分離的職責是在系統(tǒng)為一個任務選擇執(zhí)行主體時實施互斥規(guī)則;靜態(tài)分離的職責是系統(tǒng)管理員創(chuàng)建用戶指定角色時實施互斥規(guī)則。

3 應用實例

本文選取了1個典型的工作流內部控制管理系統(tǒng)作為流程調度應用框架的應用實例。在系統(tǒng)流程運轉過程中,其常規(guī)操作步驟是:①系統(tǒng)完成applicationContext.xml配置文件的加載任務(該配置文件引入了相關的工作流全局配置文件Activiti.cfg.xml配置文件、Hibernate.cfg.xml配置文件和其他業(yè)務組件的核心配置文件);②利用applicationContext.xml獲取相關工作流的服務接口;③加載工作流文件*.bpmn信息;④由系統(tǒng)管理用戶完成工作流的工作部署。工作流部署成功后,用戶便可以根據系統(tǒng)分配的角色來完成其權限范圍內所對應業(yè)務(流程實例)的操作。該工作流內部控制管理系統(tǒng)如圖2所示。

由圖2可知,整個系統(tǒng)訪問都與角色相關,而且角色決定了用戶所涉及到的訪問權限,通過該控制模型可以讓各個用戶根據指定角色去完成其職責范圍內的任務。

3.1 用戶與角色

系統(tǒng)中的用戶可以分為系統(tǒng)用戶、管理層用戶和普通用戶。其中涉及到的角色可以分為系統(tǒng)管理員、技術主管和技術人員等。

3.2 權限集合

為了方便權限分配和回收,在用戶與權限集合之間引入了角色的概念。在該系統(tǒng)中,通過建立用戶表與角色表關聯(lián),再由角色與權限表關聯(lián)。當一個用戶被分配了某個角色后,它便具備了相應的訪問操作權限。用戶、角色和權限對應關系如表1所示。

系統(tǒng)是基于權限分離原則實現(xiàn)角色的安全訪問控制和設計的,它有效規(guī)避了權限越界操作行為的發(fā)生,并具有角色動態(tài)和靜態(tài)綁定機制。這樣做,既有效地實現(xiàn)了系統(tǒng)的便捷式安全訪問控制,又增強了系統(tǒng)身份鑒別和授權控制方面的安全性。

4 結論

傳統(tǒng)的工作流框架只能支持預先定義的、固定的、循環(huán)的業(yè)務流程類型,不支持在不重啟流程實例的情況下動態(tài)的、變化的流程類型和復雜委托代理過程等。在項目的實際開發(fā)過程中,還有可能會因為工作流技術設計上存在的缺陷縮短系統(tǒng)的生命周期。為了使工作流應用框架在實際項目開發(fā)中有更好的通用性和可擴展性,本文采用基于jBPM4的開源工作流框架Activiti和S2SH改進傳統(tǒng)工作流模型,并引入了基于角色的概念和角色動態(tài)、靜態(tài)綁定機制來提高系統(tǒng)的安全性,實現(xiàn)對系統(tǒng)的安全訪問控制,進而開發(fā)出1套適應各類Web工作流項目開發(fā)的安全原型。該模型不僅能解決文中提到的問題,還具有MVC設計模式的優(yōu)點,在很大程度上降低了視圖層、業(yè)務層和數據層之間的耦合,減少了工作量和程序的繁重程度,進一步提升了系統(tǒng)應用的通用性、可擴展性和可復用性等。

綜上所述,本文的創(chuàng)新點是以Activiti引擎為核心,基于角色的安全訪問控制和MVC設計模式,改進和擴展了傳統(tǒng)的工作流模型,提出了一種基于Java EE的輕量級框架Struts2、Hibernate和由工作流框架Activiti技術開發(fā)的原型體系結構。該結構是可以支持多個體交互、多角色、多資源的流程驅動應用框架,它的存在使系統(tǒng)應用具備通用性、可擴展性、可復用性以及系統(tǒng)身份鑒別和授權控制方面的功能。

參考文獻

[1]Apache Software Foundation.Apache OFBiz[EB/OL].[2010 -04-01].http://ofbiz.apache.org/.

[2]Activiti.Activiti BPM suite[EB/OL].[2010-06-01].http://www. activiti.org/.

[3]Colosa,Inc.ProcessMaker[EB/OL].[2010-06-01].http://www. processmaker.com/community-support/.

[4]Baeyens T,F(xiàn)aura M V.The process virtual machine[EB/OL].

[2007-05-08].http://docs.jboss.com/jbpm/pvm/article/.

[5]OMG.BPMN v2.0 Beta1[EB/OL].[2009-08-14].http://www. omg.org/cgi-bin/doc?dtc/.

[6]RaviSandhu,Edward Coyne,HalFeinstein,et al.Role-based access control models[J].IEEE Computer,1996,29(2).

[7]Zhong Hua,F(xiàn)eng Yu-lin,Jiang Hong-an.A role hierarchy model for role-based access control and its application[J].Journal of Software,2000,11(6).

[8]ReinhardtA Botha,JanHP Eloff.Separation of duties for access control enforcement inworkflow environments[J].IBM Systems Journal,2001,40(3).

[9]李剛.輕量級Java EE企業(yè)應用實戰(zhàn)[M].北京:電子工業(yè)出版社,2011.

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

[11]Walls G,Breidenbach R.Spring in Action[M].Commonwealth of Virginia:Manning Publications Co.,2005.

〔編輯:白潔〕

猜你喜歡
工作流
支持節(jié)點協(xié)同的工作流模型構建方法研究
基于工作流2.0的智慧教室設計與研究
工作流在電力生產管理信息系統(tǒng)中的設計和應用
“奔向共贏、做到最好”行業(yè)信息化研究方法論
工作流技術在醫(yī)療信息整合工程中的應用分析
基于工作流的水運應急信息管理平臺設計 
辦公自動化系統(tǒng)中公文管理模塊的設計和實現(xiàn)
基于J2EE的電子政務系統(tǒng)研究與應用
基于J2EE的電子政務系統(tǒng)研究與應用
基于目錄樹的工作流引擎設計與實現(xiàn)