Sei sulla pagina 1di 39

SNAP - PROCESOS ADJETIVOS

Introduccin y Gua de
Instalacin y Configuracin de
JBOSS FUSE - ESB



Gua de Capacitacin. [00]



LATINUS


Versin [1.0]


LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 2 de 39
Informacin General

CLIENTE: SNAP
PROYECTO: Procesos Adjetivos

Propiedades del Documento

ID DEL DOCUMENTO: Gua de Capacitacin [00]
TIPO DE DOCUMENTO Gua de Capacitacin
TTULO DEL DOCUMENTO: Gua de Instalacin y Configuracin JBOSS FUSE - ESB
AUTOR: Ing. Cristhian Herrera
VERSIN: Versin 1.0
FECHA DE CREACIN: 10/02/2014
LTIMA ACTUALIZACIN: 10/02/2014

Registro de Cambios

FECHA AUTOR VERSIN REFERENCIA DEL CAMBIO
10/02/2014 Ing. Cristhian Herrera Versin 1.0 Creacin

Distribucin

Nro. NOMBRE CARGO CLIENTE
1 Personal SNAP Interno SNAP

Restricciones

Nro. DESCRIPCIN
1 Uso Interno


LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 3 de 39
CONTENIDO
Sobre el presente documento ...................................................................................... 4
Acrnimos / Glosario de Trminos ............................................................................... 4
Algunos conceptos ..................................................................................................... 5
SOA ....................................................................................................................... 5
Concepto de Servicio ........................................................................................... 5
Puntos de Entrada SOA ........................................................................................ 6
ESB ....................................................................................................................... 7
Funcionalidades de un ESB .................................................................................. 10
Algunos productos del entorno JBOSS-FUSE-ESB ......................................................... 12
Apache MAVEN ...................................................................................................... 12
Framework OSGi .................................................................................................... 12
Bundles OSGi ..................................................................................................... 14
Active MQ ............................................................................................................. 14
Apache KARAF ....................................................................................................... 15
Apache CAMEL ...................................................................................................... 15
Apache CXF ........................................................................................................... 15
Apache SERVICEMIX .............................................................................................. 15
FUSE ESB / JBOSS-FUSE-ESB .................................................................................. 16
Arquitectura Apache SERVICEMIX / JBOSS FUSE.......................................................... 18
Arquitectura Apache ServiceMIX .......................................................................... 18
Componentes y capas JBOSS FUSE ...................................................................... 20
Instalacin de APACHE SERVICEMIX - ESB ................................................................. 27
Pre-requisitos ........................................................................................................ 27
Instalacin de Maven ............................................................................................. 27
Instalando Apache ServiceMix ................................................................................. 28
Consola Apache ServiceMix ..................................................................................... 31
Configuracin Bsica de usuarios ............................................................................ 34
Consola Web Apache ServiceMix ............................................................................. 36
Ejemplo servicio route ............................................................................................ 37

LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 4 de 39
SOBRE EL PRESENTE DOCUMENTO

El presente documento tiene por objetivo ser una introduccin y a la vez una gua de
instalacin y configuracin para el producto JBOSS-FUSE-ESB el mismo que constituye el
producto ESB a ser utilizado como parte del proyecto de Procesos Adjetivos.
ACRNIMOS / GLOSARIO DE TRMINOS
A continuacin se presentan algunos trminos que sern utilizados a lo largo del presente
documento:
SNAP: Subsecretara Nacional de Administracin Pblica
SW: Software
JEE: Java Enterprise Edition. Conjunto de estndares JAVA que definen el diseo,
arquitectura e implementacin de aplicaciones empresariales.
JVM: Java Virtual Machine
JS: Java Script
JAR: Java Archive
JBI: Java Business Integration
AOS / SOA: Arquitectura Orientada a Servicios.
SOAP: Simple Object Access Protocol
REST: Representational State Transfer
ESB: Enterprise Service Bus.
JMS: Java Message Services
JAX: Java API eXtension
WS: Web Service
RS: RESTFul Service
JAX-WS: Extensin Java para Web Services
JAX-RS: Extensin Java para servicios REST
TI: Tecnologa de Informacin
HTTP: Hyper Text Transfer Protocol.
FTP: File Transfer Protocol
SMTP: Simple Mail Transfer Procotol
TCP / IP: Transmission Control Protocol / Internet Protocol
XML: eXtensible Markup Language. Lenguage de Marcado Extensible
XSL: eXtensible Stylesheet Language
XSLT: eXtensible Stylesheet Language Transformation
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 5 de 39
XPATH: XML Path Language
SSL: Secure Socket Layer
API: Application Programming Interface
POM: Project Object Model
OSGi: Open Server Gateway Initiative
MOM: Message Oriented Middleware
MQ: Message Queue
AJAX: Asynchronous JavaScript And XML
BPM: Business Process Management
BPEL: Business Process Execution Language
EIP: Enterprise Integration Patterns
SO: Sistema Operativo
NMR: Normalized Message Router
ALGUNOS CONCEPTOS

