guia de instalación de jboss-fuse-esb

48
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

Upload: cristhian-herrera

Post on 08-Feb-2016

496 views

Category:

Documents


23 download

TRANSCRIPT

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