Descarga la aplicación para disfrutar aún más
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/
Compartir