revista galileo - Universidad de Cuenca

sumo de lo posible. Se busca conseguir lo anterior tratando de emplear varios compu- tadores personales que están disponibles, y de ser posible cualquier ...
328KB Größe 7 Downloads 105 vistas
Estudio y selección de una arquitectura orientada a servicios (SOA), para ser implementada en el Programa: Manejo del Agua y el Suelo (PROMAS) Ing. Jaime Veintimilla Docente de la Facultad

INTRODUCCIÓN El programa para el Manejo del Agua y el Suelo (PROMAS), fue creado en el año 1993 como centro de investigación de Ingeniería. A partir de su creación el PROMAS, se ha interesado en participar en varias áreas de la ingeniería, por lo cual ha ido concentrando fuerzas de trabajo interdisciplinarias, desde la Ingeniería Civil hasta el desarrollo de herramientas informáticas orientadas a optimizar la utilización de los recursos. Desde su creación hasta el presente, se han desarrollado diferentes sistemas informáticos dedicados a solucionar problemas puntuales relacionados con los proyectos que se ejecutan en el Programa. El gran inconveniente es que la mayor parte de éstos sistemas informáticos han sido concebidos cada uno de una manera independiente, es decir, la arquitectura que disponen actualmente no permite la comunicación directa entre cada uno, haciendo imposible la comunicación o interacción de los mismos y más aún con terceros.

La concepción de sistemas informáticos orientados a resolver problemas puntuales de un departamento u organización no se adapta a los modelos organizacionales actuales independientemente de si cumplen con los requerimientos iniciales, ya que la tendencia es desarrollar sistemas informáticos que se basen en arquitecturas compartidas y que puedan crecer sin ningún problema. Hay que tener presente que la gran mayoría de organizaciones cuentan actualmente con sistemas que han sido legados a lo largo del tiempo ya que modelos de diseño de aplicaciones anteriores se concentraban en el desarrollo de aplicaciones para solucionar ciertos problemas puntuales, y esto ha creado problemas cuando se presentan cambios en los procesos. Una solución a todos estos problemas existentes con los sistemas legados es el de construir un ambiente de cooperación mantener el uso de los mismos ya que el desarrollo de una nueva aplicación incluye

Sistemas informáticos que ha quedado anticuados pero continúan siendo utilizados por el usuario (típicamente una organización o empresa) y no se quiere o no se puede reemplazar o actualizar de forma sencilla. 37

muchos costos tanto de tiempo como de dinero (Santiago Comella-Dorda, 2008). Distintos métodos se han utilizado para resolver este problema, entre los cuales se pueden mencionar los siguientes: a. b. c.

Sustitución completa de los sistemas Reescritura automática de código Métodos de reingeniería de software

Existen muchos ejemplos de casos resueltos bajo estas perspectivas. Sin embargo, la mayoría de estos trabajos y estudios se centran en la necesidad de conseguir la interoperabilidad de cada uno de estos sistemas mediante la adecuación o sustitución de los sistemas para poder llegar a proveer esta capacidad; pero la forma de cómo llegar a obtener esta interoperabilidad y la metodología que se debe aplicar tanto para el desarrollo como para la gestión de los sistemas así construidos no han En lo referente a la interoperabilidad entre sistemas legados, se pueden distinguir tres aspectos: dos para darles la capacidad de intercambiar mensajes entre aplicaciones. (Interoperabilidad). servicios (mediante intercambio de mensajes) de acuerdo a las reglas del negocio. sarias para poder determinar cuáles serán los sistemas legados que deben ser adaptados. El objetivo principal es el estudio de las técnicas existentes para la integración de sistemas legados, técnicas de exposición de servicios y el desarrollo de una metodología que permita establecer una platafor-

38

