Francisco Javier Martínez Páez

Consultor tecnológico de desarrollo de proyectos informáticos.

 Ingeniero Técnico en Telecomunicaciones

Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría y formación

Somos expertos en Java/J2EE

Ver todos los tutoriales del autor

Fecha de publicación del tutorial: 2012-03-02

Tutorial visitado 4.093 veces Descargar en PDF
JBossESB y JBDS

Introducción a JBossESB y JBoss Developer Studio (JBDS)

Lo primero, como casi siempre, el enlace a los fuentes:

Introducción

Existen una gran cantidad de soluciones ESB open source, algunas de ellas: Service Mix, MuleESB, WSO2 ESB, OpenESB y otras tantas de pago (algunas de ellas): WebSphere Message Broker, SAG ESI etc... .
En este caso nos vamos a fijar en la solución de JBoss: JBossESB.

Instalación de JBossESB en JBossAS

En este tutorial doy por hecho que tenéis instalada una Java 6 (y JAVA_HOME configurada) y "ant" (yo tengo a versión 1.8.2)

Antes de poder instalar JBossESB, necesitamos un servidor de aplicaciones donde correrlo. Lo instalaremos en JBossAS 5.1.0, ya que en este servidor está muy probado. Podemos descargarlo desde aquí.

Seleccionad jboss-5.1.0.GA-jdk6.zip



Ahora debemos descargar alguna distribución de JBossESB. Podemos descargarlo desde aquí. De las tres distribuciones que aparecen, elegiremos JBossESB 4.10 Binary (esta es la instalación "standalone"):


Descargadlo y descomprimidlo en algún lugar del disco (no lo descomprimáis dentro de la instalación de JBossAS).

Vamos ahora a instalar o desplegar JBossESB en e JBossAS que hemos instalado antes. Para ello, seguid los siguientes pasos:

  1. Abrid una shell y colocáos en el directorio install de la distribución de JbossESB. Haced una copia del fichero "deployment.properties-example" llamándole "deployment.properties" y editadlo, configurando las siguientes propiedades:
       org.jboss.esb.server.home=/Developer/jboss-5.1.0.GA    org.jboss.esb.server.config=all
    La primera propiedad indica la ruta a la instalación de JBossAS (en mi caso es esa). La segunda propiedad indica la configuración de JBossAS que queremos arrancar. Elegimos "all" para que se instale en esta configuración. Si queréis, podéis hacer una copia de seguridad de la configuración "all" de JBossAS, porque va a ser modificada durante la instalación.
  2. Ahora, desde la consola (situados en el directorio "install" de JBossESB), ejecutad:

       ant deploy
Si observáis la ejecución de la tarea ant, veréis que se han instalado en JBossAS:
  • esb.deployer: Permite desplegar ficheros .esb
  • jbossesb-registry.sar: Servicio que gestiona la integración con el registro o repositorio de servicios
  • jbossesb.esb: Soporte de mensajes
  • jbpm.esb: Integración con JBPM
  • jbrules.esb: Integración con JBoss Rules
  • smooks.esb: Integración con Smooks (transformación de mensajes y enrutamiento)
  • soap.esb: Soporte para WebServices
  • spring.esb: Soporte para Spring

Ahora, únicamente nos queda arrancar el servidor de aplicaciones, para ver si todo ha ido bien. Para eso, ejecutamos el "run.sh" que se encuentra en el directorio "bin" del JBossAS (arrancaremos la configuración o profile de "all" que es la que hemos apañado con JBossESB):

   run.sh -c all

Podemos entrar en la consola de administración del servidor JBoss (usuario: admin clave: admin)



Desplegando servicios en JBossESB. Ficheros ".esb"

La forma en la que crearemos servicios para ser desplegados en JBossESB será a través de ficheros ".esb". Para permitir este despliegue, durante la instalación se incluyó el esb.deployer.
La anatomía de este tipo de ficheros es similar al de todos los ficheros desplegables en JBossAS, es decir: un fichero (comprimido) o carpeta (exploded) con una estructura fija, que contiene las clases necesarias para su ejecución así como los ficheros descriptores y de configuración que sean necesarios. Lo que seguro que contendrá un archivo ".esb" será un descriptor denominado jboss-esb.xml dentro de una carpeta "META-INF".

Nos vamos a basar en los ejemplos que incorpora JBossESB para realizar nuestra primera aplicación. Todos los ejemplos están basados en una serie de propiedades comunes que debemos configurar en un fichero "quickstart.properties". Aquí están los pasos que deberemos dar para desplegar nuestra primera aplicación en JBossESB (todas las rutas que se indican tienen como raíz la ruta donde descomprimísteis JBossESB):

  1. Copiad el fichero "samples/quickstarts/conf/quickstarts.properties-example" en la misma ruta con el nombre: "samples/quickstarts/conf/quickstarts.properties"
  2. Editad el fichero "quickstarts.properties" indicando las siguientes propiedades:

       org.jboss.esb.server.home=/Developer/jboss-5.1.0.GA
       org.jboss.esb.server.config=all
       jbpm.console.username=admin
       jbpm.console.password=admin

  3. Colocáos en "samples/quickstarts/helloworld" (nada se puede empezar sino es con un Hello World) y ejecutad:
       ant deploy

    Una vez ejecutado, podéis comprobar en la consola de JBossAS que os indicará que el despliegue se ha hecho correctamente:



Vamos a ejecutar los ejemplos que vienen en "helloworld". Para ejecutarlos debemos seguir en la ruta: "samples/quickstarts/helloworld". El primer ejemplo se ejecuta con:

   ant runtest

Este ejemplo crea un mensaje JMS y lo envía a una cola. Al llegar el mensaje a la cola, un "gateway listener" (un adaptador) recoge el mensaje, lo "encapsula en un ESBMessage" (mensaje que entiende JBossESB) y lo envía a un listener "ESB-Aware". A continuación, el mensaje se pinta en la consola del servidor:



El segundo ejemplo se ejecuta con:

   ant sendesb

Aquí se crea un mensaje "ESB-aware" (mensaje que entiende JBossESB) y se envía directamente al listener "ESB-Aware". A continuación, el mensaje se pinta en la consola del servidor:



Una vez desplegado y ejecutado el ejemplo, podemos quitarlo de despliegue ejecutando:

   ant undeploy

Instalación de JBDS (JBoss Developer Studio)

Es muy recomendable si vamos a crear aplicaciones para JBossESB utilizar algún editor que nos facilite la creación de los ficheros .esb y la edición de los diferentes descriptores. Para ello nada mejor que el propio IDE que proporciona JBoss: JBoss Developer Studio (está montado sobre un eclipse). . Será necesario previamente registrarse (Pulsad en "REGISTER FOR FREE HERE") (si no lo estáis ya). Al final llegaréis a una página similar a esta. Seleccionad vuestra distribución en función de las características de vuestro sistema (yo he elegido la marcada en rojo):



Una vez descargado el fichero, ejecutad el instalador (suponemos que estamos en la shell en el directorio donde habéis descargado el fichero):

   java -jar jbdevstudio-product-macosx-cocoa-x86_64-4.1.2.v201201.jar

Este comando arrancará el instalador (En mi caso el fichero se llama así) y seguir el "wizard". Hay que seleccionar la JVM, el directorio de instalación y el JBossAS que hemos instalado previamente:



Una vez seleccionada empieza la instalación:



Una vez instalado, sólo hay que ejecutarlo. Seleccionad el workspace y a correr:



Vamos a configurar ahora nuestro JBoss ESB (el que hemos instalado sobre JBossAS):
  1. Una vez arrancado (cerrad el Welcome) y seleccionad la perspectiva "Java".
  2. Seleccionad "Jboss Developer Studio > Preferences > JBoss ESB Runtimes":



    Notad que he seleccionado la "home" de JBossAS y la configuración "all" (exactamente donde hemos desplegado JBossESB)

  3. Una vez hecho esto, ya podemos parar el servidor JBoss (si aún lo tenéis arrancado), porque ahora podemos gestionarlo todo a través del JBDS. Sólo nos falta configurar la vista de servers: seleccionad "Window > Show View > Other > Servers":



    En la vista de "Servers" ya podréis ver el JBossAS configurado correctamente para ser ejecutado (Botón derecho sobre el servidor y start):



    Una vez que ya tenemos todo "preparadito" para empezar a entrar en faena. Lo primero que haremos es crearnos un proyecto ESB ("File > New > Other"):



    Ponedle un nombre y pulsad Finish.



    Os creará el proyecto:



    Tendremos un proyecto vacío y únicamente nos crear el fichero descriptor jboss-esb.xml "vacío" (sólo contiene los namespaces) Vamos ahora a crear nuestro primer Servicio en JBossESB.
    Primero necesitamos una clase de "Action" (nos lo vamos a poner fácil por ser la primera vez): Una vez creada la acción, vamos a configurar el descriptor jboss-esb.xml: Nuestro servicio "EasyFirstService", escuchará en los listeners: "easyServiceGatewayListener" y en "easyServiceEsbAwareBusListener". El primero de ellos ("easyServiceGatewayListener") es un simple adaptador que convierte el mensaje de "No EsbAware" a "EsbAware". Actualmente sólo se realiza una acción ("PrintBodyAction").
    Ambos listeners están escuchando en colas JMS de JBossMQ.

    Una vez configurado el servicio, necesitamos crear el fichero "deployment.xml" (en el mismo lugar donde se encuentra "jboss-esb.xml"): Hemos indicado que nuestro servicio depende del despliegue de dos colas JMS.

    Ahora necesitamos crear las colas (lo podríamos hacer en los ficheros adecuados de JBossAS), pero también es posible definirlas como parte de nuestro fichero ".esb". Nos creamos el fichero "jbm-queue-service.xml" en la raíz del directorio esbcontent: La estructura final de nuestro proyecto será:



    Ya sólo nos queda desplegarlo. Botón derecho sobre el servidor: Añadir el proyecto al servidor:



    Si el servidor está arrancado, lo desplegará.

    Ya únicamente nos queda probarlo. Para eso, tenemos que enviar algún mensaje. Nos crearemos una clase para ello: Ejecutad la clase y comprobad la consola:



    Bueno, pues ya hemos conseguido desplegar y probar nuestro primer servicio en JBossESB. En próximos tutoriales probaremos otras características del mismo.

    A continuación puedes evaluarlo:

    Regístrate para evaluarlo

    Por favor, vota +1 o compártelo si te pareció interesante

    Share |
    Anímate y coméntanos lo que pienses sobre este TUTORIAL: