Skip to content

Instantly share code, notes, and snippets.

@brodock
Created October 10, 2014 06:19
Show Gist options
  • Save brodock/b8aa889ed0825a84ebee to your computer and use it in GitHub Desktop.
Save brodock/b8aa889ed0825a84ebee to your computer and use it in GitHub Desktop.
Moodlemoot Brasil Keynote

Integração de aplicações externas usando LTI e Webservices.

Gabriel Mazetto

UFSC / UNASUS


Motivação


Desenvolver pro Moodle vs fora do Moodle

  • Nem sempre o scopo da aplicação é relevante pro LMS
  • Funcionalidades complexas que a API do Moodle não dá suporte
  • Possibilidade de aproveitar bibliotecas disponíveis em outras linguagens ou aplicações open-source

Desvantagens do Moodle

  • API pobre
  • "Frankenstyle"
  • ORM inexistente
  • Não aproveita recursos mais avançados de bancos relacionais como Postgres e Oracle
  • Ausência de um framework "moderno"

Vantagens do Moodle

  • Tema e Padronização Visual
  • Sistema de Autorização Robusto
  • Modularização e Customzação
  • Sistema de Plugins (com controle de dependências)

Por que integrar aplicações externas?

Aplicações externas precisam trocar dados com o LMS. Não vamos obrigar o estudante a criar mais um Login!


Desafios

Aplicações externas apresentam desafios (a.k.a. nem tudo são flores)


Autenticação

  • Login unificado (não vamos obrigar o usuário a criar uma nova conta)
  • Single Sign-on (não vamos obrigar o usuário a se autenticar novamente)

Solução: usar LTI


Autorização

A aplicação deve implementar seu próprio sistema de autorização, mas o Moodle pode ajudar um pouco no processo, permitindo o acesso a aplicação somente das pessoas que deveriam ter acesso.

Provérbio Russo: “Doveryai, No Proveryai (Confie, mas verifique)

Solução: implemente um sistema de autorização na aplicação externa.


Troca de dados entre as duas aplicações

Você pode querer obter dados de alguma atividade, obter algum campo adicional do perfil de usuário, ou ainda verificar se o mesmo está inscrito em uma disciplina ou se já realizou uma determinada atividade.

A sua aplicação pode também gerar dados e precisar exportar de volta para o Moodle, por exemplo, notas.

Solução: Utilize os recursos de Webservice do Moodle


Visão geral do LTI

  • Tool Provider (aplicação externa)
  • Tool Consumer (Moodle)
  • LTI Launch
  • OAuth 1.0 (garante a segurança)
  • Documentação

Esquema com fluxo de troca de mensagens

Fluxo LTI


Envio de notas via LTI

Fluxo Outcome


Webservices do Moodle


Como trocar informações com o Moodle

Consulte os webservices já disponíveis no Moodle e verifique questões relacionadas a permissão de acesso.

Acesse no seu Moodle: Plugins > Webservice > Overview e siga os passos.


Demonstração


Perguntas?


Obrigado

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment