1. Implementación
24 de abril de 2013
Antonio Cañas Vargas, acanas@ugr.es
Centro de Enseñanzas Virtuales de la Universidad de Granada
2. ¿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
4. Servidores
2004-2006
Pentium 4 HT
RAM 2 GB
2 HD 160 GB
2007-2008
Core 2 Duo
RAM 4 GB
2 HD 500 GB
2009-2010
Core 2 Quad
RAM 4 GB
2 HD 146 GB
2 HD 1 TB
2010...
2 Xeon Quad
RAM 24 GB
4 HD 146 GB
4 HD 500 GB
5. 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
8. ¿Por qué liberarlo?
● Motivos éticos
● Motivos prácticos
● Necesidad de
colaboradores
● Mejora del código
● Difusión
9. Pasos para liberar SWAD
1. 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%)
10. Programas
swad A. Cañas
CGI: c; base de datos: mysql
prado (no liberado) A. Cañas
c; base de datos: mysql
fotomaton D. J. Calandria
c++, OpenCV de Intel
foto_mediana/foto_promedio D. J. Calandria
c, OpenCV de Intel
chat D. J. Calandria
servidor: c++; cliente: Applet Java; protocolo IRC
SWADroid (app Android) J. M. Boyero, A. Aguilera, H. Rodríguez
cliente: Java
iSWAD (app iOS) D. Montesinos
cliente: Objective C
11. 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
12. Módulo principal: escrito en C
● Aprox. 150 000 líneas de código
● 55 .c; 58 .h; 1 .py; 1 .js; 2 .css
13. 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
15. 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?
16. ¿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
17. ¿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