Nuestra aplicación a menudo se conecta a diferentes servidores de back-ends sobre servicios web, MQ, JDBC, de propiedad (directo sobre socket) y otros hijos de transporte. Ya contamos con varias implementaciones que nos permiten conectarnos desde nuestra aplicación a estos back-ends y, aunque todas estas implementaciones implementan la interfaz común de Java, no comparten nada más.¿Cuáles son los beneficios de JCA?
Nos hemos dado cuenta de que hay porciones de código de significación que son comunes para todas estas implementaciones de conector en particular y hemos decidido simplificar el desarrollo de futuros conectores a través de un conector universal. Este conector será capaz de formatear los mensajes a un formato esperado por el back-end y enviarlos usando el mecanismo de transporte disponible. Por ejemplo: formato de mensaje de longitud fija sobre MQ o sobre socket.
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 común de Java. Como generalmente alojamos nuestras aplicaciones en algún servidor de aplicaciones Java EE, parece que Java Connector Architecture sería la tecnología más adecuada para este software. Sin embargo, la implementación del conector compatible con JCA parece ser relativamente compleja. ¿Cuáles son los beneficios palpables de ir con el estándar - JCA y los beneficios justifican un esfuerzo adicional?
Creo que debería incluir JBI en la combinación. En ese caso, la pregunta debería ser: Beneficios de JBI vs. beneficios de JCA vs. beneficios del enfoque POJO. – Dan