Bir Mesaj Aracısı ile ESB arasındaki fark


126

Message Brokers ve ESB'ler hakkında farklı soruları / makaleleri inceledim (stackoverflow'da bile). Hala bir Message Broker ile bir ESB arasındaki CLEAR ayırıcı farkın ne olduğu konusunda bir ipucu yok mu? Şimdi burada ürünleri, Websphere Broker ve Mule ESB'yi karşılaştırmaya çalışıyorum !!

İlk olarak, (herhangi bir sürüm) Webshere Broker bir ESB mi? IBM ürün ekibimiz bunun bir ESB olduğunu iddia ediyor! (Buna şaşırmadım).

Sınırlı bilgilerim bana bir Message Broker'ın HUB-SPOKE modelinde çalıştığını söylüyor. Ancak ESB, bir veri yolu mimarisi üzerinde çalışır. Şimdi bu ne anlama geliyor? HUB başarısız olursa (sanırım kullanılamıyor), komisyoncu tamamen başarısız olursa okudum. Bu bir ESB durumunda değil (Bu adamlar öyle söylüyor). Burada anlamadığım şey, "Ya OTOBÜS başarısız olursa?"

Şimdi bir ESB ve Broker hakkında olağan şeyler, yönlendirme, dönüştürme, düzenleme vb. Sağlarlar. Öyleyse eğer ikisi de bunu sağlıyorsa, o zaman neden birini diğerine seçeyim.

Başka bir çatışma alanı DÖNÜŞÜM ile ilgilidir. ESB'ler bunu Message Brokers'a kıyasla farklı bir şekilde kolaylaştırıyor mu? Bu konuda biraz fikir edinmek isterim.

Şimdi YATAY ölçeklemeden bahsediyoruz. Kim kimi geride bırakıyor? Veya her ikisi de karmaşıklık (veya diğer faktörler) açısından eşit şekilde ölçeklenebilir. Elbette maliyet açısından, Webshpere Broker her bir kutu için sizden ücret alacaktır (her cpu bir yana). Sanırım ticari MULE ESB bile bunu yapmıyor. Maliyet kısmını bir kenara bırakırsak, ESB ölçeklendirmesinin ve Message Broker ölçeklendirmesinin etkileri nelerdir? ESB'de Hizmet Seviyesini yükseltebileceğinizi biliyorum. Bu bir Message Broker'da mümkün müdür?


Aslında Mule, CPU / çekirdek başına lisanslamaya da sahiptir.
Udi Dahan

Yanıtlar:


28

Servis veriyolu olmadan bir dönüşüm komisyoncusu kullanabilirsiniz ve bunun tersi de geçerlidir. Spesifik ürünler açısından, her birinin diğerini tamamlama şekli nedeniyle herhangi birinin yalnızca biri veya diğeri olduğunu düşünmüyorum. Bazı ürünler bir bölgede daha güçlü, diğerleri başka bir bölgede daha güçlüdür. Belki de, hangi işlevin bireysel bir sorunu en iyi şekilde kapsadığına bağlı olarak bir seçim yapılması gerekir.

Bir komisyoncu, bir dönüşüm zinciri oluşturmak için bir ESB ürününden daha iyi yerleşik "lego bloklarına" sahip olabilir. Bir ESB olarak hizmete giren bir komisyoncu, yük altında ezilebilir ve iyi ölçeklenemeyebilir veya günlüklerle ilgilenmek için sağlam günlük kaydı ve araçlardan yoksun olabilir.

Bazı ESB'ler, mantıkta çok büyük bir hata ortaya çıkarılıp giderildikten sonra veritabanı güncellemelerinin geri alınmasına ve kuyrukların düzeltilmiş bir uygulamaya yeniden oynatılmasına izin verir. Çoğu brokerin bu düzeyde işlem desteğini entegre ettiğini düşünmüyorum. Bunun tüm "işlemlerinizde" işe yaraması için, RPCish "veritabanı güncellemeleri" gibi bir şeyden çok, neredeyse iş etkinlikleri (bir satış, yenileme, mülkiyet değişikliği vb.) Olması gerekir.


5
Genellikle servis otobüslerine atfedilen entegrasyon unsurlarını açıklayan ve bunun dönüşüm taraflarını da kapsayan bir blog yazısı yazdım: udidahan.com/2011/04/08/integration-how-and-where
Udi Dahan

23

Sorumluluk Reddi: Ben bir IBM danışmanıyım ve WebSphere ESB konusunda uzmanım. Bu yorum herhangi bir resmi sıfatla bırakılmamıştır.

Bir ESB, bir üründen çok mimari bir model veya konsepttir - genel olarak, gevşek bağlantı mühendisliğinin hizmet temelli bir yolu. Tanımı tartışılır ve tam olarak değiştirilemez. Genel olarak, bir ESB, birbiriyle ilgisiz (teknik anlamda) hizmetler kümesidir - arayüzleri açığa çıkarırlar ve bunları diğer hizmetlerden tüketirler. Olabilse de, genellikle bir hub ve konuşmacı mimarisi dahil değildir.

IBM, kesinlikle hem WebSphere Message Broker'ı hem de WebSphere ESB'yi bir ESB (DataPower donanım aracı ile birlikte) oluşturmayı kolaylaştıran ürünler olarak pazarlamaktadır. Farklı teknolojik köklere sahipler, ancak amaçlarında bazı örtüşmeler var. Ayrıca, bir 'ESB ürünü' olarak markalanmamış birçok başka şeyle bir ESB oluşturamayacağınız anlamına gelmez.

Bu, tüm sorularınızı yanıtlamaz, ancak umarız IBM kısmına hitap eder.


Teşekkürler Andrew, WebSphere ESB konusunda uzman olduğunuzu bilmekten mutluluk duyuyorum. Kesin olan bir şey var: ESB bir ürün değil ve temel bir mimari görüş: Bir BUS. Şimdi, ESB yalnızca 2002'den beri uygulandıysa, neden icat edildi? "ESB'yi kimin icat ettiğine" dair çok fazla tartışma olduğuna inanıyorum. Websphere Broker bir ESB'nin yaptığı "her şeyi" yapması "sağlanabiliyorsa, o zaman neden onun bir ESB ürünü olduğunu iddia ediyor? Bir ESB'nin Websphere Broker ile "Nasıl Uygulanacağını" gösteren Kırmızı Kitap.
Franklin

7
Bunun iyi bir benzetme olup olmadığını gerçekten bilmiyorum. Ev hizmetçimiz benim için yemek yapıyor. Annem de benim için yemek yapardı. Ancak anneme bir hizmetçi görevini yerine getirdiği halde hizmetçi diyemem, değil mi? Üstesinden gelinemeyecek temel bir fark mı var?
Franklin

