2010-12-17 56 views
4

作爲一個初學者,我應該如何去決定一個特定的過程是作爲ESB還是作爲BPEL來實現的?何時使用BPEL和ESB?

人們應該使用哪些參數來決定是否應該使用實現?

+0

堅定起來的問題了一下:HTTP:// WWW .infoq.com/news/2009/01/WhoNeedsBPEL#view_38502 – 2010-12-17 05:46:50

+0

當你說「ESB」時,你的意思是什麼?只是說ESB有點寬泛。 – 2010-12-17 06:11:22

回答

11

首先,ESB只是一個概念,而BPEL是基於XML和Web服務的OASIS標準。一個BPEL文件實際上是XML。

當您需要將2個或更多應用程序連接在一起時,您可以使用ESB,以避免直接點對點集成。這提供了各種好處,例如將消息從一種格式轉換爲另一種格式,或引入其他消息交換模式。一個ESB的通信通常是無狀態的,即一條消息經過,被路由到它的目的地,並在那裏結束。 ESB是一個非常廣泛的術語,由供應商解釋和曲解以推銷他們的產品。

另一方面,實施BPEL和類似技術的業務流程管理系統關注於跟蹤各種活動及其關係的進度。 BPEL流程與流程圖非常相似。 BPEL流程保留了狀態,記錄了它的進度和流程,並且通常用於(儘管不一定)長時間的交易,這也可能涉及人工任務。

BPEL流程的教科書示例是貸款處理應用程序。客戶貸款請求進入,並且該流程首先在某些系統上使用Web服務調用執行一些自動檢查,如果信用評級過低,系統會通知管理人員手動評估表單(通過某些工作流程系統)。然後該流程等待來自人工工作流系統的回調,使用某種關聯方法(某些ID)將其與正確的BPEL流程實例進行匹配(以便正確的客戶得到服務),然後相應地恢復流程。

2

根據我的經驗,ESB總是針對不包含等待狀態的進程。當你剛剛瀏覽一個服務列表,並且將會指向一個沒有任何暫停狀態的點b時,我會使用一個ESB。 ESB也可以處理更多的消息請求。

無論何時涉及人際交互(輸入值,評審提交),我都傾向於在BPM中實現這一點。這些往往有更強大的處理長時間的等待。

-2

在ESB和BPEL之間做出選擇時,您需要問自己幾個問題。其中最重要的:
- 我是在處理無狀態進程(然後選擇ESB)還是有狀態進程(因此我選擇BPEL)
- 是否需要處理大量的短消息 - 在這種情況下我選擇ESB
- 我是否需要業務流程的編排 - 然後我用BPEL

在這裏,你有你的問題一個很好的資源: http://www.ibm.com/developerworks/websphere/library/techarticles/0803_fasbinder2/0803_fasbinder2.html

+1

一個潛在解決方案的鏈接總是受歡迎的,但請[在鏈接周圍添加上下文](http://meta.stackexchange.com/a/8259),以便您的同行用戶瞭解它是什麼以及它爲什麼在那裏。如果目標網站無法訪問或永久離線,請始終引用重要鏈接中最相關的部分。考慮到僅僅是一個外部網站的鏈接可能是一個可能的原因[爲什麼以及如何刪除一些答案?](http://stackoverflow.com/help/deleted-answers)。 – FelixSFD 2017-01-11 18:07:53

+0

該問題通用性足以允許鏈接;我試圖在這裏幫忙;無論如何,讓我添加一些「背景」 – 2017-01-11 18:10:41

+0

好吧,我添加了上下文;現在開心 ? – 2017-01-12 18:59:58