A Comunicação do iGeom

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:

Figura: Esquema de comunicação entre um servidor e o iGeom em sistemas Web

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.

Figura: Envio de mensagens entre o iGeom e o servidor
r7cm
Image comunicacao2
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:

$envWebValor:
Esta variável indica o resultado da validação do exercício. Se seu valor for igual a 0 (zero) então o exercício foi avaliado como incorreto, e se for igual a 1 (um) o exercício foi avaliado como correto.
$envWebArq:
Esta variável possui dupla funcionalidade, uma quando o professor esta construindo um exercício e outra quando um aluno está resolvendo um exercício. No caso do professor, ao criar um exercício diretamente em ambiente Web, esta variável armazena o arquivo contendo todas as informações do exercício (inclusive o gabarito) que será utilizado posteriormente pelo aluno. No caso do aluno, esta variável armazena o arquivo contendo toda a construção realizada por ele durante a resolução de um exercício. Se a solução é considerada incorreta, então será armazenado uma configuração na qual fique visível o problema, senão a solução é armazenada na configuração na qual o aluno resolveu o exercício.
$envWebGeoResp:
Esta variável é utilizada para indicar quais foram os objetos da solução de um exercício selecionados como resposta.
$envWebGeoOuvidor:
Nesta variável são inseridos dados da interação do usuário com a interface do iGeom. Por exemplo, quais os botões mais utilizados e a forma de interação utilizada (se ação+seleção ou seleção+ação).
$envWebArquivoCurso:
Ao criar um exercício diretamente em ambiente Web, da mesma forma que a variável $envWebArq, esta variável armazena o arquivo contendo todas as informações do exercício que será utilizado posteriormente pelo aluno. Contudo está variável recebe uma codificação especial na qual apenas o iGeom na forma de applet consegue utilizá-lo.

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.


Tabela: Passos para codificação de algumas variáveis no iGeom
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