Artigo: A Survey of J2ME Today Autor: Enrique Ortiz Publicado: http://developers.sun.com/techtopics/mobility/getstart/articles/survey/ Data Publicação: 01/10/2004 Introdução Java 2 Platform, Micro Edition (J2ME) é uma das 3 edições da plataforma Java. J2ME define um grupo de ambientes para execução e APIs para dispositivos eletrônicos como telefones celulares, PDAs e vários outros dispositivos com poucos recursos para suportar a implementação completa das outras 2 edições da plataforma Java: J2SE – voltada para aplicações desktop; e J2EE – voltada para aplicações servidoras. Visão Geral A figura 1 mostra que além de J2ME, existem outras tecnologias Java disponíveis para dispositivos móveis como EmbeddedJava e PersonalJava, ambas descontinuadas, e JavaCard. J2ME oferece uma grande e crescente variedade de configurações, perfis e pacotes opcionais. Figura 1- Variantes da plataforma Java para dispositivos eletrônicos Organização A J2ME Platform Specification (JSR 68) define não somente os vários componentes de J2ME como também a arquitetura geral da plataforma. Ao invés de uma simples e monolítica plataforma com um grande footprint, J2ME é organizada em uma estrutura multicamada (figura 2), composta de conjuntos de software de 3 tipos: configurações, perfis e pacotes opcionais. Uma configuração como CLDC fornece serviços fundamentais para um grande conjunto de dispositivos, por exemplo dispositivos móveis com processamento e conectividade limitada. Um perfil como MIDP fornece serviços de mais alto nível para um conjunto de dispositivos mais específicos como celulares e PDAs. Um pacote opcional adiciona serviços especializados que são úteis para alguns dispositivos mas não necessários para todos, como GPS, SMS, etc. Há ainda API desenvolvidas por fabricantes de dispositivos que fornecem funcionalidades específicas para um dado dispositivo, como APIs para ativarem a função de vibração de determinado celular. Figura 2 - Organização da platform J2ME Configurações Uma configuração define o básico para um ambiente de execução J2ME. Isto inclui a máquina virtual e um conjunto de classes básicas fundamentais derivadas de J2SE. Cada configuração é voltada para famílias de dispositivos com capacidades semelhantes. Figura 3 - Configurações J2ME A Connected Limited Device Configuration (CLDC) é a configuração J2ME mínima voltada para dispositivos com restrições de processamento, memória, bateria e largura de banda. Esta configuração é formada por um subconjunto de pacotes de edição J2SE e suporta dispositivos com processadores de 16 ou 32 bits com no mínimo 160 KB de memória não volátil e 32 KB de memória volátil, num total de 192K. Já configuração CDC é um superconjunto da configuração CLDC, voltada para dispositivos com mais poder de processamento do que aqueles suportados pela configuração CLDC, como PDAs e telefones celulares high-end. Esta configuração suporta dispositivos com processadores de 32 bits, tipicamente baseados na arquitetura ARM, com no mínimo 2 MB de memória principal e 2,5 MB de memória somente leitura, e alguma forma de conectividade. A configuração CDC, por ser um superconjunto da configuração CLDC, inclui muito mais classes e pacotes de J2SE. A tabela 2 lista os principais pacotes da configuração CDC. Perfis Uma configuração não fornece classes para gerenciamento do ciclo de vida da aplicação, apresentação (interface com o usuário), persistência local dos dados ou acesso seguro de informação armazenado em um servidor remoto. Este tipo de funcionalidade é fornecido pelos perfis ou pelos pacotes opcionais. Um perfil adiciona classes de domínio específico à lista de classes fornecidas pela configuração. Figura 4 - Perfis J2ME Da configuração CLDC emergem 2 perfis: Mobile Information Device Profile (MIDP 1.0 e 2.0) e Information Module Profile (IMP). Da configuração CDC emergem 3 perfis: Foundation Profile (FP), Personal Basis Profile (PBP), e Personal Profile (PP). A figura 4 demonstra como configuração e perfis se relacionam. Múltiplos perfis podem co-existir sobre uma mesma configuração, caso dos perfis MIDP e IMP da configuração CLDC. Há também a possibilidade de que um perfil seja construído em cima de outro, caso dos perfis FP, PBP e PP da configura CDC. Pacotes Opcionais Pacotes opcionais são componentes muito importantes dentro da arquitetura J2ME. Considere-os como extensão dos perfis. Eles fornecem suporte a funcionalidades como multimídia, envio de mensagens (SMS) e serviços de localização (GPS). Conclusão A plataforma J2ME vem evoluindo para um ambiente de execução completo e com inúmeras APIs para o desenvolvimento de aplicações baseadas na tecnologia Java para um considerável número de dispositivos eletrônicos. O coração da plataforma J2ME são as configurações, responsáveis por definir a funcionalidade básica para determinada família de dispositivos. Até agora, as duas configurações definidas são CLDC para dispositivos de menor porte e CDC para dispositivos mais poderosos. Apoiados nas configurações, os perfis adicionam classes para construção de interface gráfica, conectividade e controle do ciclo de vida da aplicação. Os perfis baseados na configuração CLDC são Mobile Information Device Profile (MIDP) e Information Module Profile (IMP). Os perfis baseados em CDC são Foundation Profile (FP), Personal Basis Profile (PBP) e Personal Profile (PP). J2ME também inclui pacotes opcionais, conjuntos de APIs que estendem os perfis fornecendo funcionalidades específicas disponíveis em alguns dispositivos e necessárias a algumas aplicações.