SOA

La Arquitectura Orientada a Servicios (SOA), es un marco conceptual para integrar
procesos de negocios soportados en tecnologa segura a travs de componentes
desarrollados bajo estndares internacionales que pueden ser re-utilizados y combinados
para adaptarse a los cambios de prioridad del negocio.
CONCEPTO DE SERVICIO

Un servicio es una funcin en la red bien definida que consta de una interfaz procesable y
cuya implementacin es reemplazable.
Dicho de otra manera un servicio es una pieza de software autocontenida que puede
funcionar independientemente o cmo parte de un proceso.
En un entorno SOA un servicio se convierte entonces funcin sin estado, auto-contenida,
que acepta una(s) llamada(s) y devuelve una(s) respuesta(s) mediante una interfaz bien
definida. Los servicios pueden tambin ejecutar unidades discretas de trabajo como seran
editar y procesar una transaccin. Los servicios no dependen del estado de otras
funciones o procesos. La tecnologa concreta utilizada para prestar el servicio no es parte
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 6 de 39
de esta definicin. Existen servicios asncronos en los que una solicitud a un servicio crea,
por ejemplo, un archivo, y en una segunda solicitud se obtiene ese archivo.
PUNTOS DE ENTRADA SOA

La siguiente figura es una definicin de IBM en la cual se establecen cinco puntos de
entrada para una implementacin SOA, los mismos que han sido recopilados de una serie
de experiencias reales con clientes. Esos puntos de entrada son impulsados por
necesidades empresariales (puntos de entrada relacionados con personas, procesos e
informacin) y necesidades de TI (puntos de entrada relacionados con conectividad y
reutilizacin).


A continuacin las descripciones generales de los cinco puntos de entrada:
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 7 de 39

Personas: Este punto de entrada a SOA enfoca la experiencia del usuario para ayudar a
generar innovacin y ms colaboracin, lo que posibilita la interaccin consistente
entre personas y procesos y, consecuentemente, aumenta la productividad
empresarial. Al usar SOA se puede, por ejemplo, crear portlets basados en servicios
para aumentar esa colaboracin.
Procesos: El punto de entrada relacionado con procesos ayuda las compaas a saber
qu est sucediendo en los negocios, lo que les permite mejorar los modelos
empresariales ya existentes. Al usar SOA, puede transformar sus procesos
empresariales en servicios reutilizables y flexibles, lo que le permite mejorar y
optimizar los nuevos procesos.
Informacin: Al usar ese punto de entrada a SOA, puede sacar provecho a las
informaciones de su compaa en forma consistente y visible. Al facilitar informaciones
consistentes y confiables a todas las reas de la empresa, habilita todas las reas de la
compaa a innovar y, consecuentemente, puede competir con ms eficiencia. Al usar
SOA, se tiene un control mejor sobre sus informaciones; al alinear las informaciones a
sus procesos empresariales, puede descubrir relaciones nuevas e interesantes.
Conectividad: Aproveche el punto de entrada relacionado con la conectividad para
conectar su infraestructura con eficiencia, integrando todas las personas, procesos e
informaciones de su compaa. Al tener conexiones flexibles de SOA entre los servicios
y en todo el entorno, puede tomar un proceso empresarial ya existente y ofrecerlo sin
mucho esfuerzo a travs de otro canal empresarial. Puede incluso conectarse a socios
externos fuera de su firewall en una forma segura.
Reutilizacin: La reutilizacin de servicios con SOA permite aprovechar servicios que
ya existen en la compaa. Al basarse en los recursos ya existentes, puede optimizar
sus procesos empresariales, asegurar la consistencia en toda la compaa y reducir el
tiempo de desarrollo. Todo ello ahorra tiempo y dinero. Usted tambin reduce la
duplicacin de funcionalidades en sus servicios y tiene la oportunidad de aprovechar
las aplicaciones centrales comprobadas con las cuales el personal de su compaa est
familiarizado.

ESB

Un bus de servicios empresarial (ESB) consiste en un combinado de arquitectura de
software que proporciona servicios fundamentales para arquitecturas complejas a travs
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 8 de 39
de un sistema de mensajes (el bus) basado en las normas y que responde a eventos. Los
desarrolladores normalmente implementan un ESB utilizando tecnologas de productos de
infraestructura de middleware que se basan en normas reconocidas.

ESB puede definirse tambin como una plataforma de integracin que provee
comunicacin, transformacin, potabilidad, entubacin y seguridad de datos, permitiendo
la interaccin entre diversas aplicaciones o sistemas de un arquitectura empresarial.

