SWAD: implementación

17
Implementación 24 de abril de 2013 Antonio Cañas Vargas, [email protected] Centro de Enseñanzas Virtuales de la Universidad de Granada

description

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

Transcript of SWAD: implementación

Page 1: SWAD: implementación

Implementación

24 de abril de 2013Antonio Cañas Vargas, [email protected]

Centro de Enseñanzas Virtuales de la Universidad de Granada

Page 2: SWAD: implementación

¿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

Page 3: SWAD: implementación

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...

Page 4: SWAD: implementación

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

Page 5: SWAD: implementación

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

Page 6: SWAD: implementación

SWAD, software libre

http://www.youtube.com/watch?v=tAql6_urM4I

Page 7: SWAD: implementación

SWAD, software libre

21/01/2010

Page 8: SWAD: implementación

¿Por qué liberarlo?● Motivos éticos● Motivos prácticos

● Necesidad de colaboradores

● Mejora del código● Difusión

Page 9: SWAD: implementació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%)

Page 10: SWAD: implementación

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

Page 11: SWAD: implementación

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

Page 12: SWAD: implementación

Módulo principal: escrito en C● Aprox. 150 000 líneas de código● 55 .c; 58 .h; 1 .py; 1 .js; 2 .css

Page 13: SWAD: implementación

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

Page 14: SWAD: implementación

Base de datos

http://swad.ugr.es/database/img/swad_database.jpg

90 tablas

Page 15: SWAD: implementación

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?

Page 16: SWAD: implementación

¿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

Page 17: SWAD: implementació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