• Nenhum resultado encontrado

2.3 Plataformas de Celulares

2.3.6 Plataforma Java ME

Java Micro Edition (Java ME), também conhecido como J2ME, é uma plataforma de execução de aplicativos Java para sistemas embarcados em geral. Diferente de outras PSC, anteriormente abordadas, Java ME não implementa um SO, mas sim, uma máquina virtual (Java Virtual Machine - JVM), projetada para dispositivos com restrições de memória, limitações de tela e pouco poder de processamento.

Java ME pode ser considerada uma Plataforma de Desenvolvimento para as PSCs (PDC), pois provê uma plataforma comum para programar em dispositivos como: celu- lares; pages; PDAs; Set-top box18, definido por um conjunto padronizado de config- urações, perfis e bibliotecas opcionais, permitindo aos desenvolvedores escreverem aplicações para uma grande faixa de dispositivosNokia(2008).

A PDC Java ME possui uma coleção de APIs do Java, definidas através da JCP19 (Java Community Proccess), cujo membros da indústria de celular, implementam as especificações de cada API, definidas conjuntamente, de acordo com a sua tecnologia de hardware do dispositivo ou da sua PSC. Com isso, todos que desejam fornecer determinados recursos, implementem os requisitos da especificação da biblioteca de forma similar. Dessa forma, aplicações de terceiros podem ser portadas para dispositivos de diferentes fabricantes. Além disso, em teoria, também poderão funcionar em outros aparelhos que seguem as mesmas especificações.

A Figura2.10, apresenta a visão da arquitetura da platorma Java ME. Basicamente, de acordo comKeogh(2003);Muchow(2001), uma aplicação em Java ME funciona através da execução do aplicativo sobre a JVM (conhecida também como K Virtual Machine), respeitando a versão da configuração (Configuration) e o perfil (Profile), permitindo assim, acessar os recursos que o aparelho dá suporte.

De forma sintetizada, as camadas têm as seguintes responsabilidades:

• Aplicações: é o pacote da distribuição do software propriamente dito;

• OEM APIs: outras APIs que possibilitam a utilização de recursos avançados ou específicos para determinados clientes ou grupos;

18Set-top box: um dispositivo eletrônico que é conectado em um canal de comunicação e produz saída sobre uma tela de TV.

2.3. PLATAFORMAS DE CELULARES

Figura 2.10 Arquitetura geral da plataforma Java ME (fonte:Keogh(2003);Muchow(2001))

• Pacotes Opcionais: bibliotecas com recursos específicos. Na prática são aquelas implementações provindas das especificações da JCP; Um conjunto ou pacote op- cional de bibliotecas que fornecem classes funcionais adicionais. A inclusão destes pacotes no Java ME podem variar porque depende da capacidade do dispositivo;

• Perfis: fornecem bibliotecas da API de interface com o usuário, persistência e mensagens, entre outros recursos;

• Configurações: a configuração define um ambiente de execução básico do sis- tema. Isto define as características das bibliotecas principais, da máquina virtual, segurança e comunicação em rede;

• Sistema Operacional do Dispositivo: interface com o SO nativo do celular.

Os pacotes opcionais são bibliotecas que são conhecidas como JSRs20, que permitem estender as funcionalidades básicas da plataforma Java ME. Alguns exemplos são: JSR- 82 (Java APIs for Bluetooth Wireless Technology), para utilizar Bluetooth na aplicação; JSR-135 (Mobile Media API), que serve para tocar sons, músicas e videos com formatos diferentes; etc.

Existem algumas variações das versões das bibliotecas de configurações e perfis, tais como:

• CDC (Connected Device Configuration): usada em dispositivos com maior capaci- dade computacional (ex. CDC 1.0 e 1.1.2);

• CLDC (Connected Limited Device Configuration): usada para menor capacidade computacional (ex. CLDC 1.0 e 2.0);

2.3. PLATAFORMAS DE CELULARES

• MIDP (Mobile Information Device Profile): define o perfil (ex. MIDP 1.0, 2.0 e 2.1).

Cada variação adiciona algumas funcionalidades ou restringe outras. Por exemplo, um celular que suporta CLDC 1.1, poderia utilizar a funcionalidade de ponto flutuante (uso do tipo primitivo float), entre outras.

Uma das vantagens da CLDC Java ME, de forma geral, é que vem sendo utilizado em larga escala em todo o mundo. Segundo Loureiro et al. (2003), a linguagem de programação Java tem sido mais usada para programação para celulares no mundo. Além disso, conformeSunMicrosystems(2009), a plataforma, inclui 2,1 bilhões de telefones celulares e outros dispositivos portáteis e possui mais de 6 milhões de desenvolvedores. Muitos fabricantes incorporaram essa tecnologia nos seus aparelhos por oferecer um custo/benefício relativamente baixo para implementá-lo, e assim, possibilitando o desenvolvimento de aplicativos usando uma linguagem de programação já conhecida pelos desenvolvedores. Dessa forma, a maioria dos fabricantes e, consequentemente, as primeiras operadoras adotaram esta plataforma para a oferta de serviços de dados.

Os desenvolvedores, segundoJunquera and Gnius(2005), por sua vez, com a ajuda dos fabricantes de celulares, conseguiram ter acesso às ferramentas para criar aplicações Java para celulares a custos muito baixos, fomentando a criação de uma ampla comunidade de desenvolvedores. Além do mais, os desenvolvedores viram como todos os fabricantes de celular incorporavam esta tecnologia em seus dispositivos, o que lhes facilitou uma comunidade importante de possíveis clientes.

Por outro lado, um das limitações da PDC Java, segundoJunquera and Gnius(2005), é que a plataforma é utilizada principalmente em três aplicações muito concretas: ringtones, wallpapers e jogos. Um dos desafios de PDC Java ME é estender essas categorias, oferecendo aplicações de outros tipos, tais como aplicações corporativas, de produtividade e torná-las acessíveis às operadoras.

Outro desafio de Java ME é que existe uma fragmentação da plataforma, pois cada fabricante implementou uma versão da arquitetura, ligeiramente diferente e com certas ferramentas particulares de seus dispositivos, o que, segundoJunquera and Gnius(2005);

Tarnacha and Maitland(2006), força os serviços de valor agregado nas redes de celular (desenvolvedores) a criar a mesma aplicação segundo os requisitos do dispositivo e a versão particular de Java do telefone segundo o fabricante.