DESENVOLVIMENTO DE APLICAÇÕES MÓVEIS COM J2ME

7
DESENVOLVIMENTO DE APLICAÇÕES MÓVEIS COM J2ME Andrea Rodrigues de Amorim <[email protected]> Karen Selbach Borges <[email protected]> – Orientadora Universidade Luterana do Brasil (Ulbra) – Curso de Sistemas de Informação – Câmpus Canoas Rua Miguel Tostes, 101 – Bairro São Luis – Canoas – RS RESUMO Este artigo apresenta uma solução para a necessidade de mobilidade no ambiente empresarial usando a tecnologia Java para pequenos dispositivos móveis (J2ME). Esta solução compreende uma aplicação móvel a ser instalada em telefones celulares que irá acessar a base de dados corporativa através de uma conexão com a extranet da empresa. Palavras- chaves: Mobilidade; J2ME; Celulares. A BSTRACT This paper introduces a solution for necessity of mobility at business environment using Java technology for small mobile devices. This solution includes a mobile application that will be installed in cell phones, which will access a corporate database through a connection with the company’s extranet. Key- words: Mobility; J2ME; cell phones. 1 I NTRODUÇÃO No mundo atual, a necessidade de integrar comunicação e mobilidade se torna cada vez maior. Com a quebra da fronteira entre os mercados, as empresas buscam soluções que viabilizem seus negócios, tanto a nível gerencial como operacional, dentro desta nova realidade que impõe a realização de comunicações e operações de acesso a dados a qualquer hora, a partir de qualquer lugar do planeta. A explosão da tecnologia móvel nos últimos anos abriu um universo de possibilidades para os desenvolvedores de aplicativos. Entretanto, a diversidade de plataformas a serem integradas e a preocupação com a performance são desafios a serem considerados. O objetivo geral deste trabalho é apresentar uma solução móvel para integrar o ambiente empresarial com seus colaboradores, quando estiverem fora da sede. Com os objetivos específicos de garantir portabilidade e desempenho a custos reduzidos, este artigo descreve o projeto e a implementação do protótipo de uma aplicação para telefone celular que acessa um servidor corporativo. A Seção 2 expõe uma visão geral da tecnologia sem fio. A seguir, a Seção 3 introduz a edição para dispositivos pequenos da linguagem Java e a Seção 4 descreve a solução proposta. Finalmente, na Seção 5 são feitas as considerações finais. 2 O MUNDO SEM FIO O principal objetivo da tecnologia sem fio é proporcionar mobilidade, ou seja, permitir que os usuários obtenham qualquer tipo de informação, em movimento (LEAL, 2004). 2.1 Vantagens Num cenário onde os colaboradores das empresas precisam enfrentar viagens, engarrafamentos e deslocamentos constantes, a possibilidade de acesso às informações relevantes ao desempenho de suas funções, a qualquer momento, é vital para o crescimento das organizações. In: Seminário de Informática – RS (SEMINFO-RS'2005) 155 Jornada Integrada de Trabalhos de Conclusão de Curso em Computação (JIT3C) Torres, 4 a 6 de novembro de 2005

description

Trabalho apresentado na Jornada Integrada de Trabalhos de Conclusão de curso em Computação durante o Seminfo-RS 2005

Transcript of DESENVOLVIMENTO DE APLICAÇÕES MÓVEIS COM J2ME

Page 1: DESENVOLVIMENTO DE APLICAÇÕES MÓVEIS COM J2ME

DESENVOLVIMENTO DE APLICAÇÕES MÓVEIS COMJ2ME

Andrea Rodrigues de Amorim <[email protected] >Karen Selbach Borges <[email protected] > – Orientadora

Universidade Luterana do Brasil (Ulbra) – Curso de Sistemas de Informação – Câmpus CanoasRua Miguel Tostes, 101 – Bairro São Luis – Canoas – RS

RESUMO

Este artigo apresenta uma solução para a necessidade de mobilidade no ambiente empresarialusando a tecnologia Java para pequenos dispositivos móveis (J2ME). Esta solução compreende umaaplicação móvel a ser instalada em telefones celulares que irá acessar a base de dados corporativaatravés de uma conexão com a extranet da empresa.

Palavras - chaves: Mobilidade; J2ME; Celulares.

ABSTRACT

This paper introduces a solution for necessity of mobility at business environment using Javatechnology for small mobile devices. This solution includes a mobile application that will be installed incell phones, which will access a corporate database through a connection with the company’s extranet.

Key- words: Mobility; J2ME; cell phones.

1 INTRODUÇÃO

No mundo atual, a necessidade de integrar comunicação e mobilidade se torna cadavez maior. Com a quebra da fronteira entre os mercados, as empresas buscam soluções queviabilizem seus negócios, tanto a nível gerencial como operacional, dentro desta novarealidade que impõe a realização de comunicações e operações de acesso a dados a qualquerhora, a partir de qualquer lugar do planeta.

A explosão da tecnologia móvel nos últimos anos abriu um universo de possibilidadespara os desenvolvedores de aplicativos. Entretanto, a diversidade de plataformas a seremintegradas e a preocupação com a performance são desafios a serem considerados.

O objetivo geral deste trabalho é apresentar uma solução móvel para integrar oambiente empresarial com seus colaboradores, quando estiverem fora da sede. Com osobjetivos específicos de garantir portabilidade e desempenh o a custos reduzidos, este artigodescreve o projeto e a implementação do protótipo de uma aplicação para telefone celularque acessa um servidor corporativo.

A Seção 2 expõe uma visão geral da tecnologia sem fio. A seguir, a Seção 3 introduz aedição para dispositivos pequenos da linguagem Java e a Seção 4 descreve a soluçãoproposta. Finalmente, na Seção 5 são feitas as considerações finais.

2 O MUNDO SEM FIO

O principal objetivo da tecnologia sem fio é proporcionar mobilidade, ou seja,permitir que os usuários obtenham qualquer tipo de informação, em movimento (LEAL,2004).

2.1 Vantagens

Num cenário onde os colaboradores das empresas precisam enfrentar viagens,engarrafamentos e deslocamentos constan tes, a possibilidade de acesso às informaçõesrelevantes ao desem pe nho de suas funções, a qualquer momento, é vital para o crescimentodas organizações.

In: Seminário de Informática – RS (SEMINFO- RS'2005) 155Jornada Integrada de Trabalhos de Conclusão de Curso em Computação (JIT3C)Torres, 4 a 6 de novembro de 2005

Page 2: DESENVOLVIMENTO DE APLICAÇÕES MÓVEIS COM J2ME

156 SEMINFO- RS'2005

A tecnologia sem fio torna possível adicionar mobilidade às soluções convencionais,sem criar aplicações totalmente novas (LEAL, 2004), inserindo módulos que irão agregarvalor às ferramentas preexisten tes evitando o descarte de tecnologia e contornand o aresistência natural dos clientes a mudanças drásticas.

2.2 Problemas

O maior problema enfrentado no desenvolvimento de aplicações móveis é a escassezde recursos dos equipamen tos sem fio disponíveis atualmente no mercado. Consideran do osaparelhos celulares, pode - se destacar restrições como: disponibilidade da rede, tamanho datela, quantidade limitada de memória, poder de processamen to reduzido.

Além disso, com a diversidade de arquiteturas existentes tanto entre os dispositivosmóveis como entre os ambientes de produção das organizações, a conectividade entre eles ea conseqüen te portabilidade torna - se um grande desafio das aplicações móveis.

2.3 Tecnologias disponíveis

As principais tecnologias disponíveis atualmente para a implementação de soluçõesmóveis são: SMS, MMS, BREW e Java 2 Micro Edition (J2ME). É importan te salientar que estastecnologias não são excludentes podendo uma aplicação móvel utilizar - se de mais de umadelas.

Segundo Leal (2004) e Soares (2004) a tecnologia J2ME proporciona o melhorcusto /benefício na medida que:

• Profissionais da linguagem Java podem ser aproveitados;• Amplamente adotada pelos fabricantes e operadoras de telefonia móvel;• Uma vez que a aplicação estiver instalada poderá ser utilizada fora da área de

cobertura ou sem sinal, fazendo sincronização dos dados no retorno;• Compatibilidade de plataformas: aplicativos Java são escritos uma vez e rodam em

diferentes dispositivos com sistemas operacionais diferentes;• Permite implementar criptografia extra para aplicativos de acesso a bancos entre

outros;• Fornece um cliente de rede sofisticado permitindo tirar proveito das vantagens e

particularidades dos aparelhos móveis.

2.4 Situação atual

De acordo com Almeida (2004), em 2002 já existiam 50 milhões de aparelhoscelulares com a máquina virtual Java em operação no mundo. Ele estima que até 2007, cempor cento dos celulares serão compatíveis com J2ME.

Entre as empresas que atualmente oferecem algum tipo de solução móvel podemosdestacar a Compera, a gaúcha Trevisan Tecnologia e a Class Systems Solutions . Apesar detoda a tecnologia disponível, a oferta de aplicações móveis ainda é pequena deixando umenorme mercado a ser explorado. Segundo Souza (2003), a parceria entre as operadoras detelefonia móvel e os desenvolvedores poderá mudar este cenário.

3 TECNOLOGIA J2MEA plataforma J2ME é a edição da linguagem Java que foi projetada para dispositivos

com memória, vídeo e poder de processamen to limitados, variando desde máquinas ligadas àTV até telefones celulares. Antes do surgimento da tecnologia J2ME as aplicações tinham queser escritas na linguagem nativa de cada dispositivo usando bibliotecas proprietárias, o queas tornavam incompatíveis com dispositivos diferentes.

A arquitetura da plataforma J2ME permite ao desenvolvedor conhecer informaçõesespecíficas sobre as diferentes famílias de dispositivos e as Application Program Interfaces(APIs) disponíveis para cada uma delas (ALMEIDA, 2004). Está dividida em Configurações,Perfis e APIs opcionais.

Page 3: DESENVOLVIMENTO DE APLICAÇÕES MÓVEIS COM J2ME

Jornada Integrada de Trabalhos de Conclusão de Curso em Computação (JIT3C) 157

3.1 Máquina Virtual Java

A máquina virtual J2ME é chamada KVM numa alusão à escassez de recursos dosdispositivos, que estão na ordem dos kilobytes . É a base da arquitetura, localizada logo acimado sistema operacional hospedeiro, seguida pelas Configurações que dão suporte aos Perfis.

3.2 Configurações

Uma configuração define as caracterís ticas mínimas de uma família de dispositivos,bem como os recursos e bibliotecas Java que a compõem (MUCHOW, 2004). Estão divididasem:

• Connected Device Configuration (CDC): conjunto de APIs para dispositivos “fixos”,como um computador ligado à televisão;

• Connected Limited Device Configuration (CLDC): conjunto de APIs para dispositivoscom poder de processamen to, vídeo e memória limitados, geralmente móveis.

3.3 Perfis

Um perfil define um conjunto de APIs que fornece funcionalidade a uma configuração,sendo mais específico que esta (ALMEIDA, 2004). Os perfis existentes são:

• Foundation Profile : base para dispositivos em rede sem interface gráfica, usado comCDC;

• Personal Basis e Personal Profile : base para dispositivos com supor te gráfico e altacapacidade, usado com CDC;

• Mobile Information Device Profile (MIDP): perfil compatível com CLCD implementacomponentes, entrada e tratamento de eventos de interface com usuário,armazenamento persisten te, interligação em rede, segurança, entre outrosrecursos.

4 PROJETO CELCORP

O projeto proposto refere - se a uma aplicação móvel para telefones celulares, oCelCorp, que visa oferecer acesso à agenda de compromissos corporativa, suprindo anecessidade de mobilidade do ambiente empresarial.

Por limitações de escopo, o projeto CelCorp está sendo implementado como umprotótipo composto por dois módulos móveis - Agenda e Preferências – e um móduloservidor que também pode ser acessado via navegador de internet . A fim de simular oservidor web de uma empresa será utilizada a estrutura de um sítio que oferece hospedagempara aplicações Java. O acesso à base de dados é feito através de uma conexão com esteservidor web .

O módulo servidor da aplicação será formado por um contêiner web onde estarãoarmazenadas as servlets que farão a comunicação com as midlets (clientes da aplicação) e obanco de dados para armazenar as informações da agenda de compromissos, cadastro deusuários e permissões de acesso.

As servlets farão o acesso aos dados a partir de dois arquivos de propriedades quepoderão ser configurados conforme o banco de dados utilizado pelo cliente. O protótipo doCelCorp usará o banco de dados PostgreSQL 8.0.

A fim de manter a compatibilidade do sistema com a grande maioria dos celulares emoperação, a aplicação móvel está sendo desenvolvida usando a configuração CLCD 1.0 e operfil MIDP 1.0 da tecnologia J2ME. A comunicação com o servidor web será feita através deconexão genérica HiperText Transfer Protocol (HTTP).

4.1 Padrões de Projeto

O CelCorp foi projetado em três camadas seguindo o padrão MVC (Model - View -Control ). A Figura 1 apresenta os módulos da aplicação móvel e o relacionamento entre eles,permitindo identificar as camadas do padrão.

Page 4: DESENVOLVIMENTO DE APLICAÇÕES MÓVEIS COM J2ME

158 SEMINFO- RS'2005

Figura 1 – Diagrama de Pacotes CelCorp

A camada View é responsável pela interface com o usuário. A camada Control permitea ligação entre as camadas view e database da aplicação. É nesta camada que são feitas asvalidações de dados e o controle do fluxo de entrada e saída de dados. A camada Modelcorrespon de aos pacotes database da aplicação e é responsável pelo armazena men topersisten te dos dados.

O padrão Singleton foi utilizado na criação de objetos pois segundo Gamma et al .(2005, p. 130), este padrão garante que somente uma instância de cada classe seja criadadurante todo o ciclo de vida da aplicação. Este padrão é bastante útil nas aplicações móveispor economizar o poder de processame nto do dispositivo evitando a criação e dest ruição deobjetos que serão reutilizados em seguida.

4.2 Módulos Móveis

O módulo Preferências apresenta opções de configuração do sistema que podem seralteradas pelo usuário. As configurações disponíveis são:

• Solicitar senha: o padrão do sistema é solicitar os dados de identificação (login esenha) apenas uma vez, armazenando - os no aparelho celular. Se desejar, o usuáriopoderá definir que o login e senha sejam solicitados sempre que entrar naaplicação.

• Confirmar conexão: o padrão do sistema é conectar - se automaticamente aoservidor web . Entretanto, o usuário poderá configurar o sistema para solicitar suaconfirmação antes de efetuar a conexão.

O módulo Agenda permite ao usuário incluir, editar, excluir, consultar esincronizar compromissos da sua agenda corporativa tanto localmente como de formaremota através do módulo servidor. Quando a comunicação com o servidor web estiverdisponível, todas as operações serão realizadas no servidor e nenhum dado será armazena dono celular, configurando o estado online . Quando a conexão não for possível ou desejável, osdados e operações serão gerenciados no próprio aparelho celular, configurando o estadooffline .

Para garantir que as operações sejam realizadas adequadame nte conforme o estadoda aplicação foi utilizado o padrão State . De acordo com Gamma et al . (2005, p. 284) estepadrão permite que um objeto mude seu compor ta me nto em função de seu estado interno. AFigura 2 apresenta o diagrama de estados do módulo Agenda, indicando as operaçõesresponsáveis pelas mudanças de estado.

Page 5: DESENVOLVIMENTO DE APLICAÇÕES MÓVEIS COM J2ME

Jornada Integrada de Trabalhos de Conclusão de Curso em Computação (JIT3C) 159

Figura 2 – Diagrama de Estados da Agenda

Ao entrar no módulo Agenda o estado InicialState verifica as preferências do usuário epoderá solicitar a identificação do mesmo no sistema e/ou a confirmação para conectar - seao servidor web . Conforme a decisão do usuário o estado da aplicação é alterado e a telainicial do módulo Agenda é carregada.

Caso a aplicação esteja no estado OnlineState , se ocorrer algum erro na conexão seuestado passará a ser OfflineState e os dados em memória serão armazenados no celular. Noestado OfflineState , se a operação sincronizar for selecionada pelo usuário, o sistema passarápara o estado OnlineState e os dados locais serão transferidos para o servidor web .

A conexão com o servidor web é feita em uma linha de execução separada permitindoque o dispositivo continue disponível durante a operação. Para implementa r a execução deprocessos concorrentes foi usada uma instância da classe Thread .

4.3 Padronização das Interfaces

A padronização das interfaces é muito difícil no ambiente J2ME. O desenvolvedorpode e deve usar um padrão mas cada dispositivo irá implementá - lo à sua maneira.

As interfaces do protótipo estendem a classe Form onde são adicionados elementosdo tipo TextBox para entradas de texto, DateField para entrada de data /ho ra, ChoiceGrouppara escolha de opções e Gauche para mostrar progresso da conexão. A única exceção é ainterface inicial do módulo Agenda que usa a classe List pela funcionalidade de seleção comum único comando.

Para permitir aos usuários o acesso às operações do sistema, foram associadosobjetos da classe Command às interfaces . Estes objetos possuem propriedades comoprioridade e tipo de comando as quais poderão influenciar a maneira como o dispositivo iráimplementá - los.

A Figura 3 mostra a interface inicial do módulo Agenda onde aparecem oscompromissos do dia, em ordem cronológica, e os comandos disponíveis.

Page 6: DESENVOLVIMENTO DE APLICAÇÕES MÓVEIS COM J2ME

160 SEMINFO- RS'2005

Figura 3 – Interface inicial do módulo Agenda

Nesta implementação do simulador, o comando “Sair” aparece sozinho à esquerda eos demais comandos foram agrupados sob o nome “Menu” do lado direto da tela. Entretanto,esta apresentação não é uma regra, no celular Nokia 6820, o comando “Sair” aparece àdireita, o comando “Adicionar” ao centro e os demais comandos agrupados à esquerda sob onome “Opções”.

4.4 Módulo Servidor

O módulo servidor permite o acesso às mesmas funcionalidades do módulo Agenda,via navegador de internet . Além disso, os usuários poderão fazer manutenção nos seusdados cadast rais. O administ rador do sistema poderá também cadastrar, alterar ou excluirusuários.

A arquitetura original em 3 camadas sofre alguma adaptação no ambiente web . AFigura 4 mostra a arquitetura em 4 camadas do servidor web .

Figura 4 – Arquitetura em camadas do servidor web

A camada Web é composta pelas JavaServer Pages que enviam conteúdo dinâmicopara o navegador do usuário. A camada de aplicação é formada pelo conjunto de servlets quefazem a ligação entre as JSP’s e a camada de persis tência que por sua vez, contém as classesde acesso ao banco de dados e os arquivos de propriedades.

O cliente móvel conecta - se diretamen te com a camada de aplicação do servidor webatravés de uma servlet que atua fazendo a ligação da aplicação móvel com a camada de dadosdo servidor. Esta servlet recebe, interpreta e redireciona os dados conforme a operaçãosolicitada, retornand o o resultado.

Page 7: DESENVOLVIMENTO DE APLICAÇÕES MÓVEIS COM J2ME

Jornada Integrada de Trabalhos de Conclusão de Curso em Computação (JIT3C) 161

5 CONCLUSÃO

Este artigo apresentou uma solução para atender à crescente demanda por mobilidadecom disponibilidade no mercado corpora tivo atual. O CelCorp foi planejado para serintegrado aos sistemas preexisten tes nas empresas, como um módulo de mobilidade.

No decorrer do projeto CelCorp ficou evidente a importância do uso de padrões deprojeto. Além de facilitar a manutenção das aplicações, os padrões são fundamentais para odesenvolvedor entender e resolver problemas na implementação de situações reais, variáveise complexas.

Apesar da perda de recursos como criptografia nativa, o uso das versões iniciais doJ2ME garante a compatibilidade com a grande maioria dos aparelhos celulares em operaçãohoje. Além disso, a modularidade do projeto permite que tais recursos sejam facilmenteincorporados no futuro.

REFERÊNCIAS

ALMEIDA, Leandro Batista de. Introdução à J2ME e Programação MIDP. Mundo Java , Curitiba,nº 5, p. 20- 27, maio. 2004.

GAMMA, Erich; HELM, Richard; JOHNSON, Ralph; VLISSIDES, John Padrões de Projeto :Soluções reutilizáveis de software orientado a objetos. Porto Alegre: Bookman, 2005. 364 p.

LEAL, Mauricio. Começando com Java Wireless. Java Magazine , Rio de Janeiro, nº 18, p. 16-19, 2004.

MUCHOW, John W. Core J2ME – Tecnologia & MIDP. São Paulo: Pearson Makron Books, 2004.588 p.

SOARES, Marilson. A Tecnologia Java como Diferencial no Mundo dos Celulares. Mundo Java ,Curitiba, nº 5, p. 53- 54, maio. 2004.

SOUZA, Bruno. Fazendo Wireless Acontecer: J2ME e o Mercado Brasileiro. Java Magazine , Riode Janeiro, nº 3, p. 12- 15. 2003.