Guia de Instalación de JBOSS-FUSE-ESB
-
Upload
cristhian-herrera -
Category
Documents
-
view
496 -
download
23
Transcript of Guia de Instalación de JBOSS-FUSE-ESB
SNAP - PROCESOS ADJETIVOS
Introducción y Guía de Instalación y Configuración de JBOSS FUSE - ESB
Guía de Capacitación. [00]
LATINUS
Versión [1.0]
Información General
CLIENTE: SNAP
PROYECTO: Procesos Adjetivos
Propiedades del Documento
ID DEL DOCUMENTO: Guía de Capacitación [00]
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
TIPO DE DOCUMENTO Guía de Capacitación
TÍTULO DEL DOCUMENTO: Guía de Instalación y Configuración JBOSS FUSE - ESB
AUTOR: Ing. Cristhian Herrera
VERSIÓN: Versión 1.0
FECHA DE CREACIÓN: 10/02/2014
ÚLTIMA ACTUALIZACIÓN: 10/02/2014
Registro de Cambios
FECHA AUTOR VERSIÓN REFERENCIA DEL CAMBIO
10/02/2014 Ing. Cristhian Herrera Versión 1.0 Creación
Distribución
Nro. NOMBRE CARGO CLIENTE
1 Personal SNAP Interno SNAP
Restricciones
Nro. DESCRIPCIÓN
1 Uso Interno
SNAP USO INTERNO Página 2 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
CONTENIDO
Sobre el presente documento.............................................................................4
Acrónimos / Glosario de Términos.......................................................................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
Instalación de APACHE SERVICEMIX - ESB.......................................................27
Pre-requisitos.................................................................................................27
Instalación de Maven.....................................................................................27
Instalando Apache ServiceMix.......................................................................28
Consola Apache ServiceMix...........................................................................31
Configuración Básica de usuarios..................................................................34
Consola Web Apache ServiceMix...................................................................36
Ejemplo servicio route...................................................................................37
SNAP USO INTERNO Página 3 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
SOBRE EL PRESENTE DOCUMENTO
El presente documento tiene por objetivo ser una introducción y a la vez una guía de instalación y configuración para el producto JBOSS-FUSE-ESB el mismo que constituye el producto ESB a ser utilizado como parte del proyecto de Procesos Adjetivos.
ACRÓNIMOS / GLOSARIO DE TÉRMINOSA continuación se presentan algunos términos que serán utilizados a lo largo del presente documento:
SNAP: Subsecretaría Nacional de Administración Pública SW: Software JEE: Java Enterprise Edition. Conjunto de estándares JAVA que definen el diseño,
arquitectura e implementación 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: Extensión Java para Web Services JAX-RS: Extensión Java para servicios REST TI: Tecnología de Información 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
SNAP USO INTERNO Página 4 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
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 tecnología segura a través de componentes desarrollados bajo estándares internacionales que pueden ser re-utilizados y combinados para adaptarse a los cambios de prioridad del negocio.
CONCEPTO DE SERVICIO
Un servicio es una función en la red bien definida que consta de una interfaz procesable y cuya implementación es reemplazable.
Dicho de otra manera un servicio es una pieza de software autocontenida que puede funcionar independientemente o cómo parte de un proceso.
En un entorno SOA un servicio se convierte entonces función sin estado, auto-contenida, que acepta una(s) llamada(s) y devuelve una(s) respuesta(s) mediante una interfaz bien definida. Los servicios pueden también ejecutar unidades discretas de trabajo como serían editar y procesar una transacción. Los servicios no dependen del estado de otras funciones o procesos. La tecnología concreta utilizada para prestar el servicio no es parte
SNAP USO INTERNO Página 5 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
de esta definición. Existen servicios asíncronos 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 definición de IBM en la cual se establecen cinco puntos de entrada para una implementación 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 información) y necesidades de TI (puntos de entrada relacionados con conectividad y reutilización).
A continuación las descripciones generales de los cinco puntos de entrada:
SNAP USO INTERNO Página 6 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
Personas: Este punto de entrada a SOA enfoca la experiencia del usuario para ayudar a generar innovación y más colaboración, lo que posibilita la interacción 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 colaboración.
Procesos: El punto de entrada relacionado con procesos ayuda las compañías 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.
Información: Al usar ese punto de entrada a SOA, puede sacar provecho a las informaciones de su compañía en forma consistente y visible. Al facilitar informaciones consistentes y confiables a todas las áreas de la empresa, habilita todas las áreas de la compañía a innovar y, consecuentemente, puede competir con más 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 compañía. 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 través de otro canal empresarial. Puede incluso conectarse a socios externos fuera de su firewall en una forma segura.
Reutilización: La reutilización de servicios con SOA permite aprovechar servicios que ya existen en la compañía. Al basarse en los recursos ya existentes, puede optimizar sus procesos empresariales, asegurar la consistencia en toda la compañía y reducir el tiempo de desarrollo. Todo ello ahorra tiempo y dinero. Usted también reduce la duplicación de funcionalidades en sus servicios y tiene la oportunidad de aprovechar las aplicaciones centrales comprobadas con las cuales el personal de su compañía 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 través
SNAP USO INTERNO Página 7 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
de un sistema de mensajes (el bus) basado en las normas y que responde a eventos. Los desarrolladores normalmente implementan un ESB utilizando tecnologías de productos de infraestructura de middleware que se basan en normas reconocidas.
ESB puede definirse también como una plataforma de integración que provee comunicación, transformación, potabilidad, entubación y seguridad de datos, permitiendo la interacción 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 mensajería heredados, etc. Al poner estos servicios en disponibilidad para la interacción configurada dinámicamente con otros servicios, el ESB permite a la organización alinear mejor los recursos de TI con los requisitos organizacionales
SNAP USO INTERNO Página 8 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
Un ESB no implementa en sí mismo una arquitectura orientada a servicios (SOA /AOS), sino que proporciona las características mediante las cuales sí se puede implementar. Un ESB debería 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 mayoría de los proveedores de ESB incorporan principios de SOA y permiten formatos de mensaje independientes.
Un ESB generalmente proporciona una capa de abstracción construida sobre una implementación de un sistema de mensajes de empresa que permita a los expertos en integración explotar el valor del envío de mensajes sin tener que escribir código. Al contrario que sucede con la clásica integración de aplicaciones de empresa (IAE) que se basa en una pila monolítica sobre una arquitectura hub and spoke1, un bus de servicio de empresa se construye sobre unas funciones base que se dividen en sus partes constituyentes, con una implantación distribuida cuando se hace necesario, de modo que trabajen armoniosamente según la demanda.
La siguiente figura muestra una vista de funcionamiento de un ESB basado en capas:
Aplicaciones FrontEnd Capa de Integración Aplicaciones BackOffice
1 Modelo de arquitectura de red, basado en hub. Conectar y distribuir, similar al patrón utilizado por las rutas de aerolíneas.
SNAP USO INTERNO Página 9 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
FUNCIONALIDADES DE UN ESB
En general un producto ESB debe proporcionar las siguientes funcionales:
Transparencia de Ubicación: El ESB ayuda a desligar el consumidor del servicio de la ubicación del proveedor del servicio. El ESB provee una plataforma central para comunicarse con cualquier aplicación requerida sin ligar el recibidor del mensaje con el que envía el mensaje.
Conversión de Protocolo de Transporte: Un ESB debe de tener la capacidad de integrar de forma transparente a través de diferentes protocolos de transporte tales como HTTP(s), JMS, FTP, SMTP, TCP, etc.
Transformación de Mensaje: El ESB brinda funcionalidad para transformar mensajes desde un formato hasta otro formato basado en estándares tales como XSLT y XPath.
Ruteo de Mensajes: El ESB determina el destino de los mensajes entrantes.
SNAP USO INTERNO Página 10 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
Mejora del Mensaje: El ESB puede brindar funcionalidad para agregar información faltante basado en los datos del mensaje de entrada.
Seguridad: Autenticación, autorización, y funcionalidad de encriptación se proveen a través 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 Administración: Un ambiente de monitoreo y administración del ESB es fundamental para configurar el ESB para que sea confiable y tenga un alto desempeño; al mismo tiempo, nos permite monitorear la ejecución de los mensajes y su flujo dentro del ESB.
La siguiente figura muestra el stack de funcionalidades cubiertas por un ESB:
SNAP USO INTERNO Página 11 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
ALGUNOS PRODUCTOS DEL ENTORNO JBOSS-FUSE-ESB
A continuación 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 gestión de proyectos y la automatización en la construcción de los mismos. Usa el llamado POM (Project Object Model) para describir como debe ser construido el proyecto, cuáles son sus dependencias con otros módulos o componentes externos y la orden de construcción que debe usarse.
Maven descarga de forma dinámica las librerías Java y plug-ins necesarias de uno o más 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 gestión 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 dónde se instalan los bundles. El framework controla la instalación y actualización de bundles de forma dinámica y escalable, y controla las dependencias entre bundles y servicios.
SNAP USO INTERNO Página 12 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
El framework de OSGi está compuesto por:
Bundles: Son los módulos en los que se basa el funcionamiento del framework de OSGi.
Service Layer: Permite comunicación 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 dinámica.
Module Layer: Proporciona un API para administrar el empaquetamiento de bundles, resolución de dependencias y carga de clases.
Execution Environment: Una configuración 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 evolución frente a los tradicionales classloaders2.
Algunos de los beneficios de usar OSGi frente a una jerarquía de classloaders pueden ser:
Control absoluto sobre versiones y dependencias: múltiples versiones de una librería conviven felizmente en el mismo contenedor
Desacoplamiento entre módulos: mediante una Arquitectura Orientada a Servicios interna (dentro del servidor).
Las clases y dependencias se comparten: para una gestión más eficiente de la memoria. Permite entender e inspeccionar exactamente qué librerías se están usando en cada parte de la aplicación en tiempo de ejecución.
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
SNAP USO INTERNO Página 13 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
Agilidad: en el desarrollo, testeo y actualización de versiones (hot deploy) Servidores Livianos: OSGi = modularidad, también en el servidor. Utilice sólo las
funciones que necesite en su servidor. Cargue a demanda.
BUNDLES OSGI
Un bundle es una colección de clases, JARs y archivos de configuración que pueden ser cargados de forma dinámica. Es decir, los bundles son aplicaciones empaquetadas en JARs, y que pueden ser instaladas, arrancadas, paradas, actualizadas y eliminadas.
La abstracción del bundle OSGi permite a los módulos 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 librerías 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 mensajería de Apache, un broker de mensajería, orientado al intercambio de mensajes asincrónicos (MOM: Message-Oriented Middleware). Un broker de mensajería permite que distintas aplicaciones y componentes se comuniquen entre sí en tiempo real, desacopladamente, mediante el envío y recepción de mensajes, sin conocer previamente quiénes participan en el proceso.
ActiveMQ provee una implementación de la especificación JMS y un conjunto de funcionalidades adicionales como destinos dinámicos, consumidores retroactivos, grupos de mensajería, políticas de entrega repetitiva y mucho más. Provee APIs clientes para una variedad bien grande de lenguajes y tecnologías (Ajax, C++, Python, PHP, WebSockets y un largo etcétera) y también de protocolos de transporte, como HTTP, UDP, SSL, Multicast, etc.
Una tecnología de este tipo provee alta escabilidad. Los productores y consumidores no necesitan conocerse entre sí, los participantes pueden conectarse y desconectarse dinámicamente y hasta se puede armar una red de brokers capaces de autodescubrirse entre sí, formando distintas topologías.
SNAP USO INTERNO Página 14 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
APACHE KARAFApache Felix Karaf es una plataforma OSGi que proporciona un contenedor liviano en el cual varios componentes o aplicaciones pueden ser deployados (publicados).
APACHE CAMELApache Camel es un framework para construir soluciones de integración y enrutamiento. Con él se pueden definir flujos de integración en múltiples lenguajes como XML, Java, Scala, etc. Básicamente implementa los patrones de integración de aplicaciones EIP.
APACHE CXFApache CXF sirve para construir, exponer y consumir Web Services. Implementa las especificaciones JAX-WS y JAX-RS de Java EE; la primera para exponer fácilmente 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 día es JBoss 7 o una aplicación standalone con su propia JVM.
APACHE SERVICEMIXEs un contenedor flexible que unifica las funcionalidades de ActiveMQ, Camel, CXF, ODE (motor de orquestación de servicios WS-BPEL) y Karaf. Se podría decir que el core de ServiceMix es Apache Karaf, un ESB (Enterprise Service Bus) basado en OSGi. ServiceMix combina un conjunto de tecnologías para proveer la plataforma SOA por excelencia, la que siempre prometió ser la columna vertebral de la empresa, el ESB.
SNAP USO INTERNO Página 15 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
La siguiente figura resume el conjunto de tecnologías soportadas en las versiones actuales de Apache ServiceMix:
FUSE ESB / JBOSS-FUSE-ESB
Hasta hace poco tiempo la versión 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 línea de aplicaciones ESB y servidores de aplicación con los productos de FUSE; fruto de esta unión las versiones actuales de FUSE ESB se denominan ahora JBOSS-FUSE-ESB.
La siguiente figura muestra las tecnologías y componentes soportados en FUSE-ESB:
SNAP USO INTERNO Página 16 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
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 integración 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. Sólo se ha usado el flujo System.out con fines de depuración de código
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 jerárquica del XML. Además de permitir seleccionar directamente nodos
SNAP USO INTERNO Página 17 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
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 sección 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
SNAP USO INTERNO Página 18 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
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 propósito general usado para la comunicación entre paquetes (bundles) en el contenedor OSGi. Este componente está modelado en función de la especificación JBI (Java Business Integration); la especificación 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 integración de dos formas posibles, utilizando Apache Camel o utilizando los componentes JBI que lleva incorporados. JBI o Java Business Integration pretendía ser el estandar ESB para integración de servicios, pero su primera versión llegó tarde y la mayoría de ESBs de pago así como algunos open source no lo implementan. Actualmente JBI tiene dos versiones
SNAP USO INTERNO Página 19 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
(Servicemix es compatible con ambas), aunque la versión 2.0 está todavía en fases de desarrollo.
La arquitectura interna de JBI es la siguiente:
Podemos destacar los siguientes componentes:
Mensajería 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 lógica de negocio y/o transformaciones o consumidores de otros servicios.
Binding Components: proveen la conectividad con servicios externos a ServiceMix JMX: permite la instalación de componentes, control y gestión del ciclo de vida de
servicios entre otros. Con la inclusión de Apache Karaf, la mayoría de estas tareas se pueden realizar por consola.
COMPONENTES Y CAPAS JBOSS FUSE
La siguiente figura muestra los componentes de JBOSS FUSE en su versión empresarial:
SNAP USO INTERNO Página 20 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
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 gestión de un gran número de contenedores distribuidos.
Framework de integración: puede utilizar una anotación estándar para pasar del diagrama a la implementación con codificación. Esta capa está basada en Apache Camel.
Framework de servicios web: puede convertir cualquier aplicación en un servicio para incluirlo en su arquitectura. La tecnología de habilitación de servicios está basada en Apache CXF.
Mensajería fiable: Red Hat JBoss Fuse incluye un agente de mensajería basado en estándares con un tamaño reducido. La capa de mensajería 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.
SNAP USO INTERNO Página 21 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
Gestión y monitorización: Fabric Management Console ofrece soporte a los entornos de producción para la gestión y JBoss Operations Network para la monitorización.
CAPA DE CONTENEDOR:
La siguiente tabla resume las características y ventajas de la capa contenedor:
Característica VentajaConfiguración dinámica
Modifique la configuración mientras el contenedor está en ejecución
Aumento de la disponibilidad del sistema.
Modifique la configuración en un terminal sin necesidad de detener y reiniciar el ESB
Implementación en caliente
Implemente o actualice los servicios mientras el ESB está en ejecución
Aumento de la disponibilidad del sistema.
Modifique la ruta de integración sin afectara otros servicios o terminales
Implementadores personalizados
Implemente POJOs como servicios dinámicos (Blueprint, Spring DM)
Reducción del tiempo de desarrollo
Desarrollo más fácil y rápido 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)
Reducción de los costes de desarrollo y mantenimiento
Reduce la necesidad de rehacer el código de los servicios escritos para una API de registro concreta al implementarla en el ESB
Consola del shell ampliable
Permite gestionar el tiempo de ejecución ycontrolar el ciclo de vida de los servicios; sepuede ampliar de forma dinámica para controlar características y funciones personalizadas de un servicio implementado
Control mejorado de servicios
Permite controlar de forma interactiva losservicios y funciones implementadas; lasextensiones del shell proporcionan opciones de control adicionales, lo que elimina la necesidad de crear una consola personalizada.
SNAP USO INTERNO Página 22 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
Característica VentajaAccesoremoto
Acceso seguro a la consola de tiempo de ejecución del ESB desde cualquier cliente SSH
Administración simplificada de aplicaciones de gran tamaño
Gestión del ESB independiente de la ubicación
Framework de seguridadControl de acceso al ESB mediante JAAS,encriptación SSL y puntos de plug-in para ofrecer soporte a proveedores de autentificación, firewall, servidores proxy, túneles HTTP y productos de DMZ de terceros.
Simplificación de la administración de seguridadPermite utilizar un único framework de seguridad
Agrupamiento y failoverPermite compartir las cargas entre agentes y contenedores de un clúster; el soporte de failover se realiza mediante múltiples opciones de configuración de maestro-esclavo.
Aumento de la disponibilidad del sistemaPermite escalar las implementaciones para ofrecer soporte a un gran número de mensajes, usuarios y aplicaciones, con un gran rendimiento y una alta disponibilidad
CAPA DE INTEGRACIÓN:
La siguiente tabla resume las características y ventajas de la capa de integración:
Característica VentajaRouterde integración empresarial
Permite aprovechar Apache Camel para ofrecer un completo framework de integración, fácil de usar e intuitivo
Pase del diagrama a la implementación
Facilita la creación de prototipos y la comprobación de los patrones de integración empresariales en un Java DSL fluido o mediante IoC con implementaciones basadas en Spring.
Servicios web
Stack de servicios web fáciles de usar e intuitivos conformes con JAX-W
Permite reducir el tiempo de desarrollo
Creación original de servicios web en WSDLo Java.
SNAP USO INTERNO Página 23 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
Característica Ventaja
Servicios RESTful
Interfaz JAX-RS fácil 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 integración con la infraestructura de TI existente
Ofrece soporte de comunicación asíncrona 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.
Integración más amplia
Integración simplificada con varias fuentes y objetivos diferentes
CAPA DE MENSAJERÍA:
La siguiente tabla resume las características y ventajas de la capa de mensajería:
Característica VentajaClientes 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
Múltiples protocolos de transporte para el intercambio de datos entre el agente y el
Soporte para bastantes entornos de red
Flexibilidad para cumplir las demandas dediferentes entornos y casos prácticos.
SNAP USO INTERNO Página 24 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
Característica Ventajacliente, o bien entre varios agentes.
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 habilitación 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 tecnológicamente independiente para el servicio de agente de mensajería.
Integración simplificada
Fácil integración con servicios web RESTful
Soporte Ajax
Soporte para difusión a navegadores webmediante DHTML puro.
Opciones de integración aumentada
Permite a los desarrolladores web utilizar el navegador como cliente de mensajería.
Flujos de JMS para mensajes muy grandes
Al distribuir mensajes extremadamente grandes, los flujos de JMS eliminan el cuello de botella que se produciría cuando el cliente JMS intentara mantener más de 1 GB en memoria.
Ofrece soporte para la escalabilidad de las aplicaciones
Permite a la plataforma de mensajería distribuir archivos realmente grandes (varios GB) en la red de manera fiable.
Compresión de mensajes
La compresión GZIP permite comprimir mensajes muy verbosos
Ofrece soporte para la escalabilidad de las aplicaciones
La compresión de mensajes ayuda a las organizaciones a transportar de forma eficaz grandes cantidades de datos encapsulados en SOAP y otros formatos XML.
SNAP USO INTERNO Página 25 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
CAPA DE GESTIÓN:
La siguiente tabla resume las características y ventajas de la capa de gestión:
Característica VentajaGestor de configuración de clústeres
Mecanismo de aprovisionamiento y configuración de nodos ESB de ESB en un clúster de ESB.
Simplifica la gestión de múltiples nodos
Configuración y gestión centralizada de nodos del clúster de ESB.
Perfiles de configuración
Método para definir la configuración de un nodo ESB; los cambios y las actualizaciones de los perfiles se aplican en todos los nodos.
Simplifica la gestión de nodos configurados de forma exclusiva
Uniformidad garantizada entre nodos con configuración idéntica y mantenimiento simplificado.
Registro de tiempo de ejecución
Proporciona información relativa a las instancias de ESB, incluidos los servicios que alojan, la ubicación de los terminales de servicio y el estado de todos los servicios y terminales.
Ofrece soporte para proveer la detección automática de nodos
Los servicios o consumidores pueden descubrir los servicios disponibles en cualquier lugar del clúster sin necesidad de conocer la información específica de la ubicación.
SNAP USO INTERNO Página 26 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
INSTALACIÓN DE APACHE SERVICEMIX - ESB
La siguiente sección describe el procedimiento de instalación 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 versión 1.6 ó superior
Nota: Si va a instalar JBOSS-FUSE usted deberá contar con RedHat como sistema operativo.
INSTALACIÓN DE MAVEN
Para instalar Apache Maven debe realizar los siguientes pasos:
Descargar Maven desde el sitio:
http://maven.apache.org/download.cgi
La versión 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:$PATHJAVA_HOME=/usr/java/jdk1.7.0_11PATH=$JAVA_HOME/bin:$PATHexport PATH
SNAP USO INTERNO Página 27 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
Descomprimir maven y crear un enlace simbólico con el nombre maven
tar -zxvf apache-maven-3.1.1-bin.tar.gz
ln -s apache-maven-3.1.1 maven
INSTALANDO APACHE SERVICEMIX
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.5.3 de la siguiente dirección, la cual en este punto constituye el enlace público para bajar la aplicación.
http://servicemix.apache.org/downloads.html
Para la descarga de la versión COMMUNITY de JOBSS-FUSE-ESB debe hacerlo desde la página
http://www.jboss.org/products/fuse
SNAP USO INTERNO Página 28 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
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 através del comando
tar –xzvf apache-servicemix-4.5.3.tar.gz
Nota: Si dispone de alguna herramienta de descompresión también puede realizer la acción en forma gráfica
SNAP USO INTERNO Página 29 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
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) Ahora estaremos dentro de la consola de Karaf
SNAP USO INTERNO Página 30 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
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 continuación procederemos al proceso de configuración del mismo.
CONSOLA APACHE SERVICEMIX
Una vez que Apache ServiceMix está ejecutándose podemos probar algunas opciones de la consola:
osgi:list
Lista los bundles instalados
log:display
Muestra la salida de log
SNAP USO INTERNO Página 31 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
help
Lista los comandos de ayuda.
features:list
SNAP USO INTERNO Página 32 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
Lista de componentes soportados
osgi:shutdown
Salir de la consola y apagar el servicio
SNAP USO INTERNO Página 33 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
CONFIGURACIÓN BÁSICA DE USUARIOS
Diríjase al directorio de instalación de serviceMix.
Luego ingrese al directorio /etc.
Liste los archivos
SNAP USO INTERNO Página 34 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
Edite el archivo users.properties
A continuación se muestra el contenido del archivo
SNAP USO INTERNO Página 35 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
Dejar descomentada la línea smx=smx,admin que indica que existe un usuario de nombre smx, con clave smx y rol admin.
CONSOLA WEB APACHE SERVICEMIX
En esta sección 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
SNAP USO INTERNO Página 36 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
EJEMPLO SERVICIO ROUTE
Para ejecutar este sencillo siga los siguientes pasos
En una ubicación conocida cree el directorio /samples Dentro de /samples cree los directorios /input y /oput Dentro del directorio /input cree el archivo ejemploServiceMix.txt
Ubíquse 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"?>
<beans xmlns="http://www.springframework.org/schema/beans"
SNAP USO INTERNO Página 37 de
38
LATINUS - Guía de Instalación y Configuración de JBOSSFUSE-ESB–Sistema SINARDAP
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.
SNAP USO INTERNO Página 38 de
38