Instalar OpenESB 2.1 e Introducción

1
22813

OpenESB 2.1. Instalación e introducción al entorno

Índice

  1. OpenESB 2.1. Instalación e introducción al entorno
    1. Introducción
    2. Instalar OpenESB 2.1
      1. Requisitos Previos
      2. Descargar OpenESB 2.1
    3. Introducción a GlassFish ESB 2.1
      1. IDE Netbeans con capacidades SOA
      2. Servidor GlassFish con funcionalidad ESB
    4. Conclusión

Introducción

En este tutorial vamos a hacer una introducción a OpenESB, un proyecto open source que implementa un motor Enterprise Service Bus (ESB) basado en la especificación Java Business Integration (JBI). Un ESB es una pieza clave y estratégica en las Arquitecturas Orientadas a Servicios (SOA), y OpenESB nos permite desarrollar aplicaciones de este tipo y ponerlas en ejecución, todo ello con las facilidades de desarrollo que nos ofrece su entorno de trabajo NetBeans.

Para comprender mejor algunos conceptos de ese tutorial es recomendable tener nociones de SOA. Para ello remito a algunos tutoriales de compañeros de adictosaltrabajo.com:

Instalar OpenESB 2.1

Requisitos previos

Según la documentación de Sun, el único requisito es tener correctamente instalada y configurada la JDK de Sun, con las siguientes condiciones:

  • Si se instala la JDK 5, ha de ser una versión igual o posterior a la 1.5.0_14
  • Si se instala la JDK 6, ha de ser una versión igual o posterior a la 1.6.0_10, excepto 1.6.0_13 y 1.6.0_14 debido a incompatibilidades con los editores visuales de diseño de proyectos.

Este tutorial se ha realizado sobre la siguiente plataforma:

  • PC con Windows Vista SP2, C2D@1.5, 3GB Ram
  • Sun JDK 1.6.0_16-b01, JAVA_HOME=C:\Herramientas\Java\jdk1.6.0_16

Descargar OpenESB 2.1

Desde la página de OpenESB, sección Download, accedemos al apartado de descargas de GlassFish ESB v2.1. Se ofrecen dos distribuciones:

  • Full Install (188 MB), versión con el bundle GlassFish 2.1 y NetBeans 6.5.1 con los módulos y componentes configurados e instalados tanto en el servidor como en el IDE para propósitos SOA. Asimismo, la integración entre GlassFish y NetBeans está perfectamente resuelta.
  • Sólo componentes (66 MB). Esta distribución parte de tener instaladas en nuestro equipo las versiones estándar de NetBeans 6.5.1 y GlassFish 2.1. Estos componentes (Java Business Integration (JBI), Binding Component, Service Engines, SOA Project Modules) se instalarán en ambas plataformas, enriqueciéndolas con capacidades de tipo SOA.

En nuestro caso utilizaremos la versión Full Install, pues cubre perfectamente nuestras necesidades:

Descarga de GlassFish ESB 2.1
Descarga de GlassFish ESB 2.1

Una vez descargado glassfishesb-v2.1-full-installer-windows.exe, ejecutamos el instalador y seguimos los pasos del asistente:

Instalador de Glassfish ESB
Instalador de Glassfish ESB

Si pulsamos en el botón Customize veremos más claramente los componentes a instalar: el GlassFish ESB DesignTime, que corresponde con NetBeans 6.5.1 con plugins SOA; y GlassFish ESB Runtime, que es el servidor GlassFish con JBI integrado y configurado.

Componentes de instalación: IDE y plataforma de ejecución ESB
Componentes de instalación: IDE y plataforma de ejecución ESB

En el siguiente paso aceptamos el acuerdo de licencia:

Acuerdo de Licencia de GlassFish ESB v2.1
Acuerdo de Licencia de GlassFish ESB v2.1

A continuación configuramos el entorno del IDE Netbeans:

  • En el área de texto superior, introducimos una ruta absoluta donde se instalará NetBeans. La ruta por defecto, C:\GlassFishESBv21\netbeans, es adecuada y la aceptamos (en todo caso, al instalarlo en Windows Vista con UAC activado hay que tener precaución de no indicar directorios protegidos por el sistema operativo: C:\, C:\Windows, C:\Users, C:\Program Files)
  • En el campo inferior deberá introducirse la ruta de nuestra instalación de Java en el equipo. Normalmente este campo estará completado, tomando el valor de la variable del sistema JAVA_HOME definida en la configuración de la JDK, que incluye las librerías y binarios de compilación y la JRE.

Carpeta de Instalación para NetBeans y localización de Java
Carpeta de instalación para NetBeans y localización de Java