ma basada en servicios, de forma que se pueda exportar todas las funcionalidades cación. Metodología La etapa inicial del proyecto tiene por objeto realizar un estudio sobre las diferentes técnicas de integración de sistemas informáticos legados. En segundo lugar se procederá a realizar un análisis y selección de la técnica más adecuada para la correcta migración de los sistemas informáticos legados hacia una plataforma orientada a servicios. El siguiente paso es tomar como entradas a cada uno de los sistemas legados que dispone el PROMAS, todos estos sistemas serán analizados en detalle para poder obtener cada una de las funcionalidades más do todas estas entradas, se procede a la agrupación de sistemas en grupos, esto en base a la utilización de alguna de las metodologías que actualmente existen dentro de la literatura. sistemas se procederá a la selección, creación y exposición de los servicios web, para esto se analizarán las principales técnicas existentes actualmente. Hay que tener presente que en este punto será posible establecer una arquitectura orientada a servicios que se considere la base para los sistemas informáticos que se desarrollen en un futuro.

metodología a emplearse en el desarrollo del presente proyecto.

riales (EIA por sus siglas en Ingles o Enterprise Application Integration). b. Integración en base a una arquitectura orientada a servicios (SOA por siglas en inglés o Services Oriented Architecture). riales (ERP por sus siglas en inglés o Enterprise Resource Planning).

que se utilizará para realizar la integración técnicas que se utilizarán para la correcta migración de los servicios de cada uno de los sistemas legados, para esto se han

a. b. c.

todo el proceso mencionado y el resultado de esto es la exposición de varios servicios web que permitan hacer mucha más rápida y sencilla la manera en la que se utilizan los sistemas en el PROMAS. cios: Son un conjunto de técnicas que permiten hacer que los sistemas informáticos legados puedan ser integrados en una sola plataforma orientada a servicios. Una vez que todos estos sistemas estén integrados es mucho más fácil el incorporar nuevos componentes o agregar nuevas funcionalidades. Las principales técnicas a tratar en este proyecto de tesis son: a.

Integración de sistemas empresa-

Empaquetamiento o wrapper Redesarrollo o reingeniería Migración

3. Entradas: Se consideran entradas a cada uno de los sistemas informáticos que se encuentran actualmente en funcionamas son los que se pretende llevarlos hacia una arquitectura orientada a servicios. Se realizará un análisis en detalle de las funcionalidades que posee cada uno de los minar aquellos que puedan ser migrados a una arquitectura basada en servicios. sistemas: En base a los sistemas informáplearán metodologías para poder llegar a que dispongan características comunes. previa la agrupación de sistemas en famiuna de las características que deberá tener cada una de estas familias de sistemas, 39

con esto, se procederá a la selección y creación de los servicios web que ofrecerán estas funcionalidades pero de una manera diferente. el presente proyecto, se ha procedido a la implementación de un caso de uso para la migración de algunos sistemas legados hacia una nueva arquitectura orientada a servicios. Conclusiones Se han analizado los principales mecanismos de integración de sistemas legados, de entre los cuales se mencionó: presariales (EIA) (SOA) La utilización de la integración EIA, se ve como no factible dado, que el PROMAS no dispone de una arquitectura robusta y madura que soporte la utilización de un bus empresarial que permita el intercambio de información entre las diferentes aplicaciones. La utilización de ERPs, tampoco se ve factible, ya que el manejo de este tipo de sistemas requiere una gran inversión, por una parte es necesario invertir en licencias de un sistema informático completamente nuevo y por otra el costo y sobre todo el riesgo que implica dejar de lado la utilización de los sistemas actuales que están en funcionamiento. Adicionalmente a esto, se requiere la inversión económica en el entrenamiento de personal que vaya a estar a cargo de la nueva aplicación. Sobre la utilización de una arquitectura

40

la solución más factible de aplicar en una organización como el PROMAS, ya que no incurre en gastos muy elevados, se podrán seguir utilizando las aplicaciones existentes y se permitirá el establecimiento de una base robusta para el desarrollo de futuros sistemas informáticos. Esta metodología toma como base los sislos servicios que pueden ser expuestos y se los migra hacia una arquitectura orientada a servicios (SOA) mediante las diferentes técnicas analizadas, que para el caso del PROMAS se reducen a: migración y empaquetado. De la agrupación de sistemas informáticos, vicios: formación del catálogo de metadatos.