El ESB permite conectar todos los recursos y colocarlos en disponibilidad en toda la
empresa: servicios Web, aplicaciones J2EE, brokers de mensajera heredados, etc. Al
poner estos servicios en disponibilidad para la interaccin configurada dinmicamente con
otros servicios, el ESB permite a la organizacin alinear mejor los recursos de TI con los
requisitos organizacionales
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 9 de 39

Un ESB no implementa en s mismo una arquitectura orientada a servicios (SOA /AOS),
sino que proporciona las caractersticas mediante las cuales s se puede implementar. Un
ESB debera basarse en normas y proporcionar flexibilidad, dando cobertura a distintos
medios de transporte que sean capaces de implementar tanto patrones de SOA
tradicionales como arquitectura de negocios con una SOA 2.0 enriquecida. El ESB trata de
aislar el acoplamiento entre el servicio solicitado y el medio de transporte. La mayora de
los proveedores de ESB incorporan principios de SOA y permiten formatos de mensaje
independientes.
Un ESB generalmente proporciona una capa de abstraccin construida sobre una
implementacin de un sistema de mensajes de empresa que permita a los expertos en
integracin explotar el valor del envo de mensajes sin tener que escribir cdigo. Al
contrario que sucede con la clsica integracin de aplicaciones de empresa (IAE) que se
basa en una pila monoltica sobre una arquitectura hub and spoke
1
, un bus de servicio de
empresa se construye sobre unas funciones base que se dividen en sus partes
constituyentes, con una implantacin distribuida cuando se hace necesario, de modo que
trabajen armoniosamente segn la demanda.
La siguiente figura muestra una vista de funcionamiento de un ESB basado en capas:
Aplicaciones FrontEnd
Capa de Integracin
Aplicaciones BackOffice


1
Modelo de arquitectura de red, basado en hub. Conectar y distribuir, similar al patrn utilizado por
las rutas de aerolneas.
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 10 de 39


FUNCIONALIDADES DE UN ESB

En general un producto ESB debe proporcionar las siguientes funcionales:
Transparencia de Ubicacin: El ESB ayuda a desligar el consumidor del servicio de
la ubicacin del proveedor del servicio. El ESB provee una plataforma central para
comunicarse con cualquier aplicacin requerida sin ligar el recibidor del mensaje
con el que enva el mensaje.
Conversin de Protocolo de Transporte: Un ESB debe de tener la capacidad de
integrar de forma transparente a travs de diferentes protocolos de transporte
tales como HTTP(s), JMS, FTP, SMTP, TCP, etc.
Transformacin de Mensaje: El ESB brinda funcionalidad para transformar
mensajes desde un formato hasta otro formato basado en estndares tales como
XSLT y XPath.
Ruteo de Mensajes: El ESB determina el destino de los mensajes entrantes.
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 11 de 39
Mejora del Mensaje: El ESB puede brindar funcionalidad para agregar informacin
faltante basado en los datos del mensaje de entrada.
Seguridad: Autenticacin, autorizacin, y funcionalidad de encriptacin se proveen
a travs del ESB para asegurar los mensajes entrantes. Igualmente estas
funcionalidades se aplican a mensajes salientes para satisfacer requerimientos de
seguridad del proveedor del servicio a consumir.
Monitoreo y Administracin: Un ambiente de monitoreo y administracin del ESB
es fundamental para configurar el ESB para que sea confiable y tenga un alto
desempeo; al mismo tiempo, nos permite monitorear la ejecucin de los
mensajes y su flujo dentro del ESB.
La siguiente figura muestra el stack de funcionalidades cubiertas por un ESB:

LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 12 de 39
ALGUNOS PRODUCTOS DEL ENTORNO JBOSS-FUSE-ESB

A continuacin mencionaremos brevemente los productos de SW que se utilizan dentro
del entorno de JBOSS-FUSE-ESB.

APACHE MAVEN

Maven es una herramienta software para la gestin de proyectos y la automatizacin en la
construccin de los mismos. Usa el llamado POM (Project Object Model) para describir
como debe ser construido el proyecto, cules son sus dependencias con otros mdulos o
componentes externos y la orden de construccin que debe usarse.
Maven descarga de forma dinmica las libreras Java y plug-ins necesarias de uno o ms
repositorios
FRAMEWORK OSGI

OSGi es un framework para Java que usa bundles para desplegar componentes Java de
manera modular y mantener dependencias, control de classpath y versiones y carga de
clases. La gestin de ciclos de vida de OSGi permite cargar, arrancar y parar bundles sin
necesidad de apagar la JVM (Java Virtual Machine).
Los bundles pueden exportar servicios, ejecutar procesos y tener sus dependencias
controladas. Cada bundle tiene sus necesidades controladas por el contenedor OSGi.
Las capas del framework dan forma al contenedor dnde se instalan los bundles. El
framework controla la instalacin y actualizacin de bundles de forma dinmica y
escalable, y controla las dependencias entre bundles y servicios.

El framework de OSGi est compuesto por:
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 13 de 39
Bundles: Son los mdulos en los que se basa el funcionamiento del framework de
OSGi.
Service Layer: Permite comunicacin entre bundles y sus componentes internos.
Esta capa est fuertemente integrada en la capa Lifecycle.
Lifecycle Layer: Provee el acceso al framework de OSGi. Mantiene el ciclo de vida
de los bundles de forma que se puedan controlar las aplicaciones de forma
dinmica.
Module Layer: Proporciona un API para administrar el empaquetamiento de
bundles, resolucin de dependencias y carga de clases.
Execution Environment: Una configuracin de una JVM. Este entorno usa perfiles
que definen el entorno en el cual los bundles pueden funcionar.
Security Layer: Es una capa opcional basada en Java 2 Security, con mejoras y
restricciones adicionales.
OSGi presenta una gran evolucin frente a los tradicionales classloaders
2
.

Algunos de los beneficios de usar OSGi frente a una jerarqua de classloaders pueden ser:
Control absoluto sobre versiones y dependencias: mltiples versiones de una
librera conviven felizmente en el mismo contenedor
Desacoplamiento entre mdulos: mediante una Arquitectura Orientada a
Servicios interna (dentro del servidor).
Las clases y dependencias se comparten: para una gestin ms eficiente de la
memoria. Permite entender e inspeccionar exactamente qu libreras se estn
usando en cada parte de la aplicacin en tiempo de ejecucin.
Agilidad: en el desarrollo, testeo y actualizacin de versiones (hot deploy)

2
Un classloader es la parte de la JVM encargada de buscar y colocar en memoria a las clases que
se encuentren disponibles en el classpath
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 14 de 39
Servidores Livianos: OSGi = modularidad, tambin en el servidor. Utilice slo las
funciones que necesite en su servidor. Cargue a demanda.
BUNDLES OSGI

Un bundle es una coleccin de clases, JARs y archivos de configuracin que pueden ser
cargados de forma dinmica. Es decir, los bundles son aplicaciones empaquetadas en
JARs, y que pueden ser instaladas, arrancadas, paradas, actualizadas y eliminadas.
La abstraccin del bundle OSGi permite a los mdulos compartir clases Java. Las clases
compartidas deben estar accesibles cuando arranca el bundle que las requiere.
Un bundle es un JAR con metadata en su archivo manifest OSGi. Un bundle contiene
archivos de clases y, opcionalmente, otros recursos y libreras nativas. Se pueden declaran
que paquetes en el bundle son visibles desde el exterior (exported packages) y qu
paquetes externos son necesarios para el bundle (imported packages).

ACTIVE MQ

Es la plataforma de mensajera de Apache, un broker de mensajera, orientado al
intercambio de mensajes asincrnicos (MOM: Message-Oriented Middleware). Un broker
de mensajera permite que distintas aplicaciones y componentes se comuniquen entre s
en tiempo real, desacopladamente, mediante el envo y recepcin de mensajes, sin
conocer previamente quines participan en el proceso.
ActiveMQ provee una implementacin de la especificacin JMS y un conjunto de
funcionalidades adicionales como destinos dinmicos, consumidores retroactivos, grupos
de mensajera, polticas de entrega repetitiva y mucho ms. Provee APIs clientes para una
variedad bien grande de lenguajes y tecnologas (Ajax, C++, Python, PHP, WebSockets y un
largo etctera) y tambin de protocolos de transporte, como HTTP, UDP, SSL, Multicast,
etc.
Una tecnologa de este tipo provee alta escabilidad. Los productores y consumidores no
necesitan conocerse entre s, los participantes pueden conectarse y desconectarse
dinmicamente y hasta se puede armar una red de brokers capaces de autodescubrirse
entre s, formando distintas topologas.
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 15 de 39
APACHE KARAF
Apache Felix Karaf es una plataforma OSGi que proporciona un contenedor liviano en el
cual varios componentes o aplicaciones pueden ser deployados (publicados).

APACHE CAMEL
Apache Camel es un framework para construir soluciones de integracin y enrutamiento.
Con l se pueden definir flujos de integracin en mltiples lenguajes como XML, Java,
Scala, etc. Bsicamente implementa los patrones de integracin de aplicaciones EIP.

