A fim de validar o modelo proposto no capítulo anterior, implementou-se um protótipo de um sistema de autenticação de usuários para ensino a distância. Este capítulo apresenta as tecnologias utilizadas nessa implementação, os requisitos necessários e detalhes da implantação do sistema, sua especificação em SDL (Specification and Description Language), modelo de dados, diagrama de classes, descrição das interfaces, integração com o sistema de avaliação e, por fim, uma avaliação do protótipo.
4.1 Ambiente de Implementação
O protótipo foi totalmente desenvolvido utilizando-se a linguagem Java. Os motivos que levaram a escolha dessa linguagem são sua portabilidade, sua segurança, sua robustez e a disponibilidade de bibliotecas para acesso a banco de dados e ao trabalho em rede. As tecnologias Java, fundamentais para o desenvolvimento do protótipo, foram as Servlets e a conectividade com banco de dados via JDBC (Java DataBase Connectivity), descritas a seguir.
4.1.1 Servlets
As servlets fornecem um mecanismo simples e consistente para estender a funcionalidade de um servidor Web. Uma servlet pode ser pensada como uma pequena aplicação que roda no servidor.
A API utilizada na escrita das servlets não se preocupa em como ela é carregada, com o ambiente em que ela rodará ou com o protocolo usado no envio e recebimento de informações. Isto faz com que as servlets possam ser incorporadas em vários servidores Web diferentes.
As servlets provêem um método baseado em componentes independente de plataforma, para construção de aplicações baseadas na Web, sem as limitações de desempenho dos programas CGI.
Por serem escritas em Java, as servlets têm acesso a toda sua API. Elas também têm acesso à biblioteca HTTP, com chamadas específicas e todos os benefícios do Java, inclusive portabilidade, desempenho, reusabilidade e proteção contra crash.
Algumas das principais vantagens do uso de servlets em relação às CGIs são:
FIGURA 4.1 - Ciclo de vida da servlets
4.1.2 JDBC
A JDBC é uma API que permite o acesso a diferentes fontes de dados através de programação Java. Ela consiste em um conjunto de classes e interfaces escritas em Java, fornecendo conectividade para uma grande variedade de bancos de dados SQL, planilhas eletrônicas ou arquivos.
Com a utilização de JDBC, é fácil enviar um comando SQL para diferentes bancos de dados relacionais. Em outras palavras, não é necessário escrever um programa para acessar um banco de dados Sybase e outro para acessar um banco de dados Oracle e assim por diante.
Com o JDBC é possível executar três tarefas:
Connection con = DriverManager.getConnection (
"jdbc:odbc:wombat", "login", "password"); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1"); while (rs.next()) { int x = getInt("a"); String s = getString("b"); float f = getFloat("c"); } |
Os drivers JDBC classificam-se em quatro categorias:
O protótipo do sistema foi implantado na máquina penta2 da rede da UFRGS (endereço IP: 143.54.1.30, DNS: penta2.ufrgs.br e rede: 143.54.1.0). Esta máquina é uma Sparc - ULTRA 1, com 64 Mb de memória e rodando sistema operacional Solaris 2.5.1 para Sparc.
Para que o sistema seja instalado corretamente, são necessários os seguintes produtos:
A proposta da SDL é a descrição do
comportamento real do sistema independentemente da linguagem utilizada
na implementação A especificação do sistema
implementado em SDL encontra-se no Anexo 1.
4.3 Modelo de Dados
O modelo de dados contém o diagrama entidade-relacionamento
e a descrição de todas as tabelas utilizadas pelo sistema.
Este modelo dados encontra-se no Anexo 2.
4.4 Diagrama de Classes
O diagrama de classes ilustra as especificações para classes e interfaces (por exemplo, interfaces Java) em uma aplicação. Informações típicas que este diagrama contêm são:
4.5 Descrição das Interfaces
A interface do sistema foi desenvolvida utilizando-se HTML. No endereço http://www.penta2.ufrgs.br/~mfiorese/proxy/login.htm tem-se acesso à página de login do sistema. A figura 4.3 apresenta a tela inicial do sistema.
Ao entrar na página inicial do sistema o usuário deve preencher os campos "Username" e "Senha" e apertar no botão "Entrar". Se esses dados de autenticação forem corretos, o sistema apresentará uma página contendo uma pergunta randômica, apresentada na figura 4.4. No caso dos dados serem incorretos, o sistema negará o acesso ao usuário (figura 4.5).
FIGURA
4.3 - Tela de login do sistema
FIGURA 4.4 - Tela do da pergunta randômica
A página contendo a pergunta randômica possui
uma caixa de texto que deve ser preenchida com a resposta. Após,
deve-se apertar o botão Enviar.
Se a resposta à pergunta randômica for correta, o sistema apresenta a tela inicial do sistema. Essa tela varia de acordo com o tipo de usuário: administrador, professor ou aluno.
FIGURA 4.5 - Tela de acesso negado
Se o usuário for um administrador, a tela inicial
apresentará um menu contendo ferramentas de administração,
tais como "Cadastro de Alunos", "Professores" e "Administradores", "Cadastro
de Cursos", "Cadastro de Matrículas", "Cadastro de Perguntas" e
"Perfil do Professor". A figura 4.6 apresenta uma tela de alteração
de cursos pelo administrador.
FIGURA 4.6 - Utilização da ferramenta Cadastro de Cursos pelo administrador Se o usuário for um professor, a tela inicial apresentará uma página contendo os cursos ministrados por ele, semelhante à tela apresentada na figura 4.9. Após escolher o curso, será apresentado um menu contendo as ferramentas destinadas aos professores, tais como "Conteúdo", "Agenda", "Chat", "Correio Eletrônico", "Lista de Discussão", "Ponto de vista", "Votação", "Avaliação", "Perfil do Aluno" e "Configurar Alertas". A figura 4.7 apresenta uma tela da utilização da ferramenta "Configurar Alertas" pelo professor.
FIGURA 4.7 - Utilização da ferramenta Avaliação do Aluno pelo professor
Na página de "Configuração de Alertas"
o professor configura as regras de geração de alertas. Primeiramente,
ele indica se quer ou não receber alertas e a partir de qual sessão
do usuário começará a ser gerado seu perfil. Em seguida
ele configura as regras para cada variável, tais como "Horário
de Conexão", "Duração da Sessão", "Taxa de
Leitura", "Freqüência dos Dias", "Freqüência dos
Endereços IPs", entre outras. Após determinar as regras,
o professor deve apertar o botão "Configurar" para que as alterações
sejam efetuadas.
Outra ferramenta interessante, disponível no menu do professor é "Perfil Aluno". Através dela o professor pode examinar o perfil do aluno gerado através dos logs de todas as sessões efetuadas por ele assim como rastrear uma determinada sessão. A figura 4.8 apresenta a ferramenta "Perfil Aluno".
Por fim, se o usuário for um aluno, a tela inicial
apresentará uma página contendo os cursos em que ele está
matriculado ( figura 4.9 ). Ao selecionar um curso, lhe será apresentado
menu
contendo as ferramentas destinadas aos alunos, tais como "Conteúdo",
"Agenda", "Chat", "Correio Eletrônico", "Lista de Discussão",
"Ponto de Vista", "Votação", "Boletim", assim como a página
inicial do curso escolhido. A figura 4.10 apresenta esta tela.
FIGURA 4.10 - Tela contendo as ferramentas do aluno e página inicial do curso
A tela acima contém dois frames. À esquerda
apresenta-se o menu de ferramentas. À direita, a página
inicial do curso escolhido pelo aluno.
Quando o usuário desejar sair do sistema, ele deve clicar no link "Encerrar Sessão", do menu à esquerda. Neste momento, será fechada a sessão e lhe será apresentado o resumo da sessão assim como sua sequência de navegação. Estas mesmas informações serão armazenadas nos logs do sistema e no banco de dados. A figura 4.11 apresenta a tela apresentada ao término da sessão.
FIGURA 4.12 - Mensagem de alerta ao professor
4.6 Integração com
o Sistema de Avaliação
O sistema desenvolvido nesta dissertação de mestrado foi integrado com o sistema de avaliação, desenvolvido pelo aluno Luciano Hack do PPGC da UFRGS [HAC2000].
Uma vez que o sistema de autenticação é o responsável pela geração das páginas dinâmicas, ele responsabilizou-se pela geração da interface. Assim, as ferramentas desenvolvidas pelo sistema de avaliação incorporaram-se nessa interface. São elas: "Agenda", "Chat", "Correio Eletrônico", "Lista de Discussão", "Ponto de Vista", "Votação", "Avaliação" e "Boletim" constantes nos menus do professor (figura 4.7) e do aluno (figura 4.10). A figura 4.13 apresenta a ferramenta "Correio Eletrônico", desenvolvida pelo sistema de avaliação, sendo acessada pelo aluno.
FIGURA 4.13 - Ferramenta Correio Eletrônico
Vale ressaltar que, como as ferramentas de avaliação
foram inseridas na interface do sistema, elas só podem ser
acessadas após o usuário passar pela fase de autenticação.
Uma vez que o controle de sessão foi feito pelo sistema de autenticação desenvolvido em Java e que o sistema de avaliação foi desenvolvido em Pearl, houve a necessidade de passar o identificador de sessão através de um campo escondido HTML (hidden field). Este campo chama-se "jservsessionid" e pode ser visto na figura 4.14.
Quando um usuário é autenticado corretamente, o sistema insere uma tupla (id_pessoa, id_sessao, cod_curso) em uma tabela chamada "AUTENTICACOES". Com isso, o sistema de avaliação pode consultar esta tabela utilizando o campo "id_sessao", que é único, e assim consegue recuperar o identificador do usuário e o código do curso.
Quando o usuário encerra a sessão, suas
informações constantes na tabela "AUTENTICACOES" são
removidas. A figura 4.15 apresenta uma consulta à tabela "AUTENTICACOES"
no momento em que um usuário está conectado.
FIGURA 4.14 - Fonte HTML contendo o campo escondido jrunsessionid
FIGURA 4.15 - Consulta à tabela AUTENTICACOES
Com vistas a facilitar a integração entre os
dois sistemas, os dados utilizados pelo sistema de avaliação,
gerados pelo sistema de autenticação (logs da utilização
do sistema), são armazenados em banco de dados. Assim, basta
que sejam realizadas consultas às devidas tabelas para obter acesso
a essas informações.
4.7 Avaliação do Protótipo
A fim de avaliar o protótipo, o mesmo foi apresentado para alunos do mestrado do PPGC da UFRGS junto com um questionário que deveria ser enviado por email contendo as principais impressões sobre o sistema. As principais caracterísitcas destacadas foram: