Java工作流最新技術 java工作流是什么

三大主流作業流引擎:Shark,osworkflow , jbpm!
Shark的靠山是Enhydra 。Enhydra做過什么呢?多了!從j2ee應用服務器,到o/rmapping工具 , 到這個作業流引擎等等 。
為什么Shark的持久層選用DODS來完結?便是由于他們是一家人 。
Jbpm的靠山是jboss 。Jbpm3的持久層選用hibernate3來完結,也是由于這個原因吧 。
【Java工作流最新技術 java工作流是什么】Jbpm3的圖形化流程界說已經決議嵌入到jbosseclipseIDE中,咱們看看jbosseclipseIDEpreview1.5版,咱們已經能夠用插件方法修改一個jbpm3流程界說文件了 。
Osworkflow的靠山是opensymphony 。我是非常喜歡這個組織的,它做出了很多的好東西 。
在開發作業流辦理體系時,我就推薦用它的另外一個東西:webwork2 。
有人(gzRiven)主持的開源作業流引擎AgileFlow便是根據ww2+spring+hibernate架構完結的 。寫到這兒我想是不是它能夠和struts2進行完美整合?!
完結本段時說句題外話:現在基本上一切的J2EE應用程序服務器都有自己的作業流引擎,如上面說到的Enhydra,jboss和沒有說到的websphere和weblogic等,可見 , 學習作業流引擎技術的確是非常重要的 。
Shark的流程界說語言是XPDL,咱們知道,XPDL的兩個最重要的概念是Process和Activity 。XPDL中的Activity是根據UML1.x中的活動圖的概念 。
活動圖天然生成的適于作業流程建模,它相對于狀態圖的一個最大的長處是簡單做并發線程的分叉控制 , 這些并發線程能夠同時執行也能夠順序執行;它還有一個長處是有泳道的概念 , 能夠控制作業流引擎中的使命的發生 。Shark的如來神掌是活動圖 。
Osworkflow的如來神掌又是什么呢?咱們知道,它有個重要概念是State……呵呵,咱們知道了,它的如來神掌是FSM 。不知道FSM是什么東西??那你讀大學時必定不是好學生;當然了,不知道也不打緊,你把他相似理解為狀態圖就能夠了 。Osworkflow中的State是由step和status聯合表達的,一個State便是一個step中的某個status;而state的轉換由action來驅動 , 相似狀態圖中的event,由于一個event對應一個action嘛 。
Jbpm的如來神掌就沒有上面的簡單了 , 它結合應用了狀態圖+活動圖+PetriNet的常識,并且,這兒的活動圖還是UML2.0版的 。UML2.0的活動圖中,節點不叫活動(Activity)而叫動作(action) , 活動成了一個高層次的概念,它包含一個動作序列 。一個活動圖展示一系列的動作,這些動作組成了活動 。Jbpm把action也改名了,稱為state 。Jbpm運用的狀態圖的概念有transition/event等 , 這個自己去看吧 。Jbpm來內部完結中還選用了PetriNet的概念,如token,signal等 。什么?又不知道PetriNet什么東東?那你大學是學計算機的嗎?不是?那你可能是學文科的,學機械/電氣/土木工程/交通運輸等專業都有接觸PetriNet的課程,如果沒有學過,還是看看jbpm吧,橫豎咱們也不搞理論,知道大致概念就行 。
自己觀念:做觀念是件吃力不討好的工作,好多國外的大師做的觀念也是被人罵得……我的觀念是:Shark……將登上頭號寶座 。應該說,在那篇文章發表前,國內的作業流引擎運用率最高的是osworkflow;到去年年末,Shark就占有了顯著的優勢地位,我分析有如下原因:
1.國內的企業都看中XPDL , 由于這意味著在產品闡明書中又能夠吹噓說“咱們遵從WFMC……”
2.由于我自詡“Shark作業流引擎在國內的首要推行者”,大部分給我反饋作業流辦理體系開發選用技術的朋友都是用的Shark
3.Shark的確是一套不錯的作業流引擎,就算你僅僅想學習XPDL,你也能夠從學習Shark開始 。
4.不過我還是看好osworkflow 。