A continuación llega el turno de configurar GlassFish 2.1. Veamos en detalle el significado de cada propiedad del formulario:

  • El primer campo permite introducir la ruta de instalación del servidor. Al igual que en el paso anterior con la de NetBeans, podemos aceptar dicha ruta.
  • Asimismo el segundo campo requiere la ruta de instalación de la JDK, su valor corresponderá normalmente con JAVA_HOME
  • Admin Username: usuario administrador para la consola de administración de GlassFish. Luego veremos cómo podemos acceder a ella. Podemos dejar el valor por defecto: admin
  • Admin Password/Retype Password: contraseña para el usuario administrador anterior. Podemos aceptar el valor por defecto: adminadmin
  • A continuación podemos configurar los puertos para las conexiones con el servidor. Resulta útil para evitar conflictos con otros servidores, aplicaciones instaladas o bien otras configuraciones (firewalls, etc). Es conveniente conocer el convenio de uso de puertos TCP y UDP de servidores basados en Apache HTTP Server u otros como Jetty, etc. (GlassFish está basado en el framework Grizzly, según me explica Raúl Expósito).
    En este caso, serán:

    • HTTP Port: 8080. Conexiones HTTP
    • HTTPS Port: 8181. Conexiones HTTP seguras
    • Admin Port: 4848. Puerto de la consola de administración de GlassFish
    • JMS Port: 7676. Puerto de la implementación del API del Servicio de Mensajería de Java para el uso de colas basada en Java EE
    • JMX Admin Port: 8686. Puerto para las Java Management Extensions, tecnología para gestionar y monitorizar diversos tipos de aplicaciones
    • IIOP Port: 3100. Puerto para el protocolo IIOP (Internet Inter-ORB Protocol) del OMG, implementado en CORBA. Su propósito es la integración basada en la comunicación de objetos independientemente del lenguaje de programación que los implemente.
    • IIOP SSL Port: 3820. Comunicación securizada para el protocolo IIOP
    • IIOP Mutual Auth Port: 3920. Puerto para la autenticación de doble sentido entre dos actores de una comunicación, sobre IIOP en este caso.

Ruta y puertos de la instalacion de Glassfish
Rutas y puertos de la instalación de Glassfish 2.1

El siguiente paso, a modo de resumen, nos confirma lo que se va a instalar:

Resumen de componentes a instalar en OpenESB 2.1
Resumen de componentes a instalar en OpenESB 2.1

Iniciamos la instalación:

Instalación y copia de archivos
Instalación y copia de archivos

Tras unos minutos, el proceso habrá finalizado y nos ofrecen registrarnos como usuarios de productos de Sun:

Finalización y registro opcional en el Sun Inventory
Finalización y registro opcional en el Sun Inventory

Hemos visto que el proceso es sencillo y la instalación se realiza sin problema.

Introducción a GlassFish ESB 2.1

La implementación de un modelo SOA utilizando las capacidades de un ESB con OpenESB se realiza a través de NetBeans, que nos permite el diseño, desarrollo, despliegue y control de los servicios e infraestructura del Enterprise Service Bus. Analicemos el entorno instalado:

IDE Netbeans con capacidades SOA

NetBeans es un IDE cuya funcionalidad puede ampliarse mediante plugins. La distribución incluida con OpenESB incluye un conjunto inicial de ellos que nos permitirá implementar conceptos de infraestructura SOA.

NetBeans 6.5.1
NetBeans IDE 6.5.1

Al crear un nuevo proyecto dispondremos ahora de la categoría SOA:

Categoria SOA en NetBeans
Categoría de proyecto SOA en NetBeans

Los tipos de proyectos que podremos diseñar e implementar son:

  • Composite Application. En un proyecto de este tipo simplemente añadimos otros proyectos SOA y de servicios web. Cada proyecto incluido se denomina componente o módulo, y son desplegados juntos en el contenedor JBI. Su interacción en runtime implementará una funcionalidad de negocio de SOA.
  • BPEL Module. Los procesos de negocio que involucran varios servicios web u otros recursos pueden modelarse gráficamente y luego ejecutarse a través de un módulo BPEL. Su capacidad y propósito son mucho más limitados que un BPM, su finalidad es la orquestación de servicios para realizar composición de éstos, práctica esencial en SOA.
  • XSLT Module. Una de las capacidades de un ESB es la transformación de los mensajes XML que se enrutan a través del Bus. Las transformaciones de un tipo (los DTD, Schema definen ‘tipos’) de XML a otro se realizan mediante XSLT, y este módulo nos permite hacerlo.
  • Data Mashup Module. Consiste en combinar varias fuentes de datos (hojas de cálculo, ficheros, bases de datos, servicios, etc) y presentarlo al servicio consumidor en un formato normalizado, como si fuese un único recurso (e.g., como tablas de base de datos). El ESB hace las tareas de composición de los datos y gestiona sus orígenes, de manera transparente al consumidor que únicamente se centra en su lógica sobre ellos.
  • Intelligent Event Processing Module. SOA tiene características de Arquitecturas Orientadas a Eventos, de manera que éstos pueden ser capturados y combinados, agregados, filtrados, almacenados, etc, según nuestros intereses de negocio. La información procesada a partir de los eventos es esencial para las arquitecturas SOA más avanzadas (nivel de madurez).

