• No results found

Framework for cooperation between Cedefop and the ETF Under the education and training 2010 programme and the strategic framework

C:/Archivos de Programa/ DOBRA.productos.UE es_sp

C:/Archivos de Programa/ uniovi.gadea.Explorer es_sp

D:/Personal/Uniovi/EDI uniovi.edi.EDIReg es_sp_as

En el código Código 1 podemos ver un ejemplo del contenido de un Application Record. Como podemos observar, para cada aplicación existe un registro en el que se especifica el directorio en el que se encuentran

depositadas las clases que forman dicha aplicación y el nombre de la clase principal (aquella que contiene la función main). El nombre de esta última se especifica siguiendo la notación completa del paquete al que pertenece. Así, en el mencionado Application Record se indica que en el directorio c:/Archivos de Programa debe existir un directorio llamado dobra y otro llamado uniovi. Dentro del primero existirá un directorio conocido por el nombre de productos, dentro del cual existe un fichero llamado UE.class, el cual contiene la función main de la aplicación especificada en la primera línea. A su vez, en el segundo directorio (uniovi) existirá un directorio llamado gadea, el cual contendrá una clase denominada Explorer.class con el main de la segunda aplicación. La tercera línea del fichero especifica que una clase denominada uniovi.edi.EDIReg.class se encuentra dentro del directorio d:/Personal/Uniovi/EDI. El tercer atributo de cada registro representa el entorno cultural del usuario y será analizado en el capítulo 10 (El Lenguaje).

Cuando se inicia la plataforma GADEA, su Application Manager inspecciona el Application Record y carga en memoria una referencia de todas las posibles aplicaciones que se pueden emplear dentro de la sesión. Esta referencia es mostrada al usuario por una pequeña aplicación denominada Application Explorer, mediante la cual se puede seleccionar y arrancar cualquiera de las aplicaciones incluidas en el Application Record.

DEVA

(Discourse Expert Valuator for Adaptation)

area de trabajo de las aplicaciones

Aplicación

Application Manager

Inspector de Código

Application Record

Figura 16. Diseño general de CodeX. La información almacenada en el Application Record permite encontrar los ficheros binarios de una aplicación, de tal modo que éstos puedan ser explorados por el inspector de código. La información obtenida es enviada al Application Manager, quien será el ente responsable de arrancar la aplicación.

Esta aplicación forma parte de la distribución estándar de GADEA y será descrita en el capítulo 11 (El Application Explorer). Por el momento solo necesitamos saber que esta aplicación sirve de selector de aplicaciones, facilitando al usuario la sincronización y gestión de la

interfaz de múltiples aplicaciones GADEA que se ejecutan en paralelo. De hecho, todas las aplicaciones registradas en el Application Record aparecen disponibles en el canal de comunicación principal de esta aplicación (auditivo y visual) vía menú, vía hipertexto, vía botones, etc. De este modo, el usuario podrá arrancar cualquiera de las aplicaciones GADEA disponibles, las cuales se ejecutarán bajo la supervisión del Application Explorer.

7.1.1. Comunicación con el Espacio de Objetos de la Aplicación

Cuando el usuario selecciona una aplicación a través del Application Explorer, CodeX asigna un espacio de ejecución para la aplicación seleccionada en el cual se mantendrá una referencia activa a todos aquellos objetos provistos de procesos de usuario, los cuales serán invocados según las necesidades del usuario y en el momento y condiciones en el que éste lo considere oportuno.

Por medio del objeto principal de la aplicación incluido en el Application Record, GADEA es capaz de establecer un canal de comunicación directo con la aplicación y registrar de forma automática y por medio de reflexión todos aquellos métodos pertenecientes a dicho objeto que representen procesos de usuario. Sin embargo, éste canal de comunicación no trabaja en dos direcciones ya que el objeto principal de la aplicación no puede contactar directamente con CodeX.

Para resolver este problema, una vez que CodeX ha preparado el espacio de objetos de la aplicación cliente, iniciando las estructuras necesarias para su mantenimiento y gestión en tiempo de ejecución, éste módulo de GADEA proporciona al objeto principal de la aplicación una referencia al propio CodeX, a través de una interfaz de comunicación que hace las veces de la caja de herramientas de interacción (ToolBox) de los sistemas tradicionales. Esta interfaz de comunicación se encuentra encapsulada en una instancia de la clase UIMS (User Interface Management System).

En el objeto UIMS proporcionado a la aplicación cliente se encuentra declarados todos aquellos métodos con los que dicha aplicación cuenta para establecer un diálogo interactivo con el usuario o para registrar y dar de baja procesos de usuario y objetos perceptibles por dicho usuario. Este objeto funcionará como canal de comunicación directo entre cualquiera de las aplicaciones clientes de GADEA y el módulo CodeX.

El mecanismo empleado para proporcionar esta referencia a la aplicación cliente se basa en la invocación dinámica de métodos disponible en toda arquitectura basada en mecanismos de reflexión. Por medio de la información almacenada en el Application Record, en el momento en el que usuario decide arrancar una aplicación, CodeX crea dinámicamente una instancia del objeto principal de dicha aplicación e invoca un método constructor especial presente en dicho objeto, el cual ha de contener como único parámetro una instancia de la clase UIMS, tal y como puede verse en la función launchApplication del Código 2.

En este ejemplo, es el propio objeto UIMS el que arranca la aplicación comprobando que la aplicación cliente dispone de un constructor en el que se recibe como parámetro una instancia de la clase UIMS.