únicamente puede realizar la visualización de la información. encuentra en el servidor. cambio de información relacionada con las La utilización de una técnica hibrida de modernización permite reducir las desventajas de las técnicas estudiadas y al mismo tiempo aprovechar sus fortalezas. Se ha optado por esta solución puesto que de manera independiente, no existe una técnica que pueda solucionar completamente el problema de la integración de sistemas legados. Se ha podido establecer una estrategia metodológica para la correcta exposición

de servicios de los sistemas legados que posee el PROMAS. Adicionalmente y en base a esta agrupación la metodología permite exponer cada uno de los servicios de los sistemas legados. Esta metodología está basada en la utilización de: i) estrategias de integración de sistemas, ii) técnicas de migración de sistemas legados hacia una arquitectura basada en servicios. Además, sus principales

fortalezas son: 1. Se pueden crear sistemas informáticos que se pueden exponer en una plataforma orientada a servicios. 2. Se puede ejecutar cada uno de los pasos en un orden secuencial. 3. Se puede aplicar a cualquier tipo de sistema.

“EL INGENIERO: FE, ESPERANZA Y CARIDAD”

“ Es importante que los demás hombres sepan que los ingenieros no construyen solamente con concreto y acero, o con fórmulas y diagramas, sino más bien con fe, esperanza y caridad: fe en sus métodos, en su entrenamiento, en los nombres con quienes trabajan, fe en la humanidad y en el hecho de que la vida vale la pena vivirse; esperanza de poder encontrar el personal, el dinero, los materiales y los métodos para sus realizaciones, no deseos ciegos sino esperanzas juiciosas; caridad que involucra una comprensión bondadosa del elemento humano y disposición para trabajar las debilidades humanas y para tolerarlas”.

41

Una primera aproximación a la implementación de un clúster para la ejecución de un modelo de predicción climática Ronald Marcelo Gualán, Angel Oswaldo Vázquez, Oswaldo Francisco Vega Universidad de Cuenca

Ing. Ronald Gualán Coordinador

Resumen

Introducción

Se explora de forma global una de las tecnologías más trascendentes en el campo de la computación a gran escala, los clústeres de computadores. Se parte de una des-

Un clúster puede ser visto como un conjunto de computadores que se comportan

dando especial énfasis al tipo Beowulf, que es el de mayor impacto y utilización en el campo de la investigación. Se muestra la necesidad de potencia de cálculo en varias áreas de la ciencia, modelamiento numériaspectos básicos y necesarios para la implementación de un clúster, tales como la arquitectura de red, el diseño de software y algunas herramientas de administración. ción que se está realizando en el Grupo de de predicción de clima, WRF. Palabras clave: Clúster1, alto rendimiento, Grid, beowulf, computación paralela, MPI.

1 El término clúster viene del inglés cluster, cuya traducción al español es conglomerado o conjunto. Se utilizará en el resto del artículo para hacer referencia a ese conjunto o agrupamiento de computadores, ya que el término ha sido acogido, como es común en informática, en el idioma español.

42

tal virtud, existe una serie de retos que se debe afrontar para conseguir tal comportamiento, siendo los más complicados aquellos relacionados con la diversidad de equipos de hardware, puesto que el objetivo es la utilización de cualquier equipo de cómputo como recurso o nodo. Esta es la idea fundamental de un clúster y una de las razones por la que este tipo de sistema, es una de las opciones más económicas, especialmente en contraste con equipos individuales de la misma gama: servidores, workstation, mainframes, supercomputadores. En varias ramas de la ciencia, como modelamiento 2 climatológico por ejemplo, se necesita una capacidad de cálculo numérico intensivo. La solución que presenta un clúster es el empleo de dos o muchas máquinas pequeñas (aunque no necesa-

2 El campo de estudio relacionado a la construcción de modelos [1].

riamente) o nodos para que, interconectaLocal por ejemplo), puedan servir como un solo sistema que sea capaz de manejar gran cantidad de operaciones con un bajo costo [2], [3], mediante un orquestador de tales nodos llamado Cluster Middleware [4]. Esta tendencia actual para suplir la capacidad computacional requerida constituye la construcción de sistemas más baratos y de propósito general (o al menos un grupo considerable de aplicaciones) en base a componentes fácilmente accesibles localmente (commodities), como son los PCs, de procesador único o múltiple. Además, se pretende que el sistema sea fácilmente expandido, incrementando el número de nodos o la capacidad de los nodos indiviprocesadores, o mejorando la calidad de la red de interconexión. ten básicamente 3 tipos [5]: formance Clusters) Availability Clusters) De estos tres tipos, el clúster a implementar pertenece a los de alto rendimiento. Los clústeres de alto rendimiento, son aquellos en los que se ejecutan tareas que requieren de gran capacidad computacional, grandes cantidades de memoria, o ambos a la vez. El llevar a cabo estas tareas puede comprometer los recursos del clúster por largos periodos de tiempo.

