• No results found

4 Funn og drøfting

4.2 Hvordan håndterer foreldrene utfordringene?

4.2.1 Regler

Devido a grande diversidade de dispositivos móveis, o processo para criação de aplicações multi-plataforma para estes equipamentos foi, inicialmente, um processo complexo, pois cada software deveria rodar somente na plataforma de hardware (e.g. Nokia, Ericsson, Palm e Motorola) para o qual foi desenvolvido. Como soluções para este problema de compatibilidade, foram criados framework que possibilitam o desenvolvimento de aplicações multi-plataforma. Nesta seção, será abordado um framework para desenvolvimento de aplicações móveis que abrange uma grande gama de equipamentos e tecnologias de comunicação sem fio, e que foi escolhido para o desenvolvimento do software utilizado como teste para as aplicações propostas no presente trabalho. Exemplos de outras tecnologias podem ser vistos no Anexo II.

3.5.1 Sun Java 2.0 Micro Edition

Em 1998, a empresa Sun Microsystem lançou sua plataforma Java 2.0 que seria compostas pelas edições Standard Edition (J2SE), Enterprise Edition (J2EE) e Micro Edition (J2ME) (Muchow, 2004). A primeira edição é destinada à criação de aplicações que devem rodar em computadores pessoais ou estações de trabalho. A segunda edição possui recursos que permitem a criação de aplicações para empresas, podendo utilizar software que rodam em servidores, acesso a XML e páginas dinâmicas. A última destina-se ao desenvolvimento de aplicações para dispositivos móveis ou embarcados, tais como telefones celulares, PDA, Internet Screenphones, set-top box de TV Digital, sistemas de navegação automotiva, comutadores e roteadores de rede, componentes para automação residencial, dentre outros

(Paludo, 2003). A tecnologia J2ME possibilita a criação de aplicações que se adequam às particularidades e limitações dos aparelhos móveis, integrando-se aos serviços oferecidos pelas operadoras de telefonia e permitindo um grau de interatividade dentro das possibilidades dos equipamentos. O Java 2 Micro Edition define um conjunto de especificações relativas a simplificação da Máquina Virtual Java (no inglês, Java Virtual Machine - JVM) e uma Interface para Programação de Aplicações (no inglês, Application Program Interface – API) para dispositivos com recursos limitados em relação a interface, processamento, memória e conectividade.

Como há uma diversidade de dispositivos que são abrangidos pela J2ME, a Sun criou os conceitos de Configuração (no inglês, Configuration) e Perfil (no inglês, Profile), que possibilitam a definição de um escopo no qual uma aplicação pode ser desenvolvida. As Configurações estão diretamente ligadas as Máquinas Virtuais Java, definindo os recursos da linguagem e as bibliotecas básicas da JVM para uma dada configuração de hardware. Segundo Muchow (2004) o J2ME define dois tipos de configurações que podem ser vistos na Tabela 2.

Tabela 2 - Configurações do J2ME. Fonte: (Muchow, 2004).

Configuração Características de Hardware

Configuração de Dispositivo Conectado (no inglês, Connected Device Configuration - CDC)

Mínimo de 512 KB para execução da JVM;

Mínimo de 256 KB para alocação em tempo de execução;

Conectividade de rede possivelmente persistente.

Configuração de Dispositivo Conectado Limitado (no inglês, Connected Limited Device Configuration - CLDC)

Mínimo de 128 KB para execução da JVM;

Mínimo de 32 KB para alocação em tempo de execução;

Interface restrita com o usuário;

Conectividade de rede normalmente sem- fio e intermitente.

Como exemplo de ambientes que se adequam ao CDC, Paludo (2003) cita equipamentos de TV a cabo, sistemas automotivos e alguns PDAs mais poderosos. Já para a CLDC, dá como exemplo os celulares, Smartphone, pager e PDA. Algumas das principais características da CLDC podem ser vistas na Tabela 3, conforme descrito por Muchow (2004).

