[ESCRIBIR EL TÍTULO DEL DOCUMENTO] [Seleccionar fecha] 19/3/2015 APLICACIONES DESAROLLADAS EN EJS Y SU USO EN MOODLE: MANUAL Departamento de Informática y Automática | L. de la Torre y R. Heradio 1 [APLICACIONES DESARROLLADAS EN EJS Y SU USO EN MOODLE] [L. de la Torre y R. Heradio] 1. CAPACIDADES DE INTEGRACIÓN DE LAS APLICACIONES EJS EN MOODLE Las aplicaciones desarrolladas en EJS (importante: es necesario usar la versión 5.1, build 150302 o posterior para tener todas estas capacidades) e integradas en un entorno de Moodle, pueden adquirir las siguientes características y funcionalidades: • • • • • • • • • • • • Conexión del soporte multi-idioma de EJS con el de Moodle. Grabación de ficheros (.xml, .cnt, .rec, .txt, .jpg…), desde la aplicación EJS, al repositorio privado de ficheros de Moodle y lectura de los mismos, desde dicho repositorio, a la aplicación EJS. Configuración de una aplicación EJS para usarla como laboratorio remoto Añadir una actividad EJS y ajustar el tamaño de la aplicación en el entorno web de Moodle. Carga de estados iniciales de la simulación EJS (ficheros en formato .xml). Carga de controladores para laboratorios EJS (ficheros en formato .cnt). Carga de grabación de interacciones con laboratorios EJS (ficheros en formato .rec). Personalización de variables seleccionadas de la simulación; distintos usuarios trabajan con distintos valores en dichas variables. Trabajo en sesiones colaborativas síncronas con las aplicaciones de EJS en Moodle. Soporte para laboratorios remotos. Trabajo futuro: reutilización de las páginas de descripción en html de las aplicaciones EJS. Trabajo futuro: corrección y evaluación automática de actividades realizadas con EJS. Este manual describe como beneficiarse de todas las características de integración enumeradas arriba. El punto 2 de este documento explica cómo se deben preparar las aplicaciones en EJS para obtener un correcto funcionamiento en Moodle mientras que el punto 3 muestra cómo configurar en Moodle las actividades con una aplicación EJS y algunas maneras en las que se les puede dar uso. 2 [APLICACIONES DESARROLLADAS EN EJS Y SU USO EN MOODLE] [L. de la Torre y R. Heradio] 2. PREPARACIÓN DE APLICACIONES EJS PARA SU USO EN MOODLE Antes que nada, conviene mencionar que los applets generados por EJS se ejecutarán en Moodle con el look and feel conocido como Nimbus. Por tanto, conviene cambiar la opción del look and feel en EJS a éste (Nimbus) para visualizar nuestras aplicaciones creadas con este programa con el mismo aspecto que un usuario las visualizará al ejecutarlas como un applet dentro de Moodle. 2.1. Soporte multi-idioma La configuración del idioma en las aplicaciones EJS integradas en Moodle queda automáticamente ligada al idioma seleccionado en el entorno web de Moodle cuando la aplicación EJS ha sido preparada usando el soporte multi-idioma nativo que ofrece este programa. Para preparar una aplicación en EJS con dicho soporte para múltiples idiomas basta con seguir las instrucciones que se dan en este video-tutorial: http://www.um.es/fem/Ejs/WebCasts/en/EJSTranslationFacilities/index.html Conviene, además, poner botones de cambio de idioma en la interfaz de la aplicación EJS (como muestra el ejemplo de la Figura 1). Para ello basta con añadir el siguiente código en dichos botones: Figura 1. Botones de cambio de idioma en la interfaz de EJS Tabla 1. Código para cambiar el idioma de una aplicación EJS setLanguage("es"); /*Para el botón que pasa el idioma de la interfaz a español*/ setLanguage("en"); /*Para el botón que pasa el idioma de la interfaz a inglés*/ Nota importante: Es necesario que el idioma por defecto (es decir, el idioma de los textos que se escriben en los elementos de la Vista de EJS) sea el inglés y que luego se añada la traducción al castellano. Lo contrario (por defecto castellano y traducción en inglés) hace que ésta última no se muestre en Moodle. 2.2. Grabación y lectura de ficheros Es importante tratar de seguir unas líneas de diseño de las interfaces de usuario que sean similares para todas las aplicaciones. El menú de grabación/lectura de ficheros ha venido colocándose en la parte superior de dichas aplicaciones, tal y como muestra la Figura 2. 3 [APLICACIONES DESARROLLADAS EN EJS Y SU USO EN MOODLE] [L. de la Torre y R. Heradio] Figura 2. Botones y menú para guardar y/o cargar ficheros La Tabla 2 da un listado de los métodos nativos de EJS que pueden utilizarse para realizar estas tareas. Tabla 2. Métodos para grabar y leer ficheros y datos Hay cuatro métodos que permiten enviar un fichero desde la repositorio privado de ficheros de Moodle (EJSApp File Browser): • • • • • aplicación EJS al El método _saveText(String NombreDelFichero, String ContenidoDelFichero), para grabar un fichero de texto sugiriendo la extensión indicada en el parámetro NombreDelFichero o, en su defecto, .txt. El método _saveText(String NombreDelFichero, String TipoDeFichero, String ContenidoDelFichero), para grabar un fichero de texto que, dependiendo del parámetro TipoDeFichero, fijará necesariamente una extensión dada y será: de tipo controlador y con extensión .cnt si se indica controller, o de tipo grabación de interacción y con extensión .rec si se indica record. El método _saveImage(String NombreDelFichero, String ElementoDeLaVista), para grabar un fichero de imagen con la captura de un elemento de la vista de EJS. El método _saveState(String NombreDelFichero), para grabar la lista completa de variables que definen un estado de la simulación en un fichero .xml. El método _saveVariables(String NombreDelFichero, List<String> vars), para grabar solo algunas variables seleccionadas del estado actual de la simulación (también en un fichero .xml). Y hay tres formas de recuperar y leer datos (ficheros de texto o .xml previamente almacenados en el repositorio de ficheros de Moodle) con una aplicación EJS: • • • El método _readText(String NombreDelFichero, String TipoDeFichero), para obtener el contenido de un fichero de texto plano. Los tres tipos de fichero aceptados por este método en el segundo parámetro son: text, controller y record. Nota importante: para usarlo en Moodle, pasar un string vacío en el primer parámetro (NombreDelFichero). El método _readState(null), para leer y cargar la lista completa de variables de una simulación desde un fichero .xml. El método _readVariables(null, List<String> vars), para leer y cargar una lista de variables seleccionadas de la simulación desde un fichero .xml. Todos los métodos de grabación de ficheros abren una ventana como la mostrada en la Figura 3.a, mientras que los métodos de lectura de ficheros abren una ventana como la mostrada en la Figura 3.b. 4 [APLICACIONES DESARROLLADAS EN EJS Y SU USO EN MOODLE] [L. de la Torre y R. Heradio] a) b) Figura 3. Ventanas de grabación y lectura de ficheros 2.3. Configuración de la aplicación para su uso como laboratorio virtual o laboratorio remoto firmado Las aplicaciones que van a usarse como laboratorio remotos necesitan conectar a terceros servidores. Esto supone una violación de las normas de seguridad de Java y, por tanto, es necesario darle permisos especiales al applet que se va a compilar, lo cual se configura en el manifest del mismo. Para ello, se pulsa en el botón de Información de EJS (Figura 4.a) y se va a la pestaña de “opciones de ejecución” (run options), que se muestra en la Figura 4.b. Allí se debe cambiar el texto sandbox que figura por defecto en el campo Permissions por all-permissions. Así mismo, las últimas versiones de Java requieren que cualquier applet en una página web esté firmado. Para que el sistema en Moodle lo firme automáticamente, es necesario cambiar en EJS el campo Codebase de * a unilabs.dia.uned.es (o el DNS utilizado por el servidor Moodle al que se sube el laboratorio), también mostrado en la Figura 4.b. Por tanto, el primer paso es necesario sólo para laboratorios remotos mientras que el segundo es necesario tanto para el caso de un laboratorio remoto como para el de un laboratorio virtual. 2.4. Comentario adicional sobre el manifest del applet EJS El parámetro Caller-Allowable-Codebase del manifiesto del applet EJS (presente en el mismo sitio que los parámetros Permissions y Codebase) conviene fijarlo también con el identificador o dirección del servidor que va a alojar el applet en cuestión. De este modo, se evita que aparezca una ventana de advertencia cuando un código Javascript de los plugins EJSApp de Moodle llaman al applet para realizar ciertas acciones como cargar un fichero con un estado, leer variables personalizadas (ver secciones 3.2 y 3.3 de este manual, respectivamente), etc. La Tabla 3 resume la configuración necesaria de la aplicación EJS según su uso sea de laboratorio virtual o de laboratorio remoto: Tabla 3. Configuración de parámetros de la aplicación EJS a través de la pestaña “opciones de ejecución” o “run options”. Permissions Codebase Caller-Allowable-Codebase Laboratorio Virtual sandbox unilabs.dia.uned.es unilabs.dia.uned.es Laboratorio Remoto all-permissions unilabs.dia.uned.es unilabs.dia.uned.es 5 [APLICACIONES DESARROLLADAS EN EJS Y SU USO EN MOODLE] [L. de la Torre y R. Heradio] 2.5. Sesiones colaborativas Preparar una aplicación EJS para que soporte el funcionamiento en modo de sesiones colaborativas síncronas es tan fácil como marcar una casilla de configuración de la simulación desde la pestaña Opciones de Ejecución (Figura 4.b) situada en el Panel de Información de EJS (Figura 4.a). a) b) Figura 4. Añadir soporte para sesiones colaborativas en Moodle y configurar aplicaciones para su uso como laboratorios virtuales o remotos 6 [APLICACIONES DESARROLLADAS EN EJS Y SU USO EN MOODLE] [L. de la Torre y R. Heradio] 3. CONFIGURACIÓN Y USO DE ACTIVIDADES CON APLICACIONES EJS EN MOODLE 3.1. Añadir una aplicación EJS en Moodle y ajustar el tamaño de la aplicación La figura 5 muestra el formulario de alta o edición de una actividad con una aplicación EJS (EJSApp). Los dos únicos campos que se requiere rellenar son el del nombre del laboratorio y el del fichero que encapsula la aplicación EJS (el fichero .jar). En el siguiente enlace puede encontrarse un video particularmente útil que explica el proceso de alta de una actividad EJSApp, así como otras cuestiones adicionales como, por ejemplo, de qué forma se puede realizar una copia de seguridad: http://www.youtube.com/watch?v=Oql5h_ravGE Para el campo con el nombre de la actividad, conviene utilizar la nomenclatura html que permite a Moodle filtrar los textos por idioma y establecer dicho nombre tanto en inglés como en español, según qué idioma haya seleccionado el usuario. Ejemplo: Tabla 4. Código para poner el nombre de una actividad en Moodle soportando el filtro multi-idioma <span class="multilang" lang="es">Laboratorio Virtual del Servo Motor</span><span class="multilang" lang="en">Virtual Laboratory of the Servo Motor</span> Una vez establecido el nombre de la actividad y subido el fichero EJS, se pueden configurar distintas opciones para fijar el tamaño con el que los estudiantes visualizarán el applet. Las posibilidades son, básicamente, tres: Figura 5. Añadir una actividad EJS en Moodle y ajustar el tamaño de la aplicación 7 [APLICACIONES DESARROLLADAS EN EJS Y SU USO EN MOODLE] [L. de la Torre y R. Heradio] • • • 3.2. Mantener el tamaño original: el applet tendrá el tamaño fijado para la aplicación en EJS. Permitir que Moodle fije el tamaño: el plugin EJSApp redimensionará el applet (manteniendo las proporciones) para que ocupe el espacio máximo posible teniendo en cuenta factores como el tamaño de la ventana del navegador abierta por el cliente. Fijar el tamaño a mano: se podrá introducir el tamaño deseado (en píxeles) para la aplicación, decidiendo si mantener o no las proporciones originales. Carga de un estado inicial Al crear una actividad en Moodle con una aplicación de EJS, puede seleccionarse un fichero .xml que contenga un estado concreto de la simulación para que el sistema cargue dicho estado de manera automática. Esto se logra en el formulario de alta/edición de la actividad (Figura 6), en el apartado “Archivo .xml con el estado que este laboratorio EJS debe leer”. Esta opción permite cargar un estado inicial distinto al que trae por defecto una simulación de EJS, de modo que pueden proponerse distintos escenarios o ejemplos de uso predefinidos (con algún valor didáctico especial) con un mismo sistema. 3.3. Carga de un controlador Si la aplicación EJS incorpora el elemento de evaluador de código, puede también seleccionarse un fichero de texto con extensión .cnt que contenga un controlador para que cargue el código de dicho controlador en ese laboratorio EJS. Esto se logra en el formulario de alta/edición de la actividad, en el apartado “Archivo .cnt con el controlador que la aplicación EJS debe cargar al iniciarse”, muy similar al mostrado para la carga de un estado inicial en la Figura 6. 3.4. Carga de un fichero de grabación de interacción Puede también seleccionarse un fichero de texto con formato .rec que contenga un script con las órdenes para reproducir la interacción efectuada por un usuario con la aplicación EJS. Esto se logra en el formulario de alta/edición de la actividad, en el apartado “Archivo .rec con la grabación que la aplicación EJS debe ejecutar al cargarse”, de nuevo muy similar a los dos anteriores. Esta opción permite cargar un fichero que contiene el script de interacciones realizadas por un usuario con una aplicación EJS de modo que ésta reproduzca dichas interacciones de manera automática, similar a un vídeo. Esto puede servir como demostraciones, tutoriales, etc. 3.5. Personalización de variables Mientras que la opción descrita en el punto 3.2 de cargar un estado inicial fija un mismo estado para todos los usuarios, la posibilidad de personalizar las variables de una aplicación permite que cada usuario tenga su propio juego de parámetros particular, evitando de este modo la posibilidad de copiar resultados entre ellos. La Figura 7 muestra cómo se puede configurar una actividad para obtener esta característica. 8 [APLICACIONES DESARROLLADAS EN EJS Y SU USO EN MOODLE] [L. de la Torre y R. Heradio] Figura 6. Cargar un estado inicial para una actividad EJS en Moodle Figura 7. Personalizar variables de una aplicación EJS en Moodle 9 [APLICACIONES DESARROLLADAS EN EJS Y SU USO EN MOODLE] [L. de la Torre y R. Heradio] Si bien de momento es necesario conocer el nombre y el tipo de la variable en el Modelo de EJS para la aplicación que desea personalizarse, en el futuro aparecerá un listado de las variables cuyo valor puede tener interés particularizar. 3.6. Sesiones colaborativas Crear y unirse a sesiones de trabajo colaborativo con aplicaciones EJS en Moodle es tan sencillo como pulsar, en el bloque EJSApp Collab Sessions, sobre los botones “Crear sesión colaborativa” o “Ver mis sesiones activas”, respectivamente. En relación a esto, en el siguiente enlace se puede ver un video tutorial que explica en detalle el proceso de creación, unión o cierre de una sesión colaborativa dentro del entorno Moodle: http://www.youtube.com/watch?v=DOOoq2rUJYE Figura 8. Bloque de sesiones colaborativas 3.7. Laboratorios remotos Cuando se desea dar de alta un laboratorio remoto, es necesario introducir algunos datos en el apartado “Configuración del laboratorio remoto” dentro del formulario de alta/edición de una actividad EJSApp (Figuras 5, 6 y 7). Todos los campos tienen una ayuda contextual que hace sumamente sencillo saber cómo rellenarlos. La Figura 9 muestra un ejemplo de configuración de un laboratorio remoto. 10 [APLICACIONES DESARROLLADAS EN EJS Y SU USO EN MOODLE] [L. de la Torre y R. Heradio] En el caso de estar usando SARLAB como sistema de acceso al laboratorio remoto, habrá un desplegable que muestra la lista de experiencias. Basta con seleccionar en dicha lista el identificador de la experiencia que establece las comunicaciones necesarias para permitir el acceso y uso del laboratorio remoto que se está dando de alta. Si no se usa SARLAB, hay que indicar la IP pública del ordenador que maneja el equipo del laboratorio remoto así como el puerto de comunicaciones con el mismo. Figura 9. Configuración de un laboratorio remoto 11