A comunicação entre o iGeom e o servidor é feita através de parâmetros inseridos pelo servidor na página Web e da troca de mensagens entre o applet e o servidor via conexão HTTP utilizando o método POST13. A escolha dos protocolos HTTP e POST é devido a sua popularidade e por estar disponível em qualquer plataforma.
A comunicação do iGeom, em conjunto com os recursos anteriormente apresentados na seção ,
traz diversas vantagens. Dentre elas destacamos:
Para que o envio de mensagens ocorra, precisamos indicar o endereço do servidor que irá receber as mensagens do iGeom. Essa indicação é feita na forma de parâmetro14 descrito na página HTML da seguinte forma:
<param name="enderecoPOST" value="http://aqui_vai_o_endereço">
Com esta informação, é possível realizar uma conexão HTTP entre o applet e este endereço no servidor. O envio de mensagens é feito utilizando a codificação POST que permite o envio de variáveis na forma de cadeias de caracteres. Dessa forma, podemos enviar diferentes informações para o servidor em uma mesma mensagem. Observe que neste caso o programa localizado no servidor deve ser o responsável pelo tratamento adequado dos dados recebidos, fazendo a decodificação necessária para recuperar os valores das variáveis enviadas.
Um exemplo de envio de mensagens ocorre após a validação de um exercício realizado em uma página Web. Quando o botão de enviar exercícios é acionado, o iGeom faz uma requisição para se conectar um endereço no servidor. Ao receber a autorização é possível fazer o envio de dados. Estes dados são armazenados pelo iGeom em diferentes variáveis. Cada variável é definida por um conjunto de caracteres que serão posteriormente ``empacotadas'' utilizando o método POST. Este método faz a codificação destes caracteres, para que seja possível o envio de dados através de uma conexão HTTP.
Quando o envio de dados ocorre, o programa servidor irá armazenar as mensagens recebidas em variáveis locais
para que sejam manipuladas pelo programa gerenciador. Deste modo, através desta mesma conexão HTTP, o servidor pode requisitar
a troca da página Web ativa para uma nova página, dependendo dos dados da mensagem recebida
(Figura ) e, posteriormente, anotar estes dados em um banco de dados
(por exemplo, o MySql).
Atualmente as variáveis que o iGeom manipula são as seguintes:
Por questões de segurança, as variáveis $envWebArq e $envWebArquivoCurso, quando carregam respectivamente os dados da solução de um exercício realizado pelo aluno e o gabarito de um exercício construído pelo professor, recebem uma codificação mais ``sofisticada'', que só permite sua abertura pelo iGeom na forma de applet.
A razão disso é devido a dois fatores: o formato dos arquivos gerados pelo iGeom para serem abertos pelas versões aplicativo ou pelo applet, são similares; e a versão aplicativo do iGeom permite que o professor tenha acesso ao seu gabarito, para eventuais edições.
Deste modo, ao publicar um exercício para o aluno é necessário bloquear sua abertura pelo iGeom aplicativo, pois em caso contrário, o aluno conseguiria acesso ao gabarito do professor (e portanto à resposta) tranferindo a descrição do exercício para o aplicativo.
Na tabela apresentamos parte do código iGeom
e sua codificação.
Código iGeom |
{1:0, 0:0, 2:321.0 -212.0, 3:2 3, 4:A 0.7853981633974483 0, 6:1, 5:-16711936, 7:0} |
{1:1, 0:0, 2:392.0 -219.0, 3:2 7 3, 4:B 0.7853981633974483 0, 6:1, 5:-16711936, 7:0} |
{1:2, 0:3, 2:0 1, 3:4 5 7, 4:c0 0.7853981633974483 1, 6:1, 5:-16776961, 7:1} |
Cadeia de Caracteres Codificada |
7b313a302c20303a302c20323a3332312e30202d3231322e302c20333a3220332 |
c20343a4120302e3738353339383136333339373434383320302c20363a312c20 |
353a2d31363731313933362c20373a307d0a7b313a312c20303a302c20323a333 |
9322e30202d3231392e302c20333a32203720332c20343a4220302e3738353339 |
383136333339373434383320302c20363a312c20353a2d31363731313933362c2 |
0373a307d0a7b313a322c20303a332c20323a3020312c20333a34203520372c20 |
343a633020302e3738353339383136333339373434383320312c20363a312c20 |
353a2d31363737363936312c20373a317d0a7b313a332c20303a332c20323a312 |
0302c20333a34203520372c20343a633120302e37383533393831363333393734 |
34383320312c20363a312c20353a2d31363737363936312c2020302e373833a3 |
Na seção seguinte, apresentamos um sistema gerenciador de cursos pela Web que aplica os recursos apresentados nesta seção.
Seiji Isotani 2006-10-04