Tabela 3 - Algumas características da CLDC 1.0. Fonte: (Muchow, 2004).

Característica Descrição

Diferença quanto a linguagem Java

Não suporta operações com ponto-flutuante;

Não suporta método finalize(), responsável pela limpeza de recursos alocados (e.g. soquetes); Suporte limitado de exceções de tratamento de erro.

Diferença quanto a Máquina Virtual Java

Não suporta execução de código nativo de outras linguagens;

A JVM implementa, impreterivelmente, o carregador de classe;

Não suporta classes de reflexão, que possibilitam o acesso a informações da Máquina Virtual carregada;

Não suporta a classe ThreadGroup, que possibilita iniciar/finalizar um conjunto de thread por meio de uma chamada de método;

Não suporta referências fracas, o que impede ao coletor de lixo (mecanismo que faz a liberação de memória alocada por objetos) saber que um dado objeto, candidato a limpeza, ainda está sendo referenciado.

Diferença na segurança A CLDC define o modelo sandbox que restringe a execução de uma aplicação a um ambiente rigidamente restrito.

Diferença quanto a verificação de arquivo de classe

O processo de verificação do arquivo de classe é feito em duas etapas, uma previamente, no processo de desenvolvimento do arquivo, e outro posterior, no próprio dispositivo. Este processo reduz em um quinto o gasto de memória por parte da JVM.

A máquina virtual definida pela Sun Microsystem para a CLDC é a K Virtual Machine (KVM).

As configurações permitem uma divisão entre os dispositivos atendidos pela J2ME. Porém, ainda há uma diversidade muito grande dentro destes dois grupos, como, por exemplo, as diferenças de limitação entre um celular e um PDA, ambos dentro da configuração CLDC. Para solucionar este problema, foram definidos os Perfis. Eles são extensões de uma configuração que especificam bibliotecas de desenvolvimento específicas para um conjunto particular de dispositivo. Como exemplo de um Perfil, tem-se o Mobile Information Device Profile (MIDP), criado para o desenvolvimento de aplicações destinadas a dispositivos móveis como celulares e que funciona dentro da configuração CLDC. Outros Perfis existentes são: Foundation Profile (para configuração CDC), PDA Profile (para configuração CLDC),

API Opcionais Personal Profile

Personal Basis Profile PDA de ponta, TV Set-top

Box, Dispositivos

PDA e Telefones móveis

API Opcionais MIDP Foundation Profile CDC JVM CLDC KVM

Personal Profile (para configuração CDC) e Personal Basis Profile (para configuração CDC). O desenvolvimento de Configurações e Perfis é definido pelos grupos de trabalho do setor de código-fonte aberto ligados ao Java Community Process Program.

Os aplicativos Java projetados para serem executados em dispositivos móveis que utilizam a CLDC e a MIDP são chamados MIDlet. Uma classe MIDlet possui três estados que são: Ativo, Pausado e Destruído. Estes estados são invocados pelos métodos abstratos startApp, pauseApp e DestroyApp. O primeiro destes métodos é chamado quando da carga do MIDlet.

A versão de CLDC mais recente até o momento da redação deste documento é a 1.1 e a versão de MIDP é a 2.0. Uma das principais novidades da versão atual da CLDC é seu suporte a operações com ponto-flutuante.

Além de Configurações e Perfis, a J2ME pode ser acrescida de bibliotecas opcionais desenvolvidas pelos fabricantes de equipamento, a fim de tirar o maior proveito possível de suas características de hardware e Sistema Operacional.

A Figura 10 mostra uma visão geral de Configurações e Perfis utilizados na arquitetura J2ME.

Figura 10 - Visão Geral da arquitetura do J2ME.

3.6 Problemas envolvidos no processo de desenvolvimento de aplicações

In document Ungdom og skjermbruk etter leggetid. (sider 41-45)