Servidor GlassFish con funcionalidad ESB

SOA se basa, en esencia, en que los servicios interoperen entre sí. Para ello hace falta una infraestructura que administre esa comunicación: el ESB. OpenESB es una suma de funcionalidades desplegadas en el servidor GlassFish, que en su conjunto lo convierte en un ESB.

Tras la instalación disponemos de un servidor GlassFish con sus funcionalidades habituales (Aplicaciones, Recursos), al que se añade un contenedor JBI en el que se despliegan componentes funcionales propios de un ESB, además de nuestros módulos y servicios desarrollados. Desde NetBeans podemos apreciar estos componentes desde la pestaña Services, con GlassFish en ejecución:

Arquitectura de recursos de Glassfish
JBI como un recurso más de Glassfish

Desplegamos JBI:

Componentes de JBI para SOA
Componentes de JBI orientados a SOA

Vemos las siguientes cuatro categorías:

  • Service Engines. Aquí se encuentran los motores de ejecución de los proyectos de la categoría SOA de NetBeans: BPEL Module (sun-bpel-engine), Data Mashup (sun-edm-engine), Intelligent Event Processing (sun-iep-engine), etc. Cada engine puede estar arrancado, detenido, desplegado o replegado.
  • Binding Components. Son módulos orientados a la comunicación de componentes en JBI. Aportan transparencia al transporte de los mensajes en JBI respecto del protocolo de comunicación o infraestructura utilizado: HTTP (SOAP), FTP, colas, ficheros, bases de datos, email, ldap, etc. Existe todo un catálogo de componentes.
  • Shared Libraries. Librerías comunes de las funcionalidades de los componentes.
  • Service Assembiles. En esta categoría aparecerán nuestros proyectos, tras ser compilados, agregados a una Composite Application y desplegados.

De manera interactiva podemos invocar a JBI para que actúe sobre cada componente: su ciclo de vida y sus propiedades de configuración:

Gestion de un componente a traves de JBI
Gestión de un componente a través de JBI

Cada componente tiene asociados determinados recursos, como bases de datos, colas JMS, espacio en el filesystem, etc. Para conocer más a fondo esta configuración, podemos acceder a la consola de administración de Glassfish publicada en http://localhost:4848/. Iniciamos sesión con el nombre de usuario y contraseña que establecimos en la instalación (admin / adminadmin):

Consola de administracion de GlassFish
Consola de administración de GlassFish en http://localhost:4848/

En el menú izquierdo desplegamos el nodo JBI | y pulsamos sobre Components. Aparece una tabla con los instalados, y opciones para instalar o desinstalar otros:

Gestionar componentes de JBI
Gestionar componentes de JBI

Pulsando sobre un componente en concreto accedemos a la edición de sus propiedades:

Edicion de las propiedades de los componentes de JBI
Edición de las propiedades de los componentes de JBI

Aquellos componentes con persistencia utilizan recursos JDBC basados en un pool de conexiones que pueden consultarse en el nodo Resources | JDBC. Por ejemplo, el motor del gestor de eventos (IEP Service Engine, iepse) utilizará una base de datos Java DB (distribución Sun de Apache Derby) y tiene definidas dos pool de conexiones que podemos examinar: iepseDerbyPoolNonXA e ipseDerbyPoolXA:

Recursos JDBC del componente IEP SE
Recursos JDBC del componente IEP SE

Java DB se incluye con la distribución de OpenESB (no es necesaria su instalación standalone desde la distribución de la JDK) y puede administrase desde el mismo NetBeans:

Administracion de bases de datos desde NetBeans
Administración de bases de datos desde NetBeans

Conclusión

Las tendencias empresariales actuales tienen cada vez más presente adoptar SOA para sus procesos de negocio. SOA es un concepto tan amplio y con implementaciones tan variadas y heterogéneas, que practicar con herramientas como OpenESB, puede ilustrarnos y ayudar en gran medida a asentar los conceptos que luego aplicaremos en nuestras labores de arquitectura.

Si le resulta interesante y quiere profundizar en esta materia, Autentia ofrece formación teórica de SOA a distintos niveles y cursos 100% prácticos.

¡Esperamos que este tutorial sea un primer paso para practicar SOA!

 

1 COMENTARIO

  1. Muy buen tutorial puedo decir, sin embargo no logro encontrar la versión de open ESB que se menciona. He encontrado la versión 2.2 y 2.3, encontrandome con la desagradable sorpresa de que ambas no cuentan con el IEP SE en glassfish. ¿Existe alguna forma de conseguir la versión 2.1 tan completa como se muestra en este documento?

    Saludos.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad