13
[INSTALACIÓN Y CONFIGURACIÓN DE ESB] Latinus e- Professional Business

InstalaciónESB

Embed Size (px)

Citation preview

Page 1: InstalaciónESB

[

]

Latinus e-Professional

Business

Page 2: InstalaciónESB

1INSTALACIÓN Y CONFIGURACION DEL BUS DE SERVICIOS APACHE SERVICE

MIX

PRE-REQUISITOS

A continuación 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 continuaciónvi /etc/profile

Dentro del fichero profile agrédenos las siguientes líneas:

INSTALACIÓN DEL BUS DE SERVICIOS

Page 3: InstalaciónESB

Instalación de Apache Service Mix

Escenario

Se realizará la instalación de la herramienta Apache Service Mix 4.4.1-fuse-00-06 para el sistema operativo Linux. Para este efecto los prerrequisitos básicamente son la instalación y seteo de la variable JAVA_HOME, tal como se lo describió en la sección anterior. Esto es básico 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 Instalación

La instalación del producto sigue breves pero importantes pasos. Aquí se expone como instalar el Apache Service Mix (ESB) desde su obtención o download hasta su verificación de correcto funcionamiento. Los pasos que se deben seguir se describen a continuación:

1) Descargar el software apache-servicemix-4.4.1-fuse-00-06 de la siguiente dirección, la cual en este punto constituye el enlace público para bajar la aplicación.

http://www.apache.org

2) Crear el directorio /opt3) 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.

Page 4: InstalaciónESB

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 continuación procederemos al proceso de configuración del mismo.

Proceso de configuración

La instalación del producto fue breve pero ahora debemos realizar unos ligeros cambios en los archivos de configuración del mismo a través de los pasos que se expone en el presente apartado:

1) Una vez instalado apache ServiceMix procederemos a realizar la edición 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 línea en la línea featuresBoot y procederemos a dejarla como se muestra a continuación

featuresBoot=karaf-framework,config,activemq-broker,camel,camel-

activemq,camel-nmr,camel-cxf,camel-blueprint,war,camel-jetty

2) Para finalizar con la configuración del ESB procederemos a la creación 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 utilizarán el proxy-camel. Por fines

Page 5: InstalaciónESB

didácticos del documento se describe rápidamente el contenido y la lógica de creación del mismo:

*

El archivo contendrá grupos de tres líneas de configuración por cada ruta como los muestra la imagen anterior misma que definirán la ubicación del servicio real ,la dirección del servicio que expondremos como proxy y la dirección del servidor, el siguiente es un ejemplo de que se explica#dirección del servidor ESB.// server.uriproxyProcesosEstados.proxy.server.uri=http://192.168.20.117/procesosEstadosService#dirección con la cual será expuesto el servicio por el servidor ESB.// exposed.uriproxyProcesosEstados.proxy.exposed.uri=http://esb.informatica.gob.ec/procesosEstadosService#dirección real del servicio que será consumido por el servidor ESB.//real.addressproxyProcesosEstados.proxy.real.address=http://capacitacion.compraspublicas.gob.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 configuración concerniente al real.address colocaremos la dirección que el servicio posea en el SoapLocation de su WSDL.

Una vez creadas las rutas pertinentes y desplegado el archivo .jar que contiene la confirmación de las mimas y creadas en el archivo net.latinus.proxy.cfg podremos ver las rutas en la consola de servicemix.

Page 6: InstalaciónESB

2CONFIGURACION Y CREACIÓN DE

RUTAS PARA EL BUS DE SERVICIO.

PRE-REQUISITOS

El presente apartado contiene la definición de la aplicación que contiene las rutas de servicios que se utilizan en el camel-proxy. Se muestra el procedimiento de inserción y actualización de las rutas como el procedimiento de seguimiento para el proceso de creación.

Para el presente instructivo se debe utilizar los componentes que se listan a continuación.

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

Page 7: InstalaciónESB

Creación y actualización de rutas

Latintegrate:Parent

Latintegrate es un Proyecto maven que contiene el código necesario para poner en marcha las rutas que serán utilizadas a manera de proxy dentro del Servicemix.

A continuación se puede ver el proyecto latintegrate:proxy completamente ,que es un modulo contenido dentro del Parent, mismo que contiene la definición 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 cuestión contiene la configuración de las rutas atreves de los end-point de los servicios padres y código blueprint.

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

proxy-test.xml : El archivo en cuestión contiene la configuración de las rutas atreves de los end-point de los servicios padres y código blueprint.

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

pom.xml : Se trata de un archivo XML que contiene información sobre el proyecto y los detalles de la configuración utilizada por Maven para generar el proyecto. Contiene los valores por defecto para la mayoría de los proyectos.

Page 8: InstalaciónESB

Se encuentra dentro del paquete Archivos de Proyecto.

Creación de Rutas

La creación de las Rutas se realizara a través de la modificación 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/compras/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 cuestión 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 creación o modificación 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 configuración de las rutas que se describe a continuación .

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 continuación:

<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

Page 9: InstalaciónESB

tratacion/app/webroot/compras/servicio/swObtenerProceso.php"/>

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 dirección y el puerto del servidor /nombreDelServicio que será expuesto.cm:property name="NN.proxy.exposed.uri": contiene en la etiqueta value la dirección mediante la cual será expuesto el servicio a través del ESB, en otras palabras la dirección mediante la cual podrá ser consumido.<cm:property name="NN.proxy.real.address" : contiene en la etiqueta value la dirección 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 configuración 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.

Page 10: InstalaciónESB

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 comenzarán 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/webroot/compras/servicio/swObtenerProceso.php"/> <property name="externalAddress" value="http://localhost:8080/procesosEstadosService" /> </bean>en este bean se agrega la dirección 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 creación de los bean seguimos la loguica manejada en la creación 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.

Page 11: InstalaciónESB