Java工作流最新技術 java工作流是什么

文章插圖
java工作流是什么 一、什么是作業流以請假為例,現在大多數公司的請假流程是這樣的
職工打電話(或網聊)向上級提出請假申請——上級口頭同意——上級將請假記載下來——月底將請假記載上交公司——公司將請假錄入電腦
采用作業流技能的公司的請假流程是這樣的
職工運用賬戶登錄體系——點擊請假——上級登錄體系點擊答應
就這樣,一個請假流程就結束了
有人會問 , 那上級不必向公司提交請假記載?公司不必將記載錄入電腦?答案是,用的 。但是這一切的作業都會在上級點擊答應后主動運轉!
這便是作業流技能 。Georgakopoulos給出的作業流界說是:作業流是將一組使命組織起來以完結某個運營進程:界說了使命的觸發次序和觸發條件,每個使命能夠由一個或多個軟件體系完結,也能夠由一個或一組人完結,還能夠由一個或多個人與軟件體系協作完
二、作業流技能的優點 從上面的例子,很簡單看出作業流體系,實現了作業流程的主動化,進步了企業運營功率、改進企業資源使用、進步企業運作的靈活性和適應性、進步量化查核業務處理的功率、削減糟蹋(時間便是金錢) 。
而手藝處理作業流程,一方面無法對整個流程情況進行有效跟蹤、了解 , 另一方面難免會呈現人為的失誤和時間上的延時導致功率低下 , 特別是無法進行量化計算 , 不利于查詢、報表及績效評價 。
三、Java開發者會為什么要學Activity作業流
在Java領域,JBPM和Activity是兩個主流的作業流體系,而Activity的呈現無疑將會取代JBPM(Activity的開發者便是從Jbpm開發者出來的) 。
四、Activity作業流學習關鍵
1.1個插件在Eclipse中安裝Activity插件,讓你能夠在Eclipse中繪制Activity作業流圖
2.1個引擎ProcessEngine目標,Activity作業流引擎 。這是Activiti作業的核心 。負責生成流程運轉時的各種實例及數據、監控和管理流程的運轉 。
一切的操作都是從獲取引擎開端的,所以一般會把引擎作為全局變量
ProcessEngineprocessEngine=ProcessEngines.getDefaultProcessEngine();
3.1個裝備文件activiti.cfg.xml 。Activiti核心裝備文件,裝備流程引擎創建工具的基本參數和數據庫連接池參數
4.5種數據庫表Activiti的后臺是有數據庫的支持,一切的表都以ACT_開頭 。第二部分是表明表的用處的兩個字母標識 。用處也和服務的API對應 。
ACT_RE_*:’RE’表明repository 。這個前綴的表包括了流程界說和流程靜態資源(圖片,規矩,等等) 。
ACT_RU_*:’RU’表明runtime 。這些運轉時的表,包括流程實例,使命 , 變量,異步使命,等運轉中的數據 。Activiti只在流程實例履行進程中保存這些數據,在流程結束時就會刪除這些記載 。這樣運轉時表能夠一直很小速度很快 。
ACT_ID_*:’ID’表明identity 。這些表包括身份信息,比方用戶 , 組等等 。
ACT_HI_*:’HI’表明history 。這些表包括前史數據,比方前史流程實例 , 變量,使命等等 。
ACT_GE_*:通用數據,用于不同場景下,如寄存資源文件 。
5.23張表不同的表寄存不同方面的數據,有流程界說表、使命結點表、流程變量表、使命前史表等等 。
6.5項Service不同的Service類對應不同的功能 。
比方TaskService,是activiti的使命服務類 。能夠從這個類中獲取使命的信息 。
而HistoryService,則是activiti的查詢前史信息的類 。在一個流程履行完結后,這個目標為我們供給查詢前史信息 。
7.7項基本操作規劃流程圖(各種組件,如連線、用戶使命、網關)
流程界說增修改查 流程變量增修改查 發動流程界說 使命增修改查 完結使命 前史信息查詢