DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Artigo Java Magazine 44 - A Plataforma Java ME

Artigo publicado pela Java Magazine 44.

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

A Plataforma Java ME

Parte 1: Conceitos e APIs

Comece a conhecer a tecnologia Java ME em profundidade, dos princípios fundamentais a detalhes de configurações, perfis e APIs

Nestes mais de quatro anos de Java Magazine, todos os artigos desta coluna, cobrindo variados temas e APIs, tiveram uma coisa em comum – o requisito mínimo da plataforma Java SE, e algumas vezes também da Java EE. Mas não é só em direção ao high-end, às grandes aplicações corporativas, que a tecnologia Java evoluiu. Também é notório o sucesso do Java, em anos recentes, em toda espécie de equipamentos limitados, de smart cards a PDAs, comumente chamados "dispositivos" (devices). E esta área de aplicação tem se tornado cada vez mais importante. Em especial devido à popularização mais recente no Brasil de dispositivos de amplo consumo, como modelos acessíveis de telefones celulares, que já suportam a versão "micro" do Java.

A partir desta edição, iniciamos uma série de artigos cobrindo a plataforma Java ME. Este primeiro artigo irá apresentar a Java ME em geral. O objetivo será situar o leitor no complexo universo de padrões e implementações da Java ME, já discutir um pouco questões de projeto específico para dispositivos limitados, e "sobrevoar" diversos tópicos que mais tarde iremos tratar de forma aprofundada.

Aprender a programar para Java ME não é só uma questão de conhecer novas APIs e ferramentas. Para quem está habituado a servidores cheios de gigabytes e gigahertz, o desenvolvimento "micro" apresenta uma mudança de paradigma, sendo preciso repensar várias práticas e técnicas de design e de programação. Nesta série, procuraremos explorar também este aspecto do Java ME. Nos artigos que se seguirão, cobriremos APIs específicas, otimização e outros tópicos importantes. Nosso foco será a configuração CLDC e o perfil MIDP, ou seja, celulares, por ser a plataforma que terá o maior interesse prático para a maioria dos leitores.

A plataforma Java ME

Todo texto introdutório sobre Java ME inclui alguns conceitos e diagramas fundamentais, dos quais também não podemos fugir. Precisamos começar pela estrutura de Configurações, Perfis e Extensões da Java ME. A Figura 1 (fonte: Sun) é uma visão atualizada e detalhada da plataforma.

 

Figura 1. A plataforma Java ME com suas configurações, perfis, e APIs. Existem APIs definidas nos níveis de perfil (“API”) e de configuração (não mostradas), e também APIs de extensão que às vezes são compartilhadas por diferentes configurações (nas "fronteiras"). Além disso, há algumas APIs e padrões que não fazem parte oficialmente da plataforma Java ME mas podem ser oferecidas em implementações de Java ME, especialmente a RealTime Specification for Java.

A maior diferença de paradigma entre os padrões Java SE e EE e a Java ME é que esta não tem uma definição única. O problema é que o hardware ao qual a Java ME se destina é bem mais heterogêneo, em desempenho e em funcionalidades, do que computadores desktop ou servidores. E não há folga que permita impor o peso de APIs que não sejam realmente úteis em cada dispositivo, apenas para manter um ideal de portabilidade.

Por exemplo, precisamos de APIs para multimídia porque existem dispositivos (como PDAs e celulares atuais) com telas de boa resolução, câmeras, e capacidade de processamento e memória suficiente para tocar e até gravar vídeos (entre outros recursos multimídia). Mas o que fazer com dispositivos mais modestos, como um celular simples com tela em preto-e-branco, nenhuma câmera, pouca memória, talvez até CPU fraca demais para codificar vídeo? Se a plataforma Java ME obrigasse tal produto a carregar APIs de multimídia, estaria apenas desperdiçando seus já limitados recursos.

Isto é ainda mais verdadeiro considerando que estes dispositivos são muito mais fechados que um PC: embora existam algumas opções de atualização (inclusive ROMs atualizáveis), a maioria das funcionalidades, seja de software ou hardware, ou vem de fábrica ou não é disponível. Não fariam sentido imposições como "vamos obrigar todos os celulares a ter a API para Bluetooth", pois na grande maioria dos aparelhos que não tenham a capacidade de comunicação Bluetooth, isso não é um item opcional que possa ser instalado pelo usuário.

O resultado desta realidade é que a Java ME é estruturada em subconjuntos de funcionalidade. Existem três níveis de divisão: Configuração, Perfil e Extensões.

Configuração

Uma configuração é uma especificação de capacidades da plataforma subjacente (a JVM, e indiretamente, o hardware). A configuração define uma divisão vertical do mercado, orientada pela capacidade dos dispositivos.

 

"


ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Publicidade
Autor
Osvaldo Pinali Doederlein

é Mestre em Engenharia de Software Orientado a Objetos e Arquiteto de Tecnologia da Visionnaire Informática, trabalhando em projetos de software e prospecção tecnológica.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03