APACHE CXF
Apache CXF sirve para construir, exponer y consumir Web Services. Implementa las
especificaciones JAX-WS y JAX-RS de Java EE; la primera para exponer fcilmente una
funcionalidad hecha en Java como un Web Service SOAP mediante un conjunto de
anotaciones, la segunda, idem pero para un servicio REST. En el mundo de JBoss se usa
Apache CXF para JAX-WS y en algunos casos se suele usar RESTEasy para lo que es JAX-RS.
Inicialmente este proyecto se llamaba Celtrix y era propietario, hasta que lo adquiri
Apache, lo combin con XFire y all sali CXF.
CXF se puede desplegar en casi cualquier servidor: un contenedor de Servlet como Tomcat
o Jetty, un servidor de aplicaciones como Glassfish, un ESB como ServiceMix, un
contenedor OSGi como hoy en da es JBoss 7 o una aplicacin standalone con su propia
JVM.
APACHE SERVICEMIX
Es un contenedor flexible que unifica las funcionalidades de ActiveMQ, Camel, CXF, ODE
(motor de orquestacin de servicios WS-BPEL) y Karaf. Se podra decir que el core de
ServiceMix es Apache Karaf, un ESB (Enterprise Service Bus) basado en OSGi. ServiceMix
combina un conjunto de tecnologas para proveer la plataforma SOA por excelencia, la
que siempre prometi ser la columna vertebral de la empresa, el ESB.
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 16 de 39
La siguiente figura resume el conjunto de tecnologas soportadas en las versiones actuales
de Apache ServiceMix:

FUSE ESB / JBOSS-FUSE-ESB

Hasta hace poco tiempo la versin comercial de Apache ServiceMix se denominaba FUSE
ESB. Este producto estaba desarrollado por la empresa FUSE, la misma que fue adquirida
por RedHat a mediados del 2013. RedHat fusion su propia lnea de aplicaciones ESB y
servidores de aplicacin con los productos de FUSE; fruto de esta unin las versiones
actuales de FUSE ESB se denominan ahora JBOSS-FUSE-ESB.

La siguiente figura muestra las tecnologas y componentes soportados en FUSE-ESB:
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 17 de 39

Http: Provee endpoints basados en Http para el consumo de recursos Http
externos.
Jetty: Provee endpoints basados en Http para el consumo de peticiones Http. Se
comporta como un simple Web Server. Se usa como entrada a nuestras rutas
Camel.
CXF: Permite su integracin con Apache CXF para conectarse con servicios JAX-WS
alojados en CXF
Stream: Provee acceso a los flujos System.in, System.out y System.err. Slo se ha
usado el flujo System.out con fines de depuracin de cdigo
Direct: Sirve para conectar rutas existentes dentro de un mismo contexto de Camel
Bean: Se usa para asociar beans al intercambio de mensajes de Apache Camel.
Velocity: Permite procesar mensajes mediante templates de Apache Velocity
File: Se emplea para acceder al sistema de archivos. En el proyecto se ha usado
para generar archivos de LOG
Seda: Sirve para implementar colas simples dentro de un mismo contexto de
Camel. Se manda los mensajes a una cola, y se invoca a los consumidores de estos
mensajes en un hilo distinto al que produjo el mensaje
XPATH: XPath es un lenguaje que permite construir expresiones que recorren y
procesan un documento XML. Permite buscar y seleccionar teniendo en cuenta la
estructura jerrquica del XML. Adems de permitir seleccionar directamente nodos
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 18 de 39
o atributos dentro de un documento XML, dispone de un conjunto de funciones
que permite hacer operaciones con los elementos del documento

ARQUITECTURA APACHE SERVICEMIX / JBOSS FUSE

Esta seccin introduce los conceptos de arquitectura de Apache ServiceMIX.

ARQUITECTURA APACHE SERVICEMIX

Apache ServiceMIX cuenta con dos componentes principales de arquitectura:
NMR
Kernel


El kernel provee una plataforma basada en OSGi usando Apache Felix (se pueden
usar otros contenedores OSGi) con algunos componentes integrados. El primero
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 19 de 39
de ellos es la consola, la misma que es la herramienta central para interacturar con
el kernel.
El Ruteador de Mensajes Normalizado (Normalized Message Router) es un bus de
propsito general usado para la comunicacin entre paquetes (bundles) en el
contenedor OSGi. Este componente est modelado en funcin de la especificacin
JBI (Java Business Integration); la especificacin puede leerse en detalle en el url
http://www.jcp.org/en/jsr/detail?id=208
Desde el punto de visto de arquitectura, los componentes de ServiceMix pueden
agruparse en 3 capas:
Developer View
Technology View
Micro Kernel

Principalmente podemos construir servicios basados en patrones de integracin de dos
formas posibles, utilizando Apache Camel o utilizando los componentes JBI que lleva
incorporados. JBI o Java Business Integration pretenda ser el estandar ESB para
integracin de servicios, pero su primera versin lleg tarde y la mayora de ESBs de pago
as como algunos open source no lo implementan. Actualmente JBI tiene dos versiones
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 20 de 39
(Servicemix es compatible con ambas), aunque la versin 2.0 est todava en fases de
desarrollo.
La arquitectura interna de JBI es la siguiente:


