Domanda

Ho passato con diverse domande / articoli su Message Broker e ESB (Anche su StackOverflow). Ancora non è un indizio che cosa è la delimitazione netta differenza tra un Message Broker e un ESB? Ora qui sto cercando di confrontare i prodotti, Websphere Broker e Mule ESB !!

In primo luogo, è (qualsiasi versione) WebShere Broker un ESB? I nostri ragazzi di prodotti IBM sostiene di essere un ESB! (Non mi stupisco che circa).

Il mio limitate informazioni mi dice che un broker messaggio lavora su un modello hub-spoke. Tuttavia l'ESB lavora su un'architettura a bus. Ora, ciò che sulla terra è che vorrebbe dire? Ho letto che se l'HUB non riesce (non disponibile immagino) allora il broker completamente fallisce. Il che non è il caso di un ESB (Così quei ragazzi dicono). Quello che non capisco qui è "Che cosa succede se il bus" fallisce?

Ora, la solita roba circa ESB e broker è che, essi forniscono routing, la trasformazione, l'orchestrazione, ecc .. Quindi, se entrambi forniscono questo, allora perché dovrei scegliere uno sopra l'altro.

Un'altra area di conflitto è per quanto riguarda la trasformazione. Does ESB facilitano in un modo diverso rispetto a Message Brokers? Mi piacerebbe molto una certa comprensione su questo.

Ora, parlando di scala orizzontale. Chi sorpassa il chi? O sono entrambi ugualmente scalabile in termini di complessità (o altri fattori). Naturalmente costo saggio, Webshpere Broker è gonna costo per ogni scatola (per non parlare di ciascuna CPU). Credo che, anche il MULE ESB commerciale doesnt farlo. Lasciando da parte la parte costo di esso, quali sono le implicazioni di ridimensionamento ESB e il ridimensionamento Message Broker. Mi è capitato di sapere che si può scalare fino a livello di servizio in ESB. Questo è possibile in un broker Messaggio?

È stato utile?

Soluzione

È possibile utilizzare un mediatore di trasformazione senza un bus di servizio, e viceversa. In termini di prodotti specifici non credo che nessuno è puramente uno o l'altro a causa del modo in cui ogni integra l'altro. Alcuni prodotti sono più forti in un settore, altri più forte in un altro. Forse una scelta deve essere fatta sulla base del quale funzionare meglio copre un problema individuale.

Un broker può avere migliori built-in "lego" per la costruzione di una catena di trasformazione di un prodotto ESB fa. Un broker premuto in servizio come un ESB può essere schiacciato sotto carico e si adatta bene, o può mancare journaling robusto e strumenti per affrontare riviste.

Alcuni ESB consentono aggiornamenti del database per essere annullate e code per essere riprodotti in un'applicazione corretto volta un errore madornale in logica è stato scoperto e fissato. Non credo che la maggior parte dei broker integrano quel livello di supporto transazionale. Per questo lavoro a tutti i tuoi "operazioni" quasi devono essere eventi di business (una vendita, un rinnovamento, un cambio di proprietà, ecc) piuttosto che qualcosa di simile a "RPCish aggiornamenti del database".

Altri suggerimenti

Disclaimer: io sono un consulente IBM e specializzato in WebSphere ESB. Questo commento non è lasciata in veste ufficiale.

Un ESB è più di un modello architettonico o concetto di un prodotto - in linea di massima, un modo di servizio a base di accoppiamento lasco ingegneria. La sua definizione è contesa e non esattamente scolpito nella pietra. In generale, un ESB è un insieme di servizi non correlati (in senso tecnico) - espongono le interfacce, e li consumano da altri servizi. Generalmente non v'è un hub e spoke architettura coinvolti, anche se ci possono essere.

IBM commercializza sicuramente entrambe WebSphere Message Broker e WebSphere ESB come prodotti che rendono più facile costruire un ESB (insieme con il dispositivo hardware DataPower). Hanno diverse radici tecnologiche, ma hanno qualche sovrapposizione in proposito. Inoltre, che non vuol dire non si può costruire un ESB con un sacco di altre cose che non sono di marca come un 'prodotto ESB'.

Questo non risponde alle vostre domande, ma si rivolge si spera che la parte di IBM.

La differenza tra un Message Broker ed un ESB è principalmente la parola 'bus'.

Per me, un broker è un messaggio (usally grande) processo che trasforma i dati da una struttura ad un'altra struttura o modifica dei contenuti.

Un ESB è un middleware orientato ai messaggi (MOM) più altri servizi, uno dei quali potrebbe essere un broker messaggio. Quindi, un ESB può includere un Broker messaggio come uno dei suoi componenti. Un bus è costituito da più di un processo, altrimenti non lo definirei un 'bus'. La natura di un autobus è che ci sono più componenti che servono compiti diversi, ognuno comunicazione su una MOM e di aderire ad una qualche forma di 'formato di dati comune'. Un autobus consisterebbe di: applicazioni invio dei dati al MOM, gli adattatori di database, message broker, ponti MOM, ecc

La separazione è un po 'graduale, ma la più grande differenza tra un'architettura Message Broker ed un bus è quella di granularità . Se il vostro compito è quello di integrare le applicazioni A, B, .., Z e un paio di basi di dati, si può fare questo con una grande Message Broker che collega tutti e di ciascuno. O con un ESB in cui più piccoli componenti assumere solo piccole operazioni. Per esempio un adattatore collegato ad A, un altro per B (ma non fanno trasformazione), quindi ognuno manda la roba da uno (o più) Message Broker, ognuno dei quali deve essere mantenuto il più semplice possibile - esempio Non che sia necessario conoscere il modello di dati di 'A' o 'B'. Un buon ESB deve avere una definizione comune di dati sul bus, astraendo dalla 'differentness' di singole applicazioni.

TRASFORMAZIONE: un ESB non aiuta con la trasformazione, a meno che non si tratta di un broker messaggio. Ma ogni buona ESB dovrebbe includere un broker messaggio comunque. Il Message Broker deve essere esperto del bus per le trasformazioni, ma nient'altro.

scala orizzontale: se si hanno solo 3 cose da collegare (ora e per sempre), è probabilmente non vale la pena di ottenere un ESB in piena regola. A Message Broker ha il vantaggio di essere solo un grande processo. È possibile configurare tutto lì e hanno una posizione centrale per tutte le mappature di dati, il filtraggio e il routing.

Ma se si dispone di 30 applicazioni per connettersi, uno Message Broker sarebbe probabilmente venuto a Grinding Halt. Naturalmente è possibile acquistare più istanze, le cose correre ridondante, ecc, ma si dovrebbe cambiare la vostra strategia per 'localizzare' posti di lavoro. Adattatore di ogni applicazione (potrebbe essere un piccolo esempio Message Broker ciascuno) dovrebbe essere in grado di generare e / o ricevere un modello comune di dati astratta (per esempio XML con un XSD comune). Ci potrebbe anche essere un broker messaggio centrale per le attività di trasformazione, ma tale istanza dovrebbe essere a conoscenza di modello di dati A o B. Quindi, un ESB deve spostare l'elaborazione per la componente esperto invece di mantenere tutto in un posto centrale.

Ho appena letto questo articolo di Udi Dahan pochi giorni fa, che potrebbe dare una più chiara visione di ciò che sento è una differenza fondamentale.

http://www.udidahan.com/ 2011/03/24 / bus-e-broker-PubSub-differenze

Citando:

  

La regola che non ci può essere solo una   singolo editore per un determinato evento   tipo è una delle cose che   differenzia autobus da mediatori,   anche se entrambi, ovviamente, si permettono di   avere più abbonati

...

  

Purtroppo, ci sono molti   tecnologie broker-stile là fuori   che vengono commercializzati sotto il   bandiera della Enterprise Service Bus.   Mentre alcuni prodotti hanno la capacità   per essere distribuito sia in un centralizzata   e modo distribuito (a volte   chiamato “federata” o “embedded”   modalità), molti non far rispettare la “single   endpoint di pubblicazione per ogni evento di tipo”   regola.

     

Senza questo vincolo, è solo   troppo facile fare errori.

Speranza che aiuta.

Un Enterprise Service Bus fornisce tre valori chiave alla Business:

  1. , contestuali o Content-based routing delle transazioni;
  2. Trasformazione da dominio di un messaggio o di trasporto a un altro dominio messaggio o trasporto;
  3. molti-a-molti connettività servizio.

ESB forniscono accoppiamento lasco di servizi, consentono servizi da ricostituire in completamente diversi contesti applicativi che quando i servizi sono stati immaginato o sviluppati, e degli effluenti di applicazioni senza la necessità di ricodificare applicazioni. WebSphere Message Broker (o ora si chiama IBM Integration Bus) è un ottimo esempio di un Enterprise Service Bus. Per un esempio di semplicità del codice che mette in campo un grande potere in poche righe, è possibile visualizzare qui il mio post: http://soabus.org/viewtopic.php?f=3&t=13 . Il costrutto fondamentale all'interno del runtime IIB è chiamato il messaggio logico Albero (LMT). Tutto ciò che lo sviluppatore vuole fare è un certo tipo di operazione sul LMT. ESQL è la lingua più efficiente uno sviluppatore può utilizzare per eseguire queste operazioni sul LMT, anche se sono supportate molte altre lingue (ad esempio, Java, PHP, Python, ecc) Nessun altro prodotto si avvicina al efficienza e la facilità di sviluppo di ESB applicazioni di IBM Integration Bus dal 90 per cento della codifica di queste applicazioni è fatto trascinando i nodi su un pallet. Che lascia solo il 10 per cento della codifica per essere fatto da sviluppatore flusso dei messaggi. Tra l'altro, WebSphere ESB è stato interrotto da IBM e molti dei prodotti concorrenti di IBM Integration Bus non hanno visto alcun nuovo sviluppo su di loro per diversi anni. Una lista delle varie offerte di prodotti ESB può essere visto a soabus.org.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top