Presentación general
1
Objetivos del curso
• Generales
– Conocer la plataforma Agrega y potenciar su implementación en las
aulas, utilizando entornos de aprendizaje, flexibles y creativos, en los
diferentes niveles de enseñanza y en las distintas áreas curriculares.
• Específicos
– Comprobar la facilidad de uso y accesibilidad de Agrega e identificar
los estándares soportados: catalogación LOM, accesibilidad AA e
integración con otras plataformas SCORM.
– Identificar las características específicas de la plataforma:
uniformidad en estándares, posibilidades de uso de los recursos
educativos dentro y fuera de la plataforma, definición y
características de objetos de aprendizaje, adecuación por las
comunidades autónomas, etc.
– Manejar el buscador como localizador de recursos.
– Usar el catalogador de contenidos con el fin de asociar correctamente
los objetos con la metainformación necesaria, y conseguir una
adecuada caracterización y localización.
– Identificar los pasos necesarios para crear y publicar contenidos.
2
Contenidos del curso
Módulo 1. Resumen de funcionalidades
1. ¿Qué es?
2. Componentes básicos
Módulo 2. Arquitectura
1. Introducción
2. Arquitectura física
3. Arquitectura lógica
Módulo 4. Administración
1. Contenidos
2. Plataforma
3. Configuración
3
Contenidos del curso
Módulo 5. Operación
1. Arranque y parada de los aplicativos
2. Ficheros de Log
3. Backups
4. Modificaciones frente a cambios frecuentes
5. Tareas planificadas
6. Generación automática de ficheros
7. Seguridad
8. Actualización MediaWiki
Módulo 6. Integración
1. Integración
2. WebServices publicados
3. OAI-PMH
4. Gestor de sesiones
5. SQI
6. DRI
4
Módulo 1. Introducción: portal Agrega
• Características:
5
Introducción
• Características:
6
Introducción
7
Estándares
• Características de SCORM:
• Componentes de SCORM:
8
Estándares
• Categorías de LOM-ES:
– General
– Ciclo de Vida
– Meta-metadatos
– Técnica
– Uso educativo
– Derechos
– Relación
– Anotación
– Clasificación
9
Menús comunes
– Acerca de Agrega
– Accesibilidad
– Preguntas frecuentes
– Mapa del portal
– Contacto
– Idiomas
– Acceder/Registrarse
– Ayuda
– Salir
10
Portal
11
Portada
12
Carpeta personal
13
Carpeta personal
14
Buscador
15
Búsqueda básica
16
Búsqueda básica
Pantalla de resultados
17
Búsqueda básica
18
Búsqueda avanzada
19
Búsqueda avanzada
20
Búsqueda Taxonómica
• El ámbito de búsqueda:
• Todo Agrega
• CNICE
• El tipo de búsqueda:
• Árbol curricular
• Tesauro ETB
21
Búsqueda Taxonómica
22
Empaquetador
– Básico
– Avanzado
– Catalogar
– Previsualizar
– Validar
– Guardar
– Etc.
23
Empaquetador básico
24
¿Cómo se crea un ODE?
25
Empaquetador avanzado
26
Catalogador
27
Catalogador básico
• Componentes:
– Formulario: consiste en cumplimentar los diferentes campos.
– Inserción curricular: sirve para asociar el ODE a un objetivo
curricular.
– Validación: confirma que el ODE está listo para su publicación.
– Guardar validación.
28
Formulario del catalogador básico
29
Catalogador avanzado
• Componentes:
– Formulario.
– Modificar.
– Validación.
– Guardar validación.
30
Formulario del catalogador avanzado
31
Administración
– Contenidos
– Plataforma
– Configuración
32
Módulo 2. Arquitectura
Apache
Capa servidor Web PHP (MediaWiki)
Squid (caché opcional)
JBoss Application Server
Capa de aplicación JDK 1.6
Galería de Imágenes
NFS
Capa de datos Base de datos (MySQL)
LDAP
33
Arquitectura física
34
Componentes principales
1. Apache
4. LDAP
35
Conexiones establecidas
36
Conexiones establecidas
37
Arquitectura lógica
38
Sistema de almacenamiento
39
Capa de acceso a datos
40
Módulos funcionales
Componente Descripción
Componente encargado de ofrecer servicios al Gestor de Flujo de forma que gestiona el flujo de
Publicación
publicación seguido por un contenido digital.
Componente encargado de ofrecer los servicios para poder consumir los objetos digitales
Entregar
existentes en el repositorio.
41
Módulos funcionales
Componente Descripción
Componente encargado de ofrecer los servicios para poder catalogar, según el estándar LOM-
Catalogación
ES, los distintos contenidos generados y / o almacenados en el repositorio.
Componente encargado de ofrecer los servicios para poder realizar operaciones sobre los
Contenidos Portales contenidos que se publicarán en el portal, entendiendo como contenidos, las noticias, los feeds
y las descargas.
Componente que se encargará de la gestión de la valoración que se dé por parte de los usuarios
Valoración
a los contenidos.
Componente que conforma un recubrimiento lógico del interfaz propuesto por la librería de
Indexador y Buscador
indexación y búsqueda de Apache Lucene.
Componente que engloba la gestión y explotación de las fuentes taxonómicas, los tesauros,
Fuentes Taxonómicas
árboles curriculares y los vocabularios controlados.
42
Módulos funcionales
43
Módulo 3. Instalación
Capas de datos
•Sistema de ficheros
•Base de datos
•Directorio LDAP
44
Sistema de ficheros
•Repositorio de ODEs: cada ODE estará formado por una estructura de meta
información, ficheros XML… y los recursos propios del objeto digital
educativo, como pueden ser imágenes, animaciones flash, videos, sonidos
mp3, ogg…
•Esquemas XML.
•Plantillas.
•Informes: reportes generados por la aplicación BIRT.
•Miniaturas (previsualizaciones) de los objetos capturadas por la galería de
imágenes.
•Descargas disponibles desde la plataforma (herramienta off-line…)
•Logs.
45
Sistema de ficheros
46
Servidor NFS
El servidor de archivos NFS será un servidor con uno o varios discos de gran
capacidad conectados (usando LVM o no) con la capacidad de exportarlos vía
NFS. Es aconsejable que el sistema de ficheros de la unidad exportada sea
ReiserFS o XFS debido a las menores restricciones que se imponen en cuanto
a máximo tamaño de ficheros, máximo número de subdirectorios por
directorio, etc.
•/etc/exports
•/etc/hosts.allow
•/etc/hosts.deny
47
Cliente NFS
Como prerrequisito el kernel del sistema operativo del cliente NFS debe tener
soporte para el sistema de ficheros NFS. En caso de no tenerlo es necesario
actualizar el kernel a uno que si lo tenga.
48
Base de datos
49
MySQL
Con el fin de ilustrar una base de datos en el manual, se escoge MySQL por su
carácter de software libre y su amplia instalación en la mayor parte de las
comunidades.
50
Servidor MySQL
51
Base de datos: Agrega
•CrearTablas.sql
El cometido del script consiste en crear toda la estructura de
tablas necesarias para el correcto funcionamiento del portal Agrega,
además de crear los índices y las contraints necesarias.
•CargarDatos.sql
Una vez creadas todas las tablas, índices y restricciones, se
procede a hacer una carga inicial de datos necesarios (idiomas, localización
de los índices, FAQs iniciales, etc).
52
Base de datos: Ayuda
Una vez creados tanto la base de datos wikidb como el usuario wiki_user,
procedemos a insertar tanto las tablas como los contenidos de las mismas
a partir de un dump generado:
1.De nuevo, debemos ejecutar la inserción del dump con el usuario root
puesto que wiki_user no tiene permisos de creación / borrado de tablas.
2.Para comprobar que la creación del usuario y las inserciones han sido
correctas, podemos ejecutar (desde la máquina que se autorizó al crear al
usuario si tiene instalado el cliente mysql) los siguientes comandos:
53
Autenticación LDAP
54
Autenticación LDAP
55
Capa de aplicación
•JDK 1.6: Es necesario disponer de la versión JDK 1.6 o superior para poder
ejecutar tanto el servidor de aplicaciones como la galería de imágenes.
56
JDK 1.6
57
Servidor de Aplicaciones JBossAS
58
Comprobaciones previas del sistema
59
Scripts de arranque
1. run.conf
Existe un fichero denominado run.conf que contiene los parámetros a
pasar a la máquina virtual de Java (JVM) para el arranque del JBoss.
2. /etc/init.d/jboss y run.sh
Al realizar la instalación, en los sistemas Linux, en el directorio bin se
encuentra el fichero “jboss_init_redhat.sh”, fichero que se suele copiar
al directorio /etc/init.d/ para el arranque y parada del servidor.
60
Ficheros de configuración de JBoss
61
Librerías del JBoss
1.$JBOSS_HOME\lib
En el directorio lib contiene los JARs necesario para el set up del
arranque del JBoss.
2. $JBOSS_HOME\server\default\delpoy\lib
Todos los ficheros JAR del directorio se cargarán por JBoss en el
classpath compartido por todos los módulos (WARs).
62
Directorio de informes
1.birt-runtime-2_2_1_1
Para la generación de informes online la plataforma hace uso de Birt.
Los binarios del sistema de reportes Birt se almacenan ahí.
2. destinoInformesDir
Los informes planificados desde el planificador se almacenarán en esta
carpeta.
3. plantillasInformes
Las plantillas a partir de las cuales Birt genera los informes se
encuentran en esta carpeta.
63
Directorio de índices
Catalán ca_CA_simple.id
Inglés en_EN_simple.id
Español es_ES_simple.id
Euskera eu_EU_simple.id
Gallego gl_GL_simple.id
Valenciano va_VA_simple.id
64
Directorio de uploads
65
Ejemplo de la estructura de subdirectorios
descargas
galeriaimg/common (contiene los iconos de las imágenes por defecto)
galeriaimg/<sitio> (se generarán las previsualizaciones de los ODEs)
html (con contenido inicial)
imagenesInformes
informesPortada
modificador
noticias
repositorio
rss
schemas (con contenido inicial)
schemasImscp (con contenido inicial)
schemasScorm12 (con contenido inicial)
schemasVdex (con contenido inicial)
searchPlugin (con contenido inicial)
sitemaps/backup
sitemaps/estatico (con contenido inicial)
taller
utilidades (con contenido inicial)
xmls (con contenido inicial)
xslt (con contenido inicial)
66
Ficheros de configuración de Agrega
agrega.properties
authbackend.properties
cas.properties
dependentServer_EN.properties
dependentServer.properties
generacionContenidos.properties
i18n_ca.properties
i18n_en.properties
i18n_es.properties
i18n_eu.properties
i18n_gl.properties
i18n.properties
i18n_va.properties
importedServices.properties
log4j.xml
springldap.xml
67
Despliegue del aplicativo: WARs
Tanto los servicios como los módulos web se deben desplegar en el directorio
$JBOSS_HOME/server/default/deploy/agrega/
68
Galería de imágenes
69
Scripts ejecutados
1.resizeimg.sh
Si la aplicación de antemano conoce que el recurso es una imagen,
invocará directamente al script resizeimg.sh.
2. generateimg.sh
Si se da el caso contrario, se ejecuta el script generateimg.sh.
70
Software requerido
•awk
•Xvfb
•ImageMagick
•FFmpeg
•Xfonts-100dpi
•Xfonts-75dpi
•Xfonts-base
•Plugin de flash para el mozilla-firefox
71
Capa de servidor web
•Servidor web: con el fin de atender todas las peticiones y los componentes
estáticos tales como imágenes, CSS, JS, disponemos de un servidor web
Apache 2.X instalado.
72
Apache 2
73
Ficheros de configuración
httpd.conf
74
Ficheros de configuración
worker.properties
worker.list=<nodo>
worker.<nodo>.host=<ip_jboss>
worker.<nodo>.type=ajp13
worker.<nodo>.port=8009
worker.<nodo>.connect_timeout=10000
worker.<nodo>.prepost_timeout=10000
worker.<nodo>.socket_timeout=10
#This value must equal server.xml's connectionTimeout of 10 minutes
worker.<nodo>.connection_pool_timeout=600
75
Ficheros de configuración
vhost
76
Ayuda MediaWiki
Se trata de una aplicación disjunta del portal con una base de datos
diferente a la del portal, en la que no se comparte directamente la
información entre ambas aplicaciones.
77
Proceso de instalación
78
Ficheros de configuración
79
Proxy cache. Squid
80
Proxy cache. Squid
81
Configuración Squid
82
Módulo 4. Administración
– Contenidos
– Plataforma
– Configuración
83
Contenidos
• Consta de:
84
Agrega off line
85
Agrega off line
1. Requisitos hardware:
– 200 MB de espacio libre en disco duro.
– 1 GB de memoria RAM.
2. Requisitos software:
– Máquina virtual de Java (JRE) 1.5 o superior.
– Navegador Web (recomendados Internet Explorer 5+ y Firefox 2+).
86
Agrega off line
• Proceso de instalación
87
Proceso de instalación
88
Herramientas Agrega off line
89
Herramientas Agrega off line
90
Herramientas Agrega off line
– Crear ODE
– Abrir ODE
– Visualizar ODE
– Validar ODE
– Herramienta de modificación
– Configurar datos de usuario:
• Datos personales
• Tipo de empaquetador/catalogador (básico o avanzado)
• Idioma
91
Crear un ODE en off line
92
Validar y publicar un ODE en off line avanzado
93
Plataforma
– Nodo
– Usuarios
– Logs
– Informes
– Planificador
– Modificador
– Monitorizador
– Grupos de usuarios
– Taxonomías y Tesauros
94
Nodos
95
Usuarios
– Listar usuarios.
– Crear usuarios.
– Modificar usuarios.
– Describir usuarios.
– Eliminar usuarios.
– Listar usuarios inactivos.
96
Informes
• Muestra una lista con los informes creados desde el planificador. Desde
esta pantalla se puede:
– Eliminar informes.
97
Informes
98
Planificador
– Pendientes
– Ejecutándose
– Ejecutadas
99
Pendientes
– Eliminar tarea.
– Ejecutar tarea.
100
Modificador
101
Taxonomías y Tesauros
102
Configuración
103
Configuración
104
Proponer y publicar
105
Módulo 5. Operación
106
Arranque y parada de los aplicativos
Arranque:
/etc/init.d/jboss start
Parada:
/etc/init.d/jboss stop
107
Arranque y parada de los aplicativos
108
Arranque y parada de los aplicativos
Servidor Web Apache
Arranque:
/etc/init.d/httpd start
Parada:
/etc/init.d/httpd stop
MySQL
Arranque:
/etc/init.d/mysql start
Parada:
/etc/init.d/mysql stop
110
Arranque y parada de los aplicativos
LDAP
Arranque:
/etc/init.d/ldap start
Parada:
/etc/init.d/ldap stop
111
Arranque y parada de los aplicativos
Servidor NFS
Arranque:
/etc/init.d/nfs start
Parada:
/etc/init.d/nfs stop
112
Ficheros de Log
JBoss
<appender name="FILE"
class="org.jboss.logging.appender.DailyRollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.log.dir}/server.log"/>
<param name="Append" value="true"/>
113
Ficheros de Log
Apache
114
Ficheros de Log
MySQL
mysqlbinlog log_file
115
Ficheros de Log
LDAP
local4.* /var/log/openldap
116
Backups
Bases de datos
117
Backups
OpenLDAP
118
Backups
Módulos WAR
119
Backups
Índices
•Es altamente recomendable hacer un backup de los índices todos los días, a
una hora en la que no existan operaciones pendientes en disco tales como
carga de ODEs, generación de informes, etc.
•Cada vez que se haga una parada y arranque de la aplicación para efectuar
alguna migración o actualización, es obligatorio salvaguardar la información
de los índices una vez que el servidor de aplicaciones se encuentra parado.
120
Backups
Informes
121
Backups
122
Backups
Estáticos
123
Backups
# Ejecuta un script que realiza un backup de la base de datos el primer día de cada
mes a las 22:00
0 22 1 * * /home/backup/script_bd.sh
# Más ejemplos
0 2 * * 1-6 sh /raid/Backups_Data/pruebas/MyBackup.sh Diario
0 2 * * 0 sh /raid/Backups_Data/pruebas/MyBackup.sh Semanal
0 2 1 * * sh /raid/Backups_Data/pruebas/MyBackup.sh Mensual
124
Modificaciones frente a cambios frecuentes
125
Modificaciones frente a cambios frecuentes
$wgDBserver = "localhost";
$wgDBname = "db";
$wgDBuser = "user";
$wgDBpassword = "pass";
126
Modificaciones frente a cambios frecuentes
$JBOSS_HOME/server/default/conf/authbackend.properties
$JBOSS_HOME/server/default/conf/springldap.xml
127
Modificaciones frente a cambios frecuentes
Cambio de IP de Apache
128
Tareas planificadas
129
Tareas planificadas
130
Tareas planificadas
Tareas
1.Carga de ODEs.
2.Reindexado.
3.Eliminación de ODEs.
4.Informes.
131
Generación automática de ficheros
Informes de portada
Este proceso es lanzado por la plataforma todos los días a las cuatro de la
mañana y por defecto genera unos ficheros con la información del día
anterior y otros con la información de los siete días anteriores.
132
Generación automática de ficheros
Ficheros sitemap
Por defecto se lanza todos los días a la una de la mañana. Estos dos valores
junto con el número de entradas que tendrá cada fichero sitemap y el
nombre de los ficheros se pueden modificar en el fichero
generacionContenidos.properties.
133
Generación automática de ficheros
Por defecto se lanza todos los días cada hora. Tanto la periodicidad como la
hora en la que se lanza son valores configurables dentro del fichero
generacionContenidos.properties.
134
Generación automática de ficheros
Generación de catálogo
Por defecto esta tarea se lanza una vez al mes a las cinco de la mañana.
El fichero resultante con el catálogo se almacena en el directorio
referenciado por el atributo destinoInformesDir del fichero
agrega.properties.
135
Generación automática de ficheros
Generación de RSS
Esta tarea genera los ficheros rss con las últimas diez noticias, los últimos
diez ODEs publicados y los contenidos digitales educativos más descargados,
más previsualizados y más mostrados en la última semana, en el último mes
y el último año.
Por defecto se lanza todos los días a las dos de la mañana. Los ficheros
generados se almacenan en el directorio referenciado por el atributo
rss.path del fichero agrega.properties.
136
Módulo 6. Integración
•WebServices publicados
•OAI-PMH
•Gestor de sesiones
•SQI
•DRI
137
Webservices publicados
Buscar
138
Webservices publicados
Entregar
•Accesibilidad.
•Adaptabilidad.
•Durabilidad.
•Interoperabilidad.
•Reusabilidad.
139
OAI-PMH
140
OAI-PMH
Identify
Argumentos:
verb: Obligatorio. Se pasará la operación que se quiere realizar en este caso
Identify.
Formato de llamada:
La manera de obtener información sobre el repositorio es mediante una
llamada HTTP al método Identify del repositorio:
http://urlRepositorioAgrega?verb=Identify
Formato de salida:
Como respuesta el Agrega devolverá un XML codificado en UTF-8 con toda la
información del repositorio.
141
OAI-PMH
ListMetadataFormats
Argumentos:
Formato de llamada:
http://urlRepositorioAgrega?verb=ListMetadataFormats
Formato de salida:
ListSets
Argumentos:
Formato de llamada:
http://urlRepositorioAgrega?verb=ListSets
Formato de salida:
143
OAI-PMH
ListIdentifiers
Argumentos:
Formato de llamada:
http://urlRepositorioAgrega?verb=ListIdentifiers&metadataPrefix=oai_d
Formato de salida:
GetRecord
Argumentos:
Formato de llamada:
http://urlRepositorioAgrega?verb=GetRecord&metadataPrefix=oai_dc
&identifier=identificadorRegistro
Formato de salida:
ListRecords
Argumentos:
Formato de llamada:
http://urlRepositorioAgrega?verb=ListRecords&metadataPrefix=oai_dc
Formato de salida:
Mensajes de error
•BadVerb.
•BadArgument.
•CannotDisseminateFormat.
•idDoesNotExist.
147
Gestor de sesiones
148
Gestor de sesiones
•createSession.
•createAnonymousSession.
•destroySession.
149
Gestor de sesiones
createSession
150
Gestor de sesiones
createAnonymousSession
151
Gestor de sesiones
destroySession
152
SQI
Se trata de una especificación que define una capa para facilitar las búsquedas.
Especifica un estándar para resolver la problemática de las búsquedas de
contenidos digitales en entornos heterogéneos.
153
SQI
•getTotalResultsCount
•setMaxDuration
•setResultsFormat
•setResultSetSize
•setQueryLanguage
•setMaxQueryResults
•synchronousQuery
154
SQI
getTotalResultsCount
155
SQI
setMaxDuration
156
SQI
setResultsFormat
157
SQI
setResultSetSize
158
SQI
setQueryLanguage
159
SQI
setMaxQueryResults
160
SQI
synchronousQuery
161
DRI
•Búsqueda.
•Exposición.
•Almacenamiento.
•Entrega.
162
DRI
•presentarAlmacenarSesion
•presentarAlmacenar
•solicitarEntregarSesion
•solicitarEntregar
•presentarCatalogarSesion
•presentarCatalogar
163
DRI
presentarAlmacenarSesion
164
DRI
presentarAlmacenar
Este método necesita como parámetro un usuario válido, su clave dentro del
sistema y el fichero que contiene el ODE que se pretende almacenar en formato
Pif.
165
DRI
solicitarEntregarSesion
166
DRI
solicitarEntregar
167
DRI
presentarCatalogarSesion
168
DRI
presentarCatalogar
169