You are on page 1of 10

Latinus e-Professional

Business







[INSTALACIN Y
CONFIGURACIN DE ESB]


1
INSTALACIN Y CONFIGURACION DEL
BUS DE SERVICIOS APACHE SERVICE
MIX


PRE-REQUISITOS

A continuacin se describen los pasos necesarios que deben cubrirse con la finalidad de instalar
y configurar todos los elementos para tener listo el ambiente de trabajo de la plataforma.

Como primer punto debemos realizar un breve checklist de los siguientes tems :
El sistema operativo sobre el cual se instalar el apache ServiceMix(ESB) debe
tener correctamente instalado el jdk 1.6.0_23 lo cual se puede comprobar con el
siguiente comando:
java-version

De debe setear la variable de entorno JAVA_HOME para lo cual nos ubicaremos en el
path /etc y editaremos el fichero profile con el comando que se muestra a
continuacin
vi /etc/profile
Dentro del fichero profile agrdenos las siguientes lneas:




INSTALACIN DEL BUS DE SERVICIOS

Instalacin de Apache Service Mix

Escenario
Se realizar la instalacin de la herramienta Apache Service Mix 4.4.1-fuse-00-06 para el
sistema operativo Linux. Para este efecto los prerrequisitos bsicamente son la instalacin y
seteo de la variable JAVA_HOME, tal como se lo describi en la seccin anterior. Esto es
bsico e importante debido a que todos los sistemas contenidos en la infraestructura SOA se
basan en J2EE por lo tanto requieren que est instanciada la variable de ambiente antes
mencionada.
Prerrequisitos
Instalar el JDK 1.6.x
Inicializar la variable JAVA_HOME
Proceso de Instalacin
La instalacin del producto sigue breves pero importantes pasos. Aqu se expone como instalar
el Apache Service Mix (ESB) desde su obtencin o download hasta su verificacin de correcto
funcionamiento. Los pasos que se deben seguir se describen a continuacin:
1) Descargar el software apache-servicemix-4.4.1-fuse-00-06 de la siguiente
direccin, la cual en este punto constituye el enlace pblico para bajar la
aplicacin.
http://www.apache.org
2) Crear el directorio /opt
3) Descomprimir el paquete apache-servicemix-4.4.1-fuse-00-06.tar.gz descargado.
En este caso se lo descomprimir en la carpeta /opt/ atreves del comando

tar xzvf apache-servicemix-4.4.1-fuse-00-06.tar.gz

4) Ingresar al directorio <servicemix-server>/bin y ejecutamos. /servicemix, de este
modo tendremos la siguiente pantalla donde se muestra el servicio de service mix
levantado con el promp del KARAF el cual es el contenedor de los bundles del ASM
y su kernel.

5) Para iniciar el servidor nos dirigiremos al <servicemix-server>/bin y
ejecutaremos ./star

Es importante citar que <apache-servicemix>/data/log es el fichero de logs de servicemix
mismo que podemos monitorear atreves del comando

tail f servicemix.log

De esta manera el ESB ha quedado instalado a continuacin procederemos al proceso de
configuracin del mismo.

Proceso de configuracin
La instalacin del producto fue breve pero ahora debemos realizar unos ligeros cambios en los
archivos de configuracin del mismo a travs de los pasos que se expone en el presente
apartado:
1) Una vez instalado apache ServiceMix procederemos a realizar la edicin del fichero
org.apache.karaf.features.cfg que se encuentra ubicado dentro del bundles de
ServiceMix <apache-servicemix>/etc. Una vez dentro del fichero nos ubicaremos
en la lnea en la lnea featuresBoot y procederemos a dejarla como se muestra a
continuacin

featuresBoot=karaf-framework,config,activemq-broker,camel,camel-
activemq,camel-nmr,camel-cxf,camel-blueprint,war,camel-jetty

2) Para finalizar con la configuracin del ESB procederemos a la creacin del fichero
net.latinus.proxy.cfg dentro del path <apache-servicemix>/etc.

El fichero del cual se hace referencia en el presente numeral ser el encargado de
contener las rutas de los servicios que utilizarn el proxy-camel. Por fines
didcticos del documento se describe rpidamente el contenido y la lgica de
creacin del mismo:



*



