亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        譚恒 周鳳

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

        關(guān)鍵詞:Activiti引擎;工作流;輕量級框架;流程調(diào)度軟件

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

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

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

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

        1 工作流技術(shù)與Activiti引擎的基本原理

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

        2 應(yīng)用框架設(shè)計

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

        2.1 集成框架功能

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

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

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

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

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

        3 應(yīng)用實例

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

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

        3.1 用戶與角色

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

        3.2 權(quán)限集合

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

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

        4 結(jié)論

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

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

        參考文獻

        [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è)應(yīng)用實戰(zhàn)[M].北京:電子工業(yè)出版社,2011.

        [10]范玉順.工作流管理技術(shù)基礎(chǔ)[M].北京:清華大學(xué)出版社,2001.

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

        〔編輯:白潔〕

        中文人妻无码一区二区三区信息| 妺妺窝人体色www婷婷| 中文亚洲av片在线观看| 少妇的丰满3中文字幕| 特一级熟女毛片免费观看| 日韩av在线手机免费观看| 中国少妇×xxxx性裸交| 在教室伦流澡到高潮hgl视频| 国产亚洲精品福利在线| 开心五月激动心情五月| 精品国产粉嫩内射白浆内射双马尾| 麻豆成人精品国产免费| 男女一级毛片免费视频看| 天堂av中文在线官网| 日韩精品熟妇一区二区三区| 中文字幕一区二区人妻性色| 国产综合自拍| 国产在线观看免费不卡视频| 日本xxxx色视频在线观看免费| 特级av毛片免费观看| 日本免费一区二区三区在线看| 成人性生交大片免费看激情玛丽莎| 色窝窝亚洲av网在线观看| 性欧美暴力猛交69hd| 亚洲午夜久久久久中文字幕久| 国产av精选一区二区| 午夜天堂精品久久久久| vr成人片在线播放网站| 久久精品国产亚洲av麻豆四虎| 在线观看麻豆精品视频| 曰本人做爰又黄又粗视频| 精品无码AV无码免费专区| 亚洲国产天堂av成人在线播放 | 99久久精品在线视频| 久久夜色精品国产欧美乱| 98国产精品永久在线观看| 国内精品毛片av在线播放| 色欲综合一区二区三区| 日韩高清亚洲日韩精品一区| 亚洲国产精品二区三区| 国产自国产自愉自愉免费24区|