4 Implementação do Protótipo
 
 

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:

  1. Estabelecer uma conexão com o banco de dados;
  2. Enviar comandos SQL;
  3. Processar os resultados.
A figura 4.2 apresenta um fragmento de código Java que executa as tarefas citadas acima.
 
 
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");
   }
 
FIGURA 4.2 - Código Java mostrando acesso JDBC
 
  Um banco de dados individual é acessado através de um driver JDBC específico. Existem drivers para quase todos os bancos de dados populares, alguns sendo disponíveis gratuitamente.

Os drivers JDBC classificam-se em quatro categorias:

4.1.3 Implantação

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:

O JDK pode ser obtido gratuitamente no endereço: http://www.java.sun.com/products/jdk/1.1/index.html . O JSDK pode ser obtido gratuitamente no endereço: http://www.java.sun.com/products/servlet/download.html O Apache Web Server pode ser obtido gratuitamente no endereço: http://www.apache.org/dist/ O Apache JServ pode ser obtido gratuitamente no endereço: http://www.apache.org/jserv/dist/ O MySQL é gratuito para plataformas Unix e OS/2. Para plataformas Microsoft existem versões de avaliação de 30 dias. O MySQL pode ser encontrado no endereço http://www.mysql.com/ . 4.2 Especificação do Sistema em SDL

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:

O diagrama de classes encontra-se no Anexo 3.
 
 

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.8 - Utilização da ferramenta Perfil Aluno pelo professor


FIGURA 4.9 - Página de escolha do curso pelo aluno

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.11- Página de final de sessão
No momento em que o aluno encerra sua sessão, a rotina de geração de alertas verifica se o perfil do aluno está de acordo com o perfil do aluno ao longo de todo o curso, de acordo com as regras determinadas pelo professor através da ferramenta Configurar Alertas. Se o perfil da sessão estiver fora dos limites determinados pelo professor e o sistema estiver configurado para emitir alertas, será enviada uma mensagem ao professor alertando-o do ocorrido. A figura 4.12 apresenta uma mensagem enviada pelo sistema ao professor.

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:

As principais limitações estão ligadas à rotina de navegação dinâmica. Na implementação do protótipo utilizou-se apenas um subconjunto da linguagem HTML, com isso, algumas funcionalidades não são suportadas: Algumas considerações sobre o sistema e sugestões de melhorias destacadas na avaliação englobam: