h1

Los acordeones para el examen de certificación (Parte 3: Conectividad Legada)

10/25/2007

Wizdoc [Icon By Buuf]  Tips & Tricks: Acordeón SCEA: Seccion 3: Legacy Connectivity
La conectividad legada se refiere a los APIs y técnicas para integrar datos o funcionalidad entre una aplicación Java y un sistema externo (ya sea una base de datos, un ERP o cualquier otro sistema). Esto incluye varias tecnologías que incluyen:

  • JCA (JEE Connector Architecture). Mecanismo basado en estándares para acceder a sistemas legados desde JEE. Como se menciona en onjava.com, el JDBC (Java DataBase Connectivity) es a la interacción entre Java y las bases de datos lo que JCA a la interacción entre JEE y los EIS (Enterprise Information Systems). Este API está basado en el patrón de diseño Connector e incluye la especificación de varios contratos entre las entidades que se van a integrar. Es decir, se requiere que ambas partes estén de acuerdo en elementos tales como administradores de conexión o de seguridad, interfaces de acceso, formato y protocolo de comunicación, etc. Esto puede verse en la especificación JCA 1.5
    • Los conectores a los diferentes tipos de sistemas externos se deployan en el servidor de aplicaciones como archivos de tipo RAR (Resource Adapter Archive).
    • Un buen par de ejemplos de cómo funcionan estos adaptadores son 1) BEA Jolt (adaptador para conectar aplicaciones JEE con Tuxedo) o 2) Los adaptadores eWay de Sun Java CAPS (Composite Application Platform Suite) que permiten conectar a JEE con varios sistemas, incluyendo Peoplesoft o SAP.
  • JMS (Java Message Service). No confundir con JavaMail. Permite comunicación entre dos o más sistemas. El único contrato es el formato del mensaje.
    • Los componentes JEE pueden enviar o recibir de forma síncrona o asíncrona estos mensajes.
    • Los Message Driven Beans permiten procesamiento de este tipo de mensajes del lado de JEE.
    • Las operaciones de envío y recepción pueden participar en transacciones distribuidas.
    • Existen dos modelos de mensajeo: Point to Point (utilizando JMS Queues) y Publish-Subscribe (utilizando JMS Topics). A partir de la versión 5 de JEE, se unifica el API para manejo de colas y tópicos mediante las mismas clases.
    • Los tipos de mensajes enviados entre los dos sistemas pueden ser de cualquier tipo (MIME): texto simple, XML, binarios, imágenes, etc.
    • Nota importante Para el manejo de mensajes escritos en XML se puede utilizar JAXP (Java API for XML Processing) o JAXB (Java Architecture for XML Binding – equivalente a XML Beans).
  • JDBC (Java Data Base Connectivity) Permite la conexión entre Java y bases de datos. Para motores de base de datos que no soportan directamente el estándar JDBC, puede utilizarse un puenteo ODBC-JDBC. Cabe mencionar que en el examen, cuando se hace referencia a plain JDBC significa que desde la aplicación se están aplicando queries directos sobre la base de datos y esto se considera una mala práctica de diseño/implementación: siempre hay que intercalar un framework de persistencia (ya sea Hibernate o Entity EJBs; en el caso particular de JEE 5 Persistence Entities bajo el nuevo esquema JPA (Java Persistence API) harán el trabajo deseado).
  • SOAP (Simple Object Access Protocol) Esto deberá quedar como todo un tip aparte (Web Services y SOA) pero a grandes rasgos permite la comunicación entre JEE y el sistema legado de forma completamente independiente de la plataforma; el beneficio extra es que al viajar por HTTP, los mensajes tienen menos problemas con la seguridad; la desventaja principal puede ser 1) El peso de los mensajes (influyendo en el desempeño de la solución) y 2) El formato de los mensajes o la versión de SOAP implementada. Con JEE 5 se incluyen las siguientes tecnologías:
    • JAX-WS (Java API for XML-Based Web Services)
    • JAX-RPC (Java API for XML-Based Remote Procedure Calls)
    • JAXB (Java Architecture for XML Binding)
    • SAAJ (SOAP with Attachments API for Java) – No confundir con JAAS (Java Authentication and Authorization Service)
    • StAX (Streaming API for XML)
    • Web Service Metadata for the Java Platform (Implementado por el contenedor)
    • JSR 109 (Implementación del modelo y arquitectura de web services por el contenedor)
  • JNI (Java Native Interface). Utilizar wrappers sobre programas hechos en C para tener acceso a los sistemas requeridos. Esto se considera sólo como un remedio temporal y no como una solución definitiva.
  • Java IDL. Especificación que permite a Java interactuar con CORBA. Esta funcionalidad es síncrona mediante un modelo Point to Point.
  • Conexión mediante sockets Permite conectarse a sistemas legados en COM o CORBA mediante Java IDL. En caso de requerir conexiones seguras, puede utilizarse el API correspondiente localizado en el paquete javax.net.ssl
  • Screen Scrappers Acceso a la interfaz de un sistema si éste tiene alta dependencia entre la información que lo conforma y su interfaz; esta técnica funciona como un emulador de terminal de un lado y como una interfaz de objetos del otro. Un ejemplo de esto es JScrape.
  • Object Mapper Tools / Object Wrappers Acceso directo a los elementos de las capas internas de un sistema. Algo parecido a TopLink o Hibernate pero en vez de hacer wrapping alrededor de los registros de una base de datos, se hace sobre los elementos que componen al sistema legado.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: