ESB
Motivación PDF Imprimir Correo electrónico

Actualmente, la problemática de integración de aplicaciones es un tema común debido a la necesidad de modelar los procesos organizacionales como la interacción de diferentes entidades del negocio.

 

Inicialmente se diseñaron aplicaciones que representaban una entidad específica del negocio y hoy en día se tiene la necesidad de hacer interactuar estas aplicaciones para poder modelar procesos transversales a la organización.

Como estrategia de solución a este problema, las Arquitecturas Orientadas a Servicios (SOA) se presentan como una medida flexible y evolutiva. La idea detrás de SOA es interactuar a través de servicios de distintas aplicaciones los cuales son parte de un proceso de negocio sin importar los sistemas en los cuales se encuentren.

La tecnología ESB (Enterprise Service Bus) es una de las soluciones de mayor articulación con las políticas SOA, implementando servicios de mensajería como mecanismo de comunicación e intercambio de servicios entre aplicaciones que no se conocen pero que se encuentran en los servicios registrados del BUS.

En este tutorial queremos dar a conocer la ventaja de la utilización del ESB como tecnología de comunicación que permite la interoperabilidad de aplicaciones y la evolución sencilla de los procesos a través de servicios.

Utilizaremos la implementación específica de JBoss sobre el ejemplo Amazonas, desacoplando componentes e integrándolos a través de este mecanismo.

 
Prerrequisitos PDF Imprimir Correo electrónico

Para la ejecución de este tutorial es necesario que se encuentre familiarizado con el desarrollo de aplicaciones java. Todas las aplicaciones que se encuentran conectadas al ESB en este tutorial son aplicaciones java de diferente tecnología (aplicaciones WEB, componentes EJB de sesión y componentes de mensajería MDB).

Para un mejor entendimiento del tutorial, se recomienda el tener conocimientos respecto al servicio de mensajería de java JMS, debido a que se utilizará principalmente esta tecnología como mecanismo de producción y consumo de servicios internos y externos del bus.

También es necesario estar familiarizado con el ambiente de desarrollo Eclipse.

 
Descripción PDF Imprimir Correo electrónico

Se desea crear una tienda de documentos en línea utilizando para ello aplicaciones existentes que permiten la indexación de documentos, el envío de correos electrónicos y la verificación de datos de tarjetas de crédito por parte de un banco.

La tienda debe tener acceso a la lista de documentos indexados disponibles (del sistema de indexación) y sobre ellos realizar búsquedas de contenido. El conjunto de archivos que cumplen con los criterios de búsqueda deben ser mostrados a través de una interfaz web al usuario para que este pueda seleccionar uno y comprar.

El proceso de compra tiene dos pasos. El primero es crear una orden de compra y una solicitud de verificación. La orden queda en estado pendiente mientras se obtiene respuesta de la verificación. (Este proceso se realiza en el sistema bancario).

Una vez se obtiene respuesta de verificación de datos, se debe enviar al usuario un correo electrónico con el resultado de su compra. Es decir que si la verificación es positiva, se adjunta al mensaje de correo el archivo elegido para la compra, de lo contrario el correo será un mensaje de error. Para el envío de correos se debe utilizar la aplicación ya construida.

La tienda debe ofrecer en su interfaz web, una zona administrativa, desde donde se modificará información del servidor SMTP, nombre de usuario y contraseña utilizado para enviar los emails y consultar los datos de indexación actuales: La ruta de la carpeta con los archivos que se están indexando en dicho sistema y el número de documentos indexados.

Adicionalmente, se espera que el proceso de búsqueda, compra y notificación de compra de documentos, pueda ser expresado en términos de servicios de las aplicaciones existentes de forma desacoplada.

Como tecnología de comunicación se debe utilizar un Bus de Servicios (ESB) que facilite el intercambio de mensajes entre aplicaciones. Como facilidad para los desarrolladores, se debe utilizar la implementación JBoss ESB pues en esta organización es común el desarrollo con soporte JBoss AS.

Arquitectura

De acuerdo con los requerimientos funcionales y no funcionales especificados como parte de este problema, se propone la siguiente arquitectura:

Para mejor comprensión del problema y de las aplicaciones involucradas, se explicará en la siguiente sección la arquitectura de cada uno de los componentes de esta solución.

 
Descripción Bus y Tienda PDF Imprimir Correo electrónico

Este componente es el canal de comunicación entre las aplicaciones. Sus responsabilidades son:

  • Localizar servicios deseados por las aplicaciones.
  • Transportar mensajes entre una aplicación y otra, cada una de ellas identificada por un puerto de conexión al bus.
  • Transformar mensajes para la interoperabilidad de todas las aplicaciones. Esto quiere decir poner los mensajes que se transmitan a través del bus de forma normalizada (conservando las reglas de mensajes de bus) y devolverlos utilizando la forma propia de cada aplicación.

