Artigo Java Magazine 03 - Java de Bolso

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Artigo publicado pela Java Magazine 03.

Esse artigo faz parte da revista Java Magazine edição 03. Clique aqui para ler todos os artigos desta edição

Java de bolso

Dados em J2ME

Persistência em dispositivos com RMS e JDBC

Técnicas para gerenciamento de dados usando a API Record Management System do MIDP

O gerenciamento de dados em dispositivos com suporte a J2ME é o tema de nosso artigo nesta edição. Explicaremos o que é RMS (Record Management System), uma importante API do MIDP, mostrando vários exemplos de código. Apresentaremos também, brevemente, a API JDBC da PointBase, um framework de gerenciamento de dados que usa o RMS.

Armazenamento

Atualmente já existem dispositivos móveis, principalmente telefones celulares, que agregam muito mais recursos que um simples dispositivo de comunicação por voz, como transmissão de dados, captura de áudio e vídeo, recursos de assistentes pessoais, conexão com a internet em alta velocidade etc. Com o nível de sofisticação atual, os dispositivos precisam ter acesso à memória para ler ou armazenar dados, como preferências de usuário e cache de informações. Além disso, como a utilização de redes sem fio ainda é cara, se for possível economizar no tráfego de dados e na utilização da rede, diminuindo custos, serviços mais baratos poderão ser disponibilizados.

Existem várias tecnologias para armazenar dados localmente em dispositivos móveis. Em nível de hardware, o cartão flash é a mais comum. O acesso via software também pode ser realizado de diversas maneiras. Sistemas de arquivos ou registros são as soluções mais implementadas.

Normalmente, os dispositivos possuem dois tipos de memória: uma volátil, onde os aplicativos são carregados (quando a aplicação é finalizada ou é desligado o dispositivo, os dados contidos na memória volátil são perdidos); o segundo tipo é a memória persistente, onde são gravadas informações que devem permanecer (persistir) entre diferentes invocações das aplicações, e até depois de se desligar o dispositivo.

MIDP e RMS

O J2ME especifica suporte para um universo de dispositivos com diferentes configurações e perfis. Neste artigo vamos focar no perfil MIDP (Mobile Information Device Profile). No MIDP, a API de armazenamento de dados é o RMS.

Neste texto usaremos muito os termos MIDlets e suite de MIDlets. Vamos recordar um pouco sobre eles. MIDP é um perfil J2ME direcionado a pequenos dispositivos, como telefones celulares e pagers de duas vias. Um MIDlet é uma aplicação MIDP; uma suite de MIDlets é um agrupamento de MIDlets distribuído em um pacote JAR contendo, além dos próprios MIDlets, arquivos de recursos (imagens e propriedades, por exemplo). Associado ao arquivo JAR, existe uma descrição da suite (arquivo JAD) com o nome da aplicação, tamanho, versão e outras informações. MIDlets contidos na mesma suite podem compartilhar informações como arquivos de recursos.

A versão do MIDP que iremos cobrir é a 1.0; algumas novas funcionalidades da versão 2.0 do MIDP (em fase final de especificação) também serão indicadas.

API RMS

O RMS é o mecanismo básico de persistência usado por MIDlets. A API de RMS está localizada no pacote javax.microedition.rms, e possui as seguintes classes e interfaces (excluindo as classes de exceções): RecordStore, RecordEnumeration, RecordComparator, RecordFilter e RecordListener.

Cada suite de MIDlets possui um banco de dados contendo várias tabelas de registros, chamadas RecordStores. O número de RecordStores para uma suite de MIDlets é limitado apenas pela capacidade de armazenamento do dispositivo. Quem os cria é o MIDlet (Figura 1). Um RecordStore contém registros; cada registro guarda um agrupamento de bytes (Figura 2).

 

Figura 1. RecordStores e suites de MIDlets no MIDP

 

Figura 2. RecordStore e registros

A implementação de leitura e gravação é feita de maneira a garantir consistência e integridade dos registros durante o uso normal do dispositivo e em situações como troca de baterias, desligamento, invocações de diferentes MIDlets ao mesmo RecordStore etc. Mas, se uma aplicação usa mais de uma thread para acessar o mesmo RecordStore, é responsabilidade do MIDlet sincronizar a leitura e a gravação para evitar problemas de corrupção de dados.

Veja algumas regras na utilização de RecordStores:

o        Nomes de bancos de dados são sensíveis a maiúsculas e minúsculas; o nome completo deve ter entre 1 e 32 caracteres Unicode; os nomes devem ser diferentes dentro da mesma suite. RecordStores em diferentes suites podem ter o mesmo nome;

"

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?