嵌入式和獨立運行工作流的區(qū)別_第1頁
嵌入式和獨立運行工作流的區(qū)別_第2頁
嵌入式和獨立運行工作流的區(qū)別_第3頁
嵌入式和獨立運行工作流的區(qū)別_第4頁
嵌入式和獨立運行工作流的區(qū)別_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、嵌入式和獨立運行工作流的區(qū)別作者:shenjian根據(jù)工作流產(chǎn)品在運行時刻與業(yè)務(wù)應(yīng)用系統(tǒng)的關(guān)系,可以將國內(nèi)市場上的工作流軟件產(chǎn)品分為嵌入式和獨立運行兩大類。本文希望通過分析這兩類工作流產(chǎn)品的各自特點,為選擇工作流產(chǎn)品的用戶提供一些參考。因為工作流軟件一般應(yīng)用在電子政務(wù)、企業(yè)辦公和管理軟件上,同時在這些領(lǐng)域使用J2EE架構(gòu)已是一種趨勢,所以本文只著重于介紹基于J2EE技術(shù)實現(xiàn)的工作流引擎。嵌入式工作流引擎在部署上,嵌入式工作流引擎是不能單獨運行的,它是以一個軟件組件(或者說構(gòu)件)的形式運行在使用它的業(yè)務(wù)應(yīng)用中。因為工作流技術(shù)主要是解決復(fù)雜業(yè)務(wù)流程靈活定制和方便更改的問題,因此在應(yīng)用邏輯層次上,我

2、們可以把嵌入式工作流引擎看作是業(yè)務(wù)邏輯層的一部分。在與業(yè)務(wù)應(yīng)用的交互方式上,嵌入式工作流引擎通過提供WAPI(Workflow API)為展現(xiàn)層或業(yè)務(wù)邏輯層的其他部分提供服務(wù)(如啟動指定工作流程、查詢工作任務(wù)、設(shè)置流程運行業(yè)務(wù)數(shù)據(jù))。另一方面,工作流引擎經(jīng)常需要業(yè)務(wù)相關(guān)的數(shù)據(jù)或邏輯來決定流程流轉(zhuǎn),或者需要在不同任務(wù)之間傳遞業(yè)務(wù)數(shù)據(jù),這時候,流程引擎會調(diào)用業(yè)務(wù)應(yīng)用中業(yè)務(wù)邏輯或數(shù)據(jù)訪問模塊提供的API接口來完成相應(yīng)操作。獨立運行工作流引擎獨立運行工作流引擎本身就是一個單獨的應(yīng)用。作為服務(wù)應(yīng)用如果又沒有基于某個中間件技術(shù)的話,獨立運行工作流引擎必須自己實現(xiàn)多線程同步、網(wǎng)路通訊處理、資源池等服務(wù)端技術(shù)

3、,因此實現(xiàn)的成本高、技術(shù)復(fù)雜。在與業(yè)務(wù)應(yīng)用的交互方式上,獨立運行工作流引擎會以遠(yuǎn)過程調(diào)用的方式提供WAPI(Workflow API)。對于使用Java技術(shù)的獨立運行工作流引擎,遠(yuǎn)過程調(diào)用方式可以是RMI、JMS,或者能夠跨越異構(gòu)系統(tǒng)的Web Service。另外,獨立運行工作流引擎也必須為反過來如何調(diào)用業(yè)務(wù)應(yīng)用提供解決辦法。一般情況下,獨立運行工作流引擎應(yīng)該能夠直接調(diào)用外部業(yè)務(wù)應(yīng)用提供的遠(yuǎn)程接口(如基于RMI、JMS或者Web Service的業(yè)務(wù)接口),另一方面,業(yè)務(wù)應(yīng)用也必須為獨立運行工作流引擎提供遠(yuǎn)過程調(diào)用業(yè)務(wù)方法。當(dāng)然也有省事而走捷徑的方法,比如國內(nèi)市場占有率比較高的一款Java獨立

