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.

Anuncios

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: