TRABALHO FINAL DE CURSO - INESC-ID
TRABALHO FINAL DE CURSO - INESC-ID
TRABALHO FINAL DE CURSO - INESC-ID
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 />
Virtual Machine), a CLDC opera sobre a máquina virtual KVM (KiloByte Virtual<br />
Machine). Esta máquina virtual foi construída de raiz para dispositivos com limitações<br />
de memória e processamento, sendo personalizada para o sistema operativo de cada<br />
dispositivo.<br />
Seguidamente, são apresentados com mais detalhes os componentes da<br />
arquitectura da plataforma J2ME utilizados nos telemóveis (CLDC e M<strong>ID</strong>P), dado o seu<br />
enquadramento no projecto MobileREVS.<br />
CLDC<br />
Conforme foi indicado anteriormente, a Configuration CLDC [Giguere02a] foi<br />
desenhada para dispositivos com limitações ao nível das capacidades de processamento<br />
e armazenamento (e.g. telemóveis e alguns PDAs). Estes dispositivos têm, tipicamente,<br />
CPUs de 16 ou 32 bits e, em 2002, tinham entre 128KB e 512KB de memória<br />
disponível para a instalação da plataforma J2ME e aplicações associadas. No entanto, as<br />
limitações em termos de memória têm vindo a diminuir ao longo do tempo com a<br />
introdução de cartões de memória no mercado com capacidades superiores, que já<br />
atingem hoje em dia 1GB.<br />
O objectivo da criação da CLDC foi a definição de um padrão que permitisse às<br />
aplicações móveis abstraírem-se de operações nativas específicas dos sistemas<br />
operativos dos dispositivos, oferecendo-lhes portabilidade. Além disso, a máquina<br />
virtual KVM, usada pela CLDC, possui algumas restrições relativamente à<br />
convencional JVM (para efeitos de minimização do espaço ocupado em memória e<br />
consumo de energia dos dispositivos). A CLDC permite colmatar algumas das<br />
restrições da máquina virtual providenciando suporte a objectos de vírgula flutuante e a<br />
weak references, i.e. referências que não evitam a recolha dos objectos referenciados<br />
por parte do garbage collector.<br />
Adicionalmente, a CLDC fornece um pequeno subconjunto de classes J2SE,<br />
para utilização por parte das aplicações, e um conjunto de interfaces genéricas de<br />
suporte a funções de entrada/saída de dados, a Generic Connection Framework (GCF).<br />
Note-se que nem a GCF nem o CLDC implementam nenhuma função de entrada/saída<br />
de dados, pois elas estariam inevitavelmente associadas a modelos de funcionamento<br />
que nem todos os dispositivos poderiam suportar. Por isso, e para manter a<br />
compatibilidade, os aspectos específicos da implementação devem ficar a cargo dos<br />
Profiles utilizados (ver secção seguinte) ou dos fabricantes dos dispositivos. Estes<br />
devem ser capazes de mapear um protocolo de ligação (definido pelo programador) num<br />
objecto de comunicação que implemente a API da GCF, para manipulação das funções<br />
de entrada/saída de dados.<br />
Todos os aspectos relacionados com a interface utilizador não são definidos pelo<br />
CLDC.<br />
Hoje em dia já existem duas versões do CLDC: a 1.0 e a 1.1. No âmbito do<br />
projecto MobileREVS qualquer uma delas é plausível para o desenvolvimento do<br />
sistema. A principal diferença da versão 1.1 para a versão 1.0 consiste na colmatação<br />
das restrições da máquina virtual, anteriormente referidas.<br />
M<strong>ID</strong>P<br />
O Profile M<strong>ID</strong>P [Giguere02b] é uma especificação imposta pela Sun para a<br />
utilização de Java em sistemas embebidos como os telemóveis. Esta oferece as funções<br />
requeridas e específicas dos dispositivos em causa (neste caso telemóveis), incluindo a<br />
Luis Costa, Nuno Santos 19