Descripción Componente Tienda Amazonas

Se rediseñará la tienda de documentos en línea Amazonas, para que sea construida con una arquitectura Orientada a Servicios. La tienda debe proveer la comunicación web con el cliente y resolver sus requerimientos a través de servicios ofrecidos por diferentes componentes a quienes ella no conoce.

Los requerimientos funcionales siguen siendo: Consultar documentos indexados de tal manera que los usuarios de la tienda puedan realizar búsquedas sobre el contenido de los documentos, y luego poder seleccionar un documento de los documentos encontrados para comprarlo.

El proceso de compra debe solicitar los siguientes datos para realizar verificaciones en el momento de compra. A saber, el nombre, dirección de email y el teléfono, datos bancarios básicos. Una vez realizadas las verificaciones, la tienda debe delegar el envío del documento comprado como un archivo adjunto a la dirección de email especificada o notificar los errores.

El componente de la tienda está construido por la capa web, una capa de negocio y una capa de conectores. En los conectores se encuentra un gateway capaz de consumir los servicios que la tienda requiere para resolver sus requerimientos. Este gateway se encuentra conectado a un ESB (Enterprise Service Bus) en donde se encuentran registrados los servicios proveídos por los componentes desktop y Mailer, necesarios para la tienda.

El componente Amazonas debe contener la interfaz gráfica implementada como servlets, y correr como una aplicación sobre JBoss.

Los servicios ofrecidos por cada uno de los componentes de la Tienda son:

Amazonas Mundo (ESB_Amazonas)

Este componente ofrece los servicios necesarios para la resolución de los requerimientos funcionales:

  • Buscar archivos dado un criterio.
  • Dar información de la indexación: Ruta indexada y número de documentos.
  • Comprar un archivo: Crear una orden y solicitar verificación bancaria.
  • Notificar Venta de Archivo: Entregar el archivo al comprador una vez realizada la verificación bancaria o enviar una notificación de error en la compra.

Amazonas Conector ESB (BusGateway)

Este componente ofrece servicios de conexión al ESB. Se comporta como un Gateway entre la tienda y el bus de servicios. Debe poder comunicar la solicitud de servicios y comunicar las respuestas de los demás componentes. La tienda no expone ningún servicio para los otros componentes, por lo tanto el flujo de entrada sólo corresponde a respuestas esperadas. Servicios ofrecidos por este componente:

 

  • Establecer una conexión en la dirección Tienda – ESB para poder consumir los servicios necesitados.
  • Establecer una conexión ESB – Tienda para poder notificar a la tienda las respuestas entregadas por los servicios.

 

Este componente además se encarga de la localización del EJB de cupi2DesktopEJB mediante JNDI. Para esta localización no se emplea el servicio del ESB, ya que la localización del componente se le delega al servidor de aplicaciones JBoss.

Amazonas Web

Componente para la construcción respuestas finales y la recepción de solicitudes por parte de un usuario.

Interfaz Web

Página Principal

Resultados de la búsqueda

Fin de la operación

Zona Administrativa

 
Descripción Desktop, Mailer y Banco PDF Imprimir Correo electrónico

Descripción Componente Cupi2Desktop

Se rediseñará el componente Cupi2Desktop para que exponga sus servicios a través de una interfaz de negocio EJB. Los requerimientos de esta aplicación siguen siendo los mismos:

 

  • Indexar los documentos dada la ruta de la carpeta
  • Buscar en el contenido de los documentos indexados
  • Dar información de indexación: ruta indexada y número de documentos.

El componente Cupi2Desktop debe ser un componente EJB3 desplegable en JBoss, no requiere interfaz.

Descripción Componente Cupi2Mailer

Se rediseñará la aplicación Cupi2Mailer para ser utilizado como una librería genérica disponible para cualquier aplicación que requiera el envío de notificaciones email. Para ello se construye un componente Mailer que se conecta al Bus de Servicios a través de un adaptador que le permita recibir los pedidos de envío de correos.

Componente Mailer

Este componente permite la composición de correos electrónicos y el envío de éstos.

Componente Conector

Este componente realiza la recepción de alguna solicitud de servicio desde el ESB y la comunica al Mailer para completar el servicio. El Mailer no utiliza ningún servicio expuesto por otro componente, por esta razón el conector se encuentra especialmente diseñado para recibir peticiones.

Descripción Componente Banco

El banco es una aplicación sencilla que permite la validación de datos de un usuario para efectos de la compra.

En el ejemplo de este tutorial no requiere ningún servicio adicional pues es un servicio interno del bus que no requiere adaptadores ya que es capaz de entender los mensajes normalizados del flujo interno.

 
<< Inicio < Anterior 1 2 3 4 5 6 7 8 9 10 Siguiente > Fin >>

Página 1 de 10