Podemos destacar los siguientes componentes:
Mensajera basada en WSDL 1.1 o 2.0
NMR o Normalized Message Router: es el componente principal de JBI, ya que es
el encargado de realizar el intercambio de mensajes en todos los componentes, a
groso modo, el manejador del bus.
Service Engines: proveen la lgica de negocio y/o transformaciones o
consumidores de otros servicios.
Binding Components: proveen la conectividad con servicios externos a ServiceMix
JMX: permite la instalacin de componentes, control y gestin del ciclo de vida de
servicios entre otros. Con la inclusin de Apache Karaf, la mayora de estas tareas
se pueden realizar por consola.

COMPONENTES Y CAPAS JBOSS FUSE

La siguiente figura muestra los componentes de JBOSS FUSE en su versin empresarial:
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 21 de 39


Contenedor: puede crear los contenedores que desee en cada terminal. Esta capa
de contenedor utiliza Apache Karaf y est mejorada por Fabric Management
Console, que simplifica la gestin de un gran nmero de contenedores
distribuidos.
Framework de integracin: puede utilizar una anotacin estndar para pasar del
diagrama a la implementacin con codificacin. Esta capa est basada en Apache
Camel.
Framework de servicios web: puede convertir cualquier aplicacin en un servicio
para incluirlo en su arquitectura. La tecnologa de habilitacin de servicios est
basada en Apache CXF.
Mensajera fiable: Red Hat JBoss Fuse incluye un agente de mensajera basado en
estndares con un tamao reducido. La capa de mensajera est basada en Apache
ActiveMQ.
Desarrollo y herramientas: Red Hat JBoss Fuse dispone de soporte de
herramientas que ayudan al desarrollo. JBoss Developer Studio incluye IDE de
Fuse.
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 22 de 39
Gestin y monitorizacin: Fabric Management Console ofrece soporte a los
entornos de produccin para la gestin y JBoss Operations Network para la
monitorizacin.

CAPA DE CONTENEDOR:

La siguiente tabla resume las caractersticas y ventajas de la capa contenedor:
Caracterstica Ventaja
Configuracin dinmica

Modifique la configuracin mientras el
contenedor est en ejecucin

Aumento de la disponibilidad del sistema.

Modifique la configuracin en un terminal
sin necesidad de detener y reiniciar el ESB
Implementacin en caliente

Implemente o actualice los servicios
mientras el ESB est en ejecucin

Aumento de la disponibilidad del sistema.

Modifique la ruta de integracin sin afectar
a otros servicios o terminales
Implementadores personalizados

Implemente POJOs como servicios
dinmicos (Blueprint, Spring DM)

Reduccin del tiempo de desarrollo

Desarrollo ms fcil y rpido de servicios
sin la complejidad de crear paquetes OSGi
Backend de registro centralizado

Realice el registro mediante varias API
comunes de registro (SLF4J, JCL, Avalon,
Tomcat, OSGi)
Reduccin de los costes de desarrollo y
mantenimiento

Reduce la necesidad de rehacer el cdigo
de los servicios escritos para una API de
registro concreta al implementarla en el
ESB
Consola del shell ampliable

Permite gestionar el tiempo de ejecucin y
controlar el ciclo de vida de los servicios; se
puede ampliar de forma dinmica para
controlar caractersticas y funciones
personalizadas de un servicio
implementado
Control mejorado de servicios

Permite controlar de forma interactiva los
servicios y funciones implementadas; las
extensiones del shell proporcionan
opciones de control adicionales, lo que
elimina la necesidad de crear una consola
personalizada.


LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 23 de 39
Caracterstica Ventaja
Acceso remoto

Acceso seguro a la consola de tiempo de
ejecucin del ESB desde cualquier cliente
SSH
Administracin simplificada de
aplicaciones de gran tamao

Gestin del ESB independiente de la
ubicacin

Framework de seguridad
Control de acceso al ESB mediante JAAS,
encriptacin SSL y puntos de plug-in para
ofrecer soporte a proveedores de
autentificacin, firewall, servidores proxy,
tneles HTTP y productos de DMZ de
terceros.

Simplificacin de la administracin de
seguridad
Permite utilizar un nico framework de
seguridad
Agrupamiento y failover
Permite compartir las cargas entre agentes
y contenedores de un clster; el soporte
de failover se realiza mediante mltiples
opciones de configuracin de maestro-
esclavo.

Aumento de la disponibilidad del sistema
Permite escalar las implementaciones para
ofrecer soporte a un gran nmero de
mensajes, usuarios y aplicaciones, con un
gran rendimiento y una alta disponibilidad


CAPA DE INTEGRACIN:

La siguiente tabla resume las caractersticas y ventajas de la capa de integracin:
Caracterstica Ventaja
Router de integracin empresarial

Permite aprovechar Apache Camel para
ofrecer un completo framework de
integracin, fcil de usar e intuitivo
Pase del diagrama a la implementacin

Facilita la creacin de prototipos y la
comprobacin de los patrones de
integracin empresariales en un Java DSL
fluido o mediante IoC con
implementaciones basadas en Spring.

Servicios web

Stack de servicios web fciles de usar e
intuitivos conformes con JAX-W

Permite reducir el tiempo de desarrollo

Creacin original de servicios web en WSDL
o Java.

LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 24 de 39
Caracterstica Ventaja
Servicios RESTful

Interfaz JAX-RS fcil de usar e intuitiva.

Permite reducir el tiempo de desarrollo

Desarrollo original simple en Java de
servicios RESTful.

Servicio JMS

Infraestructura completa de agente y
cliente conforme con JMS 1.1
Permite la adecuada integracin con la
infraestructura de TI existente

Ofrece soporte de comunicacin asncrona
entre servicios dentro o fuera del ESB.

Amplia conectividad

Utiliza Apache Camel para ofrecer
conectividad con aplicaciones externas con
conectores para JDBC, FTP/SFTP,
HTTP/HTTPS y archivo, entre muchos otros.

Integracin ms amplia

Integracin simplificada con varias fuentes
y objetivos diferentes




CAPA DE MENSAJERA:

La siguiente tabla resume las caractersticas y ventajas de la capa de mensajera:

Caracterstica Ventaja
Clientes con diferentes lenguajes

Ofrece conectividad desde programas
cliente escritos en lenguajes distintos de
Java
Soporte para muchos y variados entornos
de desarrollo

Permite la conectividad nativa desde
aplicaciones escritas en lenguajes distintos
de Java, como C o C++


Transportes conectables

Mltiples protocolos de transporte para el
intercambio de datos entre el agente y el
cliente, o bien entre varios agentes.

Soporte para bastantes entornos de red

Flexibilidad para cumplir las demandas de
diferentes entornos y casos prcticos.
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 25 de 39
Caracterstica Ventaja
Persistencia flexible

Ofrece soporte para una variedad de
opciones de persistencia, desde ninguna
persistencia, hasta el uso directo de una
base de datos JDBC y la habilitacin de la
persistencia de alto rendimiento mediante
Journal junto con una base de datos JDBC;
la persistencia a largo plazo se activa
mediante una base de datos de
almacenamiento compatible con JDBC.

Equilibrio de fiabilidad y rendimiento

Permite al usuario maximizar la fiabilidad y
el rendimiento de aplicaciones individuales.
API de REST

Una API basada en web y tecnolgicamente
independiente para el servicio de agente de
mensajera.

Integracin simplificada

Fcil integracin con servicios web RESTful
Soporte Ajax

Soporte para difusin a navegadores web
mediante DHTML puro.

Opciones de integracin aumentada

Permite a los desarrolladores web utilizar el
navegador como cliente de mensajera.
Flujos de JMS para mensajes muy grandes

Al distribuir mensajes extremadamente
grandes, los flujos de JMS eliminan el cuello
de botella que se producira cuando el
cliente JMS intentara mantener ms de 1
GB en memoria.

Ofrece soporte para la escalabilidad de las
aplicaciones

Permite a la plataforma de mensajera
distribuir archivos realmente grandes
(varios GB) en la red de manera fiable.
Compresin de mensajes

La compresin GZIP permite comprimir
mensajes muy verbosos
Ofrece soporte para la escalabilidad de las
aplicaciones

La compresin de mensajes ayuda a las
organizaciones a transportar de forma
eficaz grandes cantidades de datos
encapsulados en SOAP y otros formatos
XML.



LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 26 de 39

CAPA DE GESTIN:

La siguiente tabla resume las caractersticas y ventajas de la capa de gestin:
Caracterstica Ventaja
Gestor de configuracin de clsteres

Mecanismo de aprovisionamiento y
configuracin de nodos ESB de ESB en un
clster de ESB.

Simplifica la gestin de mltiples nodos

Configuracin y gestin centralizada de
nodos del clster de ESB.
Perfiles de configuracin

Mtodo para definir la configuracin de un
nodo ESB; los cambios y las actualizaciones
de los perfiles se aplican en todos los
nodos.

Simplifica la gestin de nodos
configurados de forma exclusiva

Uniformidad garantizada entre nodos con
configuracin idntica y mantenimiento
simplificado.

Registro de tiempo de ejecucin

Proporciona informacin relativa a las
instancias de ESB, incluidos los servicios
que alojan, la ubicacin de los terminales
de servicio y el estado de todos los
servicios y terminales.

Ofrece soporte para proveer la deteccin
automtica de nodos

Los servicios o consumidores pueden
descubrir los servicios disponibles en
cualquier lugar del clster sin necesidad de
conocer la informacin especfica de la
ubicacin.









LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 27 de 39
INSTALACIN DE APACHE SERVICEMIX - ESB

La siguiente seccin describe el procedimiento de instalacin de Apache ServiceMIX ESB.
PRE-REQUISITOS

El ambiente donde se va a instalar el ESB debe cumplir con los siguientes requisitos:
SO: Windows / Linux / MAC
Al menos 2GB de memoria RAM. Lo recomendado es 4GB
Al menos 2GB de espacio en disco
JDK versin 1.6 superior
Nota: Si va a instalar JBOSS-FUSE usted deber contar con RedHat como sistema
operativo.

INSTALACIN DE MAVEN

Para instalar Apache Maven debe realizar los siguientes pasos:
Descargar Maven desde el sitio:
http://maven.apache.org/download.cgi
La versin actual de Maven es 3.1.1

Crear la carpeta apache en /opt/apache
Definir la variable de entorno M2 y el path
export M2=/opt/apache/maven
export PATH=$M2/bin:$PATH
JAVA_HOME=/usr/java/jdk1.7.0_11
PATH=$JAVA_HOME/bin:$PATH
export PATH

Descomprimir maven y crear un enlace simblico con el nombre maven
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 28 de 39
tar -zxvf apache-maven-3.1.1-bin.tar.gz
ln -s apache-maven-3.1.1 maven

INSTALANDO APACHE SERVICEMIX

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.5.3 de la siguiente direccin, la cual en este
punto constituye el enlace pblico para bajar la aplicacin.

h
t
t
p
:
/
/
s
e
r
v
i
c
emix.apache.org/downloads.html



Para la descarga de la versin COMMUNITY de JOBSS-FUSE-ESB debe hacerlo desde la
pgina
http://www.jboss.org/products/fuse
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 29 de 39


2) Crear el directorio /opt/servicemix

3) Descomprimir el paquete apache-servicemix-4.5.3.tar.gz descargado. En este caso se
lo descomprimir en la carpeta /opt/servicemix atravs del comando

tar xzvf apache-servicemix-4.5.3.tar.gz

Nota: Si dispone de alguna herramienta de descompresin tambin puede realizer la
accin en forma grfica



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
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 30 de 39
levantado con el promp del KARAF el cual es el contenedor de los bundles del ASM y
su kernel.

5) Ahora estaremos dentro de la consola de Karaf




LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 31 de 39
6) 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.

CONSOLA APACHE SERVICEMIX

Una vez que Apache ServiceMix est ejecutndose podemos probar algunas opciones de la
consola:
osgi:list
Lista los bundles instalados

log:display
Muestra la salida de log
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 32 de 39

help
Lista los comandos de ayuda.

features:list
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 33 de 39
Lista de componentes soportados

osgi:shutdown
Salir de la consola y apagar el servicio
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 34 de 39

CONFIGURACIN BSICA DE USUARIOS

Dirjase al directorio de instalacin de serviceMix.
Luego ingrese al directorio /etc.

Liste los archivos
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 35 de 39

Edite el archivo users.properties

A continuacin se muestra el contenido del archivo

LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 36 de 39
Dejar descomentada la lnea smx=smx,admin que indica que existe un usuario de nombre
smx, con clave smx y rol admin.

CONSOLA WEB APACHE SERVICEMIX

En esta seccin indicaremos brevemente como instalar y acceder a WebConsole de Apache
ServiceMix
Primero comprobamos si el compoente se encuentra disponible, ejecutando el comando
features:list | grep webconsole

Luego procedemos a instalar ejecutando el comando
features:install webconsole

Para acceder a la consola podemos usar el url
http://localhost:8181/system/console

Debe ingresar con el usuario smx con clave smx


LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 37 de 39



EJEMPLO SERVICIO ROUTE

Para ejecutar este sencillo siga los siguientes pasos
En una ubicacin conocida cree el directorio /samples
Dentro de /samples cree los directorios /input y /oput
Dentro del directorio /input cree el archivo ejemploServiceMix.txt

Ubquse en un directorio conocido por ejemplo /samples
Proceda a crear el archivo camelInputOutpu.xml del servicio con el siguiente
contenido:
<?xml version="1.0" encoding="UTF-8"?>
LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 38 de 39
<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-2.8.3.xsd">
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="file:/Users/cleon/input"/>
<log message="Copiando ${file:name} al directorio de salida"/>
<to uri="file:/Users/cleon/output"/>
</route>
</camelContext>
</beans>
La siguiente figura muestra el archivo creado

Copie el archivo en el directorio SERVICEMIX_HOME/deploy

Si todo va bien el archivo debe haber sido movido al directorio destino.

LATINUS - Gua de Instalacin y Configuracin de JBOSSFUSE-ESBSistema SINARDAP

SNAP USO INTERNO Pgina 39 de 39

Potrebbero piacerti anche