Dot-Net

Enterprise Service Bus、.NET Service Bus、NServiceBus 和匯流排上的輪子

  • April 14, 2010

企業服務匯流排(ESB)、.NET 服務匯流排(Windows Azure AppFabric 服務匯流排)、NServiceBus、RhinoServiceBus、MassTransit 等。

我試圖了解這些技術的共同點或不共同點。

我今天早些時候參加了 Juval Löwy 關於 .NET 服務匯流排的演講,他說 .NET 服務匯流排可以用作 ESB 的窮人版本,所以我認為這意味著 .NET 服務匯流排不是ESB,其他任何一個都是真正的 ESB 嗎?

如果其他任何一個是真正的 ESB,與 .NET 服務匯流排相比,什麼會使它們成為真正的 ESB?

我同意另一張海報:ESB 有點像 SOA,這是一個一般定義,主要用作營銷賣點,而不是您必須滿足的嚴格標準。

來自維基百科:

對於是否將企業服務匯流排 (ESB) 定義為一種架構風格、一個軟體產品或一組軟體產品,評論者意見不一。雖然使用 ESB 肯定意味著遵循特定的架構,但術語“企業服務匯流排”幾乎總是指支持這種架構的軟體基礎架構,本質上,ESB 被認為是實現面向服務架構的平台。

ESB 將轉換和路由等與流相關的概念引入了面向服務的體系結構。ESB 還可以為端點提供抽象。

作為一個術語,ESB 似乎是由 Dave Chappel 創造的,他是(曾經是?) Sonic Software 的技術佈道者(以及作者“企業服務匯流排” - O’Reilly:2004 年 6 月,ISBN 0-596-00675-6)。我已經閱讀了這本書並參加了 Chappell 的幾次研討會,恐怕這本書本身並不能幫助您確定產品 X 是否是“真正的”ESB。

一般來說,您應該尋找基於消息的東西(顯然,這是最初的意圖,即使其他一些公司,如 webMethods,使用該術語來表示他們的產品,這更面向 Web 服務)。

這個想法是讓您的 IT 基礎架構中的所有“服務”能夠相互接收和發送消息。ESB 提供路由,並具有介面端點,因此如果您的原始應用程序工作 - 例如 - 通過通過 HTTP post 呼叫 JSP 頁面,您有一個可以接收消息的小程序,使用其有效負載通過 HTTP 發布消息,解釋結果並使用這些建構消息響應。

基本上,想像一下,不是對所有事情都使用 Web 服務,而是使用消息隊列、建構路由站以及消息隊列和其他系統之間的介面。這是一個 ESB。


這很長,但很有啟發性:https ://gist.github.com/chitchcock/1281611

(Steve Yegge 的一篇關於亞馬遜如何轉向“API for Everything”政策的文章)。

引用自:https://stackoverflow.com/questions/2634784