Domanda

La nostra applicazione si connette spesso a un diverso tipo di back-end su servizi web, MQ, JDBC, proprietaria (diretti sopra lo zoccolo) e altri tipi di trasporto. Abbiamo già un certo numero di implementazioni che ci permettono di collegare la nostra applicazione a questi back-end e, mentre tutte queste implementazioni implementano l'interfaccia comune Java, che non condividiamo niente altro.

Ci siamo resi conto che ci sono porzioni significative di codice che sono comuni per tutti questi particolari implementazioni del connettore e abbiamo deciso di semplificare lo sviluppo di connettori future attraverso un connettore universale. Questo connettore sarà in grado di formattare i messaggi in un formato previsto dal back-end e di inviarli utilizzando il meccanismo di trasporto a disposizione. Per esempio, di lunghezza fissa formato del messaggio su MQ o su uno zoccolo.

Uno dei dilemmi che stiamo affrontando è la tecnologia più appropriata per questo tipo di connettore. Finora, i nostri connettori sono stati classi Java di base che implementano l'interfaccia comune Java. Essendo generalmente ospitiamo le nostre applicazioni in alcuni application server Java EE, sembra che Java Connector Architecture sarebbe la tecnologia più appropriata per questo pezzo di software. Tuttavia, l'implementazione connettore conforme JCA sembra essere relativamente complessa. Quali sono i vantaggi tangibili di andare con lo standard -? JCA e non benefici giustificano lo sforzo supplementare

È stato utile?

Soluzione

In effetti JCA sembra la tecnologia più adatta per voi. Già eccellenti argomenti sono stati fatti, vale a dire la portabilità, interfaccia standardizzata, il pool di connessioni e il supporto delle transazioni. E non dimenticare la sicurezza.

Con server WebSphere Process gli adattatori potrebbero essere esposti come un servizio SCA che può avere un sacco di vantaggi se questo è importante per voi.

Anche alcuni strumenti di sviluppo hanno un ampio supporto per sviluppare e testare i connettori JCA.

Un altro vantaggio è (esperti) Java EE amministratori e sviluppatori Java EE (dovrebbe) conoscere lo standard in modo amministrazione e lo sviluppo dovrebbe essere facile da razionalizzare.

Ma alla fine si dovrebbe avere a trovare ragioni per implementare JCA in base alla portata del progetto, il futuro piani avete per il vostro progetto o forse nell'ambito della politica della vostra azienda.

Altri suggerimenti

Risposta breve: non vedo alcun beneficio sulla selezione JCA rispetto ad altre tecnologie, lo vedo come uno svantaggio in quanto è necessario container Java EE

.

Risposta lunga:

Sono stato scettico su questi standard Java EE per qualche tempo. Non vedo un motivo valido tecnica di utilizzare più di un server piena funzionalità Java EE, dal momento che ci sono implementazioni meglio open source per ogni caratteristica offerto. Sono stato morso più volte da incompatibilità di implementazione quando si spostano da / per "soluzioni enterprisey".

L'idea di JCA sta emergendo qui adesso e sto spingendo per cercare apache cammello o integrazione primavera "nofollow noreferrer" . Io sono per le implementazioni open source che è possibile utilizzare in tutto il mondo. E c'è un sacco di cose. Controllare questo elenco di componenti . Certo, forse è più piccolo di che cosa è già sviluppato con JCA, ma ogni bit è open source ed è tutto in un unico luogo. Inoltre, credo che la documentazione è più semplice e più completo. L'impulso per l'integrazione richiede un potente SPI con un sacco di open source, esempi reali dal vivo, sviluppata nello stesso modo, e che si può trovare nello stesso posto.

sto odiando la negatività, ma non mi piace completo application server in vetrina. Per esempio, vorrei andare per Tomcat e terracotta qualsiasi giorno rispetto ad altri prodotti "enterprisey", proprio come vorrei andare con cammello prima JCA, fino a quando la necessità di JCA ottiene provata. Non mi piace l'idea del Comitato Java per dire come devo sviluppare le mie proprie applicazioni perché non mi fido di loro. Credo che sia nel mio interesse quando il pezzo di software in grado di lavorare con la stessa facilità su Java SE / RCP come in ambienti Java EE o in un contenitore di servlet puro.

Ho appena sviluppato un adattatore di risorse in entrata per un dispositivo GPS che comunica su un protocollo proprietario. Non che molto fastidio, anche se ho avuto l'impressione che lo sviluppo di un uno in uscita potrebbe richiedere più lavoro. La cosa peggiore con il JCA è la mancanza di documentazione. Tutti i libri e articoli sembra avere lo stesso esempio muto.

La cosa di cui sono più soddisfatto è la portabilità. Una volta che hai scritto l'adattatore è possibile collegare il rar (risorsa archivio adattatore) in qualsiasi application server per fornire applicazioni distribuite la capacità di comunicare con EIS supportato dal ra. Oppure si può racchiudere il rar in guerra / orecchio.

I benefici sono in primo luogo per i venditori che desiderano vendere i connettori alle specialità sistemi di back end per l'utilizzo con qualsiasi application server, per i clienti che vogliono essere in grado di cadere in un connettore senza preoccuparsi se funziona solo su non WebLogic Websphere, ecc in effetti questo è l'obiettivo di Java EE in generale.

Si noti che JBoss ha deciso di mettere alcune cose in JCA, ad esempio le connessioni JDBC vanno via JCA.

Il tuo codice cliente futuro avrà un'interfaccia standardizzata, alcuni pooling e il supporto delle transazioni, ecc, ma è importante non perdere di vista il quadro più ampio; vale a dire che i benefici non sono rivolte a voi e il vostro un progetto specifico, ma ad un eco-sistema software composto da molti server di applicazioni, molti sistemi di back-end, molti connettori e così via.

suona come un buon uso per un JBI contenitore con componenti leganti. Discussione di JCA vs JBI.

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