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

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

2016-01-19 02:31:47譚恒周鳳
科技與創新 2016年1期

譚恒 周鳳

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

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

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

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

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

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

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

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

2 應用框架設計

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

2.1 集成框架功能

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

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

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

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

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

3 應用實例

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

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

3.1 用戶與角色

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

3.2 權限集合

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

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

4 結論

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

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

參考文獻

[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,Faura 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,Feng 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企業應用實戰[M].北京:電子工業出版社,2011.

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

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

〔編輯:白潔〕

主站蜘蛛池模板: 精品人妻系列无码专区久久| 日韩精品一区二区深田咏美 | 久久网欧美| 国产网站在线看| 国产乱子伦精品视频| 日韩AV手机在线观看蜜芽| 在线看免费无码av天堂的| 亚洲永久精品ww47国产| 国产精品久久久精品三级| 激情乱人伦| 欧美一级黄色影院| 伊人色在线视频| 天堂av高清一区二区三区| 国产永久在线观看| 欧美精品在线观看视频| 欧美在线天堂| 色视频久久| AV不卡在线永久免费观看| julia中文字幕久久亚洲| 91欧美在线| 影音先锋亚洲无码| 国产日产欧美精品| 日韩精品无码免费专网站| 国产成人福利在线| 国产中文一区a级毛片视频| 亚洲欧美综合另类图片小说区| 亚洲三级电影在线播放 | 国产午夜人做人免费视频| 日韩人妻无码制服丝袜视频| 久久精品嫩草研究院| 久久综合伊人 六十路| 精品91视频| 国产成人综合在线观看| 91久久国产综合精品女同我| 草草影院国产第一页| 日韩免费视频播播| 国产产在线精品亚洲aavv| 午夜无码一区二区三区在线app| 午夜国产小视频| 久热这里只有精品6| 国内精品自在自线视频香蕉| 国产精品亚洲天堂| 国内精品视频在线| 成年人国产网站| 国产农村妇女精品一二区| 一级毛片免费高清视频| 2022国产91精品久久久久久| 久久亚洲高清国产| 色网在线视频| 在线观看免费人成视频色快速| 国产高清在线观看91精品| 日韩在线视频网| 国产精品漂亮美女在线观看| 久久久久久久97| 亚洲视频影院| 性色一区| 亚洲天堂网视频| 国产一级在线观看www色| 亚洲精品无码久久毛片波多野吉| 国产丝袜第一页| 91精品在线视频观看| 国产人成在线视频| 国产一级无码不卡视频| 久久精品国产免费观看频道| 欧美日韩国产精品综合| 亚洲欧洲免费视频| 青青网在线国产| 亚洲国产综合自在线另类| 国产精品香蕉| 9丨情侣偷在线精品国产| 国产99久久亚洲综合精品西瓜tv| 中文字幕乱妇无码AV在线| 中文毛片无遮挡播放免费| 成人一区在线| 国产区免费| 在线国产三级| 亚洲国产成人在线| 人妻一区二区三区无码精品一区| AV熟女乱| 欧美日韩另类在线| 亚洲高清资源| 国产成人免费视频精品一区二区|