免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Java開源工作流對比
工作流(Workflow)
1、業(yè)務過程的部分或整體在計算機應用環(huán)境下的自動化;
2、是對工作流程及其各步驟之間業(yè)務規(guī)則的抽象、概括描述;
3、工作流主要解決的問題是:為了實現(xiàn)某個業(yè)務目標,利用計算機在多個參與者之間按某種預定規(guī)則自動傳遞文檔、信息或者任務;
4、工作流的概念起源于生產組織和辦公自動化領域,是針對日常工作中具有固定程序活動而提出的一個概念;目的是通過將工作分解成定義良好的任務或角色,按照一定規(guī)則和過程來執(zhí)行這些任務并對其進行監(jiān)控;達到提高工作效率、更好的控制過程、增強對客戶的服務、有效管理業(yè)務流程等目的;
5、Georgakopoulos給出的工作流定義是:工作流是將一組任務組織起來一完成某個經(jīng)營過程:定義了任務的出發(fā)順序和觸發(fā)條件,每個任務可以由一個或多個軟件系統(tǒng)完成,也可以由一個或一組人完成,還可以由一個或多個人與系統(tǒng)軟件協(xié)作完成;
6、工作流的特點:(1)極大地提高了工作效率;(2)本身只是業(yè)務邏輯決定的一個事務流程;(3)一旦啟動,自動流轉;(4)具有事務的特征;(5)流程節(jié)點靈活可配;(6)符合面向對象的思想
7、工作流的分類:(1)順序工作流;(2)流程圖工作流;(3)狀態(tài)機工作流
8、工作流就是:在一個工作群組中,為了達成某一個共同目的而需要多人協(xié)力以循序或平行工作的形式來共同完成的任務
關于工作流的幾個名詞解釋:
任務
泛指各種事務上所必需執(zhí)行的流程性工作
循序或平行工作
工作的流動性是一個人接著一個人執(zhí)行,或同時由多個人分開執(zhí)行,或是上述兩類工作合并之后的混合型工作
多人
若是單人就可以完成的工作,則不能歸類為流程工作;凡是一件工作必須由兩個人或更多人來協(xié)力完成的工作才能稱之為流程工作;
共同目的
多人參與的流程性工作,必須是以完成共同目的為前提;如果一群人是分別針對不同的專案來執(zhí)行個別的工作,并不算構成一個工作流程;
9、 鏈接:   從程序員的角度來看為什么我們需要工作流
10、 鏈接:   工作流簡介及其6種常用的工作流引擎
J2EE常用工作流比較
引用鏈接
Shark(EnhydraShark)
Osworkflow opensymphony
JBPM(JBoss JBPM)
Java Business Process Management
工作流描述語言
XPDL:WFMC制定的描述業(yè)務流程控制流的XML格式規(guī)范,格式復雜,與具體語言無關,不靈活
1、XML:流程定義格式簡單,使用靈活
2、基于有限狀態(tài)機模型
1、JPdl:JBoss jBPM Processdefinition language,一個商務流程被看作是一個UML狀態(tài)圖。
2、基于UML的狀態(tài)圖和活動圖來定義流程,已加入JBOSS大家庭,市場前景看好。
是否開源,開源協(xié)議
一個可擴展的工作流引擎框架?,F(xiàn)在不再開源,用于商業(yè)用途
開源的嵌入式工作流引擎 ,它的使用遵循 Apache License
一種基于J2EE的輕量級工作流管理系統(tǒng),它的使用遵循 Apache License
相關開源項目
Jawe
Osworkflow for .net
支持是否全面
流程定制工具JAWE
1、帶有一個簡陋的流程定制工具,但十分簡陋且常有錯誤
2、需要專業(yè)技術用戶使用
1、Jbpm3的圖形化流程定義嵌入到jbosseclipse IDE
2、流程定制方式更接近用戶的理解
拓展性
體系和功能最為復雜,秉承“模塊化”的思想,比較容易擴展
有良好的擴展性,絕對的靈活(同時也增加了開發(fā)者的工作量,需要自己寫一些必要的函數(shù))
最適宜擴展(Jbpm的過程模式支持是比較固定的,但是其對任務的中action擴展是很的靈活)最適宜被商業(yè)化應用
持久化
Shark的持久層采用DODS來實現(xiàn)
1、它提供的持久化API:EJB,Hibernate,JDBC等
2、Osworkflow 可以與Spring集成。
利用hibernate持久化
小結
Shark是體系和功能最為復雜的代表。它是一款遵循WfMC的XPDL標準開源工作流引擎,并且同時遵循OMG組織的WorkflowManagement Facility規(guī)范。XPDL的兩個最重要的概念是Process和Activity。XPDL中的Activity是基于UML1.x中的活動圖的概念?;顒訄D天生的適于工作流程建模,它相對于狀態(tài)圖的一個最大的優(yōu)點是容易做并發(fā)線程的分叉控制,這些并發(fā)線程可以同時執(zhí)行也可以順序執(zhí)行;它還有一個優(yōu)點是有泳道的概念,可以控制工作流引擎中的任務的產生。
在所有開源工作流引擎中,Shark的體系最為完備和復雜。其一直秉承著“模塊化”的思想,所以比較容易擴展。但是自從被Together公司收購后,Shark的商業(yè)化色彩已經(jīng)越來越濃,改稱為Together Workflow Server,并僅以Community Edition的形式提供了部分開源代碼供參考。
OSWorkflow是最輕量型的代表,也是一款非常靈活和低級別定位的工作流引擎的實現(xiàn)框架。低級別定位的意思是說,它不是定位在解決流程模型對象和運轉場景,而是提供一套可維護調度的機制,供開發(fā)人員自主擴展。這個維護流程調度機制OSWorkflow選擇的是基于行為(Action)的FSM理論,所以OSWorkflow更像是一個復雜而靈活的有限狀態(tài)調度機。
Osworkflow有個重要概念是State,State是由step和status聯(lián)合表達的,一個State就是一個step中的某個status;而state的轉換由action來驅動,類似狀態(tài)圖中的event,因為一個event對應一個action
OSWorkflow在國內項目應用得較多,很多國內的簡易審批流程項目都是基于其引擎二次開發(fā)而來。這主要是由于OSWorkflow是基于Action驅動的,而國內的客戶也很容易接受這樣的操作習慣。但OSWorkflow所依賴的FSM模型對于分支、聚合、子流程的支持度很低,這一點在實施過程中需要注意。
Jbpm結合應用了狀態(tài)圖+活動圖+PetriNet的知識,而且這里的活動圖還是UML2.0版的。UML2.0的活動圖中,節(jié)點不叫活動(Activity)而叫動作(action),活動成了一個高層次的概念,它包含一個動作序列。一個活動圖展現(xiàn)一系列的動作,這些動作組成了活動。Jbpm把action也改名了,稱為state。Jbpm使用的狀態(tài)圖的概念有transition/event等。Jbpm來內部實現(xiàn)中還采用了PetriNet的概念,如token,signal等,jBpm對Token的應用很有特色,巧妙地利用Parent-Child Token的機制處理分支、父子流程等復雜應用場景。
jBpm是最適合擴展的代表,是在所有開源引擎中最適宜被商業(yè)化應用的一款。首先其流程建模模型是基于Activity Diagram(活動圖)的,并在引擎構建上融入了FSM和PetriNet思想,所以其內核和根基比較牢固扎實。其次,自從被JBoss收購后,其3.x系列的結構更加趨于微內核,Plug-in思想也更加深入。其同時還提供了對BPEL擴展,存儲支持JBossHibernate實現(xiàn),集成了JBoss seam,規(guī)則引擎準備采用JBossrules,并準備集成JBoss Messaging。這樣,不論從內核和外圍應用,jBpm都具有了強勁的動力。
用OSWorkFlow和JBPM開發(fā)工作流異同
引用鏈接
JPBM
OSWorkFlow
編寫流程描述文件方式
BPM是通過圖形化的編輯工具(JBPM自帶的Eclipse插件)來編寫業(yè)務流程如開始狀態(tài),結束狀態(tài),以及狀態(tài)之間的轉換,之后會自動生成XML文件,但具體每一步相關的細節(jié)操作還是要手工配置(如該節(jié)點是屬于什么類型節(jié)點,相關的函數(shù),要不要較驗)。
OSWorkFlow則要通過手工寫XML文件來定義流程文件,而且它涉及的標簽元素比較多,其用戶手冊上也建議實施人員不要去修改流程,否則流程很容易破壞。
工作流信息保存方式
JBPM是將流程信息直接保存到數(shù)據(jù)庫,可以用任何方式對數(shù)據(jù)庫的操作,這樣就要引入保存工作流信息的相關表。
OSWorkFlow是既可以保存在XML文件里,也可以保存在數(shù)據(jù)庫中,保存在數(shù)據(jù)庫中時需要配置propertySet.xml文件,比較復雜,而且它不是完全支持hibernate(如引入osuser來作權限分析時),此時要自定義操作數(shù)據(jù)庫的方式。
與系統(tǒng)集成
JBPM集成比較容易,加入Spring支持包spring-modules-jbpm31.jar,該包加入了Spring對JBPM的包裝,所有的集成都是在此包基礎之上。之后還要配置sessionFactoryForJbpm ,jbpmConfiguration,jbpmTemplate, jbpmDao。
OSWorkFlow跟Spring集成須要如下所需組件:
1)SpringHibernateWorkflowStore,讓工作流程實例(如果需要的話)分享當前事務。      2) SpringTypeResolver,允許 OSWorkflow 從 Spring ApplicationContext中獲得業(yè)務邏輯組件(conditions, functions等等)。      3)SpringConfiguration, 這是一個 Workflow Configuration 接口的實現(xiàn)類, 它包含指向 store和 factory的引用,這樣可以在 spring 中注射或者連接。      4) SpringWorkflowFactory,這是一個 XMLWorkflowFactory 封裝包,它可以允許從容器中注入 configuration,從而不再從其它的 XML 配置文件中讀取它們。
如果OSWorkFlow引入osuser.xml來設置權限,則不支持Hibernate3,因為osuser是比較獨立的模塊,目前還沒有支持hibernate3,所以跟Spring集成時要修改配置文件applicationContext-hibernate3.xml
重點難點
JPDL語言的學習,主要是用來編寫流程文件;理解3個接口:動作處理接口(提供影響流程執(zhí)行的方法,在event和action元素中被回調),判定處理接口(用在decision判定節(jié)點中,提供方法來判定節(jié)點的轉向),委派處理接口(用在task的委派子元素assignment中,用來指定將任務分配給指定的人員或角色)。
工作流文件定義的元素,主要用來編寫工作流;OSWorkFlow.xml及propertySet.xml文件的配置;InputMap接口、Workflow 接口及WorkflowDescriptor接口。
開發(fā)步驟
通過圖形編輯工具編寫業(yè)務流程――>生成xml流程文件――>修改流程文件(判斷節(jié)點是任務節(jié)點、普通節(jié)點還是判定節(jié)點,之后作相應修改)――>導入保存流程信息的數(shù)據(jù)庫表――>部署流程定義文件(將流程文件中的內容放到數(shù)據(jù)庫中)――>創(chuàng)建流程實例――>調用JBPM提供的signal方法執(zhí)行流程流轉
手工編寫工作流文件——>配置OSWorkflow.xml――>配置WorkStore——>配置propertySet.xml,osUser.xml文件(如果需要用戶權限)――>調用AbatractWorkflow類加載OSWorkflow.xml(它會自動加載工作流文件及數(shù)據(jù)庫配置文件)――>調用WorkFlow接口方法(initial()方法,transitionWorkflow()方法,doAction()方法)
流轉方法
先確定節(jié)點是什么節(jié)點,如果是普通的Node節(jié)點,則是流程執(zhí)行到此節(jié)點不會中斷,繼續(xù)執(zhí)行;如果是state節(jié)點,則流程執(zhí)行到此節(jié)點會中斷,直到系統(tǒng)外的參與者發(fā)會命令才能繼續(xù)執(zhí)行,即調用signal()或end()方法;如果節(jié)點是Task-node,則會根據(jù)task任務列表的任務有沒全部執(zhí)行完來決定流轉。
一個工作流包含多個步驟。每一個步驟都有一個當前狀態(tài)(例如, Queued, Underway, or Finished)。每一個步驟中都有一個或者多個動作可以被執(zhí)行。每一個動作都可以設置執(zhí)行條件(condition),也可以設置執(zhí)行函數(shù)(pre-function or post-function)。動作產生結果(result),導致工作流的狀態(tài)和當前步驟發(fā)生改變
流程定義文件主要元素
一個JBPM的流程定義XML文件中包含一個< process-definition>元素,而一個< process-definition>元素又包含零個或一個< description>元素,零個或多個的< swimlane>元素,一個< start-state>元素,零個或多個的< state>元素或< decision>元素或< fork>元素或< join>元素,以及零個或多個的< action>元素,零個或多個<task-node>和<node>元素,一個< end-state>元素等等。此外,< process definition>元素有一個標示符,以“name”屬性來表示,這個屬性必須存在,用來表示該流程的名稱。
步驟(step)、條件(conditions)、循環(huán)(loops)、分支(spilts)、合并(joins)、角色(roles)、函數(shù)(function)
其他
JBPM的Scheduler可以實現(xiàn)在JBPM流程中定時觸發(fā)某一動作。在流程中JPBM提供了timer節(jié)點供我們使用,通過這個節(jié)點我們可以實現(xiàn)節(jié)點動作的定時觸發(fā)。
深入了解jBPM5與Activiti之間的差異對比
引用鏈接
Activiti
JBPM5
相似之處
1、都是BPMN2過程建模和執(zhí)行環(huán)境。
2、都是BPM系統(tǒng)(符合BPM規(guī)范)。
3、都是開源項目-遵循ASL協(xié)議( Apache的 軟件許可)。
4、都源自JBoss(Activiti5是jBPM4的衍生,jBPM5則基于Drools Flow)。
5、都很成熟,從無到有,雙方開始約始于2年半前。 都有對人工任務的生命周期管理。
6、Activiti5和jBPM5唯一的區(qū)別是jBPM5基于WebService - HumanTask標準來描述人工任務和管理生命周期。 如有興趣了解這方面的標準及其優(yōu)點,可參閱WS - HT規(guī)范介紹 。
7、 都使用了不同風格的 Oryx 流程編輯器對BPMN2建模。 jBPM5采用的是 Intalio 維護的開源項目分支。 Activiti5則使用了Signavio維護的分支。
數(shù)據(jù)庫持久層ORM
MyBatis3
Hibernate3
持久化標準
JPA規(guī)范
事務管理
MyBatis機制/Spring事務控制
Bitronix,基于JTA事務管理
數(shù)據(jù)庫連接方式
Jdbc/DataSource
Jdbc/DataSource
支持數(shù)據(jù)庫
Oracle、SQL Server、MySQL等多數(shù)數(shù)據(jù)庫
Oracle、SQL Server、MySQL等多數(shù)數(shù)據(jù)庫
設計模式
Command模式、觀察者模式等
內部服務通訊
Service間通過API調用
基于Apache Mina異步通訊
集成接口
SOAP、Mule、RESTful
消息通訊
支持的流程格式
BPMN2、xPDL、jPDL等
目前僅只支持BPMN2 xml
引擎核心
PVM(流程虛擬機)
Drools
技術前身
jBPM3、jBPM4
Drools Flow
所屬公司
Alfresco
jBoss.org
集成
Activiti5使用Spring進行引擎配置以及各個Bean的管理,綜合使用IoC和AOP技術,使用CXF作為Web Services實現(xiàn)的基礎,使用MyBatis進行底層數(shù)據(jù)庫ORM的管理,預先提供Bundle化包能較容易的與OSGi進行集成,通過與Mule ESB的集成和對外部服務(Web Service、RESTful等)的接口可以構建全面的SOA應用;
jBPM5使用jBoss.org社區(qū)的大多數(shù)組件,以Drools Flow為核心組件作為流程引擎的核心構成,以Hibernate作為數(shù)據(jù)持久化ORM實現(xiàn),采用基于JPA/JTA的可插拔的持久化和事務控制規(guī)范,使用Guvnor作為流程管理倉庫,能夠與Seam、Spring、OSGi等集成。
優(yōu)劣對比
從技術組成來看,Activiti最大的優(yōu)勢是采用了PVM(流程虛擬機),支持除了BPMN2.0規(guī)范之外的流程格式,與外部服務有良好的集成能力,延續(xù)了jBPM3、jBPM4良好的社區(qū)支持,服務接口清晰,鏈式API更為優(yōu)雅;Activiti上手比較快,界面也比較簡潔、直觀
劣勢是持久化層沒有遵循JPA規(guī)范。
jBPM最大的優(yōu)勢是采用了Apache Mina異步通信技術,采用JPA/JTA持久化方面的標準,以功能齊全的Guvnor作為流程倉庫,有RedHat(jBoss.org被紅帽收購)的專業(yè)化支持;
但其劣勢也很明顯,對自身技術依賴過緊且目前僅支持BPMN2。
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
jboss jbpm 工作流管理系統(tǒng)簡介
三大工作流引擎對比
Java版工作流實現(xiàn)技術大比拼
JBoss ESB-jBPM集成
jBPM 4專題 - 深入PVM
工作流:三分天下
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服