swad: implementación
DESCRIPTION
Implementación de la plataforma SWAD (Sistema Web de Apoyo a la Docencia).TRANSCRIPT
Implementación
24 de abril de 2013Antonio Cañas Vargas, [email protected]
Centro de Enseñanzas Virtuales de la Universidad de Granada
¿Quiénes crean SWAD?
Antonio Manuel Aguilera Malagón (SWADroid)
Daniel J. Calandria Hernández (fotos, chat)
Antonio Cañas Vargas (desarrollo, coordinación, admin,)Juan Miguel Boyero Corral (SWADroid)
Adrián Gómez Anaya (WikiSwad)
Diego Montesinos Hervás (iSWAD)
Francisco A. Ocaña Lara (F.A.Q.)Helena Rodríguez Gijón (SWADroid)
...y una larga lista de colaboradores, a los que estamos muy agradecidos
13 años de SWAD
Inicios: 1999-2003
1º PID: 2003-2004
2º PID: 2005-2006
3º PID: 2006-2008
CEVUG: 2008...
Libre: 2010...
UNA: 2012...
Servidores
2004-2006Pentium 4 HT
RAM 2 GB2 HD 160 GB
2007-2008Core 2 DuoRAM 4 GB
2 HD 500 GB
2009-2010Core 2 QuadRAM 4 GB
2 HD 146 GB2 HD 1 TB
2010...2 Xeon QuadRAM 24 GB
4 HD 146 GB4 HD 500 GB
SWAD, software libre● FLOSS (Free/Libre/Open Source Software)
● Software con licencia copyleft que garantice derechos de uso, copia, modificación y redistribución● Free software (libre, ≠
freeware)● 1983, centrado en la libertad
de los usuarios● GPL, GFDL
● Open source● 1998, centrado en el modelo
de desarrollo cooperativo
SWAD, software libre
http://www.youtube.com/watch?v=tAql6_urM4I
SWAD, software libre
21/01/2010
¿Por qué liberarlo?● Motivos éticos● Motivos prácticos
● Necesidad de colaboradores
● Mejora del código● Difusión
Pasos para liberar SWAD1. Escribir el código en inglés (100%)
2. Independizarlo de la UGR (100%)
3. Traducir los mensajes a 9 idiomas (70%)
4. Añadir cabeceras AGPL a los archivos (100%)
5. Publicar el código fuente (100%)http://swad.ugr.es/source/
6. Publicar procedimiento de instalación (100%)
7. Usar sistema de control de versiones git (0%)
8. Subir a la forja GitHub (0%)
9. Automatizar instalación (0%)
Programasswad A. Cañas
CGI: c; base de datos: mysqlprado (no liberado) A. Cañas
c; base de datos: mysqlfotomaton D. J. Calandria
c++, OpenCV de Intelfoto_mediana/foto_promedio D. J. Calandria
c, OpenCV de Intelchat D. J. Calandria
servidor: c++; cliente: Applet Java; protocolo IRCSWADroid (app Android) J. M. Boyero, A. Aguilera, H. Rodríguez
cliente: JavaiSWAD (app iOS) D. Montesinos
cliente: Objective C
CGI+MySQL+XHTML+CSS+Ajax● Cada vez que un usuario pulsa en alguna opción, Apache llama a ejecutar el programa compilado swad● Hasta 2000 veces por minuto (30 por segundo)● Normalmente 350 veces por minuto (6 por segundo)
● El programa swad consulta la BD, genera todo el código XHTML de la página, y lo envía a la salida estándar
Módulo principal: escrito en C● Aprox. 150 000 líneas de código● 55 .c; 58 .h; 1 .py; 1 .js; 2 .css
Módulo principal: escrito en C● Ausencia de funciones de biblioteca especializadas en web
● Programado desde cero, excepto:● Base de datos: MySQL C API
http://dev.mysql.com/doc/refman/5.0/en/c-api.html● Cifrado: SHA-256 y SHA-512
http://www.ouah.org/ogay/sha2/● SOAP: gSOAP
http://www.cs.fsu.edu/~engelen/soap.html
Base de datos
http://swad.ugr.es/database/img/swad_database.jpg
90 tablas
Complementos● Es posible desarrollar complementos (plugins) que pueden ejecutarse en otros servidores o en móviles. Ejemplo: SWADroid
http://swad.ugr.es/ws/
● Los complementos interactúan con el programa swad a través de un servicio web SOAP con varias operaciones o funciones descritas en el WSDL:
http://swad.ugr.es/ws/swad.wsdl
● ¿Implementar también REST?
¿Cómo colaborar?● Si no quieres/no sabes programar:
● Aspectos legales● Traducción: http://swad.ugr.es/translation/● Manuales: http://swad.ugr.es/wiki/● Diseño gráfico● Administración de titulaciones● Difusión
¿Cómo colaborar?● Si quieres programar:
● Hay multitud de mejoras posibles:http://swad.ugr.es/roadmap/● Ejemplos:
● Editor de texto con formato, enlaces, imágenes, fórmulas...● Maquetación con CSS
● Lo más fácil es desarrollar complementos u otros módulos independientes del programa swad● Ejemplos:
● Servicios para smartphones (ampliar SWADroid, versión para iOS)● Pizarra