El archivo contendr grupos de tres lneas de configuracin por cada ruta como los
muestra la imagen anterior misma que definirn la ubicacin del servicio real ,la
direccin del servicio que expondremos como proxy y la direccin del servidor, el
siguiente es un ejemplo de que se explica
#direccin del servidor ESB.// server.uri
proxyProcesosEstados.proxy.server.uri=http://192.168.20.117/procesosEstadosS
ervice
#direccin con la cual ser expuesto el servicio por el servidor ESB.// exposed.uri
proxyProcesosEstados.proxy.exposed.uri=http://esb.informatica.gob.ec/procesos
EstadosService
#direccin real del servicio que ser consumido por el servidor ESB.//real.address
proxyProcesosEstados.proxy.real.address=http://capacitacion.compraspublicas.g
ob.ec/estados_incop-war/procesosEstados

Nota :Cada una de las rutas que se crearan deben poseer un nombre que en este caso es
proxyProcesosEstados el cual debe ser nico.

En la configuracin concerniente al real.address colocaremos la direccin que el
servicio posea en el SoapLocation de su WSDL.
Una vez creadas las rutas pertinentes y desplegado el archivo .jar que contiene la
confirmacin de las mimas y creadas en el archivo net.latinus.proxy.cfg podremos ver las
rutas en la consola de servicemix.

2
CONFIGURACION Y CREACIN DE
RUTAS PARA EL BUS DE SERVICIO.


PRE-REQUISITOS

El presente apartado contiene la definicin de la aplicacin que contiene las rutas de servicios
que se utilizan en el camel-proxy. Se muestra el procedimiento de insercin y actualizacin de
las rutas como el procedimiento de seguimiento para el proceso de creacin.

Para el presente instructivo se debe utilizar los componentes que se listan a continuacin.

El IDE que se utiliza para el instructivo es NetBeans y el relase es el 6.9.1
EL JDK 1.6.0_16
Apache maven 2.2.1


Creacin y actualizacin de rutas


Latintegrate:Parent

Latintegrate es un Proyecto maven que contiene el cdigo necesario para poner en marcha las
rutas que sern utilizadas a manera de proxy dentro del Servicemix.

A continuacin se puede ver el proyecto latintegrate:proxy completamente ,que es un modulo
contenido dentro del Parent, mismo que contiene la definicin de las rutas y el Proxy



A manera de miselania se describen las funcionalidades de los siguientes archivos:

ProxyProcessor.java : El presente archivo contiene los metodos necesarios para la
generacion del wsdl que presentara el ESB, la obtencion de los wsdl padres .

Se encuentra dentro del paquete Paquete de fuentes y asu ves dentro net.latinus.proxy.

proxy-service.xml : El archivo en cuestin contiene la configuracin de las rutas atreves
de los end-point de los servicios padres y cdigo blueprint.

Se encuentra dentro del paquete Otras fuentes --->src/main/resources ---> OSGI-
INF.blueprint.

proxy-test.xml : El archivo en cuestin contiene la configuracin de las rutas atreves de
los end-point de los servicios padres y cdigo blueprint.

Se encuentra dentro del paquete Otras fuentes --->src/main/resources ---> OSGI-
INF.blueprint.

pom.xml : Se trata de un archivo XML que contiene informacin sobre el proyecto y los
detalles de la configuracin utilizada por Maven para generar el proyecto. Contiene los
valores por defecto para la mayora de los proyectos.

Se encuentra dentro del paquete Archivos de Proyecto.

Creacin de Rutas

La creacin de las Rutas se realizara a travs de la modificacin del archivo proxy-
service.xml y el proxy-test.xml siguiente el siguiente algoritmo.

1. Para crear una ruta dentro del camel-proxy debemos verificar que el servico padre
se encuentre online, para el presente ejemplo utilizaremos un servicio del
ambiente de pruebas de GRIG.

http://capacitacion.compraspublicas.gov.ec/ProcesoContratacion/app/webroot/c
ompras/servicio/swObtenerProceso.php?wsdl

2. Debemos identificar el uri que se configurar en el proxy para ello se debe analizar
el wsdl del servicio en cuestin y ponerle especial nfasis a la parte
correspondiente al <soap:address location= que es la etiqueta que contiene el uri
que buscamos. En este caso ser:



3. Luego debemos dirigirnos a NetBeans y abrir el proyecto maven
latintegrate:Parent y al modulo latintegrate:proxy para poder realizar el proceso
de creacin o modificacin de las rutas de ser el caso.
4. Una ves en latintegrate:proxy debemos dirigirnos a los archivos proxy-service.xml y
proxy-test.xml para realizar el proceso de configuracin de las rutas que se describe a
continuacin .
5. En la parte inicial del archivo proxy-service.xml en las etiquetas <cm:default-
properties> configuraremos un grupo de tres etiquetas por cada servicio que se
describen a continuacin:

<cm:property name="proxyProcesosEstados.proxy.server.uri"
value="http://localhost:8080/procesosEstadosService"/>
<cm:property name="proxyProcesosEstados.proxy.exposed.uri"
value="http://localhost:8080/procesosEstadosService"/>
<cm:property name="proxyProcesosEstados.proxy.real.address"
value="http://capacitacion.compraspublicas.gov.ec/ProcesoCon
tratacion/app/webroot/compras/servicio/swObtenerProceso.p
hp"/>
cm:property name= NN.proxy.server.uri :contiene el nombre que recibir el
servicio a ser creado dentro del camel-proxy, en el atributo value de esta etiqueta
se colocara la direccin y el puerto del servidor /nombreDelServicio que ser
expuesto.
cm:property name="NN.proxy.exposed.uri": contiene en la etiqueta value la
direccin mediante la cual ser expuesto el servicio a travs del ESB, en otras
palabras la direccin mediante la cual podr ser consumido.
<cm:property name="NN.proxy.real.address" : contiene en la etiqueta value la
direccin real del servicio padre que en este caso es el uri que obtuvimos en el
soap:address location como se indic en el punto 3

Los NN indican que se debe colocar en lugar de ellos el nombre que se desea dar al
servicio del proxy.
6. Luego de configurar las propiedades como se detalla en el punto anterior se
procese a agragra un bean por cada servicio luego de </cm:property-
placeholder> como se describe :

<bean id="proxyProcesosEstados" class="net.latinus.proxy.ProxyProcessor" init-
method="init"
destroy-method="destroy">
<property name="address" value="${NN.proxy.real.address}" />
<property name="externalAddress" value="${NN.proxy.exposed.uri}" />
</bean>

En este paso se agregan los proxy.realaddress y proxy.exposed.uri configurados en
el punto 5.
Se debe crear un bean por cada propiedad agregada en el punto 5, es decir, por
cada servicio web a ingresar en el proxy.
7. Luego de realizar los pasos anteriormente detallados debemos crear dentro del
contenedor <camel:camelContext id="camel"
xmlns="http://camel.apache.org/schema/blueprint"> la configuracin de las rutas
como se indica en este apartado:

<route streamCache="true">
<from uri="jetty:{{NN.proxy.server.uri}}"/>
<to uri="proxyProcesoContratacion"/>
</route>

En es el bundle route se colocara proxy.server.uri en el from y el bean id en el to
uri, este proceso debe realizarce por cada servicio que se desee agregar

Para finalizar vale recalcar que debe existir:

Un conjunto de tres definiciones de propiedades por cada servicio.
Un bean id por cada servicio.
Un route por cada servicio.

Para realizar modificaciones a las rutas una ves creadas solo basta con modificar los uri en
las propiedades y el proxy apuntara a un origen diferente.





Luego se procede a modificar el archivo proxy-test.xml para agregar las mismas rutas que
se agregar en el archivo anterior que deben mantener concordancia para que al momento
de ejecutar un clean-build del proyecto se realice el testeo de las misma.

1. Se deben realizar un proceso similar al realizado en el archivo proxy-
service.xml.Nos dirigimos al archivo proxy-test.xml y en la parte inicial justo
debajo de la etiqueta

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:camel="http://camel.apache.org/schema/spring"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd">

Se comenzarn a agregar los beans con las rutas, de la siguiente manera:

<bean id="proxyProcesosEstados" class="net.latinus.proxy.ProxyProcessor" init-
method="init" destroy-method="destroy">
<property name="address"
value="http://capacitacion.compraspublicas.gov.ec/ProcesoContratacion/app/we
broot/compras/servicio/swObtenerProceso.php"/>
<property name="externalAddress"
value="http://localhost:8080/procesosEstadosService" />
</bean>
en este bean se agrega la direccin real proveniente de la etiqueta soap:address
location del wsdl del servicio. U el external address de la misma marera que ya se
hizo en el otro archivo.
Se debe tener un bean como este por cada uno de los servicios agragados al camel-
proxy

2. Luego dentro del contenedor <camel:camelContext id="camel"
xmlns="http://camel.apache.org/schema/spring"> agregaremos los route para
cada uno de los beans creados anteriormente.
3. Para la creacin de los bean seguimos la loguica manejada en la creacin del
archivo proxy-server.xml

<route streamCache="true">
<from uri="http://localhost:8080/procesoContratacion"/>
<to uri="proxyProcesoContratacion"/>
</route>

En el route agregamos en el from la rireccion por la cual ser expuesto el server.uri
que en este caso es http://localhost:8080/procesoContratacion y en el to uri
colocamos el id del bean correspondiente
4. Verificar que exista un bean y un route por cada uno de los servicios que se
agregaran y que tengan concordancia con los servicios del proxy-service.xml.

You might also like