Aumento Virtual de Recursos Computacionales Un caso práctico de enseñanza-aprendizaje Dr. Jaime Aguilera Vázquez Direccion de Ingenieria, Universidad del Valle de México Ciudad de Mexico., 14370, Mexico jaguilera@uvmnet.edu RESUMEN En los laboratorios de cómputo del campus de Tlalpan de la UVM, las condiciones para el trabajo con las materias de bases de datos presentaban dificultades en el acceso a los recursos informáticos, pérdidas de configuraciones y de datos haciendo que fuesen necesarios varios días para completar cada actividad nueva. Sin necesidad de invertir recursos económicos ni sacrificar o restringir otros recursos, se diseño una solución de reingeniería, basada en el aprovecha equipos disponibles y el desarrollo de una plataforma tecnológica que permite reducir este tiempo a apenas unas horas. Palabras clave: bases de datos, C/C++, C#, MPI, sockets, servidor, intel core 2 duo, round robin, watchdog. 1. INTRODUCCIÓN En la UVM campus Tlalpan, existen 18 laboratorios de computo con aproximadamente 25 a 30 equipos cada uno, hay una gran cantidad de versiones de equipos (desde pentium IV hasta Intel 2 core duo), la mayoría utilizando Windows XP. La mayoría de los laboratorios son de uso general, es decir, NO existe una sala (o centro de computo) exclusivamente para prácticas de los alumnos; por lo que en cualquier laboratorio se imparten diversas clases, por ejemplo, se puede impartir office a determinada hora y a la siguiente hora se puede enseñar compiladores, la siguiente hora puede no haber programada una clase y entonces se utiliza como tiempo libre para que cualquier alumno pueda practicar o hacer tareas y trabajos. Por lo tanto los laboratorios son ocupados por diferentes tipos de alumnos (alumnos del área de sociales, preparatoria, de ingeniería, etc.) y en consecuencia todos los equipos deben de tener (en su mayoría) instalado una gran gama de software (office, core, Microsoft Visual Studio, JAVA, SPSS, Mathlab, Opera, etc.) para cubrir las necesidades de la mayoría de las materias y así poder dar servicio a los alumnos en cualquier laboratorio. Existen materias que por sus características especiales son programadas en determinados laboratorios esto debido a que se utiliza algún software muy complejo o especializado y en consecuencia consume demasiados recursos de la maquina, por lo tanto no es posible instalarlo en todos los laboratorios, tal es el caso de las materias de Bases de Datos y Supercomputo en la que se utiliza MPI, sockets, Oracle, PL/SQL, JAVA, Microsoft Visual C/C++, C# este software solo se puede instalar en las maquinas mas robustas (con intel core 2 duo por ejemplo), por lo que se instala solo en 2 o 3 laboratorios. 2. CASO DE ESTUDIO Durante el año académico 2010, se abren 3 grupos de bases de datos se destina una sala en diferentes horarios para impartir las clases:
Se trabaja de la siguiente forma: 1) La plataforma utilizada es Oracle[6]. 2) Se crean tablas idénticas en las maquinas de un laboratorio. 3) Los alumnos durante las clases pueden trabajar sin problema alguno en cualquier maquina. Pero al avanzar el semestre, se requiere acceso a la base de datos utilizando SQL insertado como lenguaje huésped en C++ y C# y se presenta el siguiente problema: la sala no esta disponible todo el tiempo para tareas y proyectos de esta materia Existe la alternativa de que algunas veces (si no hay clases) se pueden utilizar las otras 2 salas, pero existe también el siguiente inconveniente: Con el objeto de evitar la proliferación de virus, saturación de espacio en disco, etc.., la mayoría de las salas contienen un software (steady state[7]) que cada vez que se reinicia la maquina este regresa la maquina al estado en el que estaba cuando se configuro la maquina por primera vez, es decir borra todo lo que se ha hecho en ella en la última sesión, por lo que hay que reconstruir la estructura de la base de datos y todos los movimientos hechos en esta a la fecha, en la maquina que se va a utilizar Se requería de una solución que permitiera a los alumnos avanzar en sus trabajos sin tener que iniciar de cero cada vez y con la libertad de trabajar en cualquier momento, por lo que se plantearon algunas soluciones de primera vista (tabla 2.1), pero estas generaban otros problemas o inconvenientes. SOLUCIONES Comprar equipo nuevo y dedicarlo a esta actividad Especializar la sala y dedicarla a estas materias. Instalación del software en los equipos de cada alumno. INCONVENIENTES No se contaba con el dinero para la adquisición. No se tiene el espacio físico en donde colocarlas. Se requeriría de mucho tiempo para la adquisición e instalación. Se perjudicaba a los demás alumnos. Se generaba el problema de falta de espacio para atender a las otras clases ya programadas en esta sala. La mayoría de los alumnos no cuentan con equipo personal de cómputo. En algunos casos, los alumnos que tienen equipo personal de cómputo este no tenía la capacidad de soportar el software. Tabla 2.1 soluciones presentadas Ninguna de las soluciones encontradas resolvía de manera eficiente o sin generar otro problema la situación, por lo que se requería una solución de reingeniería. 3. IMPLEMENTACIÓN DE LA SOLUCIÓN. Se analizo y reestructuro el problema y se encontró una solución que sin invertir recursos
económicos, limitar los usos y tiempos de los equipos y en corto plazo, genero una solución aceptable para todos. 1) Se determino que las maquinas de las salas deberían permanecer encendidas durante las horas de actividad de la escuela. 2) Se determino que las maquinas deberían trabajar en clusters[1] de 3, es decir, cada grupo de 3 maquinas (asignadas aleatoriamente) debería mediante replicas tener siempre la misma imagen de la base de datos. 3) Se identifico a cada alumno con un cluster, de tal forma que un alumno pudiera acceder a cualquiera de las 3 maquinas del cluster al que pertenecía. 4) Se instalo un servidor de HPC Server 2008[2] en una computadora (no dedicada) ya existente (con Intel 2 core duo). 5) Se le asigno al servidor una IP de intranet fija. 6) Se desarrollaron los siguientes programas de software utilizando Microsoft C/C++[4], MPI[5] y sockets[3] (gráfica 1): a) Un servidor de administración de direcciones dinámicas IP s (llamado el servidor de direcciones ), el cual se ejecuta en el equipo con HPC Server 2008; su funcionamiento genérico es el siguiente: i. Lleva el control de las maquinas encendidas en la sala y a que cluster pertenecen. ii. Reparte bajo un método de round robin[1] las direcciones IP del cluster asignado al alumno. iii. Mediante un mecanismo watchdog[3], se mantiene en contacto con las maquinas encendidas para verificar que siguen encendidas. b) Un software (llamado agente de direcciones ) que se ejecuta en las maquinas de la sala de computo y efectúa las siguientes acciones: i. Al encender un equipo en la sala de computo (debido a que las IP s de la sala se asignan dinámicamente utilizando un servidor DHCP[3]) recupera el numero y la IP de la maquina en la que esta ejecutándose. ii. Envía la IP y el numero de maquina al servidor de administración de direcciones dinámicas. iii. Mantiene comunicación con el servidor de direcciones de tal forma que a petición de este le informa que la maquina sigue en operación. c) Librerías en C y MPI que los alumnos utilizan en cada programa que accesará la base de datos ORACLE y tiene las siguientes características y funcionamiento: i. El alumno deberá incluir en su programa en C/C++ o C# las librerías. ii. Al iniciar su programa, la librería envía un requerimiento al servidor de direcciones y espera por una respuesta.
iii. Recibe del servidor una IP de la maquina que contiene una instalación completa de ORACLE que está en funcionamiento y que pertenece al cluster del alumno, entonces re-direcciona todas las instrucciones referentes a la base de datos que contiene el programa del alumno al equipo seleccionado. El programa del alumno ahora puede acceder al equipo y el alumno puede trabajar desde cualquier equipo dentro del campus. Gráfica 1: Interacción de los servicios 1. En ocasiones las maquinas eran apagadas causando algún retraso. 2. Se observo que las replicas de las bases de datos no se ejecutaban correctamente en todas las maquinas del cluster debido a alguna falla en la replicación del software o que el equipo estaba apagado, etc. CONCLUSIONES Sin necesidad de invertir en un nuevo equipamiento, ni de aislar una sala de cómputo solo para la materia de Bases de Datos, aprovechando recursos tecnológicos existentes, pudimos resolver la plena disponibilidad de los servidores para que los alumnos realicen sus tareas con mayor celeridad, ya que antes podrían tardar varios días, y ahora pueden resolverlo en un par de horas. El uso físico de la sala ya no es un impedimento para que los alumnos accedan a los recursos de los equipos y a la información contenida en estos, para cumplimentar sus proyectos. El sistema está disponible todo el tiempo y es accesible aunque las salas estén ocupadas con otras clases. 3. RESULTADOS OBTENIDOS Se implemento la solución y se observo que en la mayoría de los casos los alumnos obtuvieron un avance significativo especialmente en tiempo y calidad ya que lo que antes les tomaba incluso días para reconstruir el trabajo anterior (rehacer el esquema de la base de datos, volver a cargar información, hacer las modificaciones en los registros, cambiar las estructuras, etc.) e iniciar con las nuevas asignaciones; ahora con la implementación de esta solución se redujo a algunas horas de trabajo incremental y productivo. La solución presenta algunas fallas (que hay que remediar) ya que se pudo observar lo siguiente: Adicionalmente, le pudimos enseñar a nuestros alumnos cómo solucionar un problema sin necesidad de invertir recursos económicos, apelando al conocimiento en profundidad de la tecnología, combinando distintos ambientes de software como C y C++, C#, SQL, sockets y MPI, en una sola implementación. Se está pensando en implementar un esquema similar en otras materias tales como las de supercomputo. BIBLIOGRAFÍA [1] M. Tamer Ozsu, Patrick Valduriez, PRINCIPLES of DISTRIBUTED DATABASE SYSTEMS, Prentice Hall 1991.
[2] Publicación electrónica: http://www.microsoft.com/hpc/en/us/default.asp x [3] George Coulouris, Jean Dollomore, Tim Kindberg, Distributed SYSTEMS concepts and design second edition, Addison Wesley 2011. [4] Publicación electrónica: http://msdn.microsoft.com/es-es/visualc/ [5] Marc Snir, Jack Dongarra, Janusz S. Kowalik and Steven Huss-Lederman, MPI: The Complete Reference, Massachusetts Institute of Technology, 2000. [6] Jonathan Stern, Oracle Essentials: Oracle Database 10g,O reilly, 2004. [7] Publicación electrónica: http://www.microsoft.com/spain/protect/produc ts/family/steadystate.mspx