de un clúster Beowulf, que se ha vuelto muy popular por su relación precio-desactualización, y escalabilidad para proveer un sistema muy robusto [6]. Consiste en la utilización de computadores comúnmente personales, no diseñados precisamente sistema paralelo de altas prestaciones, para construir un sistema de cómputo paralelo conectado por una red estándar y que utiliza por lo general software libre u open source . El rápido avance de los microprocesadores, las redes de alta velocidad, y otras tecnologías de componentes han facilitado muchas implementaciones exitosas de este tipo de agrupación [8]. presenta, tenemos los siguientes [9]: Rentable: se construyen a partir de componentes de productos relativamente baratos, que están ampliamente disponibles. Al día con las tecnologías: puesto que se utilizan componentes del mercado de masas, es fácil de emplear las últimas tecnologías tanto es software como hardware. supuesto de manera óptima para cumplir con los requisitos de rendimiento de las aplicaciones. Escalabilidad: cuando aumenta el requerimiento de potencia de procesamiento, el rendimiento y el tamaño puede ser fácilmente ampliado añadiendo más nodos de computación. Alta disponibilidad: cada nodo de cálculo es una máquina individual. El fallo de un nodo de cálculo no afecta a otros

Uno de los enfoques más utilizados es el 3 En uno de sus ensayos [7], Richard Stallman explica exactamente cuáles son las grandes diferencia entre estos dos conceptos.

43

nodos o la disponibilidad de todo el clúster. Compatibilidad y portabilidad: gracias a la estandarización y la amplia disponibilidad de la interfaces de paso de mensajes, como MPI3 y PVM4 , la mayoría de las aplicaciones paralelas utilizan estos middlewares estándar. Como un ejemplo práctico, una aplicación paralela con MPI puede ser fáPila de Software para sistemas de computación de alto rendimiento un sistema de computación de alto rendimiento, se tienen principalmente tres componentes esenciales que permiten eliminar la complejidad de administración, mientras se provee el software necesario para la ejecución de las aplicaciones, generalmente complejas. Se tienen como base de esta pila, el sistema operativo (S.O.), cuya elección depende de la aplicación a correr6 , generalmente 7 ; el sistema de administración del clúster, cuyo objetivo es la interacción con el usuario y el manejo de computadores físicos independientes y conexiones de red de alta velocidad, permitiendo que los computadores funcionen como un sólo sistema de computación integrado; y las herramientas de programación que consisten de compiladores, librerías y software especial para el desarrollo y prueba de las aplicaciones [10]. Administración del Clúster La administración correcta de los recursos hardware y software es uno de los aspectos

6 Se ha tenido una primera aproximación a la instalación de era opción a escoger. 7 http://www.gnu.org/gnu/linux-and-gnu.es.html

44

esenciales a la hora de poner en producción un ambiente de computación paralela. Dos elementos cruciales son la calendarización (scheduling) de trabajos (Jobs) y el monitoreo [11], [12]. En cuanto a la calendarización, el estándar MPI [13], por citar el ejemplo más usual, trabaja en el manejo de procesos en varios nodos, sin embargo, se ve limitado a solamente un programa. Se utilizan sistemas de calendarización de procesos como OpenPBS8 , Condor9 , Lava10 11 . nibilidad y operación de los componentes hardware y software, el monitoreo se realiza con algunos sistemas como Cluemon12 , Nagios13 , PARMON14 , Supermon[14] y Ganglia15 . Desarrollo de Software Una vez implementado un sistema de computación paralela, se debe tener claro cómo sacar provecho de ello, cómo escribir programas y qué librerías se necesitan. Para esto se tienen diferentes estándares cuyo objetivo es el diseño e implementación de software que pueda ser ejecutado sobre una plataforma de computación paralela [15]. Entre algunos estándares desarrollados se mencionan PVM y MPI. PVM (Máquina Virtual Paralela) es una interfaz de paso de mensajes portable que puede ser usado en programas escritos en C, C++ o Fortran y permite que un conjunto de máquinas heterogéneas funcionen como un clúster. MPI es otro estándar que está siendo usado ampliamente para la programación de

código cuya ejecución se hace paralelo. Existen algunas implementaciones como ser utilizadas desde lenguajes de programación como C, C++ o Fortran Metodología La metodología empleada para la implementación de un clúster Beowulf para la ejecución del modelo de predicción de clima, WRF , se resume a continuación: Análisis de requisitos: entre otras cosas, arroja la necesidad de una herramienta computacional con alta capacidad de procesamiento. Ésto para conseguir que el el tiempo de ejecución del modelo de predicción climática WRF16 disminuya en lo sumo de lo posible. Se busca conseguir lo anterior tratando de emplear varios computadores personales que están disponibles, y de ser posible cualquier computador de la red, que pueda ser utilizado cuando su usuario no lo esté empleando. Alternativa seleccionada: un sistema tipo clúster de alto rendimiento, Beowulf. Implementación: uno de los aspecto más importantes para ésto es la selección, entre una gran variedad, de los componentes de software que se van a emplear. Una opción es usar paquetes o suits que integran todo o gran parte del software requerido en una solución. Para este caso, se selecciona una suit de administración de software para clústeres de alto rendimiento llamada Warewulf [9]. Warewulf es un sistema libre que ofrece escalabilidad,

instalación y monitoreo que integra varias soluciones libres. Diseño e implementación de la red: los componentes del diseño son: un nodo maestro, que será el front-end del sistema, y será básicamente un PC completo; nodos de cómputo, que constituyen la fuertodos los CPUs (no PCs completos) de los que se dispone; y una red local de alta velocidad que permitirá ínter conectar el nodo maestro y los nodos de cómputo. Instalación de las soluciones de sociones e instalaciones se llevan a cabo en el nodo máster una sola vez. Instalación del modelo de predicción climática WRF junto con las librerías paralelas, en donde se destaca MPI. Pruebas: esto se realiza una vez gurado el sistema, y las aplicaciones a ser empleadas. Para esto se utiliza herramientas de benchmarking que permiten evaluar la capacidad del sistema. Ejecución de WRF y se evaluación del desempeño del clúster, contrastándolo con una ejecución en serie. Topología El nodo maestro utiliza dos tarjetas de red GigaEthernet, la primera para conectarse a Internet, satisfaciendo la necesidad de descargar paquetes u otras herramientas; la segunda para conectarse a nuestra LAN que enlaza los nodos de cómputo.

45

software: dadas las características de la

Arquitectura La Fig. 2 indica la Arquitectura del clúster: La Capa de aplicación contiene aplicaciones secuenciales y aplicaciones paralelas (desarrolladas para ejecutarse en el clúster). La capa del middleware contiene lo necesario para ejecutar una aplicación; Librerías GNU y MPI, que permitirán enlazar el entorno de programación paralela de la capa superior con compiladores paralelos MPI, PVM, GNU, JAVA, etc; software y herramientas de administración, que facilitan la gestión de archivos, calendario, ba-

46

lanceo de nodos, etc; imagen del sistema operativo, que ofrece a los usuarios el acEl nodo maestro es el encargado de compartirlo a través de la red a cada uno de los nodos de computo. Dentro de cada nodo enlazado a la red, se tiene una interfaz de red (GigaEthernet) y el software necesario para iniciar, nodo Maestro. La comunicación entre nodos, se realiza a través de una red de alta velocidad GigaEthernet con ayuda de un Switch.

Fig. 2: Arquitectura del clúster

Conclusiones Gracias a la robustez, capacidad de cálculo intensivo y bajo costo de implementación (motivado por la evolución del software y su libre accesibilidad), los clústeres se han convertido en una solución ampliamente utilizada por una basta cantidad de aplicaPor otro lado, la alta difusión de este tipo de sistemas ha sido impulsado por el amplio desarrollo de aplicaciones paralelas, que las estandarización de tecnologías y crecimiento en el desarrollo de software libre. camiento hacia la implementación de un sistema de computación en paralelo, se ha dado para poder aprovechar la capacidad que equipos, quizá no tan potentes, en conjunto (clúster), puedan brindar; además de la experiencia que esto proporciona para que, en el caso de tener a la mano recursos computacionales de mayor capacidad,

se pueda implementar un sistema de mayor gama. Esta primera implementación del clúster quieren alta capacidad computacional, optimizando la utilización de los recursos de hardware disponibles, para contar con una herramienta potente y capaz de solventar, en lo sumo de lo posible, esas necesidades. Según las primeras pruebas realizadas hasta el momento, el rendimiento presentado por el clúster de prueba para la ejecución de algoritmos programados para su ejecución en paralelo, es casi proporcional al número de núcleos de los nodos de cómputo que se han empleado. Resulta además sencillo incorporar nuevos nodos de cómputo al clúster, ya que basta con conectarlos a la red y habilitar su arranque en red. Agradecimientos Este estudio está siendo posible gracias al desarrollo de los proyectos. 47

PIC-11-715 dentro del Grupo de Ciencias de Investigación (DIUC) de la Universidad de Cuenca. Los autores agradecen al apoyo logístico que se está brindando para la conclusión del proyecto. Bibliografía [1]

G. Em Karniadakis and R. M. Kirby Ii, Parage University Press, 2003. Clúster Beowulf, la supercomputadora de los pobres,” ALT1040. 09-Nov-2011. [3] “COMPUTACION CON CLUSTERS DE COMPUTADORES PERSONALES,” 15-Oct-2012. ters/. [Accessed: 15-Oct-2012]. [4] clusterbuilder.org, “Cluster Middleware,” ble: http://www.clusterbuilder.org/software/clustermiddleware.php. [Accessed: 14-Oct-2012]. [5] S. Taherian, “Open Source Real-Time OS (RTEMS) on SCI based Compute Clusters,” University of Dublin, Dublin, 2003. [6] T. Sterling, Beowulf Cluster Computing with Linux. MIT Press, 2001. [7] R. M. Stallman, “Why Open Source Misses the Point of Free Software,” in Free Software, Free Society: Selected Essays of Richard M. Stallman, 2nd ed., vol. 1, 1 vols., Boston, MA 02110-1335: Free Software Foundation, 2010, pp. 83–89.

mance Computing with Beowulf Clusters, 02-Oct2012. [Online]. Available: http://www.dell.com/ content/topics/global.aspx/power/en/ps2q00_ beowulf?c=us&l=en&cs=555. [Accessed: 02-Oct2012]. [9] Warewulf Project, “Warewulf web page,” Warewulf, 27-Sep-2012. [Online]. Available: http:// warewulf.lbl.gov/trac. [Accessed: 27-Sep-2012]. ter Management | Appro,” APPRO Supercomputer Solutions. [Online]. Available: http://www.appro. com/products/software/hpc_software_stack/. [Accessed: 14-Oct-2012]. [11] Escuela Politécnica Nacional, “Clusters :: Administración del Cluster.” [Online]. Available: http://clusterfie.epn.edu.ec/clusters/Definiciones/ Part 2: Build a working cluster,” IBM, 27-Oct-2005. [Online]. Available: http://www.ibm.com/developerworks/linux/library/l-cluster2/. [Accessed: 15Oct-2012]. [13] B. Barney, “Message Passing Interface (MPI).” Lawrence Livermore National Laboratory. [14] M. J. Sottile and R. G. Minnich, “Supermon: of IEEE Intl. Conference on Cluster Computing, pp. 39–46, 2002. [15] J. Greenseid, “Linux Clustering Software,” free code, 01-Jun-2002. [Online]. Available: http:// freecode.com/articles/linux-clustering-software. [Accessed: 15-Oct-2012].

“Nuestra recompensa se encuentra en el esfuerzo y no en el resultado. Un esfuerzo total es una victoria completa”. Gandhi

48