Logo Studenta

S1_4_Empresa

¡Estudia con miles de materiales!

Vista previa del material en texto

Generación automática de esqueletos de mecanismos 
de integración del ESB, basada en herramientas 
semánticas 
 Juan José Herrera Martín1 y Joatham Pérez Expósito1 
 
1 Novasoft Soluciones Canarias S.A., 
Santa Cruz de Tenerife, España 
{jhmartin, jpexposito}@novasoft.es 
http://www.novasoft.es 
 
 
Resumen 
El ESB [1] (Enterprise Service Bus) es un elemento clave 
en el diseño de plataformas de Interoperabilidad basadas en 
SOA [2] (Service Oriented Architecture), para la 
implementación de mecanismos de integración y 
orquestación de servicios. En este artículo se presenta una 
aproximación para la generación de esqueletos de estos 
mecanismos a través de herramientas semánticas, en base a 
las experiencias obtenidas en el proyecto PLATINO [3] 
(Plataforma de Interoperabilidad del Gobierno de Canarias). 
1. Introducción 
El Bus de Servicios Empresarial, más conocido por sus 
siglas en inglés ESB (Enterprise Service Bus), es una 
plataforma de software que actúa como capa de integración 
intermedia (middleware) entre distintos sistemas o 
aplicaciones, por medio de servicios de comunicación y 
transformación de mensajes basada en estándares. La 
construcción de estos servicios, se realiza combinando los 
distintos componentes que ofrece el ESB que implementan 
funcionalidades de tratamiento de mensajes, tales como 
enrutamiento, transformación, orquestación, etc. 
Gracias a sus características para soportar múltiples 
paradigmas de integración así como para centralizar el 
control y distribuir el procesamiento, el ESB se ha 
convertido en un elemento clave en el diseño de 
plataformas de interoperabilidad basadas en SOA (Service 
Oriented Architecture). Un ejemplo de ello, lo podemos 
observar en el proyecto PLATINO (Plataforma de 
Interoperabilidad del Gobierno de Canarias) , el cual ofrece 
a los distintos sistemas backoffice y frontoffice (sede 
electrónicas, portales, etc) del Gobierno de Canarias, un 
conjunto de servicios corporativos haciendo uso de estas 
prácticas. 
Actualmente la plataforma PLATINO ofrece un conjunto 
de 20 servicios corporativos, los cuales presentan gran 
heterogeneidad en el diseño de sus mecanismos de 
integración en el ESB. En este trabajo se presenta una 
aproximación para la generación automática de esqueletos 
de los mecanismos de integración en el ESB, en base a las 
características de servicio y haciendo uso de herramientas 
semánticas, surgida desde el proyecto PLATINO con la 
intención de facilitar la incorporación y mantenimiento de 
nuevos servicios a la plataforma y normalizar su diseño en 
base a unos patrones definidos. 
 
 
Fig. 1. Arquitectura general de PLATINO 
2. Descripción general del sistema 
 
En la siguiente figura se presenta un esquema general de la 
aproximación propuesta. 
 
 
 
Fig. 2. Esquema general del sistema 
 
Inicialmente se parte de la definición del servicio que se va 
a incorporar a la plataforma, la cual se envía al módulo 
semántico. 
El módulo semántico es el encargado de validar y 
almacenar la definición del servicio. Posteriormente, 
infiere el tipo de mecanismo de integración de ESB a 
implementar para el servicio. Y finalmente recopila la 
información necesaria para la generación de su esqueleto. 
Por último el módulo de generación de esqueletos 
desarrolla el esqueleto del mecanismo de integración de 
ESB, a partir de la información obtenida del módulo 
semántico. 
En los siguientes apartados se describe con mayor detalle 
cada una de estas fases. 
3. Definición del servicio 
La definición del nuevo servicio de la plataforma se realiza 
por medio de un documento RDF (Resource Description 
Framework) [4], en el cual se incluye información del 
servicio sobre: 
 Descripción general del servicio. 
 Protocolo de comunicación del servicio. 
 Definición de los métodos del servicio. 
o Descripción del método. 
o Parámetros de entrada y salida del método. 
o Servicios invocados por el método. 
4. Módulo semántico 
El módulo semántico es el encargado de interpretar la 
definición del servicio e inferir el tipo de mecanismo de 
integración de ESB a utilizar. Para la realización de estas 
tareas, el módulo semántico incluye una ontología OWL [5] 
y conjunto de reglas que modelan el conocimiento asociado 
a los servicios y a los mecanismos de integración del ESB. 
 
Fig. 3. Esquema del módulo semántico 
Como se muestra en el esquema de la figura 3, en primer 
lugar el módulo semántico recibe la definición de servicio y 
por medio del componente de validación se comprueba el 
formato del documento RDF y se almacena en el 
repositorio. A continuación el componente de inferencia 
obtiene el tipo de mecanismo de integración de ESB a 
utilizar para la implementación del servicio, a partir de la 
ontología, las reglas y la definición del servicio. 
Finalmente el componente de consulta, se encarga de 
recopilar la información necesaria y construir la definición 
de esqueleto del tipo de mecanismo de integración inferido. 
Destacar que para la implementación del módulo semántico 
se utilizó la plataforma Jena. [6] 
5. Generación de esqueletos 
Este módulo es el encargado de desarrollar los esqueletos 
de los mecanismos de integración de ESB indicado por el 
módulo semántico para el nuevo servicio. Para la 
implementación de este módulo se ha utilizado a 
ServiceMix [7] como ESB de referencia, ya que es el 
utilizado en el proyecto PLATINO. 
Las tareas del módulo de generación de esqueletos se 
pueden dividir en las siguientes fases: 
 Validación del fichero XML de definición de 
esqueleto. 
 Generación de los arquetipos de los distintos 
componentes de ServiceMix (binding components y 
services engine) que conforman el mecanismo de 
integración. 
 Configuración de los componentes de ServiceMix. 
En esta fase se configurarían los distintos ficheros 
xbean.xml y el resto de ficheros de configuración de 
los componentes. 
 Generación de los esqueletos de las clases POJO y 
otras unidades de software que requieran los 
componentes de ServiceMix implicados en el 
mecanismo de integración. 
 Creación del ServiceAssembly que se desplegará en 
ServiceMix, que será el producto final del módulo. 
 Para la implementación de este módulo se ha utilizado Java 
y Maven. [8] 
6. Conclusiones y trabajos futuros 
A raíz de la experiencia obtenida en el proyecto PLATINO 
y en el desarrollo de esta aproximación podemos destacar 
los siguientes aspectos: 
 La normalización de los mecanismos de integración de 
ESB, favorece el mantenimiento de plataformas de 
interoperabilidad como el proyecto PLATINO. 
 El uso de herramientas semánticas para la definición 
de los servicios, ofrece un gran potencial para la 
gestión y consulta de su información asociada. 
Por otro lado, las futuras líneas de trabajos se centran en el 
estudio e incorporación a la aproximación de nuevos 
modelos de mecanismos de integración de ESB tomando 
como referencia el ServiceMix. 
7. Agradecimientos 
Destacar y agradecer su colaboración para la elaboración de 
este articulo a la Dirección General de Telecomunicaciones 
y Nuevas Tecnologías (DGTNT) del Gobierno de Canarias 
a la Oficina Técnica del proyecto PLATINO y a la empresa 
Novasoft. 
Referencias 
 [1] Chappell, David A: Enterprise Service Bus, Theory in 
Practice o’Reilly (2004) 
 [2] Thomas, Erl.: Service-Oriented Architecture: Concept, 
Technology, and Design. Prentice Hall (2005) 
 [3] PLATINO, http://www.gobiernodecanarias.org/platino 
 [4] Resource Description Framework (RDF): Concepts and 
Abstract Syntax. W3C Recommendation 10 Febrero 2004 
 [5] OWL Web Ontology Language Overview. W3C. 
Recommendation 10 Febrero 2004. 
 [6] Jena, http://jena.sourceforge.net/ 
 [7] ServiceMix, http://servicemix.apache.org/ 
 [8] Maven, http://maven.apache.org/

Continuar navegando