Aplicación Grid Computing en Bases de Datos Relaelacionales para proveer alta disponibilidad
María Gisela López Castillo
mariagisela@hotmail.com
Rhonalf Habib Martínez Villa
rhonaldomaster@gmail.com
Ana Karina Rodríguez
anakrc@gmail.com
Abstract: Grid Computing has been growing up as an important new technology. It uses distributed databases with innovative applications and high availability for users.
In this article are related all the considerations that a company needs like enterprise integration, applications servers, distributed databases and peer to peer computing with the objective of managing a great amount of data in few time, and that is why the Grid Computing concept is focused to manage the distribution resources, tools and services integration.
Grid Computing can run in a large or small numbers of computers, in which the middleware1 controls the machines and creates a logical entity of the system. It can add or remove resources and data without take care of the quantity or the size and manage the information in small or large computer networks.
Resumen: Grid Computing ha estado creciendo en los últimos tiempos como una tecnología importante. Esta tecnología utiliza bases de datos distribuidas y computación punto a punto con aplicaciones innovadoras y alta disponibilidad para los usuarios.
En este artículo se tienen en cuenta todas las consideraciones que necesita una compañía cualquiera como lo son la integración empresarial, servidores de aplicación, bases de datos distribuidas y computación punto a punto con el objetivo de manejar una gran cantidad de datos en poco tiempo, por lo cual el concepto de Grid Computing se enfoca en el manejo de recursos distribuidos, herramientas e integración de servicios.
Grid Computing puede ser ejecutado en pocos o muchos computadores, en los cuales el middleware2 controla los equipos y crea una entidad lógica del sistema. Grid puede añadir o eliminar recursos y datos sin importar la cantidad o el tamaño y manejar la información en pequeñas o grandes redes de computadores.
Keywords: Grid Computing, Middleware,
Distribution, Integration. High Availability
Palabras claves: Grid Computing, Distribución, Integración, Alta Disponibilidad.
1. INTRODUCCIÓN
Desde su concepción inicial, las bases de datos han sido parte fundamental del desarrollo de la tecnología, permitiendo administrar grandes cantidades de datos de forma eficiente. Con el tiempo surgieron las bases de datos distribuidas, quienes añadieron mejoras a las ya existentes bases de datos centralizadas, evitando así errores y riesgos que tenían sus predecesoras.
Actualmente el mundo de la informática cuenta con una nueva tecnología, que entre todos sus beneficios permite mejorar la estructura y funcionalidad de las bases de datos distribuidas, llamada Grid Computing ó Computación en Malla. A través del estudio y la implementación de Grid se busca llegar a una optimización de los sistemas de bases distribuidas al proveer alta disponibilidad mediante el uso este nuevo descubrimiento al mando del Middleware como cabeza del sistema, quien envía la información a la Grid, espera y finalmente envía la respuesta.
2. BASES DE DATOS DISTRIBUIDAS
Las bases de datos distribuidas son un conjunto de n bases de datos que se encuentran en n nodos en una red. Sus principales métricas son superar las distintas dificultades tecnológicas como el acceso a los nodos, la integración de los datos y su distribución en los nodos con que cuenta el sistema de forma óptima.
La necesidad de crecimiento de las empresas geográficamente y a la vez en volúmenes de datos lleva a la idea de poder integrar y compartir todo bajo el uso de una sola herramienta en un ambiente distribuido, autónomo y heterogéneo, en donde los datos están repartidos y cuando se requiera de ellos se busca bajo la implementación de métodos totalmente transparentes para satisfacer una petición accediendo desde cualquier sitio como si los datos estuviesen en el mismo lugar en donde es generada la consulta.
La descripción de las bases de datos es como la idea de un objetivo virtual en donde cada componente real y físico de la red almacena datos desde cualquier lugar para luego ser consultados.
Las ventajas con la distribución de los datos radican en los tiempos en que se hacen las consultar ya que los resultados son obtenidos de una manera más rápida, ágil y confiable. Por eso, hoy día las empresas requieren este tipo de sistemas ya que les resulta ser más flexible y confiable por eso es que estas bases de datos están más enfocadas a un tipo organizacional permitiendo un futuro crecimiento
Las compañías internacionales se ha visto interesadas en la manera en que se están desarrollando las bases de datos en la actualidad ya que les genera menos costos de hardware y mejor organización de la información aunque cabe anotar que periódicamente las bases de datos deben sincronizarse unas con otras para asegurarse que todas sus datos estén almacenados y organizados uniformemente.
2.1 VENTAJAS
Las ventajas que tiene una base de datos que se encuentra distribuida contra otro tipo de base de datos, radican principalmente los siguientes puntos.
Todos los usuarios de un nodo, podrán acceder a los datos que están almacenados en otro punto fácilmente y aunque hay un control sobre la administración de la información cada punto es autónomo local de sus datos.
La disponibilidad hace parte de la distribución y es característica fundamental en ello, ya que un sistema puede caer en fallo por cualquier motivo, pero los demás nodos siguen trabajando de la misma manera; si en el sistema ocurre un fallo, la base de datos distribuida tiene la capacidad de recuperarse pero durante ese tiempo la operación que esta siendo ejecutada conseguirá el datos que necesite para culminar y lo puede obtener de otro nodo que este disponible y tiene la información.
Compartición de recursos es otra ventaja importante y esto brinda rápidos tiempos de respuesta ya que los diferentes puntos de utilización que tiene comunicación operan simultáneamente y hace posible la entrega óptima y rápida de datos.
2.2 DESVENTAJAS
Pero también existen algunas desventajas que son importantes tener en cuenta para tomar una buena decisión.
Uno de de esas desventajas es el aumento de la sobrecarga en las actualizaciones, debido que las tablas que son replicadas deben ser consistentes, los cambios serán actualizados tanto en las tablas originales, como en las replicadas.
Una de las principales desventajas es con el sistema operativo, ya que no existe uno que esté destinado al soporte de este tipo de sistemas. Además, es preferible contar con el mismo sistema operativo en todos los equipos para garantizar la comunicación entre ellos. Normalmente, se utiliza alguna de las distribuciones de GNU/Linux como Red Hat Enterprise Linux. Oracle recomienda el uso de GNU/Linux, sea Red Hat o United Linux, por sus ya conocidas ventajas en cuanto a estabilidad, precio y soporte.3
En comparación con las bases de datos centralizadas, las distribuidas pueden llegar a ser no tan confiables ya que dependen de la confiabilidad de las computadoras que hacen parte de la distribución, de la red, del sistema manejador de base de datos y de la tasa de error de carga de trabajo.
3. GRID COMPUTING
“Grid Computing es una tecnología que permite utilizar de forma coordinada todo tipo de recursos (entre ellos cómputo, almacenamiento y aplicaciones específicas) que no están sujetos a un control centralizado”, dice el ingeniero Ricardo Jiménez Piris, investigador y docente de la facultad de Informática de la Universidad Politécnica de Madrid y añade “Es una nueva forma de computación distribuida, en la cual los recursos pueden ser heterogéneos y se encuentran conectados mediante redes de área extensa como es el Internet”.
La filosofía que se maneja para impletar este método avanzado de computación esta en la interconexión de todos y cada uno de los recursos que componen un sistema de computo frente a todo un sin numero de datos de información que requiere una cantidad considerable de memoria para su calculo y que generalmente cuesta mucho, tanto en costo como en tiempo mediante el uso de minería de datos, técnicas de análisis y simulaciones y mejorar en todo sentido la toma de decisiones.
Grid trabaja bajo el mando del Middleware, que no es más que un software que se encarga específicamente de la parte comunicativa de forma transparente entre los diferentes nodos que conforman la malla y que trabajan repartidamente para satisfacer una petición y para ello el solo se encarga de buscar los datos que necesita, las herramientas para ejecutar la petición y la potencia de cálculo necesaria para terminar el proceso óptimamente en tiempo según la disponibilidad de cada computador. El Middleware está formado por los metadatos que contienen toda la información de direcciones de almacenamiento de los datos y el formato respectivo en el que se encuentran.
Cuando se habla de compartir recursos, se hace referencia no solo al intercambio de datos sino también al acceso directo a software, datos remotos y el control total de los demás dispositivos que hacen parte del sistema y que son el complemento a toda la tarea que tiene Grid por tanto esto implica el control de acceso seguro y el manejo de los diversos dominios de administración.
Con el compartimiento de recursos se generan el verdadero significado de Grid, ya que la malla debe ser capaz de repartir el trabajo eficientemente usando mecanismos de forma autónoma y que eliminen las colas de espera, es por ello que se reduce el tiempo de respuesta e incrementa la disponibilidad.
Empresas importantes del mercado informático han estado desarrollando proyectos durante los últimos años donde implementen esta nueva tecnología y con el transcurrir del tiempo está será la mejor estrategia usada por las empresas para la organización de su información.
3.1 PROYECTOS BASADOS EN GRID4
Cada día, los proyectos que empiezan a gestionarse son mas ambiciosos que hace algunos años atrás y los objetivos que los abordan son complejos que requieren de una gran tecnología pero que proporcionan grandes ganancias.
Algunos proyectos destacados que han implementado esta tecnología se encuentran los siguientes:
* Orbit@home tiene como misión principal todo el estudio del sistema solar, como el predecir asteroides y requiere de la instalación de un software llamado Boinc para participar.
* Genoma@home es un proyecto que busca determinar la secuencia completa y exacta de ADN que tiene el ser humano y se ha implementado bajo un sistema que simula el funcionamiento de los genes y con esto se busca mejorar los tratamientos médicos y encontrar la cura a miles de enfermedades que están acabando la vida humana.
* Malaria Control pretende con el estudio profundo de esta enfermedad y los microorganismos que la producen, evitar contagio y concluir con la padecimiento humano.
* GIMPS es el proyecto matemático basado en el estudio de los números primos usados para encriptar y entre mayor sea el número, mas seguro será el método.
* Seti@home es el proyecto con el cual arranco la idea de implementar Grid. Ellos estaban en busca de inteligencia extraterrestre mediante observaciones por radiotelescopio.
4. ESTADO DEL ARTE
Con el auge de esta nueva tecnología, han surgido numerosas empresas empezado a trabajan con la computación Grid y ofrecen paquetes empresariales completos tanto para la parte de aplicaciones como para la parte de bases de datos y proveer a las compañías de tecnología de ultima generación y que les facilita las diversas operaciones que manejan al interior de sus organizaciones; entre ellas se destacan las siguientes compañías
* Oracle, quizás la empresa proveedora de soluciones de bases de datos más famosa del mercado, que empezó a incursionar en el área de Grid con sus productos Oracle Database y Oracle Application Server 10g5 entre muchos otros para soportar la gran cantidad de trabajo que se generan en las grandes empresas y brindándoles una mejor solución para la optimización de sus procesos informáticos. Estos productos proporcionan funcionalidades para manejar bases de datos distribuidas utilizando Grid Computing dependiendo de la necesidad que tenga cada entidad para desarrollar una tarea, investigación, proyecto o simplemente para mejorar su sistema informático y brindar mas seguridad, eficiencia y rapidez a sus clientes.
* IBM, de las empresas más reconocidas a nivel mundial, ofrece soluciones completas para sus clientes con Grid Computing. También apoya a sus partners tecnológicos proveyéndolos con una solución completa, además de capacitación y entrenamiento.
La solución de integración de datos combina los elementos de hardware y software de IBM y el elemento de integración de datos comienza con WebSphere y ProfilesStage donde se integran los datos por medio de varios tipos de volumen de datos y automatiza el hallazgo de los mismos.
5. INTEGRACIÓN TECNOLOGICA CON BASE DE DATOS DISTRIBUIDAS PARA
SUMINISTRAR ALTA DISPONIBILIDAD
La propuesta para lograr la integración de los datos en una base de datos distribuida y ganar alta disponibilidad se basa en un caso real, que se presenta muy constantemente en los almacenes de cadena y que se ilustrará de tal forma que puedan explicarse todos los conceptos antes mencionados pero desarrollados de tal forma que al final de plantear la propuesta de solución Grid, el sistema quede completamente integrado, distribuido y disponible.
Se ha notado que cuando un cliente se dirige a un almacén que tiene un manejo gran en volumen de datos y realiza un reclamo por la compra de un producto, ya sea por devolución o solicitud garantía de un articulo, y esta petición se hace en un tiempo superior al de número de meses guardados en el historial de la base de datos, resulta ser todo un problema, por lo que es necesario esperar algunos días para que la información sobre la transacción sea subida al sistema y enviada a la tienda para proceder a hacer la devolución respectiva o dar respuesta a la petición del cliente.
Primero que todo, según el análisis del caso se llegó a la conclusión que la base de datos que estaban utilizando es centralizada, de ahí que dure tanto tiempo resolver un caso como este, ya que la capacidad de la base de datos es limitada y se van guardando copias de seguridad para almacenar la información entonces cuando se solicita un dato es necesario hacer el backup y la recuperación de la transacción y eso tarda algunos días.
La arquitectura que soporta esta base de datos es como se muestra en la siguiente gráfica
Figura 1. Base de Datos Centralizada
Como se observa en la gráfica, todos los servidores de aplicación están conectados a un servidor principal que está ubicado en la ciudad de Bogotá y desde allá se maneja toda la información de la compañía.
Para empezar a solucionar está problemática de reclamos, bastante incomoda para la empresa y el cliente, se propone una distribución de la información de manera que se cuente con 4 nodos principales teniendo en cuenta las diferentes sucursales que se tienen de la compañía en el país. En cada punto distribuido geográficamente por regiones se tendrá la información referente a los clientes, los productos y la más importante, las transacciones.
Todos los puntos contarán con la información que haga referencia a su cuidad y a las sucursales cercanas a ella de manera que la distribución quede hecha de tal forma que exista un equilibrio en el volumen de datos debido a que para garantizar la disponibilidad del sistema se sugiere emplear el método de replicación y no se sobrecarga ninguno de los nodos. La siguiente grafica muestra el sistema de base de datos distribuido que se propone para solución al caso de los reclamos.
Se solucionó el problema de los reclamos al distribuir la información y se ganó disponibilidad para el sistema pero aún la tenemos un problema que resolver y va enfocado a la parte de las aplicaciones que se manejan ya que cada cierto tiempo la compañía necesita saber su estado real y hacer cierto tipos de informes pero al distribuir la información resulta mas difícil hacerlo.
¿Cuá es la disponibilidad que hay de un determinado producto en todo el país?, está es la pregunta que llevará a dar la segunda opción de solución; implementar Grid Computing, donde las aplicaciones estén conectadas a la malla al igual que la información y la capa del Middleware según la arquitectura que plantea Oracle 10g como motor de base de datos se encargara de la comunicación entre los nodos distribuidos y ubicación de la información en cada uno de esos puntos, serán el paquete completo para darle toda la conectividad y confiabilidad a la malla y así resolver exitosamente el caso de los reclamos y de las aplicaciones de los servidores.
Se propone la siguiente arquitectura de distribución implementando Grid Computing según las capas que la conforman y utilizando el producto Oracle 10g como primera base de datos diseñada para entornos Grid, reduce el costo y el riesgo, mejora el nivel del servicio y las respuestas a cambios.
Figura 2. Base de Datos Distribuida
Figura 3. Arquitectura Grid para una Base de Datos Distribuida
6. CONCLUSIÓN
Muchas empresas utilizan soluciones basadas en sistemas centralizados, ya sea porque manejan pocos datos o porque no han pensado en lo riesgoso de este tipo de manejo. A pesar que la solución se puede mejorar con un sistema distribuido, a veces no es suficiente, por la cantidad de aplicaciones que se conectan al sistema que a veces no da abasto con tanta petición.
Para resolver el caso se puede plantear una solución en Grid Computing, que pueda garantizar la velocidad y eficacia de las transacciones sin importar la cantidad de datos que se manejen, ya que Grid permite manejar un gran volumen de información de forma rápida, sin mostrar que es un sistema distribuido. Muchas empresas se han acogido a este tipo de sistema, mostrando grandes resultados, como le velocidad de respuesta y el ahorro económico. Por ejemplo, algunas empresas aseguran haber incrementado la velocidad de respuesta de las transacciones en un factor de 10.
Los beneficios que esta arquitectura presenta con significativos en costo y tiempo. La disponibilidad hace parte de la garantía que brinda un modelado como el sugerido y con el tiempo las empresas podrán observar que tecnologías como la que se ha analizado valen la pena y las comodidades que brinda para resolver problemas es invaluable.
7. BIBLIOGRAFIA
BOUZEGHOUB, Mokrane et. al. (Eds.). Semantics of a networked world: semantics for grid databases. Springer. 2004.
DI STEFANO, Michael.
Distributed data management for grid compu ting. Wiley Interscience.
GOYAL, Brajesh y LAWANDE, Shilpa. Grid revolution: an introduction to enterprise Grid Computing. New York: McGraw-Hill Osborne Oracle. 2005.
OPEN GRID FORUM. http://www.ogf.org/
OZSU, M. Tamer, VALDURIEZ, Patrick. Principles of distributed databases. London: Prentice-Hall International. 1991.
TANENBAUM, Andrew. Redes de computadores. México: Pearson Education. 2003.
1 Connectivity layer that allows the functionality of the system applications
2 Capa de conectividad que permite el buen funcionamiento de todas las aplicaciones con las que cuenta el sistema
3http://www.oracle.com/technology/oramag/oracle/03-sep/o53grid_2.html
4 http://www.ogf.org/
5 Más información en http://www.oracle.com/