SWAD: implementación

Preview:

DESCRIPTION

Implementación de la plataforma SWAD (Sistema Web de Apoyo a la Docencia).

Citation preview

Implementación

24 de abril de 2013Antonio Cañas Vargas, acanas@ugr.es

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