Domanda

Sto cercando di integrare un ESB Java in un prodotto / Maven web based esistenti. In particolare, sto guardando ServiceMix e Mule. Il prodotto si collega a diversi servizi diversi, tra cui e-mail, Quarzo, webservices RESTful su HTTP, SMS e IM. Ho sempre e solo subito uno sguardo alla documentazione e le due opzioni sembrano essere piuttosto pesante e abbastanza complesso. Sembra come un esempio da manuale di quando utilizzare un ESB, ma non voglio spendere una grande quantità di tempo solo imparare l'uno o l'altro sistema.

Come ho detto, ho già una web app costruito da Maven e speravo integrando uno dei sistemi sarebbe abbastanza semplice, anche solo per qualcosa di semplice come l'invio di una e-mail, ma sembra che l'aggiunta o tirerà a metà il mondo in termini di vasi e sarebbe difficile da incorporare nel prodotto esistente.

Vale la pena cercando di tirare in una di queste opzioni? C'è un modo semplice di integrarli nella un'applicazione esistente senza completamente ristrutturazione esso? Ci sono altre sono, le opzioni più leggere? Ci sono alcuni aspetti che dovrebbero prendere in considerazione che renderebbe il loro uso vale la pena?

È stato utile?

Soluzione

Mule è abbastanza semplice da utilizzare in termini di collegare i servizi insieme con XML e hanno un sacco di esempi di video che ho trovato molto utile.

Gli ESB dovrebbero essere futuro e come dici tu -. Vostro fa sembrare come un esempio da manuale di dove utilizzarlo

Cercherò di rispondere a tutte le vostre domande:

Vale la pena cercando di tirare in una di queste opzioni? Penso che questa sia una domanda che dovete chiedere a te stesso - che cosa stai cercando di raggiungere? se si sta cercando di rendere più facile per la sua attuazione sarà probabilmente prendere tempo stesso tramite codice puro o ESB quello che con tutta la messa a punto incluso. Se stai pensando di fare come un esercizio di apprendimento può essere utile.

C'è un modo semplice di integrarli nella un'applicazione esistente senza completamente ristrutturazione è? Risposta breve no. Avrete bisogno di un po 'di re-engineering per l'integrazione con la maggior parte di terze parti biblioteche / quadri.

Ci sono altre opzioni, più leggeri? Mule è abbastanza semplice, in realtà. Potreste essere in grado di utilizzare un MQ per fare il HTTP, SMS e IM. Possibilmente ActiveMQ o RabbitMQ.

Ci sono alcuni aspetti che dovrebbero prendere in considerazione che renderebbe il loro uso vale la pena? Sì, gli ESB sono progettati per le imprese in cui i nuovi servizi vengono aggiunti spesso e la configurazione è destinata a cambiare. Avere tutto in XML rende questo cambiamento un po 'più facile. Quindi, se si sta solo costruendo un pezzo di software una tantum potrebbe non essere la strada giusta da percorrere. Ma se vi sarà l'aggiunta più tardi e in costante collegamento diversi servizi, può essere il percorso migliore.

Altri suggerimenti

Si potrebbe anche voler dare un'occhiata al quadro Apache Camel che è davvero potente per tutte le esigenze di integrazione che lei ha citato, senza le pene di un pieno soffiato ESB.

Ross Mason, il fondatore del progetto Mulo ha scritto un ottimo articolo su questo argomento, per ESB o non ESB . Ho consigliato di dare un'occhiata a questo. Inoltre, si consiglia di controllare le Mule iBeans che offre un modello molto più semplice se si stanno costruendo questo come una web app e vogliono solo fare un po 'l'integrazione leggero e non sono interessati a una mediazione.

I consigli di non sprecare il tuo tempo prezioso con il mulo. La mia esperienza fino ad ora non è buona. Io non lo uso per qualsiasi sistema critico. E 'lontano dall'essere un prodotto maturo. A parte che i servizi RESTful sicuramente promettere un sacco di semplicità e presenta casi d'uso reali.

direi che vale la pena di investimento se si dispone di più di due applicazioni o database che hanno bisogno di parlare tra loro e stanno utilizzando più di un protocollo di comunicazione. Oppure, se si prevede che questa situazione sia vero in futuro. Suona come le vostre esigenze si inserisce certamente questo.

Un'altra situazione che potrebbe suggerire l'uso di un ESB o almeno un autobus messaggio sarebbe dove ci si aspetta o bisogno di una o più delle applicazioni di evolvere indipendentemente dagli altri. Per esempio uno è in fase di sviluppo attivo e gli altri non lo sono. Un ESB può isolare i sistemi stabili dai cambiamenti nei sistemi sviluppati attivamente eliminando la necessità di essere sempre aggiornare tutto.

Il vero potere di un ESB è che le applicazioni possono delegare tutte le decisioni su come comunicare e chi per comunicare con l'ESB e lasciare che il componente prende la piena responsabilità per questi aspetti. Tutti gli altri componenti diventano isolati gli uni dagli altri e non devono preoccuparsi di un l'altro riducendo notevolmente i problemi di combinazioni di dipendenze.

Per quanto riguarda la curva di apprendimento che ho trovato Mule ESB per essere abbastanza semplice da imparare e sarebbe certamente una curva di apprendimento molto più bassa che cercando di imparare tutte le API necessarie per parlare dei molteplici servizi che si sta tentando di connettersi a.

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