4、運行工作流產(chǎn)品,雖然提供了基于RMI/JMS的WAPI,卻沒有提供工作流引擎直接調(diào)用外部業(yè)務(wù)遠(yuǎn)程接口的方法。如果要讓工作流引擎調(diào)用外部業(yè)務(wù)邏輯,你必須編寫一個實現(xiàn)廠商特有接口的Java類,然后將它上傳并注冊到工作流引擎中。像上圖這種方式是可以解決實際業(yè)務(wù)問題(你自己編寫的java類可以做任何事情,比如遠(yuǎn)程調(diào)用或者訪問數(shù)據(jù)庫)。但很明顯,本來很多不該二次開發(fā)做的工作現(xiàn)在必須在二次開發(fā)時做了。同時,業(yè)務(wù)應(yīng)用邏輯分散在多個應(yīng)用(你的應(yīng)用和工作流引擎)中并且某些業(yè)務(wù)應(yīng)用邏輯(上傳到引擎的Java類)反過來要依賴廠家的接口,這些都是良好的架構(gòu)設(shè)計要避免的情況。一旦系統(tǒng)后期要做一些變動就會帶來很大麻煩。對

5、比下面我們就部署、二次開發(fā)的難易程度、性能、是否支持分布和EAI,對這兩類工作流引擎做一個對比。1、部署: 對于一個基于Java技術(shù)的嵌入式工作流引擎,在部署時非常簡單,你只要將對應(yīng)的jar文件加到classpath中就可以了。獨立運行工作流引擎因為是獨立的應(yīng)用,并且必須通過RMI/JMS/Web service等遠(yuǎn)程調(diào)用技術(shù)與業(yè)務(wù)應(yīng)用交互,所以部署起來要麻煩得多;2、二次開發(fā): 由于大部分獨立運行工作流引擎也會在客戶端,提供方便遠(yuǎn)程調(diào)用的本地調(diào)用API,所以在二次開發(fā)時,程序員大部分時間都可以不大關(guān)注引擎是本地的還是遠(yuǎn)程的。但在傳遞某些業(yè)務(wù)參數(shù)和例外處理中,遠(yuǎn)程調(diào)用還是有些特殊的要求和限制的

6、。因此總的來說,在二次開發(fā)上獨立運行工作流引擎對程序員要求高一些;3、性能:毫無疑問,因為沒有遠(yuǎn)過程調(diào)用,嵌入式工作流引擎要占明顯優(yōu)勢;4、分布和EAI:獨立運行工作流引擎能夠和多個業(yè)務(wù)系統(tǒng)打交道,嵌入式工作流不能直接和宿主系統(tǒng)以外的系統(tǒng)交互。因此只有獨立運行工作流引擎支持分布式應(yīng)用,和支持通過業(yè)務(wù)流程做企業(yè)應(yīng)用集成(EAI)。如何選擇通過上面的對比已經(jīng)很清楚了。如果你需要工作流程在多個系統(tǒng)中流轉(zhuǎn),那么選擇獨立運行工作流引擎。在其他情況下,選擇嵌入式工作流引擎。同時,即使你因為分布或EAI而準(zhǔn)備選擇獨立運行工作流引擎,你也應(yīng)當(dāng)選擇在業(yè)務(wù)與引擎兩個調(diào)用方向上,都直接支持遠(yuǎn)過程調(diào)用的工作流產(chǎn)品。如

7、果獨立運行工作流引擎在某個調(diào)用方向上(比如回調(diào)業(yè)務(wù)應(yīng)用)沒有提供方法,需要用戶在二次開發(fā)時自己解決,這種情況下請選擇嵌入式工作流引擎。發(fā)展方向一般國內(nèi)獨立運行工作流產(chǎn)品歷史會比較長,大部分是在7-8年前開始立項開發(fā)的,那時候正是分布式應(yīng)用理論最火熱的時候??呻S著人們在實踐中的經(jīng)驗教訓(xùn)和積累,發(fā)現(xiàn)很多情況下我們不需要復(fù)雜的分布式應(yīng)用。這也是近幾年來在Java世界里,許多人提倡“輕量級”、“no-EJB”的原因。事實上,嵌入式工作流引擎經(jīng)過一定的擴(kuò)展也能夠處理跨系統(tǒng)的流程交互:在上圖中,新的嵌入式工作流引擎通過附加工具能夠為外部業(yè)務(wù)接口(不管是RIM/JMS/Web Service)自動生成適配器(Adapter)供引擎使用,另外引擎會對外提供遠(yuǎn)程WAPI(包括客戶端適配器)。具備了遠(yuǎn)程交互能力的嵌入式引擎仍然可以作為組件在主要的業(yè)務(wù)應(yīng)用中使用,從而使得大部分業(yè)務(wù)邏輯和引擎之間的交互為本地調(diào)用,不會造成性能的損失。國際著名工作流專家Michael zur Muehlen 在其 “Workflow-based Process Co

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論