Você está na página 1de 12

Moodle e web services: desenvolvimento de

uma aplicação móvel de apoio ao e-learning


Douglas Daniel Pereira da Rosa & Paulo César Siécola

âmbito Global [1]. A Tabela I exibe alguns dos resultados


Abstract—This article addresses the use of mobile technology destes relatórios:
for distance education and describes the development process of a
mobile application to support e-learning using the Virtual TABELA I
Learning Environment Moodle, the push message server, TECNOLOGIAS EMERGENTES: RELATÓRIOS DA IBERO-AMÉRICA E GLOBAL [1]
AirNotifier, and the mobile notifications service for Android,
Google Cloud Messaging. The application was structured in a Relatório da Ibero-América Relatório Global
Service-oriented Architecture (SOA) that uses as resources the Horizonte de implantação: um ano ou menos
cloud computing and the web services. • Aplicações móveis • Computação em Nuvem
• Computação em nuvem • Aplicações móveis
Index Terms—cloud computing, web services, moodle, e-
• Conteúdo aberto • Leituras sociais
learning.
• Ambientes colaborativos • Tablets
Resumo—Este artigo aborda a utilização de tecnologias móveis
para a educação a distância e descreve o processo de
desenvolvimento de uma aplicação móvel para apoio ao e- Em ambos os relatórios, nota-se que as aplicações móveis e
learning, utilizando o Ambiente Virtual de Aprendizagem a computação nas nuvens são tendências de tecnologias para
Moodle, o servidor de mensagens push, AirNotifier, e o serviço de a educação. Ainda, segundo a mesma publicação da NMC, as
notificações móveis para Android, Google Cloud Messaging. A pessoas pretendem poder trabalhar, aprender e estudar quando
aplicação foi estruturada em uma Arquitetura Orientada a e onde queiram [1]. Nesse cenário, a Educação a distância
Serviços (Service Oriented Architecture - SOA), que utiliza como (EAD) é uma das soluções que pode atender essa demanda.
recursos a computação nas nuvens (cloud computing) e os web De acordo com a legislação brasileira, a Educação a
services. Distância é definida como uma modalidade educacional, que
Palavras chave—cloud computing, web services, moodle, e-
tem sua mediação didático-pedagógica realizada através de
leraning.
tecnologias de informação e comunicação, onde os estudantes,
professores e tutores desenvolvem suas atividades educativas
I. INTRODUÇÃO
sem que seja necessário estarem presentes no mesmo local
A epopeia do homem em busca da evolução jamais terá fim. e/ou na mesma hora.
Desde os primórdios, existe a busca ininterrupta pelo A Associação Brasileira de Educação a Distância (ABED),
desenvolvimento humano no âmbito individual e coletivo. A em seu Censo EAD 2013, contabilizou que existe um total de
educação e a tecnologia são peças fundamentais para essa 15.733 cursos EAD, divididos em: autorizados/credenciados
jornada de conhecimento e não devem ser desassociadas, uma totalmente a distância; autorizados/credenciados
vez que ambas sempre caminharam juntas para atender às semipresenciais; disciplinas; livres não corporativos e livres
novas perspectivas e desafios dos padrões impostos pelo corporativos. O número de matrículas chega à casa dos 4
homem moderno de cada época. milhões [3]. No Instituto Nacional de Telecomunicações
Com o objetivo de atender a essas novas perspectivas e (Inatel), localizado em Santa Rita do Sapucaí – Minas Gerais
desafios, através da exploração e do uso de novas tecnologias (MG), instituição para a qual este projeto experimental é
para a educação, nasceu a New Media Consortium (NMC), desenvolvido, a Educação a Distância também já é uma
uma comunidade internacional que envolve centenas de realidade, ela atualmente possui 14 cursos de extensão
universidades, faculdades e centros de pesquisa. Em sua totalmente a distância, sendo 12 em português e 2 em
publicação “Perspectivas Tecnológicas – Educação Superior espanhol, que já receberam, aproximadamente 1200 inscrições
na Ibero-américa 2012-2017”, através de dois relatórios, de 2011 a 2015.
apresenta algumas tecnologias emergentes, que refletem No âmbito geral, um dos principais métodos pelo qual a
tendências da educação superior: o primeiro é centrado na EAD é realizada, é através do e-learning (electronic learning),
educação superior na Ibero-America, enquanto o segundo é de termo utilizado para conceituar todas as formas de Educação a
Distância, que se utilizam de meios eletrônicos como caminho
para atingir o aluno [4]. O m-learning (mobile learning) é uma
Trabalho de Conclusão de Curso apresentado ao Instituto Nacional de das áreas presentes dentro do e-learning e visa à utilização de
Telecomunicações, como parte dos requisitos para a obtenção do Certificado dispositivos móveis para realização da EAD, conforme ilustra
de Pós-Graduação em Desenvolvimento em SOA com Cloud Computing e a Figura 1.
Conectividade. Orientador: Prof. Paulo César Siécola. Trabalho aprovado em
07/2015.
médica ou odontológica. Não menos importantes, existem
outros fatores que impulsionaram a escolha por este tipo de
aplicação: o rápido acesso às informações desejadas; a
sincronização de dados dos cursos e o recebimento de
notificações instantâneas nos dispositivos todas as vezes que
um evento importante ocorrer, como, por exemplo, após a
disponibilização de uma nova atividade em um dado curso.
Com esta pesquisa, visa-se contribuir com a comunidade de
desenvolvedores, demonstrando o desenvolvimento de uma
aplicação móvel Android, que faz uso de tecnologias distintas
nas nuvens. Estas tecnologias, como Google Cloud
Messaging, AirNotifier e o AVA Moodle, foram estruturadas
para comunicarem-se através de uma Arquitetura Orientada a
Serviços (SOA), utilizando-se de web services.
Neste estudo, o primeiro protótipo da aplicação foi
desenvolvido. Ele contempla a primeira das quatro fases em
que o desenvolvimento do projeto foi dividido. Todas as
quatro fases serão abordadas no Tópico V.
Este artigo está estruturado em nove tópicos, neste primeiro
tópico, o tema, o problema, os objetivos e a relevância da
pesquisa foram abordados; o segundo tópico conceitua e
descreve como a SOA, os Web Services e a Cloud Computing
Fig. 1. Camadas da EAD: e-learning e m-learning. serão integrados para a construção deste projeto. O terceiro
tópico apresenta os Ambientes Virtuais de Aprendizagem e
Considerando a incessante demanda do homem por o Moodle, plataforma que é o coração do projeto. No quarto
evolução tecnológica e educacional, as tecnologias emergentes tópico, as Aplicações Móveis são abordadas, revelando a sua
destacadas na Tabela I, a EAD como possibilidade para se importância através de dados de utilização de dispositivos
estudar onde e quando quiser e o cenário do e-learning, esta móveis no Brasil e no mundo. O quinto tópico detalha a
pesquisa tem como objetivo descrever o desenvolvimento da Concepção do Projeto, enquanto o sexto tópico demonstra a
aplicação EAD Inatel, uma ferramenta de apoio móvel à EAD Instalação e Configuração dos Serviços necessários. O
(m-learning) do Inatel. sétimo tópico mostra as etapas percorridas durante o
O ponto motivador para o desdobramento desta pesquisa Desenvolvimento, apresentando o primeiro protótipo da
nasceu da necessidade apontada pelos cursistas da modalidade aplicação desenvolvida. O oitavo tópico aborda as
à distância do Inatel. Através do Núcleo de Educação a Notificações Push, que permitem avisos instantâneos aos
Distância (NEaD) da instituição, ao longo dos seus quatro dispositivos dos usuários quanto a eventos ocorridos em seu
anos de atividade, foi registrado um aumento significativo de curso. O nono tópico, as Conclusões, descreve os resultados
solicitações dos alunos a distância por uma aplicação móvel. obtidos ao término da pesquisa. E por fim, as Referências
Desta forma, quando concluída, a aplicação será Bibliográficas são apresentadas.
disponibilizada como mais um recurso de apoio para a EAD
da instituição. II. ARQUITETURA ORIENTADA A SERVIÇOS, WEB SERVICES E
Atualmente, a instituição oferece o Ambiente Virtual de CLOUD COMPUTING
Aprendizagem (AVA) para acesso via web. Através da
aplicação proposta neste artigo, os cursistas poderão interagir,
A Arquitetura Orientada a Serviços (Service Oriented
também, através de dispositivos móveis com o AVA nas
Architecture – SOA) é um conceito que existe há algum tempo
nuvens, neste caso, o Moodle, que será abordado no Tópico
e prega, basicamente, que grandes problemas devem ser
III.
decompostos e tratados como um conjunto menor de
A escolha do desenvolvimento desta aplicação, também se
problemas. Nesse âmbito, cada serviço é responsável pela
deu pelo fato dos dispositivos móveis terem uma alta taxa de
solução de uma determinada situação-problema menor, e dada
utilização no mundo todo, assunto que será abordado com
a comunicação existente entre eles, visam resolver o problema
mais detalhes no Tópico IV. Tais dispositivos podem ser
maior. [5]
grandes favorecedores para a EAD, uma vez que estão quase
Há, comumente, uma confusão feita quanto à terminologia
sempre juntos de seus usuários. Desta forma, a mobilidade
de web services e serviços. Web service é a tecnologia pela
oferecida por eles, torna-se um fator importante, já que
qual uma requisição será feita, enquanto que serviço é o que se
permite que um aluno acesse o AVA de qualquer local,
deseja alcançar através dessa requisição. A combinação desses
inclusive, possibilitando que ele possa aproveitar melhor
serviços – internos ou externos – é estrutura da SOA. [6]
ocasiões onde esteja com tempo ocioso para atividades de seus
De acordo com o National Institute of Standards and
cursos EAD, como durante o transporte em ônibus, metrôs e
Technology (NIST) a computação nas nuvens (cloud
aviões ou até mesmo durante a espera para uma consulta
computing) pode ser definida como um modelo para oferecer
acesso a uma rede compartilhada de recursos computacionais
configuráveis (ex.: servidores, depósitos de arquivos,
aplicações e serviços), de forma ubíqua, conveniente e sob
demanda. O processo pode ser rapidamente provisionado e
liberado com um esforço mínimo de gerenciamento ou de
interação com o provedor de serviços [7]. Quando um serviço
é externo à organização, ele pode ou não utilizar a cloud
computing. O diagrama de Venn apresentado na Figura 2,
ilustra o relacionamento entre os web services, a SOA e a
cloud computing.

Fig. 3. Elementos do cloud computing. [4]

Neste projeto, os serviços utilizados para a solução do


problema principal, são acessados através de web services
localizados na nuvem. O responsável por prover e requisitar os
serviços são: o próprio AVA adotado e a aplicação móvel
Fig. 2. SOA, web services e Cloud Computing. [8]
desenvolvida.

Nota-se que os web Services abrangem toda a parte de cloud III. AMBIENTE VIRTUAL DE APRENDIZAGEM
computing, uma vez que eles são utilizados para basicamente Dentre vários recursos utilizados pelas instituições para
todas as conexões realizadas pela tecnologia. Enquanto isso, a prover a EAD em ambientes virtuais computacionais, um dos
SOA pode ou não utilizar o cloud computing e web services mais importantes é o Ambiente Virtual de Aprendizagem
em sua composição. (AVA). Os AVA são desenvolvidos e/ou mantidos por
Para que as requisições de serviço usando web services instituições acadêmicas ou empresas privadas. É uma
sejam feitas, é necessária a utilização de um protocolo tal plataforma que fornece aos usuários uma vasta gama de
como o Simple Object Access Protocol (SOAP) ou o mais ferramentas que podem ser utilizadas durante um curso que
comum, utilizado para o acesso a web em geral, Hypertext vão desde materiais de estudo, grupos de discussões, tarefas,
Transfer Protocol (HTTP). O protocolo utilizado como meio notas, dentre outros. Essas ferramentas visam favorecer a
para a comunicação dos elementos que compõem este projeto interação entre professores, tutores e alunos. [9]
é o HTTP e, também, um estilo de arquitetura de software Para este projeto, adota-se como AVA o Moodle, que é
chamado Representational State Transfer (REST). utilizado pelo Inatel. O Moodle é um AVA open source, ou
O REST foi escolhido por ser mais leve, sendo assim, mais seja, com o código aberto, que atualmente é dirigido e
indicado para aplicações móveis, que muitas vezes contam coordenado pelo Moodle HQ, uma companhia de 30
com banda de comunicação limitada com a Internet. desenvolvedores financiados e apoiados por uma rede de mais
Todas as mensagens trocadas entre as partes que requisitam de 60 companhias espalhadas ao redor do mundo. Sua
um serviço e/ou respondem a uma requisição são feitas no primeira versão (1.0) foi lançada em agosto de 2002 e teve
formato JavaScript Object Notation (JSON). como seu fundador o australiano Martin Dougiamas.[10]
Todos os elementos citados anteriormente visam possibilitar A versão do Moodle utilizada no Inatel é a 1.9, que não
o acesso de dados, aplicações ou arquivos nas nuvens, ou seja, pôde ser utilizada neste projeto devido à falta de suporte
de qualquer local. Para o m-learning, isso é um fator nativo a aplicações móveis e web services. Por esta razão,
extremamente benéfico, já que para que o acesso ao AVA utilizou-se a versão 2.8+, que futuramente será adotada pela
ocorra, basta que o usuário disponha de um dispositivo instituição.
compatível e de conexão com a Internet, conforme ilustra a
Figura 3. IV. AS APLICAÇÕES MÓVEIS
A tecnologia móvel compreende vários tipos de
dispositivos, sendo os mais populares: os smartphones,
phablets e tablets. A diferença entre eles se dá pela quantidade
de polegadas do dispositivo, sendo smartphone de 3 a 5 questionários, tarefas, dentre outros. Nesta fase, um segundo
polegadas, phablets: de 5 a 7 polegadas e tablets: de 7 a 11 protótipo da aplicação móvel será gerado;
polegadas. • Fase 3 – Interação: implementação dos recursos de
Segundo estudos do DazeInfo, no fim de 2014, existiam interação existentes no Moodle, como bate papos, mensagens
cerca de 1.63 bilhão de smartphones ativos em todo o mundo. entre usuários, fóruns, dentre outros. Nesta fase, o terceiro
No Brasil, 6º país no ranking, o número de dispositivos protótipo da aplicação móvel será gerado;
chegou a 38,8 milhões. [11] • Fase 4 – Plugins: desenvolvimento de plugins que visam
Um dos principais motivos pelos quais os dispositivos melhorar a interação entre as partes requisitantes de serviços e
móveis se tornaram tão integrados à rotina do homem foi pela gerar a versão final do aplicativo para Android.
sua capacidade de instalação de aplicações móveis (aplicativos Este artigo aborda a realização da Fase 1, onde a arquitetura
ou apps) dos mais variados formatos e para os mais diversos e os elementos essenciais foram definidos, bem como a
fins. Através da vasta gama de apps disponíveis, é possível comunicação entre estes elementos, através de web services,
que o usuário consiga consultar, em tempo real, a temperatura, foi estabelecida. O resultado da Fase 1 é o primeiro protótipo
realizar um complexo cálculo matemático, ou simplesmente, da aplicação móvel.
manter contato com as pessoas através de aplicativos de Há, também, o plano de se criar outras duas aplicações
mensagem instantânea. O que definirá qual aplicação o móveis nativas para os dispositivos que utilizam o iOS e o
dispositivo terá, cabe inteiramente ao usuário e às suas Windows Phone como sistemas operacionais. Para cada um
necessidades. deles, as quatro fases acima também serão adotadas.
As limitações quanto aos aplicativos disponíveis para cada Os próximos tópicos abordarão as ferramentas de
dispositivo se dão através do sistema operacional. Em âmbito desenvolvimento, os recursos de software e hardware e os
global, os mais populares são: Android, iOS, Windows Phone serviços externos utilizados.
e BlackBerry OS. Segundo estatísticas do IDC, em 2014, o
mercado de dispositivos, quanto ao sistema operacional, ficou A. As ferramentas de desenvolvimento
dividido conforme apresenta a Tabela II. As ferramentas utilizadas para o desenvolvimento da
aplicação móvel foram:
TABELA II • Eclipse e Android Developers Tools: Interface de
DIVISÃO DO MERCADO DE DISPOSITIVOS MÓVEIS INTELIGENTES POR SISTEMA
OPERACIONAL EM 2014 [12]
Desenvolvimento (IDE) para JAVA (Android);
• Adobe Dreamweaver CC: IDE para PHP (PHP: Hypertext
Preprocessor, originalmente Personal Home Page);
Android iOS
Windows BlackBerry
Outros • Adobe Photoshop CC: editor de imagens;
Phone OS
• FlashFXP v4.2: software de transferência FTP (File
Transfer Protocol).
76.6% 19.7% 2.8% 0.4% 0.5% B. Os elementos de software
Os elementos de software da Fase 1 são aplicações web que
Para o início deste projeto, adotou-se o desenvolvimento do possuem interfaces para comunicação através de web services:
aplicativo para o sistema operacional Android, já que ele está • Moodle 2.8+: é o AVA, o coração do projeto.
presente em 76.6% dos dispositivos móveis utilizados no Desenvolvido em PHP, que utiliza como banco de dados o
mundo. MySQL;
O Android é um sistema operacional open source mantido • AirNotifier: servidor de Notificações Móveis (Push).
pela gigante tecnológica Google e já está presente em mais de Desenvolvido em Python que utiliza como banco de dados o
um bilhão de smartphones, phablets e tablets. Cada uma de MongoDB.
suas versões recebe o nome de um doce diferente e sua última
C. Os elementos de hardware
versão é a 5.0, intitulada de Lollipop (pirulito).
Neste projeto, a versão mínima requerida para o aplicativo é Os elementos de hardware estão alocados na nuvem. São
a 4.4, KitKat, que segundo o site oficial está presente em dois servidores, como descritos abaixo:
41.4% dos dispositivos Android. [13] • Bluehost Shared Server: responsável pela hospedagem do
Moodle 2.8+;
V. CONCEPÇÃO DO PROJETO • Inmotion Dedicated Server: responsável pela hospedagem
do AirNotifier.
Este projeto foi dividido em quatro fases de realização,
sendo cada uma delas responsáveis por: D. Os serviços externos
• Fase 1 – Comunicação: estabelecimento da comunicação Os serviços externos são aqueles que não estão disponíveis
básica entre os elementos principais envolvidos na arquitetura através de nenhum dos servidores apresentados nos elementos
do projeto e desenvolvimento do primeiro protótipo da de hardware. Neste caso, o projeto utiliza apenas um, o
aplicação móvel; Google Cloud Messaging (GCM).
• Fase 2 – Conteúdo: implementação dos recursos para O GCM é um serviço gratuito que a empresa Google
exibições dos conteúdos nativos do Moodle, como lições, oferece para Android, que é capaz de enviar mensagens de
seus servidores para os usuários com dispositivos Android.
VI. INSTALAÇÃO E CONFIGURAÇÃO DOS SERVIÇOS Web > Mobile > Habilitar web servisse para dispositivos
O desenvolvimento da aplicação móvel requer, como móveis, conforme ilustrado na Figura 5.
primeira etapa, a instalação do Moodle em um servidor e a
ativação do suporte para web services. Somente assim será
possível fazer a requisição de dados do ambiente virtual de
aprendizagem. Como o servidor atual do Moodle do Inatel não
suporta a versão 2.8+ e sim, somente, a versão 1.9, foi
necessária realizar a instalação para desenvolvimento em outro
servidor. Foi feito o download da versão 2.8+ do Moodle no
site https://download.moodle.org/ e a instalação foi realizada
no servidor Bluehost, no seguinte endereço: Fig. 5. Habilitando web services no Moodle
http://www.douglasrosa.com/pos/tcc/moodle/.
É importante ressaltar que a versão 2.8+ do Moodle já conta Depois de habilitado, foi possível acessar a opção Serviços
com um design responsivo para a web, ou seja, ele já se adapta externos e definir quais serviços estariam disponíveis aos
para a exibição em dispositivos móveis. Então, por qual razão usuários. Por padrão, o Moodle tem um conjunto de serviços
desenvolver um aplicativo ao invés de utilizar da definidos na opção Moodle mobile web service. Esta opção
responsividade do Moodle? A resposta está nas funções não permite que sejam adicionados ou retirados serviços. Foi
nativas, que podem ser utilizadas ao se desenvolver necessária, através do banco de dados, realizar uma
especificamente para um sistema operacional. modificação em sua estrutura para tal. Ela teve que ser
A responsividade visa garantir que quando uma plataforma desvinculada como conjunto de funções exclusivas para o
web (ou site) é acessada através do navegador (browser) de Moodle e passou a ser um conjunto de funções
um dispositivo móvel, o usuário tenha a melhor experiência. personalizáveis. Para que isso ocorresse, foi necessário alterar
Contudo, devido à dependência do navegador para funcionar, a tabela mdl_external_services, no registro 1 (Moodle mobile
ela está limitada a executar apenas funções reconhecidas pelo web service) na coluna component, atribuindo-a o valor
mesmo. NULL. Dessa forma, tornou-se possível adicionar ou remover
Um aplicativo nativo não está limitado ao uso das funções serviços do grupo de acesso Mobile. Uma nota importante é
estabelecidas por um navegador. Ele pode acessar uma gama que cada conjunto de serviços possui um nome para que possa
de funções nativas do sistema operacional, aumentando o ser acessado, tais nomes não são mostrados abertamente no
número de possibilidades de serviços oferecidos ao usuário. Moodle, sendo conhecidos apenas através do acesso ao banco
Nesta Fase 1 do projeto, as funções nativas utilizadas foram as de dados na mesma tabela supracitada, na coluna shortname.
de acesso e escrita ao calendário e as de recebimento e O nome do conjunto de serviços utilizados no
processamento de notificações push, que não disponíveis desenvolvimento do aplicativo é o moodle_mobile_app.
através do acesso do Moodle por um navegador. Ainda, para que seja possível o envio de notificações ao
A Figura 4 exibe a tela principal do Moodle após a sua usuário, de acordo com as suas configurações (ex.: ser
instalação com a personalização do logo do Inatel e a criação notificado quando uma postagem em fórum seja respondida,
de dois cursos, que serão utilizados como teste para o ou quando uma nova atividade é adicionada) é necessária a
aplicativo móvel: Introdução ao SOA e TCC instalação do AirNotifier.
Desenvolvimento. O AirNotifier é um servidor de envio de mensagens por
Push, sendo compatível com iOS, Android, Windows Phone e
alguns serviços de SMS. O download do servidor para
instalação foi feito em http://airnotifier.github.io/ e instalado
no Inmotion Dedicated Server e está acessível através do
endereço http://moodle.inatel.br:8801/. A Figura 6 ilustra a
interface principal do AirNotifier.

Fig. 4. Tela principal do Moodle

Após a instalação, foram necessárias realizar algumas


configurações para ativar o suporte aos web services, através
da opção Administração do site > Plugins > Serviços da
Fig. 6. Tela principal do AirNotifier
O envio de notificações a dispositivos através do móveis. Os dados requisitados são URL do AirnotiFier, porta,
AirNotifier demandou a criação de um aplicativo na nome da app móvel, nome do aplicativo AirNotifier e chave
plataforma App Engine (https://appengine.google.com) do de acesso. Conforme ilustra a Figura 9.
Google. O aplicativo criado permite a utilização do serviço
Google Cloud Messaging, que é o responsável por viabilizar o
envio das notificações Push a dispositivos Android. O painel
do App Engine é apresentado na Figura 7.

Fig. 9. Configuração do AirNotifier no Moodle.

Os dados requisitados foram gerados a partir da criação de


uma nova aplicação no AirNotifier e da geração de uma chave
Fig. 7. Tela principal de uma aplicação no app engine. de acesso para a mesma, ilustrada na Figura 10.
Com todos os serviços criados é necessário interligá-los
através das configurações de cada um. A sequência de acesso é
a seguinte: O Moodle requisita serviços do AirNotifer que,
por sua vez, requisita serviços do GCM, ou seja, as
configurações de servidor do AirNotifier devem ser
informadas ao Moodle e as configurações do GCM informadas
ao AirNotifier. O aplicativo móvel, por sua vez, acessará todos
os três serviços, conforme ilustra a Figura 8.

Fig. 10. Chave de acesso (access key) criada para acesso do Moodle aos
serviços disponibilizados pelo AirNotifier.

Com a chave criada e as permissões devidamente


configuradas, o Moodle pode enviar ao AirNotifier mensagens
para notificar os usuários quanto a atualizações em seus
cursos. Agora, é necessário que o AirNotifier envie ao GCM
tais mensagens para que sejam distribuídas nos dispositivos.
B. Configurações do GCM no AirNotifier
Os dados necessários do GCM ao AirNotifier são: Project
number (número do projeto) e API key (chave de API), que
são fornecidos após a criação de um projeto no App Engine. O
Fig. 8. Acesso de serviços número de projeto foi encontrado na opção Application
A. Configurações do AirNotifier no Moodle Settings e ao clicar sobre ele, foi possível adicionar ao projeto
o GCM através da opção APIs e autenticação > APIs >
A partir de sua versão 2.7, o Moodle passou a oferecer
Cloud Messaging for Android. Com a permissão dada, bastou
suporte nativo ao serviço AirNotifier. Para habilitá-lo foi
necessário ativar a saída de mensagem de Notificações Móveis o acesso à sessão APIs e autenticação > Credenciais e então:
em Administração do site > Plugins > Saídas de mensagens Criar nova chave (Chave de servidor). A Figura 11 ilustra o
resultado de criação de uma chave.
> Gerenciar saídas. Após habilitá-la, foi necessário inserir as
configurações do servidor do AirNotifier em Administração
do site > Plugins > Saídas de mensagens > Notificações
Fig. 11. Chave de API criada.
Fig. 12. Fluxo padrão do projeto para acesso a um serviço.
No AirNotifier, dentro das configurações do aplicativo, os
dados obtidos do GCM foram informados na sessão Google De acordo com a Figura 12, o acesso a um serviço foi dividido
cloud messaging settings. Com todos os serviços em 9 etapas, que podem ser descritas da seguinte forma:
configurados, deu-se início o desenvolvimento do aplicativo 1. Uma Activity ou um Fragment, os tipos de interfaces
móvel. gráficas do Android utilizadas requisitarão uma tarefa de um
objeto da classe Task e os eventos relacionados ao mesmo;
VII. DESENVOLVIMENTO 2. O objeto Task, por sua vez, receberá os dados, caso existam,
da Activity ou do Fragment, e os formatarão para serem
O desenvolvimento do aplicativo EAD Inatel, codinome
usados na requisição. Após isso, chamará um objeto da classe
adotado durante o desenvolvimento da Fase 1, requereu o
responsável pelo serviço que se deseja acessar (Service);
Software Development Kit 19 (KitKat) e necessitou das
3. Dentro do objeto da classe de serviço (Service) a chamada
seguintes permissões do dispositivo:
será montada, utilizando todos os dados necessários para o
• android.permission.INTERNET: para que o aplicativo
acesso. Após isso, um objeto da classe de Client Web Service é
pudesse acessar a internet;
chamado, realizando a requisição;
• android.permission.GET_ACCOUNTS: requisito para 4. O serviço receberá a requisição e a processa;
que o GCM pudesse funcionar; 5. Caso os dados da requisição enviados e processados estejam
• android.permission.WAKE_LOCK: para que houvesse válidos, o serviço retornará a resposta com os dados desejados
um monitoramento quanto ao recebimento de uma notificação e o código HTTP 200 ou, informará erro ao cliente de web
mesmo em estado de espera; service, juntamente com o código HTTP encontrado;
android.permission.READ_CALENDAR: para que o 6. O Client Web Service formatará a resposta recebida e então
calendário do dispositivo pudesse ser acessado; irá retorná-la ao objeto da classe de serviço (Service)
• android.permission.WRITE_CALENDAR: para que se requisitante;
pudesse incluir eventos dos cursos ao calendário do 7. O objeto da classe de serviço retornará os dados para o
dispositivo; objeto da classe Task;
• android.permission.ACCESS_NETWORK_STATE: 8. O objeto da classe Task informará, através dos eventos, qual
para verificação do estado da rede; o retorno da requisição. Por padrão deste projeto, existem dois
• android.permission.READ_PHONE_STATE: para eventos para cada Task: um de sucesso, onde os dados
verificação do estado do dispositivo: ativo, em espera, dentre requisitados são entregues e um de falha, que indica o código
outros; da falha e o motivo;
• com.google.android.c2dm.permission.RECEIVE: para 9. Finalmente o resultado é informado a Activity ou ao
que o dispositivo pudesse receber notificações do GCM; Fragment através de um dos eventos e ele é exibido ao
• inatel.edu.moodle.permission.C2D_MESSAGE: para usuário.
permitir que o Broadcast Receiver captasse e tratasse uma
notificação do GCM. Em todas as suas requisições de serviços, o Moodle exige
Durante o desenvolvimento, os testes foram realizados que o token de usuário seja enviado. Este token é criado
utilizando um dispositivo Motorola Moto G 2ª Edição, com o durante o login onde o web service de autenticação de usuário
sistema operacional Android Lollipop 5.0 e o Android do Moodle é chamado. Para que o serviço seja realizado, é
Simulator do Android Developer Tools com o sistema necessário que se forneça o nome de usuário (username) e a
operacional Android KitKat 4.4. Para cada requisição de senha (password). A Figura 13 ilustra a tela de login do
serviço que o aplicativo realiza, foi adotado um fluxo padrão, aplicativo.
ilustrado na Figura 12.
5. O aplicativo requisita do GCM um Registration ID, que é a
sequência alfanumérica pela qual o dispositivo será
reconhecido na aplicação criada no App Engine;
6. O GCM responde ao aplicativo com o Registration ID;
7. O aplicativo registra no Moodle o dispositivo com o
Registration ID gerado pelo GCM, através do serviço
core_user_add_user_device;
8. O Moodle responde, informando se houve sucesso ou falha;
9. O aplicativo envia o Registration ID fornecido pelo GCM
para o AirNotifier, assim, cadastrando o dispositivo no
servidor de envio de mensagens push também;
10. O AirNotifier retornará o código HTTP 200, caso o
cadastro tenha sido realizado com sucesso.
Após realizar o login, o usuário será levado à tela principal
(MainActivity), onde os cursos em que está inscrito serão
listados para acesso. A listagem de cursos é realizada através
do web service core_enrol_get_users_courses. A Figura 15
apresenta a tela principal.

Fig. 13. Tela de login do aplicativo.

O procedimento de login é o mais importante e complexo


do aplicativo. Ele está ilustrado na Figura 14 e é dividido em
10 etapas sequenciais.

Fig.15. Tela principal.

Fig.14. Diagrama de Sequência de Login O menu da tela principal, Figura 16, apresenta como
opções:
1. O aplicativo envia o nome de usuário e senha preenchidos • Meus Cursos: opção responsável por retornar à listagem de
pelo usuário ao Moodle; cursos;
2. Caso os dados estejam corretos, o Moodle retorna um token • Meu Perfil: opção na qual o usuário pode visualizar o seu
para acesso aos web services, que é armazenado no aplicativo; perfil;
3. O aplicativo requisita todos os dados do usuário que acabou • Sair: opção para encerrar o aplicativo.
de realizar o login;
4. O Moodle responde com os dados de usuário requisitados;
Fig.16. Menu principal.

A opção Meu Perfil (FragmentPerfil) utiliza o web service


core_user_get_users_by_field, que tem como critério de
busca o username do usuário registrado. A Figura 17 ilustra o
resultado.

Fig.18. Tela principal do curso de testes “Introdução ao SOA”.

Os recursos presentes em cada curso utilizam o navegador


(browser) do dispositivo para serem exibidos. A exibição no
próprio aplicativo, ou seja, nativamente, se dará após a
conclusão da Fase 2 do projeto.
O menu de um curso, ilustrado na Figura 19, é diferente do
menu principal, apresentado anteriormente na Figura 16. Ele
possui as seguintes opções: principal, meu perfil, notas,
participantes, voltar aos meus cursos.

Fig.19. Menu do curso de testes “Introdução ao SOA”.


Fig.17. Tela de Perfil.
A opção Principal retorna o aluno à listagem de recursos
Quando um dos cursos listados é selecionado, somos disponíveis para o curso. Já a opção Meu Perfil, assim como
levados a uma nova tela (CourseActivity), onde todos os no menu principal do aplicativo, exibe o perfil do usuário. A
conteúdos do mesmo são listados através do web service opção Voltar aos Meus Cursos leva o usuário para a tela
core_course_get_contents, que requer como parâmetro o principal, onde todos os cursos em que ele está inscrito são
número identificador do curso. A Figura 18 apresenta a tela. listados. As demais opções são descritas a seguir.
A. Calendário B. Notas
A opção de calendário (FragmentCalendario) mostra ao A opção Notas (FragmentNotas) utiliza o web service
aluno todas as datas de início e término dos eventos referentes core_grades_get_grades para listar as notas do aluno sendo
ao curso. As atividades são listadas através do web service necessário informar como parâmetros o número identificador
core_calendar_get_calendar_events, que requer como do curso e do aluno. Nessa opção o usuário visualiza todas as
parâmetro o número identificador do curso, a data de início e atividades avaliativas, bem como visualiza as notas já
de término para a busca dos eventos. A Figura 20 apresenta a divulgadas para tais atividades. Também pode ser visto o
tela de Calendário. somatório de suas notas até o momento, conforme ilustra a
Figura 22.

Fig.20. Tela de Calendário do Curso. Fig.22. Lista de atividades e notas.

Ainda é possível que o usuário sincronize eventos do curso


com o aplicativo nativo do Android, Google Agenda, podendo C. Participantes
assim, ser lembrado de seus eventos em qualquer dispositivo A lista de participantes (FragmentParticipantes) utiliza o
que esteja, desde que tenha acesso à conta a qual o evento de web service core_enrol_get_enrolled_users e deve fornecer
calendário foi adicionado. Em uma conta do Google, por como parâmetro o número identificador do curso. Como o
exemplo, é possível que sejam configurados lembretes por e- nome sugere, a opção exibirá uma lista de todos os
mail e no próprio dispositivo, conforme ilustra a Figura 21. participantes do curso. A Figura 23 ilustra a opção.

Fig.21. Adicionando um evento ao Google Agenda.


Fig.23. Lista de Participantes.
Quando o nome do usuário é selecionado, é possível
visualizar o seu perfil (FragmentPerfil), conforme ilustra a
Figura 24.

Fig.26. Tela com detalhes da notificação recebida.

Fig.24. Perfil de um participante. Todos os web services utilizados na Fase 1 do projeto foram
apresentados. Cada tela possuía pelo menos um tipo de
requisição de serviço feita para o Moodle, para o AirNotifier
VIII. NOTIFICAÇÕES MÓVEIS PUSH ou para o GCM.
As notificações de atualizações nos cursos enviadas aos
usuários são feitas através da interação entre o Moodle, IX. CONCLUSÕES
AirNotifier e o GCM. O resultado deste projeto foi o primeiro protótipo da
O Moodle possui um script interno de atualização chamado aplicação móvel EAD Inatel para apoio ao e-learning. Ela
de Cron. Toda vez que o Cron é executado, ele verifica quais não substituirá a experiência que o usuário deve ter com o
são as novidades dos cursos e determina quais usuários devem Moodle no ambiente web. Ele apenas visa facilitar o acesso
receber essas notificações. Após determinar a lista de rápido às informações, ajudar o usuário a se organizar através
destinatários, ele fará requisições ao serviço de Push do da sincronia de eventos dos cursos com seu calendário pessoal
AirNotifier, que por sua vez, utilizará o serviço de envio de e mantê-lo atualizado sobre novidades do curso através de
mensagens do GCM, para que, assim, o usuário receba as notificações push.
notificações em seu dispositivo. Procurou-se manter na interface gráfica do aplicativo uma
Os usuários podem configurar em seu perfil, através do ligação com a encontrada na versão web do Moodle do Inatel,
acesso web, quais tipos de notificações querem receber e que pode ser visualizada em http://moodle.inatel.br.
através de qual meio, podendo ir de pop-ups a e-mails e Um dos pontos que fica claro quando se trabalha com web
notificações móveis. services do Moodle é que ainda há muito a ser feito. Existem
A Figura 25 ilustra a notificação ao usuário e a Figura 26 muitas limitações e pouca documentação para o
mostra a tela de exibição dos detalhes da notificação. desenvolvimento.
Para o futuro, visa-se concluir as três fases restantes do
aplicativo Android:
• Fase 2 – Conteúdo: na qual os elementos de um curso não
serão mais abertos através do navegador e sim nativamente no
aplicativo;
• Fase 3 – Interação: na qual os usuários poderão interagir
através de chats, video chats e fóruns, através do aplicativo;
• Fase 4 – Plug-ins: etapa final, na qual recursos adicionais,
que visem melhorar o processo de comunicação entre os

Fig.25. Notificação de novidades no curso.


elementos, serão desenvolvidos e implementados no Moodle e software (C, Java SE, Java EE) para dispositivos móveis e embarcados,
atuando, principalmente, como desenvolvedor web, sistemas embarcados,
no aplicativo móvel.
sistemas computacionais, análise de protocolos de redes de computadores e
Além da conclusão das fases supracitadas, o aplicativo desenvolvimento de aplicações para GNU/Linux embarcado.
também será desenvolvido para o iOS e Windows Phone.
Para a implantação definitiva da aplicação no Inatel, ainda
são necessárias algumas atualizações quanto às versões do
PHP, MySQL e do próprio Moodle.

REFERÊNCIAS
[1] E. Durall et al, Perspectivas tecnológicas: educación superior en
Iberoamérica 2012-2017. Austin, TX: The New Media Consortium,
2012, pp. 1-3.
[2] BRASIL. Ministério da Educação. (2015, July 7). Decreto nº 5.622, de
19 de dezembro de 2005. Disponível:
http://www.planalto.gov.br/ccivil_03/_ato2004-
2006/2005/decreto/d5622.htm
[3] Associação Brasileira de Educação a Distância, Censo EaD.br:
relatório analítico da aprendizagem a distância no Brasil 2013. 1. Ed.
Curitiba: Ibpex, 2014, pp. 28.
[4] U.J. Bora and M. Ahmed. (2013, January). E-Learning using Cloud
Computing. International Journal of Science and Modern Engineering
(IJISME) [Online]. Volume I, pp. 1. Disponível:
http://www.ijisme.org/attachments/File/v1i2/B0111011213.pdf
[5] T. Erl, Service-Oriented Architecture: Concepts, Technology, and
Design. Upper Saddle River: Prentice Hall PTR, 2005, pp. 44.
[6] Service Architecture. (2015, March 8). Web Services Definition
[Online] Disponível: http://www.service-architecture.com/articles/web-
services/web_services_definition.html
[7] P. Mell and T. Grance. “The NIST definition of cloud computing,”
National Institute of Standards and Technology Special Publication
800-145, vol. 1, pp. 2, Sept. 2011.
[8] Service Architecture. (2015, March 8). Web Services and Cloud
Computing [Online] Disponível: http://www.service-
architecture.com/articles/cloud-
computing/web_services_and_cloud_computing.html
[9] E.N. Ribeiro, G. A. A. Mendonça, A. F. Mendonça. A Importância dos
Ambientes Virtuais de Aprendizagem na Busca de Novos Domínios da
EAD. Goiás, 2007, pp. 4.
[10] J MoodleDocs. (2015, March 15). History [Online] Disponível:
https://docs.moodle.org/28/en/History
[11] DazeInfo. (2015, April 7). Worldwide Active Smartphone Users
Forecast 2014 - 2018: More Than 2 Billion By 2016 [Online]
Disponível: http://dazeinfo.com/2014/12/18/worldwide-smartphone-
users-2014-2018-forecast-india-china-usa-report/.
[12] IDC. (2015, April 1). IDC: Smartphone OS Market Share 2014, 2013,
2012, and 2011 [Online] Disponível:
http://www.idc.com/prodserv/smartphone-os-market-share.jsp
[13] Android Developers. (2015, April 20). Dashboards [Online]
Disponível:
https://developer.android.com/about/dashboards/index.html?utm_source
=suzunone.

Douglas Daniel Pereira da Rosa é pós-graduando em Desenvolvimento em


SOA com Cloud Computing e Conectividade pelo Instituto Nacional de
Telecomunicações – Inatel. Em 2009, graduou-se em Sistemas de Informação
pela Faculdade de Administração e Informática - FAI, localizada em Santa
Rita do Sapucaí – MG. Desde 2012, atua como webmaster e suporte técnico
do Núcleo de Educação a Distância – NEaD do Inatel. Tem interesse nas
áreas de desenvolvimento web, mobile e cloud computing.

Paulo César Siécola, professor orientador, é Mestre em Ciência da


Computação pelo Instituto de Matemática e Estatística da Universidade de
São Paulo - USP. Em 2005, graduou-se em Engenharia Elétrica pelo Instituto
Nacional de Telecomunicações - Inatel. Atualmente é Especialista em
Sistemas Sênior do Inatel Competence Center e Professor dos cursos de Pós-
Graduação Lato Sensu do INATEL. Tem experiência em desenvolvimento de

Você também pode gostar