Статья посвящена описанию архитектуры виртуальной среды обучения Moodle. Описан поэтапный процесс создания нового плагина для системы Moodle, на примере которого показана внутренняя архитектура системы. В статье также описывается структура курсов в Moodle и внутренняя система безопасности.
MOODLE ARCHITECTURE.pdf Введение Moodle является системой управления курсами (CMS) с открытым исходным кодом, также известной как система управления обучением (LMS) или виртуальной среды обучения (VLE). Она стала очень популярна среди преподавателей во всем мире как инструмент для создания динамических веб-сайтов для своих студентов. Moodle создаёт виртуальное пространство, в котором студенты и преподаватели объединяются для процесса обучения. Обучающий сайт под управлением Moodle разделен на курсы. В каждом курсе есть пользователи, разделенные по ролям на учителей и студентов. Каждый курс включает набор ресурсов и действий. Ресурсом может быть файл PDF, HTML-страница или ссылка на внешний ресурс. К действиям можно отнести форум, опрос или вики. Ресурсы и действия структурированы в зависимости от курса. Например, они могут быть сгруппированы в логические темы (рис.1). Рис. 1. Курсы в Moodle Архитектура Moodle Moodle состоит из трех частей: 1. Код, как правило, в директории /var/www/moodle или ~/htdocs/moodle. Веб-сервер не должен иметь доступ к файлам в этих папках. 2. База данных, управляемая одной из объектно-реляционных систем управления базами данных (RDBMS). Moodle добавляет префикс для всех имен таблиц, что даёт возможность использовать данные в других приложениях. 3. Папка moodledata. Это папка, где хранятся загруженные и созданные файлы Moodle, поэтому она должна быть доступна для записи веб-сервером. Из соображений безопасности директория moodledata должна располагаться вне веб-сервера. Информация об этих трех частях хранится в файле config.php в корневой папке moodle после установки системы. Плагины Как и многие другие успешные проекты с открытым кодом, Moodle состоит из множества модулей, работающих вместе с ядром системы. Модульная архитектура очень удобна, она позволяет модернизировать Moodle в различных направлениях. Важным преимуществом открытого исходного кода является возможность адаптировать его к потребностям пользователей. Однако доступ к настройкам в коде может привести к проблемам, если программисту не хватает опыта или когда придет время для обновления даже при использовании хорошей системы контроля версий. Возможность настраивать Moodle и создавать новые автономные модули, которые взаимодействуют с ядром Moodle через определенный API, упрощает задачу адаптации LMS к потребностям пользователей и сохраняет настройки даже при обновлении ядра системы Moodle. Существует множество вариантов архитектур, где система состоит из ядра, окруженного плагинами. Moodle имеет относительно большое ядро, и плагины строго типизированы. Под выражением «большое ядро» имеется в виду большой набор функций, выполняемых ядром. Противоположной является архитектура, где ядром является установщик плагинов, которыми выполняются основные функции. В Moodle плагины строго типизированы, т.е. в зависимости от типа функциональности, которую требуется реализовать, создаются плагины различных типов и используются различные API. Например, модуль Аутентификация будет отличаться от модуля Тест. На данный момент насчитывается около 35 различных типов плагинов. В настоящее время Moodle развивается в направлении уменьшения функциональности ядра и увеличения функциональности плагинов. Другая тенденция заключается в стандартизации различных типов плагинов, чтобы при обновлении или установке плагины работали одинаково. Плагин в Moodle представляет собой папку, содержащую набор файлов. Плагин имеет тип и название, которые определяют структуру каталога. Тип плагина используется как префикс, а название используется в имени директории. Несколько примеров показаны в таблице. Плагины и их директории Тип плагина Имя плагина Директория mod (модуль) forum (форум) mod/forum mod (модуль) quiz (тест) mod/quiz block (боковой блок) navigation (навигация) blocks/navigation qtype (опрос) shortanswer (краткий ответ) question/type/shortanswer quiz (отчеты по тестам) statistics (статистика) mod/quiz/report/statistics Последний пример показывает, что модуль может состоять из плагинов. На данный момент только модули могут быть составными, потому что они являются основным типом плагинов в Moodle [1, с. 12]. Создание плагина Рассмотрим архитектуру Moodle на примере создания нового плагина. По сложившейся традиции новый плагин будет выводить сообщение «Hello world». Данный плагин нельзя отнести к какой-либо группе плагинов Moodle, это всего лишь сценарий без какой-либо связи с другими модулями, поэтому он будет являться «локальным» плагином. Назовём плагин "Greet" (Приветствие), следовательно, путь к директории удет local/greet. Каждый плагин должен содержать файл version.php, который определяет основные метаданные о нем. Этот файл используется системой Moodle для установки и обновления плагина. Например, local/greet/version.php содержит:
Jonathan Moore, Michael Churchward. Moodle 1.9 Extension Development. 2010.
Michael de Raadt. Moodle 1.9 Top Extensions Cookbook. 2010.