Especificación

Descripción General del Sistema.

El siguiente gráfico representa la estructura general del sistema necesario para la implantación del laboratorio remoto. En éste se pueden visualizar de forma sencilla tanto los aspectos hardware necesarios a priori.

Diagrama_Inicial_RTLabNet.jpg

Esta arquitectura presenta el desarrollo de cuatro aplicaciones necesarios para mantener y gestionar el sistema. Las cuatro aplicaciones son las siguientes:

  1. RTLabNet Editor: Aplicación desarrollada para el uso del alumno. Su función principal es permitir hacer uso del laboratorio de tiempo real de forma remota y la edición mediante bloques funcionales de los programas para las pruebas en los sistemas remotos.
  2. RTLabNet Manager: Aplicación cuya función principal es la gestión del servidor del laboratorio de tiempo real y de la gestión de las cuentas de alumnos del sistema.
  3. RTLabNet Server: Servidor encargado de gestionar los proyectos, tanto para su ejecución en el laboratorio como para el compilado de éstos en los respectivos sistemas. Además se encarga de la comunicación con las aplicaciones de usuario, tanto de la recepción de los proyectos como del envío de mensajes de estado o mensajes resultado de la compilación. Realiza la detección y el registro de los nuevos sistemas objetivo.
  4. RTLabNet Target Resource: Aplicaciones en los sistemas objetivo de pruebas donde se ejecutarán los proyectos. Se encarga de la comunicación con el servidor en los sistemas objetivo.

Descripción de la Especificación.

Se trata de un sistema que permita que los alumnos puedan desarrollar y probar aplicaciones sobre distintas plataformas, de manera que obtengan resultados para verificar las restricciones temporales establecidas y cómo se comporta cada una de las plataformas. El proyecto requiere el desarrollo de cuatro secciones diferenciadas que describiremos en las siguientes secciones.


Especificación del RTLabNet Editor.

Esta aplicación está destinada al uso por parte de los alumnos registrados en el servidor. Por esta razón uno de los objetivos más importantes es la facilidad de manejo. La aplicación debe soportar los siguientes puntos:

  1. Gestión de Proyectos: Cada proyecto encapsula la información necesaria para la ejecución en el sistema remoto en tiempo real de un ejecutable, así como la forma de recoger los datos registrados. Las tareas básicas que la forman son:
    1. Creación / modificación / borrado / apertura / cierre de Proyectos completos.
    2. Creación / apertura / cierre / adición / borrado de documentos al proyecto.
    3. Gestión de la estructura del proyectos: creación/modificación/borrado de subdirectorios.
  2. Gestión de Documentos: Los documentos son elementos básicos de los proyectos. Un documento puede simbolizar desde un trozo de código, varias hebras o la especificación del propio proyecto. La gestión abarca los siguientes puntos:
    1. Creación / apertura / almacenamiento / cierre de documentos.
    2. Visualización / Modificación de documentos: Puesto que cada documento no representa lo mismo, será necesario permitir que cada uno disponga de un visualizador y un modificador que simplifique la edición del documento. Por ejemplo, no será lo mismo editar un documento de un código fuente que un documento que especifique la estructura del proyecto. El editor se basa en el modelado por componentes. Por ejemplo, el alumno seleccionará primero el sistema objetivo sobre el que va ha desarrollar, seleccionando un objeto de los permitidos como sistemas objetivo. Este sistema objetivo será arrastrado a la pantalla de diseño. Una vez colocado en el lugar deseado y liberado el arrastre, se dibujan los conectores posible que puede tener un sistema objetivo: aplicación, ficheros de salida, etc. Al hacer click sobre las puntas de los conectores se deben abrir los editores correspondientes con los tipos de objetos que se pueden establecer en ese enlace. También es posible seleccionar elementos pre-diseñados (guardados en librerías de objetos) desde el gestor de librerías y arrastrarlos al lienzo de diseño para luego inter-conectarlos.
  3. Comunicación del editor con RTLabNet Server . Gestiona la comunicación del editor y el servidor. Las principales tareas son:
    1. Conexión / des-conexión al servidor: autenticación del usuario.
    2. Envío del proyecto y recuperación de los resultados de ejecución del proyecto en el sistema objetivo.
    3. Realizar las peticiones de compilación remota del proyecto y la recuperación de posibles errores.
    4. Visualización de los mensajes del servidor: estado de colas de ejecución, estado de colas de compilación, recursos disponibles, mensajes generales, nuevos objetos disponibles, etc.
    5. Visualización en tiempo real del laboratorio mediante una webcam para experimentos. Estos están aún por definir.
    6. Petición de los tipos de documentos y de sus visualizadores / editores. Para que el sistema sea lo más extensible posible es necesario que se pueden añadir nuevos tipos de documentos y visualizadores, y que el alumno los pueda obtener desde el servidor.1

Especificación del RTLabNet Manager.

El RTLabNet Manager es una aplicación destinada al uso por parte de los profesores para la para la gestión del RTLabNet Server de forma sencilla, así como la gestión de los alumnos. Las tareas básicas que debe desempeñar son:

  1. Gestión de Alumnos: altas / bajas, control sobre los permisos aplicables a los alumnos: cuota de disco disponible, tiempo de ejecución máximo permitido para las aplicaciones desarrolladas por los alumnos, etc.
  2. Gestión de los recursos: Se consideran recursos aquellos elementos que pueden actuar como sistemas objetivos para la aplicación RTLabNet Editor, así como los elementos hardware de estos sistemas. También será necesario establecer un proceso para la comprobación periódica de los recursos de forma que si se produjeran bloqueos se pudiera actuar en consecuencia.2

Especificación del RTLabNet Server.

Es el punto central del Laboratorio Virtual de Tiempo Real. Es el encargado de gestionar las peticiones realizadas por los alumnos, administrar los recursos disponibles del laboratorio, controlar la webcam, etc. De forma más específica, las funciones que debe realizar son:

  1. Gestión de Recursos.
  2. Registro / liberación / listado de recursos.
  3. Histórico de uso de los recursos por parte de los alumnos.
  4. Enviar los proyectos a los recursos disponibles, de forma ordenada.
  5. Obtener los resultados de las ejecuciones de los proyectos en los recursos.
  6. Gestión del Perro Guardián. Puesto que se trata de programas que pueden bloquear los sistemas de los recursos será necesario algún método para reiniciarlos.
  7. Gestión de peticiones. El uso de los recursos debe ser, en algunos casos, exclusivo. Es por esto que se debe gestionar una cola de acceso para las peticiones de los alumnos. Las tareas que abarca son las siguientes:
    1. Gestión de peticiones de compilación remota en la plataforma destino. Esto libera al alumno de instalar multitud de sistemas para probarlos.
    2. Gestión de peticiones de ejecución remota en la plataforma destino.
    3. Gestión de las conexiones de los alumnos.
    4. Autenticación de los alumnos.
    5. Envío de mensajes a los alumnos.
    6. Recepción de mensajes por parte de los alumnos.

Especificación del RTLabNet Target Resource.

Esta aplicación es la encargada de compilar y ejecutar los proyectos en el propio sistema objetivo. Además, está a disposición del RTLabNet Server para facilitarle cualquier tipo de información que éste necesite. Sus funciones serán las siguientes:

  1. Recepción de proyectos por parte del RTLabNet Server.
  2. Compilación de los proyectos enviados al sistema.
  3. Ejecución de los proyectos y recolección de los datos.
  4. Recibir y contestar a las posibles peticiones del RTLabSever.