Gartner'ın en kıdemli ara yazılım analisti Roy Schulte, "ESB'nin en doğrudan atası, Candle'ın 1998'deki Roma ürünüydü ve daha sonra Candle Pathwai olarak adlandırıldı." Candle, Nisan 2004'te IBM tarafından satın alındı ​​- IBM, kendi ESB'sine sahip olduğunu henüz yeni iddia etmeye başladığı için, Tibco veya Sonic Software'de kaybolmayacak bir ironi - IBM'den Steve Mills, ComputerWire'a şunları söyledi: "I [ESB'ye sahip olduğumuzu] biliyorum, aslında yıllardır ESB işlevselliği sunuyorum. "
Franklin


19

Bir Mesaj Aracısı ile ESB (Kurumsal Hizmet Veriyolu) arasındaki fark esas olarak 'veri yolu' kelimesidir.

Bana göre bir Message Broker, verileri bir yapıdan başka bir yapıya dönüştüren veya içeriği değiştiren (genellikle büyük) bir işlemdir.

Bir ESB biri bir mesaj merkezli aracı (MOM) artı ek hizmetler vardır olabilir Mesaj Broker. Dolayısıyla bir ESB, bileşenlerinden biri olarak bir Mesaj Aracısı içerebilir. Bir Otobüs birden fazla süreçten oluşur, aksi takdirde ona 'otobüs' demezdim. Bir veri yolunun doğası, her biri bir MOM üzerinden iletişim kuran ve bir tür 'ortak veri biçimine' bağlı olan, farklı görevlere hizmet eden birden çok bileşen olmasıdır. Bir veri yolu şunlardan oluşur: MOM'a veri gönderen uygulamalar, veritabanı adaptörleri, Mesaj Aracıları, MOM köprüleri vb.

Ayrılık biraz aşamalıdır, ancak bir Message Broker mimarisi ile bir Veriyolu arasındaki en büyük fark, ayrıntı düzeyidir . Göreviniz A, B, .., Z uygulamalarını ve birkaç veritabanını entegre etmekse, bunu her birini birbirine bağlayan büyük bir Message Broker ile yapabilirsiniz. Veya çok sayıda küçük bileşenin sadece küçük görevleri devraldığı bir ESB ile. Örneğin, bir bağdaştırıcı A'ya, diğeri B'ye bağlanır (ancak dönüştürme yapmazlar), sonra her biri kendi öğelerini bir (veya daha fazla) Message Broker'a gönderir ve bunların her biri olabildiğince basit tutulmalıdır - örneğin, değil 'A' veya 'B' veri modeli hakkında bilgi sahibi olmak. İyi bir ESB, veri yolunda, bireysel uygulamaların 'farklılığından' soyutlanan ortak bir veri tanımına sahip olmalıdır.

DÖNÜŞÜM: Bir ESB, bir Message Broker ile gelmediği sürece dönüşüme yardımcı olmaz. Ancak her iyi ESB, yine de bir Mesaj Aracısı içermelidir. Message Broker, otobüsünüzün dönüşümler konusunda uzmanı olmalıdır, ancak başka hiçbir şey yapmamalıdır.

YATAY ölçeklendirme: Bağlayacak yalnızca 3 şeyiniz varsa (şimdi ve sonsuza kadar), muhtemelen tam gelişmiş bir ESB elde etmek için harcanan çabaya değmeyecektir. Bir Mesaj Komisyoncusu, tek bir büyük süreç olma avantajına sahiptir. İçindeki her şeyi yapılandırabilir ve tüm veri eşlemeleriniz, filtreleme ve yönlendirmeleriniz için merkezi bir konuma sahip olabilirsiniz.

Ancak bağlanacak 30 uygulamanız varsa, bir Message Broker büyük olasılıkla durma noktasına gelir. Elbette daha fazla örnek satın alabilir, işleri yedekli çalıştırabilirsiniz, ancak stratejinizi işleri 'yerelleştirmek' için değiştirmelisiniz. Her uygulamanın bağdaştırıcısı (her biri küçük bir Message Broker örneği olabilir), soyutlanmış bir ortak veri modeli (örneğin, paylaşılan bir XSD ile XML) oluşturabilmeli ve / veya alabilmelidir. Dönüşüm görevleri için merkezi bir Message Broker da olabilir, ancak bu örnek A veya B veri modelinin farkında olmamalıdır. Bu nedenle, bir ESB, her şeyi merkezi bir yerde tutmak yerine, işlemeyi uzman bileşene taşımalıdır.


15

Birkaç gün önce Udi Dahan'ın yazdığı bu makaleyi okudum, bu da size ne hissettiğime dair daha net bir fikir verebilir, temel bir fark.

http://www.udidahan.com/2011/03/24/bus-and-broker-pubsub-differences

Alıntı yapmak:

Belirli bir etkinlik türü için yalnızca tek bir yayıncı olabileceği kuralı, otobüsleri aracılardan ayıran şeylerden biridir, ancak her ikisi de açıkça birden fazla aboneye sahip olmanıza izin verir.

...

Ne yazık ki, Kurumsal Hizmet Veriyolu başlığı altında pazarlanan birçok komisyoncu tarzı teknoloji var. Bazı ürünler hem merkezi hem de dağıtılmış şekilde (bazen "birleşik" veya "gömülü" mod olarak da adlandırılır) dağıtılabilme özelliğine sahipken, çoğu "olay türü başına tek yayınlama uç noktası" kuralı uygulamaz.

Bu kısıtlama olmadan hata yapmak çok kolaydır.

Umarım yardımcı olur.


Bu harika bir makale, ancak yorumlar dışında ESB'yi ele almıyor.
NealWalters

6

Enterprise Service Bus, İşletmeye üç temel değer sağlar:

  1. İşlemlerin bağlama veya içeriğe dayalı yönlendirilmesi;
  2. Bir ileti etki alanından veya aktarımdan başka bir ileti etki alanına veya aktarıma dönüştürme;
  3. çoktan çoğa hizmet bağlantısı.

ESB'ler, hizmetlerin gevşek bir şekilde birleştirilmesini sağlar, hizmetlerin, hizmetlerin ilk tasarlandığı veya geliştirildiği zamandan tamamen farklı uygulama bağlamlarında yeniden oluşturulmasına izin verir ve uygulamaları yeniden kodlamaya gerek kalmadan uygulamaların yeniden kullanımını teşvik eder. WebSphere Message Broker (veya şimdi IBM Integration Bus olarak adlandırılır), Kurumsal Hizmet Veriyolunun en önemli örneğidir. Birkaç satırda büyük güç sağlayan kodun basitliğine bir örnek için, yazımı burada görüntüleyebilirsiniz: http://soabus.org/viewtopic.php?f=3&t=13 . IIB çalışma zamanı içindeki temel yapı, Mantıksal Mesaj Ağacı olarak adlandırılır(LMT). Geliştiricinin yapmak istediği her şey LMT üzerinde bir tür işlemdir. ESQL, bir geliştiricinin LMT üzerinde bu işlemleri gerçekleştirmek için kullanabileceği en verimli dildir, ancak diğer birçok dil desteklense de (örneğin, Java, PHP, Python vb.) ESB geliştirmenin verimliliğine ve kolaylığına başka hiçbir ürün yaklaşamaz. IBM Integration Bus'dan daha fazla uygulama, çünkü bu uygulamaların kodlamasının yüzde 90'ı düğümleri bir palete sürükleyip bırakarak yapılmaktadır. Bu, Message Flow geliştiricisi tarafından yapılacak kodlamanın yalnızca yüzde 10'unu bırakır. Bu arada, WebSphere ESB, IBM tarafından durduruldu ve IBM Integration Bus ile rekabet eden ürünlerin çoğu, birkaç yıldır bunlarda yeni bir gelişme görmedi. Çeşitli ESB ürün tekliflerinin bir listesi soabus.org adresinde görülebilir.


Bu yanıttaki soabus.org'u gösteren bağlantılar artık çözülmez - archmule.com'a yönlendirilirler.
tatlar

2

IBM o zamandan beri ESB olanaklarının adlarını değiştirdi, bu yüzden adlara veya satıcılara girmeyeceğim.

ESB, iş bilgilerinin birden çok donanım ve yazılım platformunda farklı uygulamalar arasında akışına izin verir. ESB, uygulama bağlantı mantığını tutan ve minimum ila HİÇBİR iş mantığını tutan bir ara katman katmanıdır. Bu, uygulamaların, kendisinden veri gerektiren diğer N sayıda uygulamayla nasıl etkileşimde bulunulacağına ilişkin herhangi bir bağlantı mantığını yerleştirme konusunda endişelenmeden en iyi yaptığı şeyi yapmasına olanak tanır. ESB mimarisi, bir kuruluşta noktadan noktaya spagetti karmaşasını çözmeye çalışır.

ESB ve Message Broker birbiriyle eşanlamlıdır, ancak yukarıdaki yanıtlardan biri Mesaj Broker modelinin daha büyük ESB alanının bir parçası olduğunu vurgulamıştır. ESB'deki "B" harfi, bilgisayar mimarisindeki veriyoluna (donanım) benzer. Anakart üzerindeki veya bir bilgisayardaki veri yolu, bilgisayarın çalışması için çeşitli bileşenleri birbirine bağlar. ESB, bir kuruluştaki çeşitli hizmetleri birbirine bağlayan yazılım tabanlı bir veri yoludur. Hub ve spoke, ESB mimarisinin desteklediği modellerden biridir. Monolitik dünyada, ESB'nin mevcut olduğundan emin olmak için her satıcının kendi yüksek kullanılabilirlik dağıtım mimarisi vardır. Herhangi bir ESB satıcısının son teklifleri, mikro hizmet tabanlı dağıtım modeli anlamındadır veya iPAAS olarak bilinen kendi bulutlarında barındırılır. Bu, Bus'un seçilen dağıtım modelinize bağlı olarak kendi kendini iyileştirme ile asla başarısız olmayacağını veya geçici olarak başarısız olmayacağını garanti eder. Mikro hizmet tabanlı dağıtım veya iPAAS ile ESB'ler artık seçilen satıcıya göre değişen özelliklerle otomatik ölçeklendirme özelliklerine (yatay veya dikey olarak) sahiptir.

ESB'nin sağladığı çok yüksek seviyeli yetenekler için şu bağlantıdan geçebilirsiniz => https://en.wikipedia.org/wiki/Enterprise_service_bus

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.