Pregunta

Nuestra aplicación menudo se conecta a un tipo diferente de back-ends sobre servicios web, MQ, JDBC, propietaria (directa sobre zócalo) y otros tipos de transporte. Ya tenemos una serie de implementaciones que nos permiten conectar desde nuestra aplicación para estos back-ends y si bien todas estas implementaciones implementan la interfaz Java común, que no comparten ninguna otra cosa.

Nos hemos dado cuenta de que hay porciones de significación de código que son comunes para todas estas implementaciones de conectores particulares y hemos decidido simplificar el desarrollo de conectores futuras a través de un conector universal. Este conector será capaz de dar formato a los mensajes a un formato esperado por el back-end y enviarlos mediante el mecanismo de transporte disponibles. Por ejemplo, el formato de mensaje de longitud fija sobre MQ o sobre un zócalo.

Uno de los dilemas que enfrentamos es la tecnología más adecuada para este tipo de conector. Hasta ahora, nuestros conectores eran clases básicas de Java que implementan la interfaz Java común. Ya que por lo general anfitriones de nuestras aplicaciones en algún servidor de aplicaciones Java EE, parece que la arquitectura de conectores de Java sería la tecnología más adecuada para esta pieza de software. Sin embargo, la implementación de conector compatible con JCA parece ser relativamente complejo. ¿Cuáles son los beneficios palpables de ir con la norma - JCA y qué beneficios justifican el esfuerzo adicional

¿Fue útil?

Solución

De hecho JCA Parece la tecnología más adecuada para usted. Ya se han hecho excelentes argumentos, a saber, la portabilidad, la interfaz estandarizada, la agrupación de conexiones y el soporte de transacciones. Y no se olvide de seguridad.

Con el servidor de WebSphere Process los adaptadores podrían estar expuestos como un servicio SCA que puede tener una gran cantidad de beneficios si eso es importante para usted.

Además, algunas herramientas de desarrollo tienen un amplio soporte para desarrollar y probar los conectores JCA.

Otro beneficio es (experimentados) Java EE administradores y desarrolladores de Java EE (debería) conocen el estándar de modo de administración y el desarrollo deben ser fáciles de racionalizar.

Pero al final usted debe tener para encontrar razones para poner en práctica JCA basado en el alcance de su proyecto, los planes de futuro que tiene para su proyecto o tal vez dentro de la política de su empresa.

Otros consejos

Respuesta corta: no veo ninguna ventaja sobre la selección de JCA sobre otras tecnologías, lo veo como un inconveniente ya que se necesita contenedor Java EE

.

Respuesta larga:

He sido escéptico acerca de estos estándares Java EE desde hace algún tiempo. No veo una razón de peso técnica para utilizar un servidor con todas las funciones de Java EE más, ya que existen implementaciones de código abierto para una mejor todos característica ofrecida. Me ha picado varias veces por incompatibilidades de aplicación cuando se mueve hacia / desde "soluciones enterprisey".

La idea de JCA está emergiendo aquí en este momento y estoy empujando para tratar Apache Camel o integración de la primavera "http://www.springsource.org/spring-integration" lugar. Estoy a favor de implementaciones de código abierto que se pueden utilizar en todas partes. Y no hay mucho que hacer. Compruebe esta lista de componentes . Por supuesto, tal vez es más pequeño que cuál está ya desarrollado con JCA, pero cada bit es de código abierto y está todo en un solo lugar. Además, creo que la documentación es más simple y más completa. El impulso para la integración exige un poderoso SPI con un montón de código abierto, ejemplos reales en vivo, desarrollado de la misma manera, y que se puede encontrar en el mismo lugar.

Estoy odiando la negatividad, pero no me gustan los servidores de aplicaciones completos destacados. Por ejemplo, me gustaría ir para Tomcat y terracota cualquier día sobre otros productos "enterprisey", al igual que yo iría con el camello antes de JCA, hasta que la necesidad de JCA consigue probada. No me gusta la idea de la Comisión de Java para decirle cómo debería desarrollar mis propias aplicaciones porque no confía en ellos. Creo que es lo mejor para mí cuando la pieza de software puede funcionar igual de fácilmente en Java SE / RCP como en un entorno Java EE o en un contenedor de servlets puro.

He acaba de desarrollar un adaptador de recursos de entrada para un dispositivo GPS comunicarse a través de un protocolo propietario. No es que mucha molestia, aunque tengo la impresión de que el desarrollo de un saliente uno podría requerir más trabajo. Lo peor que con la JCA es la falta de documentación. Todos los libros y artículos parece tener el mismo ejemplo tonto.

Lo que estoy más satisfecho con es la portabilidad. Una vez que haya escrito el adaptador puede conectar el RAR (archivo de recursos adaptador) en cualquier servidor de aplicaciones para proporcionar aplicaciones desplegadas la capacidad de comunicarse con la EIS es compatible con su ra. O puede agrupar el rar en la guerra / oreja.

Los beneficios son principalmente para los vendedores que desean vender conectores para patentada volver sistemas finales para su uso con cualquier servidor de aplicaciones, para los clientes que quieren ser capaz de dejar caer en un conector sin tener que preocuparse acerca de si sólo funciona en no WebLogic Websphere, etc. de hecho, este es el objetivo de Java EE en general.

Tenga en cuenta que JBoss ha decidido poner varias cosas en JCA, por ejemplo a través de conexiones JDBC van JCA.

Su código de cliente futuro tendrá una interfaz estandarizada, algunas puesta en común y el soporte de transacciones, etc., pero es importante no perder de vista el panorama general; a saber, que los beneficios no están dirigidos a ti y tu un proyecto concreto, pero a un eco-sistema de software que consiste en muchos servidores de aplicaciones, muchos sistemas de back-end, muchos conectores y así sucesivamente.

suena como un buen uso para una JBI recipiente con componentes de unión. Discusión de JCA vs JBI.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top