[英]Message Oriented Middleware (MoM) Vs. Enterprise Service Bus (ESB)
我來自MoM的背景。 我想我從概念上理解ESB。 但是,在建築方面做出選擇時,我不太確定兩者之間的實際差異。
這是我想知道的
1)任何在線的良好鏈接可以幫助我在這方面。
2)有人可以告訴我使用其中一個是有意義的。
任何幫助都會有用。
消息傳遞往往集中在網絡周圍可靠的消息交換上; 使用隊列作為可靠的負載均衡器和主題來實現發布和訂閱。
ESB通常傾向於在消息傳遞之外添加不同的功能,例如編排,路由,轉換和中介。
我建議您閱讀有關企業集成模式的內容,該模式概述了您將在集成問題中使用的常見模式,這些模式都基於消息總線(盡管也可以與其他網絡技術一起使用)。
例如使用開源; Apache ActiveMQ提供松散耦合的可靠消息交換。 然后,您可以使用Apache Camel實現企業集成模式 ,以實現智能路由,轉換,編排, 與其他技術一起使用等等。
我將MOM解決方案和ESB解決方案放在兩個不同的平面上。
我認為MOM是ESB解決方案的基石。 事實上,ESB解決方案只需使用特定MOM實現提供的范例,即可實現自己的松散耦合和異步通信功能。
因此,MOM代表定制QoS級別的數據/事件分發解決方案(根據特定的供應商實現),而ESB代表提供在SOA場景中實現復雜編排的功能的解決方案(我們有多個提供商提供他們的服務,以及多個有興趣消費第一批服務的消費者。
復雜的編排意味着遺留系統之間的通信,其中每個人都有自己的數據域表示(特定數據上的規則和服務)和自己的通信范例(一個消費者使用CORBA與ESB交互,另一個消費者使用WS,等等)。
很明顯,ESB代表了一個更復雜的架構解決方案,旨在提供數據總線的抽象(例如每個人都擁有自己電腦的電子總線),能夠將眾多服務提供商連接到一個不太明確的過多的服務提供商。服務消費者, 隱藏 (i)數據表示和(ii)溝通中的異質性 。
對於長篇文章感到抱歉,但概念很復雜,很難在簡短的陳述中有效和高效。
ESB通常是在消息上路由,記錄,轉換和執行其他“技術”(即非業務)功能的層。 它可以處理來自消息傳遞系統的消息(例如基於JMS的消息),也可以處理其他類型的消息(例如基於SOAP的Web服務)。 在這方面,它比MoM更普遍。
免責聲明:我是IBM WebSphere顧問 - 盡管我不是以官方身份為此做出貢獻。
EBS是另一個流行詞,SOA 2.0也是如此。
您可以使用普通Web服務輕松實現ESB系統,並在其后面有一個隊列。 您可以使用SOA 1.0(Tibco,BizzTalk)進行消息路由和/或編排,一件事情並不能真正阻止另一件事。 更重要的是,它是在系統中交換的消息的語義,它發揮了重要作用,在這種情況下是事件。 作為事件的消息是關於系統中發生的事情的觸發器,因此上下文是不同的。
具有真實形式的Web服務的ESB通過通過消息的一個元素發送數據來提供應用程序松散耦合。
MOM不僅提供應用松散耦合,還提供松散耦合。
ESB附帶支持以治理為中心的方法的其他功能。
根據場景,兩者可以單獨使用或一起使用。
IBM和Oracle擁有SOA認證。 由於他們是市場領導者(Gartner Magic Quadrant),我會讀到他們如何定義SOA和ESB(以及支持SOA的方法和組件,如治理,注冊表等)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.