Arquitectura de Moodle

De MoodleDocs
La versión para imprimir ya no se admite y puede contener errores de representación. Actualiza los marcadores del navegador y utiliza en su lugar la función de impresión predeterminada del navegador.

Desde la perspectiva de un administrador de sistemas, Moodle ha sido diseñado de acuerdo con los siguientes criterios:

Moodle debe poder ejecutarse en la más amplia posible variedad de plataformas

La plataforma de aplicaciones Web que funciona en la mayoría de las plataformas es PHP combinada con MySQL, y este es el entorno en el que Moodle ha sido desarrollado (sobre Linux, Windows, y Mac OS X). Moodle también usa la librería ADOdb para la abstracción de bases de datos, lo que significa que Moodle puede usar más de diez marcas diferentes de bases de datos (desafortunadamente, a pesar de ello, no puede aún crear tablas en todas esas bases de datos. Hablaremos más sobre esto más adelante).

Moodle debe ser fácil de instalar, aprender y modificar

Los primeros prototipos de Moodle (1999) se construyeron usando Zope, un avanzado servidor de aplicaciones Web orientado a objetos. Desafortunadamente me pareció que aunque la tecnología era bastante buena, tenía una curva de aprendizaje muy elevada y no era muy flexible en términos de administración del sistema. El lenguaje PHP, por otro lado, es muy fácil de aprender (especialmente si has hecho algo de programación usando cualquier otro lenguaje de script). Pronto tomé la decisión de evitar usar un diseño orientado a clases, con la finalidad, una vez más, de mantenerlo fácil de entender para los principiantes. La reutilización del código se archiva en librerías con funciones claramente tituladas y con una disposición de los archivos de script, consistente. PHP es también fácil de instalar (existen versiones ejecutables para todas las plataformas) y está ampliamente disponible, pues la mayoría de los servicios de alojamiento lo proporcionan como un estándar.

Debe ser fácil de actualizar desde una versión a la siguiente

Moodle sabe cuál es su versión (así como las versiones de todos los módulos) y se ha construido un mecanismo interno para que Moodle pueda actualizarse a sí mismo de forma apropiada a las nuevas versiones (por ejemplo, puede renombrar las tablas de las bases de datos o añadir nuevos campos). Usando CVS en Unix, por ejemplo, uno tan sólo tiene que hacer un "cvs update -d" y luego visitar la página principal del sitio para completar la actualización.

Debe ser modular para permitir el crecimiento

Moodle tiene una serie de características modulares, incluyendo temas, actividades, interfaces de idioma, esquemas de base de datos y formatos de cursos. Esto le permite a cualquiera añadir características al código básico principal o incluso distribuirlas por separado. Hablaremos más de esto en la siguiente sección.

Debe poder usarse junto a otros sistemas

Una de las cosas que hace Moodle es mantener todos los archivos para un curso en un único directorio en el servidor. Esto podría permitir que el administrador de un sistema proporcione similares formas de acceso a un nivel de archivo para cada profesor, tal como Appletalk, SMB, NFS, FTP, WebDAV y demás. Los módulos de autenticación le permiten a Moodle usar LDAP, IMAP, POP3, NNTP y otras bases de datos como fuentes de información de los usuarios. Por otra parte, aún queda trabajo por hacer sobre esto. Para futuras versiones de Moodle tenemos planeadas las siguientes características: importación y exportación de los datos de Moodle utilizando formatos basados en XML (incluyendo IMS y SCORM), incrementar el uso de hojas de estilo para el formateo de interfaces (de manera que puedan integrarse visualmente en otros sitios Web).