2.5 Moodle
2.5.1 Arquitectura
O Moodle pode ser instalado em qualquer servidor Web que suporte a linguagem de programação Hypertext Preprocessor (PHP) e um sistema de gestão de base de dados.
A junção PHP, Apache e MySQL é conhecida pela sigla PAM e é utilizada para a instalação do servidor.
A arquitectura segue o padrão conhecido por 3-camadas, na Figura 2.4, sepa- rando a camada da apresentação, a camada de aplicação e a camada de dados. Não existe qualquer tipo de ligação física entre os clientes e a base de dados, funcionando o nível aplicacional como uma camada de segurança e de vericação de permissões. O nível aplicacional usa tecnologia Web pelo que não é necessário instalar qualquer software de apoio na camada de clientes onde um simples browser é suciente para executar as operações.
Figura 2.4: Modelo de três camadas
O Moodle não obedece ao modelo orientado ao objecto, apesar de ser desenvol- vido na linguagem PHP. Segue o modelo da programação procedimental estruturada. Neste modelo, os cheiros estão organizados em categorias, constituindo bibliotecas que estão organizadas em classes relacionadas (pacotes).
O Moodle divide-se por três locais distintos, no servidor Web: A aplicação pro- priamente dita, os cheiros de dados dos alunos e os cheiros de upload dos profes- sores e o material dos cursos, criado com recurso ao Moodle (páginas Web, testes, workshops, Lições, etc).
A aplicação ocupa um directório com vários subdirectórios para os diferentes módulos, como descrito na Figura 2.5. No directório admin, está o código PHP para administrar o Moodle. O directório lang, onde existem as traduções dos textos para
Figura 2.5: Directório Moodle
a interface do Moodle em diferentes línguas (um subdirectório para cada língua). O directório auth, contém módulos para autenticar os utilizadores na plataforma. O directório blocks inclui módulos que denem os blocos que aparecem nos lados das páginas. O directório calendar mantem com o código para a gestão e visualização do calendário. O directório course, como o nome indica, disponibiliza o código para gerir e apresentar os cursos. O directório les mantem as ferramentas para visualizar e gerir os cheiros enviados para o Moodle. O directório mod, inclui os módulos do Moodle. No directório pix, estão as imagens utilizadas no sítio Moodle. O directório theme, suporta os diferentes temas que denem a aparência do sítio. No directório user, está o software para gerir e apresentar os utilizadores. O directório lib, inclui bibliotecas de código principal.
Como, já foi referido o Moodle é composto por módulos independentes (ou plug- ins). Estes podem ser agrupados pela sua utilização ou propósito, em seis grupos [14]:
1. Módulos de comunicação e ferramentas - são a base de todas as funcionalidades de comunicação, tanto interna como externa. Dentro deste grupo encontramos: fóruns, a troca de cheiros, email interno/externo, chat.
2. Módulos de produção - incluem a ajuda, procura, calendário, progresso e re- visão.
3. Módulos de envolvimento do aluno - incluem workshop, groupwork, portfolio, actividades.
4. Módulos de administração - autenticação, autorização de utilizador/curso, re- gisto.
5. Módulos de distribuição do curso - gestão de curso, ajuda, ferramentas de avaliação, percurso do aluno, testes automáticos.
6. Módulos de concepção do currículo - esqueletos de cursos, criação de módulos. O cheiro index.php é a página principal do Moodle. Ao aceder a um sitio Moodle, a primeira página que será lida será http://nome-da-máquina/index.php.
Todos os cursos têm um número único, denido na altura da criação do curso. Quando um aluno, entra num curso, o seu Uniform Resource Locator (URL) será http://nome-da-máquina/ moodle/ course/ view.php?id=1. Á medida que o aluno navega nas páginas do sitio, diferentes páginas com extensão .php mostram o con- teúdo do sitio.
Devido à modularização, os componentes do núcleo e dos módulos existem em subdirectórios separados, que podem ser actualizados, ao substituir os cheiros an- tigos por novos.
Os cheiros de dados do Moodle são guardados num directório de dados. Este directório não deve ser acessível através da Web, aos utilizadores em geral. Deve ser colocado fora do directório de documentos do servidor Web ou protegido no sistema de cheiros.
A base de dados do Moodle guarda a maior parte da informação do sítio Moodle. A base de dados armazena os objectos que foram criados. Por exemplo, o Moodle permite a criação de páginas Web, dentro de um curso. Estas páginas Web, são codicadas em HyperText Markup Language (HTML) e este código é armazenado na base de dados. Exemplos de dados guardados na Base de dados são hiperligações adicionadas a um curso, congurações e conteúdos de fóruns, wikis e testes.
As três partes, em que está dividido o Moodle, trabalham em conjunto para criar o sítio de E-learning.
Sempre que se inclui num script PHP o cheiro cong.php, o sistema vai despo- letar uma série de acontecimentos, que vão congurar aspectos do sistema, como se pode constatar na Figura 2.6. A inclusão do lib/setup.php, começa por congurar a base de dados, criando a variável global DB. Esta denição da base de dados é efectuada no lib/dmlib.php. De seguida, o curso por omissão, é denido para o sítio. O sítio é devolvido pela função get_site() da lib/datalib.php. Denidas as variá- veis globais de sessão COURSE e SITE, é invocada a função course_setup() para congurar o curso no lib/moodlelib.php.
Na biblioteca lib/setuplib.php, é inicializada a sessão, sendo por defeito denido o utilizador convidado e respectiva linguagem e tema do sítio.
Figura 2.6: A inicialização do Moodle (retirada de [6])
Feitas as inicializações de sessão, é requerido que o utilizador convidado, faça uma autenticação com base na função require_login(). Tendo o utilizador sido au- tenticado é efectuado uma conguração do curso, com as congurações de utilizador autenticado. De seguida, e após vários testes, o utilizador pode ser redireccionado para o ecrã de login.