04.01.2014 Views

TRABALHO FINAL DE CURSO - INESC-ID

TRABALHO FINAL DE CURSO - INESC-ID

TRABALHO FINAL DE CURSO - INESC-ID

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

MobileREVS 15-10-2006<br />

Figura 10 - Estrutura interna dos componentes do MobileREVS<br />

4.4. Protocolo<br />

Conforme foi referido anteriormente, o Módulo Eleitor do sistema MobileREVS<br />

não pode comunicar directamente com os servidores REVS, dada a inexistência de<br />

comunicação via RMI nas implementações de J2ME. Esta restrição implicou a criação<br />

de proxies nos servidores web, funcionando como intermediários da comunicação entre<br />

o M<strong>ID</strong>let e os servidores REVS, de acordo com a Figura 10.<br />

Desta forma, manteve-se o protocolo original do REVS, descrito na Secção<br />

3.1.2, com as respectivas adaptações para a nova arquitectura, assegurando-se a<br />

manutenção das características e propriedades originais (ver Figura 11). A comunicação<br />

entre o telemóvel e os servidores passa, então, a ser mediada pelos servlets, que<br />

permitem traduzir os pedidos HTTP/HTTPS em pedidos RMI equivalentes para os<br />

servidores do REVS. Ao mesmo tempo, os servlets permitem adaptar algumas das<br />

estruturas de dados de J2ME para J2SE, e vice-versa, dadas as limitações existentes da<br />

máquina virtual para telemóveis (e.g. o J2ME não implementa estruturas de dados do<br />

tipo List).<br />

A serialização de objectos para transmissão na rede é definida pela interface<br />

ISerialize. Através desta interface, todos os objectos de domínio implementam<br />

dois métodos de serialização: um método que transforma o objecto em questão num<br />

byte array para envio, e outro que realiza a operação inversa, ou seja, a transformação<br />

de um byte array no próprio objecto.<br />

Luis Costa, Nuno Santos 39

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!