Escolar Documentos
Profissional Documentos
Cultura Documentos
Aps PDF
Aps PDF
DE PERNAMBUCO
DESENVOLVIMENTO DE
APLICATIVOS PARA DISPOSITIVOS
MVEIS NA PLATAFORMA J2ME
ESCOLA POLITCNICA
DE PERNAMBUCO
DESENVOLVIMENTO DE
APLICATIVOS PARA DISPOSITIVOS
MVEIS NA PLATAFORMA J2ME
DESENVOLVIMENTO DE
APLICATIVOS PARA DISPOSITIVOS
MVEIS NA PLATAFORMA J2ME
ESCOLA POLITCNICA
DE PERNAMBUCO
Resumo
Este trabalho apresenta um estudo sobre dispositivos mveis e as plataformas J2ME e J2EE,
explicando a implementao de um prottipo de software que auxiliar a obteno de
informaes sobre docentes e discentes do NUPEC (Ncleo de Pesquisa em Engenharia da
Computao) da Escola Politcnica da Univesidade de Pernambuco. O aplicativo cliente foi
desenvolvido em J2ME e ser responsvel por fazer requisies para um aplicativo servidor. Tais
requisies so consultas relativas a informaes disponibilizadas em uma base de dados com
informaes sobre os projetos e pessoas do NUPEC. A aplicao servidora foi implementada
utilizando a plataforma J2EE e ser responsvel por responder s requisies das aplicaes
cliente. Alm de aplicar tecnologia no sistema implementado, este trabalho descreve tais
tecnologias que utilizam a comunicao sem fio, permitindo assim avaliar o potencial das
mesmas nesta rea to promissora.
Palavras chaves: Dispositivos mveis, J2ME, J2EE, Gerenciamento de informaes.
ESCOLA POLITCNICA
DE PERNAMBUCO
ii
Abstract
This work presents a study of mobile devices, J2ME and J2EE platforms, explaining the
implementation of a software prototype that will allow information retrieval about professors and
students of NUPEC (Computing Engineering Research Center) of the Polythechnic School of
Engineering of the Pernambuco State University. The client application was developed using the
J2ME platform and will send requests to a server application. Such requests are related to reports
of information from a database that stores data related to NUPEC projects and people. The
server application was implemented using the J2EE platform and must response to the client
applications requests. Besides applying technologies in the implemented software, this work
presents such technologies that allow wireless communication, allowing to evaluate their
potential in such promising area.
ESCOLA POLITCNICA
DE PERNAMBUCO
iii
Sumrio
ndice de Figuras
ndice de Quadros
vi
ndice de Quadros
vi
vii
Introduo
Tecnologias
11
2.1
Java
2.2
Plataforma Java 2 Micro Edition (J2ME)
2.2.1
Perfis
2.2.2
Configuraes
2.2.3
Mquina Virtual J2ME
2.3
Java 2 Enterprise Edition (J2EE)
2.4
Struts
2.5
Wireless
2.6
Arquitetura Cliente/Servidor
2.7
HTTP (Hypertext Transfer Protocol)
2.7.1
Generic Connection Framework (GCF)
Comunicao Mvel
3.1
Histrico da Comunicao Mvel
3.2
Dispositivos Mveis
3.2.1
Vantagens dos Dispositivos Mveis
3.2.2
Desafio dos Dispositivos Mveis
Concluses
Trabalhos Futuros
11
13
14
15
15
16
17
18
18
19
21
23
23
24
25
26
27
29
30
31
36
39
39
42
42
43
ESCOLA POLITCNICA
DE PERNAMBUCO
iv
ESCOLA POLITCNICA
DE PERNAMBUCO
ndice de Figuras
Figura 1.
Figura 2.
Figura 3.
Figura 4.
Figura 5.
Figura 6.
Figura 7.
Figura 8.
Figura 9.
Figura 10.
Figura 11.
Figura 12.
Figura 13.
Figura 14.
Figura 15.
Figura 16.
Figura 17.
Figura 18.
Figura 19.
ESCOLA POLITCNICA
DE PERNAMBUCO
vi
ndice de Quadros
Quadro 1.
Quadro 2.
Quadro 3.
Quadro 4.
Quadro 5.
Quadro 6.
Quadro 7.
Quadro 8.
Quadro 9.
Quadro 10.
Quadro 11.
Quadro 12.
Quadro 13.
Quadro 14.
22
32
32
33
33
34
34
35
36
36
37
38
38
40
ESCOLA POLITCNICA
DE PERNAMBUCO
vii
ESCOLA POLITCNICA
DE PERNAMBUCO
viii
Agradecimentos
A Deus, pela fora concedida e pela oportunidade de estar concluindo mais uma
etapa da minha vida.
minha me, Ana Georgina Valena Bunzen, minhas tias Iracema Ferreira
Bunzen (In memorian) e Georgiana Bunzen Gianelli e meus irmos Fbio Bunzen
Romo e Rmulo Costa Romo Jnior, pelo amor, fora e apoio em todos os
momentos.
Ao meu pai, Murilo de Albuquerque Romeiro por todo carinho e segurana que
me foi passada.
Ao meu orientador, Prof. Srgio Soares pela ajuda e dedicao para que esse
trabalho fosse concludo com sucesso.
Aos professores de Engenharia da Computao da Universidade de
Pernambuco, que sempre que solicitados se mostraram disponveis a esclarecer
dvidas e questionamentos.
Aos Professores Ricardo Massa e Marcio Cornlio por terem aceitado o convite
de compor a banca.
Ao colega Bruno Jamir, pela pacincia e pelos conhecimentos compartilhados
que foram de grande importncia para o trmino deste trabalho.
Aos colegas, Lvia Brito e Leandro Marques pelo empenho em ajudar sempre
que foram requisitados.
s amigas do Club da Lulu, por cinco anos de amizade e companheirismo.
Aos demais colegas do curso de Engenharia da Computao, com destaque
especial para Rodrigo Cursino, Fernando Antonio e Cludio Cavalcante pelos anos de
amizade que tornaram-se um grande aprendizado.
ESCOLA POLITCNICA
DE PERNAMBUCO
Captulo 1
Introduo
Nos ltimos anos vem ocorrendo um notvel aumento na utilizao de dispositivos mveis, que
fazem uso da tecnologia de comunicao sem fio, em especial dos telefones celulares. Tais
aparelhos apesar do poder computacional limitado, a cada momento possuem uma nova forma,
tamanho, aumento na capacidade de processamento, alm de novos aplicativos agregados.
medida que a demanda por funcionalidades aumenta, as empresas de telefonia celular
vm acrescentando novas tecnologias a tais aparelhos, estimulando nos consumidores o desejo
de possuir o mais recente modelo de uma determinada marca.
Devido a esse crescente mercado, cresce tambm a motivao no sentido de desenvolver
novas aplicaes para esses dispositivos. A presena da mquina virtual Java nesses
equipamentos torna possvel o desenvolvimento de aplicaes utilizando a tecnologia Java 2
Micro Edition (J2ME), uma verso reduzida da linguagem Java utilizada para dispositivos
mveis.
O desenvolvimento de aplicativos para celulares vem tornando-se cada vez mais
freqente nas empresas especializadas em produo de software. Contudo, esses sistemas no
devem funcionar de maneira isolada. Entretanto, ignorar o fato de tais aparelhos serem
inerentemente objetos de comunicao subestimar o potencial deste artefato. Para tanto
necessrio definir um protocolo de comunicao com sistemas corporativos, de forma que, possa
ocorrer envio de informaes entre as partes. Os celulares comearam a adquirir novas
caractersticas, deixando de servir simplesmente para telefonia, ou seja, a mera transmisso de
voz est perdendo o espao para transmisso de dados.
O objetivo desse trabalho relatar como funcionou o desenvolvimento de um aplicativo
para dispositivos mveis, com o propsito de ser utilizado por discentes e docentes do NUPEC
(Ncleo de Pesquisa em Engenharia da Computao) da Escola Politcnica de Pernambuco,
unidade da Universidade de Pernambuco. O NUPEC um laboratrio onde os professores do
Departamento de Sistemas Computacionais (DSC) orientam seus alunos de iniciao cientfica.
A inteno de desenvolver um sistema para celular surgiu quando alguns usurios do
NUPEC se depararam com situaes em que era necessrio obter informaes tanto de
professores, quanto de alunos ou das atividades relacionadas com as pesquisas realizadas no
ncleo, mesmo quando no estavam presentes fisicamente no mesmo.
A aplicao prover aos usurios o servio de consulta das informaes disponibilizadas
para os freqentadores do ncleo. Um usurio que possuir o aplicativo instalado em seu celular
pode, por exemplo, saber as pessoas que esto em determinado momento no ncleo ou as que
passaram por l em um determinado dia, alm de outras consultas.
ESCOLA POLITCNICA
DE PERNAMBUCO
10
ESCOLA POLITCNICA
DE PERNAMBUCO
11
Captulo 2
Tecnologias
2.1 Java
Java uma linguagem de programao de alto nvel, que segue o paradigma de programao
orientada a objeto. Devido sua portabilidade, Java pode ser executada em diferentes ambientes
operacionais dentro do conceito escreva uma vez, execute em qualquer lugar (Write Once, Run
Anywhere - WORA). A linguagem tambm possui a presena de mecanismos de tratamento de
excees que tornam as aplicaes mais robustas, no permitindo que elas falhem mesmo quando
esto rodando sob condies anormais. [4]. As bibliotecas que fazem parte de Java definem
interfaces portveis.
Java tambm possui um coletor de lixo (Garbage Collector CG). A coleta de lixo
uma eficiente tcnica de liberao de memria utilizada pela linguagem Java [28]. Muitas
linguagens permitem que o programador aloque um espao de memria em tempo de execuo
utilizando ponteiros e pertencendo ao programador o dever de liberar a memria quando esta no
estiver mais sendo utilizada. Esta, geralmente, uma tarefa complexa e propensa a erros, uma vez
que deixa a cargo do programador o gerenciamento de memria da aplicao [28]. O sistema de
coleta de lixo de Java tira essa responsabilidade do programador, passando essa responsabilidade
para o coletor de lixo que verifica quais os ponteiros de memria que no tm mais referncias
apontando para eles e, ento, libera a memria.
A linguagem Java tem a inteno de ser usada em ambientes de rede/distribudos. Nessa
direo, grande nfase tem sido colocada na segurana. O Java permite a construo de sistemas
livres de vrus e adulteraes [13].
Com essas qualidades, Java pode ser utilizada para a criao de vrios tipos de aplicativos,
desde aplicaes standalone (local) at aplicaes designadas para serem controladas pelo
software que as executa, tais como APPLETS1 [28], SERVLETS2 [30] ou MIDLETS3 [18] .
Programas escritos em Java que podem ser inseridos em documentos de hipertextos HTML, carregados
na web e executados em um brouwser.
2
ESCOLA POLITCNICA
DE PERNAMBUCO
12
ESCOLA POLITCNICA
DE PERNAMBUCO
13
Seguindo o foco deste trabalho, ocorrer uma breve explicao das caractersticas e
funcionalidades da plataforma J2ME.
ESCOLA POLITCNICA
DE PERNAMBUCO
14
Atravs de J2ME, torna-se possvel desenvolver, atualizar e instalar novas aplicaes segundo
as necessidades particulares de cada usurio [17]. As aplicaes que utilizam J2ME vo desde
jogos at aplicaes que acessam banco de dados, dentre outras opes.
Existe uma diversidade de dispositivos, no qual estes apresentam muitos pontos em comum,
mas diferenciam-se em suas formas, funcionalidade e caractersticas. Existem tambm
dispositivos com uma grande variedade de capacidade de processamento, memria e interao
com o mundo exterior (interface com o usurio, mtodos de entrada e sada de informaes e
dados). Afirmar que uma tecnologia serve para todos os dispositivos da mesma famlia, tal
como nas outras edies de Java, no funciona nos dispositivos de recursos limitados devido a
todas essas diferenas [11].
Devido diferena de tamanho e funcionalidade nesses dispositivos foram estabelecidos
conceitos essenciais e de grande importncia na plataforma J2ME que foi dividida em camadas
para facilitar seu entendimento. So elas: Perfis, Configuraes, JVM e o Sistema Operacional,
como pode ser observado na Figura 3.
2.2.1
Perfis
O perfil a camada mais visvel para usurios e desenvolvedores das aplicaes, definindo um
conjunto mnimo da API disponvel em uma classe particular dos dispositivos, representando um
segmento de mercado particular. Os perfis so implementados para um tipo de configurao
particular variando de acordo com os dispositivos para o qual ele ser utilizado.
As aplicaes so feitas de acordo com um perfil especfico, podendo ser instalada em
qualquer dispositivo que possua suporte ao perfil determinado. O perfil que este trabalho ter
foco o MIDP [23] Mobile Information Device Profile (Perfil do Dispositivo de Informao
Mvel). Este perfil para aplicaes mveis e ajuda a complementar a configurao CLDC e ser
detalhado adiante.
ESCOLA POLITCNICA
DE PERNAMBUCO
15
2.2.2
Configuraes
Uma configurao define uma plataforma mnima para um grupo de dispositivos com
caractersticas similares, tanto na memria quanto no poder de processamento. Sendo assim, uma
configurao define as caractersticas suportadas tanto pela prpria linguagem de programao
Java quanto pela mquina virtual e tambm suas bibliotecas de classes e APIs, as quais um
determinado fabricante pode esperar que estaro disponveis em todos os dispositivos de uma
mesma categoria [17].
Apenas duas configuraes so aceitas pela Sun e sero descritas a seguir:
CDC Connected Device Configuration (Configurao para dispositivos
conectados) rege as configuraes para aparelhos mveis um pouco maiores,
com um mnimo de 2 megabytes de memria disponveis. Alguns exemplos desses
dispositivos so: televiso com internet, sistema de navegao de carros, entre
outros;
CLCD - Connected, Limited Device Configuration (Configurao para
dispositivos com limite de conexo) responsvel pela configurao de
aparelhos pequenos e com algumas restrio de recursos como celulares e pagers.
Utiliza uma mquina virtual chamada de KVM (Kilo Virtual Machine). Esta bem
reduzida em relao a mquina virtual Java tradicional e faz uso de um conjunto
de bibliotecas de classes para ser utilizada dentro de um Perfil MIDP;
2.2.3
ESCOLA POLITCNICA
DE PERNAMBUCO
16
ESCOLA POLITCNICA
DE PERNAMBUCO
17
O servidor Web quem executa as tecnologias servlets e JSP (Java Server Pages) vindas
de clientes externos. Os servlets so programas Java desenvolvidos no lado servidor e que trata
das requisies HTTP feitas pelos clientes, podendo responder essas requisies dinamicamente
ou simplesmente repassar essas requisies para outros servlets ou outros servidores.
Um arquivo JSP possui tanto cdigo Java como HTML e logo aps a primeira execuo
ento transformado em um servlet, esse servlet compilado para que possa ser executado.
Quando um protocolo HTTP recebe uma requisio de um JSP, ele repassa essa requisio para o
container [2], uma interface entre o servidor e um componente, neste caso o JSP, e este ento
chama o respectivo servlet compilado e devolve o HTML para o servidor HTTP.
O container EJB uma interface entre o servidor EJB e os componentes de negcio ou
componentes EJB, ou ainda beans. Os beans so os objetos da especificao EJB e executam o
servio funcional, como transferncia bancria, compra de produtos pela Web, inscrio para um
congresso, etc., e o servidor EJB executa o servio nofuncional que configurado pelo
desenvolvedor da aplicao EJB [24].
2.4 Struts
O Struts [14] um framework open source da Jakarta [16]. Esse framework utiliza as mesmas
tecnologias de aplicaes Java, porm organiza-se de maneira diferente. A idia principal do
Struts separar os cdigos responsveis pelo processamento, daqueles cdigos voltados para a
apresentao de dados. Essa separao pode ser feita sem a utilizao desse framework, porm
fica sob responsabilidade do desenvolvedor. O Struts implementa a arquitetura Model View
Controller (MVC Modelo Visualizao - Controle) [10].
A arquitetura MVC [10] define a total separao do Modelo (objetos pertencentes
camada de negcios), da Visualizao ( interface com o usurio ou com outro sistema qualquer) e
do Controlador, que controla o fluxo do sistema. de responsabilidade do controlador interceptar
as requisies HTTP vindas do cliente.
O Struts possui a classe Java denominada Action, onde est a lgica para obter cada
requisio. Um objeto Action o responsvel pelo processamento dos dados que so enviados
atravs de uma determinada requisio. Para escrever um Action necessrio herdar da classe
org.apache.struts.action.Action e deve-se sobrescrever o mtodo execute. A
Figura 5 mostra um trecho de cdigo do sistema em questo onde uma classe Action criada e
o mtodo execute sobre-escrito.
Figura 5.
ESCOLA POLITCNICA
DE PERNAMBUCO
18
A classe ActionServlet o controle do Struts e deve ser configurada para interceptar todas
as requisies e ento direcion-las para os Actions correspondentes. Um trecho de cdigo
referente a configurao do ActionServlet no web.xml pode ser visto na Figura 6.
2.5 Wireless
Redes sem fio [8] so uma nova alternativa s redes convencionais com fio, fornecendo as
mesmas funcionalidades, porm de forma flexvel pois permite uma comunicao entre diversos
pontos sem a necessidade de utilizar cabos (wire = fio, less = sem). Essa tecnologia faz uso de um
sistema de antenas interligado entre si que transmite as informaes via onda de rdio ou
infravermelhas, disponibilizando a portabilidade e a praticidade da informao independente do
lugar, perdendo assim a dependncia de objetos fixos.
As redes sem fio vm sendo amplamente utilizadas, pois permitem uma comunicao de
alta velocidade a baixo custo. O custo semelhante ao de uma conexo discada, porm enquanto a
velocidade via modens chega a no mximo de 56Kbits, o acesso via rdio possui uma velocidade
mnima de 64Kbits.
ESCOLA POLITCNICA
DE PERNAMBUCO
19
ESCOLA POLITCNICA
DE PERNAMBUCO
20
ESCOLA POLITCNICA
DE PERNAMBUCO
21
2.7.1
ESCOLA POLITCNICA
DE PERNAMBUCO
22
ESCOLA POLITCNICA
DE PERNAMBUCO
23
Captulo 3
Comunicao Mvel
3.1 Histrico da Comunicao Mvel
Um sistema de comunicao mvel tem como caracterstica a possibilidade de movimento
relativo entre as partes como, por exemplo, a comunicao entre o telefone celular e a estao
base na telefonia celular. Sistemas mveis usam a tecnologia sem fio para possibilitar uma
comunicao transparente enquanto o usurio se desloca [7].
O desejo da humanidade em comunicar-se livre de fios ocorre desde os primrdios da
civilizao. Na Grcia antiga o uso de sinais de fumaa mencionado como forma de
comunicao. No final do sculo XVIII, Claude Chape inventa a telegrafia ptica (1794),
possibilitando a comunicao sem fio para longas distncias. Em 1820, Hans Christian Oersted
descobre experimentalmente que a corrente eltrica produz um campo magntico [7]. Em 1864,
James C. Maxwell lana os fundamentos tericos sobre campos magnticos com suas famosas
equaes. Em 1876, Alexander Graham Bell inventa o telefone [7].
A comunicao mvel teve alguns marcos importantes dentre eles podem ser destacados:
O aparecimento dos primeiros sistemas pblicos de telefonia mvel dos Estados
Unidos, at ento com poucos usurios, sendo utilizado apenas por alguns
negociantes e por policiais que possuam rdios receptores e transmissores nos
veculos. [6]
Surgimento de pesquisas realizadas por algumas telefnicas do mundo todo, com o
intuito de resolver as limitaes existentes na telefonia mvel. [6]
Na dcada de 80, unidades mveis comearam a ser instaladas em veculos, dessa
forma a comunicao era veicular e no pessoal. Nesta mesma dcada foi
projetada e construda pela Motorola a rede ARDIS (Advanced Radio Data
Information Service), primeira grande rede de dados sem fio dos Estados Unidos,
especializada para clientes da IBM. [6]
A era da telefonia celular teve seu incio efetivo no incio dos anos 90, quando o
usurio podia portar o aparelho embora suas dimenses iniciais fossem grandes
[7].
Foram adotados vrios padres em diferentes pases para a telefonia celular e ficaram
conhecidos com a Primeira Gerao (1G). Os sistemas de 1G utilizam a transmisso de dados de
modo analgicos e a tcnica de utilizada de acesso ao meio a FDMA (Frequency Division
ESCOLA POLITCNICA
DE PERNAMBUCO
24
Multiple Access Acesso Mltiplo por Diviso de Frequncia) [6], que possua uma baixa
qualidade e uma incompatibilidade com os diversos sistemas existentes.
Depois da 1G ocorreu o surgimento da Segunda Gerao (2G), com o objetivo de
aumentar a capacidade da primeira gerao. A 2G utilizava o TDMA (Time Division Multiple
Access Acesso mltiplo por diviso de tempo) [6] e o CDMA (Code Division Multiple Access
Acesso mltiplo por diviso de cdigo). [6]
Atualmente as redes celulares digitais possuem o servio GSM (Global Standard Mobile)
[6], que foi criado para prover servios celulares modernos. Uma inovao encontrada no
sistema GSM a utilizao do SIM (Subscriber Indentification Module) que contm algumas
identificaes do usurio assim como chave de cdigo de privacidade. O SIM conectado a um
terminal GSM, pode ser removido de um aparelho e conectado em outro; sem o SIM o terminal
fica impossibilitado de operar.
ESCOLA POLITCNICA
DE PERNAMBUCO
25
3.2.1
Tamanho: bastante reduzidos e muito mais leves do que os PCs, podendo ser
transportados de forma muito mais prtica;
Fcil manuseio: os dispositivos mveis possuem uma interface grfica simples de
manusear se comparado aos computadores;
Consumo de energia: por serem menores e mais econmicos gastam menos energia
que os computadores visto que o tempo de recarga menor;
Custos operacionais: como os dispositivos mveis so mais compactos e possuem
atividades especficas, estes aparelhos no possuem alguns perifricos internos, como
discos rgidos e discos flexveis, diminuindo consideravelmente os custos com a
manuteno;
Outra caracterstica que ajuda no desenvolvimento da comunicao sem fio o fato de
que as pessoas esto cada vez mais dependentes das informaes disponibilizadas na Internet, o
que antes poderia ser feito apenas via terminal remoto, agora pode ser acessado via dispositivo
mvel. A tecnologia sem fio disponibiliza ao usurio a possibilidade de obter informaes que
lhes sejam teis, a qualquer momento ou qualquer lugar.
A mobilidade outra caracterstica que deve ser levada em considerao. A capacidade de
poder continuar uma comunicao e manter o envio de dados constante mesmo quando em
movimento pode ser considerada uma das melhores vantagens de um dispositivo mvel.
ESCOLA POLITCNICA
DE PERNAMBUCO
26
3.2.2
Toda mudana requer adaptao, com as redes sem fio no foi diferente. Pelo crescente mercado
de dispositivos mveis foi necessria uma grande adaptao das tecnologias j desenvolvidas
para os computadores remotos, para que estas tambm estejam disponveis para os dispositivos
mveis. Essa adaptao no trivial.
Um fato de grande importncia a ser observado relacionado forma como os celulares e
dispositivos portteis so utilizados. Alm de algumas limitaes como tela e bateria, esses
dispositivos no so usados da mesma forma que um computador, mesmo que consiga obter o
mesmo desempenho tecnolgico. Um aparelho celular utilizado em situaes especficas como,
por exemplo, no trnsito. Esse fato deve ser levado em considerao para no ficar limitado no
momento dos produtos serem construdos.
A tecnologia sem fio precisa trabalhar dentro de restries dos dispositivos, alguns
problemas podem ser destacados:
Recurso de memria limitado: dispositivos como celulares e PDAs (Personal
Digital Assistant Assistente Pessoais Digitais ) possuem pouca memria,
exigindo assim que o gerenciamento de memria seja fundamental;
Baixa capacidade: o processamento de um dispositivo mvel pode variar de
32Kbytes a 64Mbytes, o que faz com que este seja um dos principais desafios
enfrentados pelas operadoras de telefonia celular;
Entrada de dados: a capacidade de entrada de dados nesses dispositivos ocorre de
forma limitada, quando relacionado a um telefone celular, possuem doze teclas ,
sendo dez delas nmeros e as outras duas caracteres especiais, j nos palmtops a
entrada de dados realizada atravs de uma caneta ou de teclas alfanumricas;
Largura de banda: mesmo obstculo possudo pela computao convencional, a
segurana, j que os dados so transmitidos pelo ar atravs de ondas
eletromagnticas, onde a confiabilidade bastante questionada. As redes wireless
esto sujeitas a mais erros do que as redes com fio;
Interface Reduzida: normalmente esses dispositivos possuem uma tela de pequena
dimenso, tornando limitada a quantidade de informaes que pode ser
visualizada, sem disponibilidade de janelas;
Pela caracterstica de possuir grande mobilidade, pode acarretar perda de conexo;
Mas atualmente grandes fabricantes fazem investimentos acentuados nesta rea para fazer com
que tenhamos mais recurso tecnolgico nos dispositivos mveis, embora ainda no se faa uso de
todos esses recursos. O mercado est esperando um crescimento grande no nmero de usurios
conectados a rede sem fio.
ESCOLA POLITCNICA
DE PERNAMBUCO
27
Captulo 4
Uma ferramente para gerenciamento
de informaes e recursos humanos
Foi desenvolvido um prottipo de software para simulao de transmisso de dados atravs de
uma comunicao entre o emulador de um dispositivo MIDP e um servidor que disponibiliza
informaes dos projetos, professores e alunos do Ncleo de Pesquisa do Departamento de
Sistemas Computacionais da Escola Politcnica da Universidade de Pernambuco.
O aplicativo est dividido em duas partes: a primeira delas, um prottipo do software do
celular, ser executado utilizando um emulador, que simule o comportamento de um dispositivo
mvel, tendo suporte a tecnologia J2ME com o perfil MIDP. Esse dispositivo deve interagir com
o servidor depois de estabelecida uma conexo HTTP, onde so passados alguns parmetros. Os
parmetros informados variam de acordo com a consulta a ser realizada, e atravs deles que o
servidor saber qual a base de dados referenciada na consulta, dentre outras informaes.
A segunda parte responsvel pelo servidor da aplicao e foi desenvolvida utilizando os
recursos disponveis na plataforma J2EE. Aps o aplicativo servidor receber a requisio vinda
do mdulo cliente, este executa os dados recebidos e encaminha de volta o resultado do
processamento. Os dados, ento, podem ser visualizados na tela do dispositivo mvel, que neste
caso estar sendo executa no emulador. A forma como ocorre a comunicao entre o cliente e o
servidor pode melhor ser observada atravs do diagrama de seqncia[5] que pode ser
visualizado na Figura 12.
Entretanto, para tornar possvel estabelecer uma conexo entre essas duas partes, o
mdulo que trata as requisies dever estar associado a um servidor de aplicao que oferea
suporte a J2EE. No caso em questo aplicado o Tomcat [1] que mantido em execuo em um
PC (Personal Computer) que funciona como um servidor. Neste so instalados servlets que sero
responsveis por tratar as requisies recebidas do cliente. O Tomcat um subprojeto do projeto
Jakarta Apache Software Foundation [16], que tem como objetivo o desenvolvimento de
aplicativos com cdigo aberto baseado na plataforma Java. Essas tecnologias foram apresentadas
no Captulo 2.
Dessa forma, necessrio que o servidor da aplicao seja iniciado como um processo
ativo para tornar possvel o recebimento das requisies vindas do cliente e assim poder
estabelecer a conexo entre o dispositivo mvel e o sistema corporativo desenvolvido na
arquitetura J2EE.
O NUPEC possui um sistema cujo nome CIAP Controle Inteligente de Acesso de
Pessoas, que tem o objetivo de gerenciar informaes de pessoas que freqentam o ncleo, bem
ESCOLA POLITCNICA
DE PERNAMBUCO
28
como monitoramento de horrios de acesso. Baseado neste sistema e aps algumas pesquisas e
conversas com os professores do NUPEC, foram levantados alguns requisitos a serem
implementados. Esses requisitos sero listados a seguir e mais bem explicados e exemplificados
no decorrer do Captulo.
Informar as pessoas que esto no NUPEC no momento da consulta;
Informar os horrios em que os professores e alunos possivelmente estaro no
NUPEC;
Informar as pessoas que passaram pelo NUPEC em um determinado dia
Informar dados acadmicos dos alunos;
Informar dados dos professores
Informar a quantidade de horas que uma pessoa permaneceu no NUPEC durante a
semana
Informar dados sobre projetos em desenvolvimento no NUPEC
ESCOLA POLITCNICA
DE PERNAMBUCO
29
ESCOLA POLITCNICA
DE PERNAMBUCO
30
ESCOLA POLITCNICA
DE PERNAMBUCO
31
4.2.1
ESCOLA POLITCNICA
DE PERNAMBUCO
32
protected void startApp() throws MIDletStateChangeException
midlet = this;
initialImage = Image.createImage("/tcc.png");
alert = new Alert ("Monografia", "Tcc", initialImage,
AlertType.INFO);
this.theDisplay.setCurrent(alert, menuPrincipalList);
}
if (c = = exitCommand) {
destroyApp(false);
notifyDestroyed();
}
Quadro 3. Mtodo destroyApp
Na Figura 16 temos um exemplo do ciclo de vida de um MIDlet.
ESCOLA POLITCNICA
DE PERNAMBUCO
33
Quando o aplicativo inicializado, uma tela com as opes do menu inicial exibida. No
momento em que o usurio escolhe um item para pesquisa, uma conexo com o servidor deve ser
estabelecida, passando os parmetros da consulta. Esses dados devem ser entregues ao servidor e
o cliente fica espera de uma resposta.
Ao receber uma resposta requisio, a classe de comunicao (classe Conexao)
encaminha a resposta para a classe responsvel por trat-la (classe Mensagem) e tambm deve
notificar ao Midlet sobre a resposta. Para isso foi criada a interface ResponseListener, que
possui o mtodo setResponse e recebe como parmetro a String de resposta. Tambm foi
criado um mtodo setListener de um objeto que implementa a interface
ResponseListener na classe Mensagem.
No caso em questo, como o Midlet deve ser notificado, ento a classe TccMIDlet
implementa a interface ResponseListener, e no corpo do mtodo setResponse faz o
tratamento apropriado da resposta enviada pelo servidor. Dessa forma a classe Mensagem
chama simplesmente o mtodo de seu listener quando recebe a resposta, notificando assim ao
Midlet que a mensagem chegou.
Usando um exemplo para o melhor entendimento do que foi descrito acima, no Quadro 4
est o cdigo referente ao pedido de conexo quando um usurio deseja saber as informaes de
um determinado professor. Os parmetros passados no construtor da classe Conexao significam:
else if (c == pesquisarCommand) {
String professor = professorField.getString();
Conexao conexao;
conexao = new Conexao("0", "1", professor);
}
Quadro 4. Envio de dados da Consulta
No Quadro 5 est descrita a forma como foi implementado o momento em que a classe
Conexao recebe a resposta do servidor. A resposta chega em formato de stream e passada
junto com o tamanho como parmetro do mtodo receber para sofrer o tratamento adequado.
if (rc == HttpConnection.HTTP_OK) {
dis = new DataInputStream(conn.openInputStream());
int len = (int) conn.getLength();
formMsg.receber(dis, len);
}
Quadro 5. Classe Conexo recebendo resposta do servidor
No Quadro 6 est a demonstrao de como ocorre o tratamento da resposta, realizado pela
classe Mensagem. A mensagem recebida lida no formato UTF e transformada para String onde
ser passada como parmetro do mtodo setResponse.
ESCOLA POLITCNICA
DE PERNAMBUCO
34
ESCOLA POLITCNICA
DE PERNAMBUCO
35
conn.setRequestProperty("User-Agent","Profile/MIDP-1.0
Configuration/CLDC-1.0");
conn.setRequestProperty("Content-Type", contentType);
conn.setRequestProperty("Content-Language", "en-US");
conn.setRequestProperty("Accept", accept);
conn.setRequestProperty("Content-Length", tamanhoBytes
+ "");
Quadro 8. Propriedades do cabealho HTTP
ESCOLA POLITCNICA
DE PERNAMBUCO
36
4.2.2
ESCOLA POLITCNICA
DE PERNAMBUCO
37
ESCOLA POLITCNICA
DE PERNAMBUCO
38
1. else if (tipoPesquisa.equals("1") ) {
2.
String idProf = request.getParameter("id");
3.
Professores prof = fachada.selectProf(idProf);
4.
ByteArrayOutputStream baos = new
5.
ByteArrayOutputStream();
6. DataOutputStream dos = new DataOutputStream(baos);
7. dos.writeUTF("Nome do Professor: "
8.
9.
10.
11.
12.
18.
+
+
+
+
13. +
14. +
15. +
16. +
17. +
data =
prof.getNomeProf() + "\n"
"Responsvel pelo Projeto: "
prof.getProjetoOrienta() + "\n"
"Ttulo: "
prof.getTitulo() + "\n"
"Dias no Ncleo: "
prof.getDias() + "\n"
"Horrio no Ncleo: "
prof.getHorarios());
baos.toByteArray();
ESCOLA POLITCNICA
DE PERNAMBUCO
39
response.setStatus(HttpServletResponse.SC_OK);
response.setContentLength(data.length);
response.setContentType("application/octet-stream");
OutputStream os = response.getOutputStream();
os.write(data);
os.close();
Quadro 13. Dados encaminhados para o cliente
4.4 Resultados
Foi desenvolvido um prottipo de software, onde um aplicativo cliente comunica-se com um
sistema servidor atravs de uma conexo HTTP e ento transmite os dados para uma determinada
consulta. Os dados so processados pela aplicao servidora e depois uma mensagem enviada
para o cliente como resposta requisio.
A aplicao foi testada usando um PC (Personal Computer) com um processador de
1.4GHz e 256 de RAM com o servidor Tomcat hospedando a aplicao do mdulo servidor. J o
ESCOLA POLITCNICA
DE PERNAMBUCO
40
aplicativo cliente foi executado utilizando o emulador Wireless Toolkit para simular o dispositivo
mvel.
Ao executar uma aplicao J2ME so gerados dois novos arquivos. Um arquivo no
formato jar (Java Application Resources) e outro no formato jad (Joint Application
Development) . O arquivo jar encapsula todas as classes de um aplicativo Java. Em especial para
J2ME esse arquivo encapsula toda a aplicao, incluindo o Midlet, as outras classes e figuras se
existirem. O arquivo jad contm todas as informaes da aplicao, tais como nome do Midlet,
tamanho do arquivo jar, a verso do aplicativo, o caminho do arquivo jar, dentre outras. O
arquivo jar do aplicativo em questo tem o tamanho de 100K, como pode ser visto no Quadro 14.
O aplicativo gerado pelo mdulo cliente s pode ser instalado em dispositivos mveis que
possuam as seguintes caractersticas:
ESCOLA POLITCNICA
DE PERNAMBUCO
41
O diagrama de casos de usos do sistema em questo pode ser observado na Figura 20.
Figura 20.
ESCOLA POLITCNICA
DE PERNAMBUCO
42
Captulo 5
Concluses e Trabalhos Futuros
5.1 Concluses
No presente trabalho foi constatada a evoluo da comunicao mvel bem como o crescente
aumento na utilizao de dispositivos mveis, sendo destacados os telefones celulares. Foram
realizados estudos detalhados sobre as tecnologias J2ME e J2EE, seus conceitos e caractersticas.
Tambm foram utilizados os recursos necessrios para estabelecer a comunicao entre os
aplicativos que rodavam em suas respectivas plataformas.
O prottipo desenvolvido nesse trabalho comprovou, atravs de testes realizados, ter
cumprido seus objetivos, ou seja, permite o usurio escolher qual consulta deseja realizar e
informar os dados de entrada. Esses dados so enviados corretamente para a aplicao servidora
que os recebe, processa de acordo com a base de dados referente consulta realizada e manda de
volta a resposta para o aplicativo cliente. O mdulo cliente aceita a mensagem com o resultado da
consulta e mostra na tela do emulador, encerrando o ciclo da pesquisa.
medida que cresce o mercado de telefonia celular, aumenta tambm a diversidade de
aplicativos que so desenvolvidos para esses aparelhos. Empresas de desenvolvimento criam cada
vez mais softwares que trocam dados na rede e se comunicam com servidores. Contudo, apesar
de todo avano tecnolgico, a transferncia de grandes quantidades de dados via rede sempre
um fator problemtico devido s limitaes de envio de dados comuns tecnologia de telefonia
mvel. Por exemplo, ainda no existe um aplicativo que faa processamento grfico em um
servidor e envie imagens para o celular. Portanto, uma aplicao que faa consultas, como o
aplicativo do trabalho em questo, essencial que estas sejam simples e diretas, tanto a
mensagem de solicitao quanto a resposta.
ESCOLA POLITCNICA
DE PERNAMBUCO
43
ESCOLA POLITCNICA
DE PERNAMBUCO
44
Bibliografia
[1] APACHE TOMCAT. Disponvel em <http://jakarta.apache.org/tomcat/>. Acesso em: mar 2005.
[2] ARMSTRONG, Erik et al. The J2EE 1.4. Disponvel em <http://www.java.sun.com>.
Acesso em: fev - 2005
[3] CAVANESS, Chuck. Programming Jakarta Struts, ORelly & Associates, Inc, 2002.
[4] CESTA, A. A linguagem de programao Java. Instituto de Computao, So Paulo, 1996.
Disponvel em: <http://www.dcc.unicamp.br/~aacesta >. Acesso em: nov 2004
[5] CHEESEMAN John, DANIELS, John . UML Components: A Simple Process for Specifying
Component-Based Software. Addison-Wesley, 2001.
[6] DIAS, Clessis; FONTES, Wescley. Desenvolvimento de Aplicaes para Dispositivos Mveis
utilizando a Plataforma J2ME. 2003. Trabalho de Concluso de Curso (Bacharelado em
Cincias da Computao) Centro de Cincias Exatas e Naturais, Universidade Federal
do Par, Belm.
[7] DIAS, K. L; Sadok, D. F.H. Internet Mvel: Tecnologias, Aplicaes e QoS. XIX Simpsio
Brasileiro de Redes de Computadores, Florianpolis, 2001.
[8] DORNAN, Andy. Wireless communication: O guia essencial de comunicao sem fio. Rio de
Janeiro: Campus, 2001.
[9] FERRAMENTA ECLIPE. Disponvel em: <http://www.eclipse.org/>. Acesso em: dez
2004.
[10] GAMMA,E. HELM,R. JOHNSON,R VLISSIDES, J Design Patterns: Elements of
Reusable Object-Oriented Software (GOF) Addison Wesley, 1995.
[11] GOMES, A. J2ME Viso Geral. Disponvel em: <http://www.mundooo.com.br/> .
Acesso em: jan 2005.
[12] GUPTA, V.; DASS, A.; CHAUHAN, Y. Cracking the Code Wireless Programming
with J2ME. Hungry Minds, Inc, 2002.
[13] HORSTMANN, Cay S., CORNELL, Gary. Core Java: fundamentos. v.1, So Paulo:
Pearson MakronBooks, 2003. cap.1, p. 1-14.
[14] HUSTED, Ted et al. Struts em ao, So Paulo: Editora Cincia Moderna, 2004.
[15] J2ME
Wireless
Toolkit
2.2.
Disponvel
em:
<http://java.sun.com/products/j2mewtoolkit/download-2_2.html>. Acesso em fev - 2005.
[16] JAKARTA
APACHE
SOFTWARE
FOUNDATION.
Disponvel
em:
<http://jakarta.apache.org>. Acesso em mar 2005.
[17] JAVA 2 Platform Micro Edition (J2ME ) Technology for Creating Mobile Devices.
White
Paper.
Sun,
2000.
Disponvel
em
<http://java.sun.com/developer/technicalArticles/ConsumerProducts/intro/#j2me>.
Acesso em jan 2005.
[18] KEOGH, James. J2ME: The Complete Reference. McGraw-Hill/Osborne, 2003.
ESCOLA POLITCNICA
DE PERNAMBUCO
45
[19]
[20]
[21]
[22]
[23]
[24]
[25]
[26]
[27]
[28]
[29]
[30]
[31]
[32]
[33]
[34]
[35]
[36]
LAUDON, Kenneth C.; LAUDON, Jane Price. Sistemas de informao. Rio de Janeiro:
LTC, 1999.
MADIS RODBEL. Disponvel em: <http://www.rodbel.com.br> . Acesso em fev 2005.
MAGAN, M.; VARGAS, P.; AZZOLIN, D. Tcnicas para desenvolvimento de
aplicaes orientadas a objetos utilizando a linguagem Java. III Simpsio Brasileiro de
Linguagens de Programao, Porto Alegre, 1999.
MAHMOUD, Q. H. Wireless Software Design Techniques What every wireless software
2002.
Disponvel
em
developer
should
know.
<http://wireless.java.sun.com/midp/articles/uidesign/ > . Acesso em: nov 2004.
MUCHOW, John W. Core J2ME - Technology & MIDP. Pearson MakronBooks, 2004.
PASIN, Mrcia. Rplicas para alta disponibilidade em arquiteturas orientadas a
componentes com suporte de comunicao de grupo. 2003. 127 p. Tese de Doutorado
Instituto de Informtica, Universidade do Rio Grande do Sul, Rio Grande do Sul, 2003.
BANSAL, V.; DALTON, A. Performance analysis of web services on wireless PDAs. Duke
University
Computer
Science,
Duke,
Disponvel
em:
<http://www.cs.duke.edu/~vkb/advnw/project/index.html>. Acesso em : abr 2005.
J2ME
Wireless
Toolkit
2.2.
Disponvel
em:
<http://java.sun.com/products/j2mewtoolkit/download-2_2.html>. Acesso em fev 2005
RIGGS, Roger, et al. Programming wireless devices with the Java 2 platform, micro
edition. Boston: Addison Wesley, 2001.
ROCHA, H. Desenvolvimento de Applets & Aplicaes em Java. Belm, 1998.
SCHAEFER, Carina. Prottipo de aplicativo para transmisso de dados a partir de
dispositivos mveis aplicados a uma empresa de transporte. 2004. 53f. Trabalho de
Concluso de Curso (Bacharelado em Cincias da Computao) Centro de Cincias
Exatas e Naturais, Universidade Regional de Blumenau, Blumenau.
SERVLET ESSENTIALS. Disponvel em: <http://www.novocode.com/doc/servletessentials/>. Acesso em maio 2005
SILVA, W. Tecnologias Java para Sistemas Embarcados. Trabalho de Concluso de
Curso (Bacharelado em Cincias da Computao) Centro de Informtica, Universidade
Federal de Pernambuco, Recife, 2001.
PLUGIN ECLIPSEME. Disponvel em: <http://eclipseme.sourceforge.net>. Acesso em
nov 2004.
TITTLEL. So Paulo: Ed. XML. Bookman, 2003.
WHITE, James P.; HEMPHIL, David A. Java 2 Micro Edition, UK: Ebook Edition, 2003.
SUN. Disponvel em : <http://www.sun.com >. Acesso em: nov 2004
Making
HTTP
Connections
with
MIDP.
Disponvel
em
:http://developers.sun.com/techtopics/mobility/midp/ttips/httpcon/. Acesso em fev 2005.
ESCOLA POLITCNICA
DE PERNAMBUCO
46
Apndice A
Testes
Apresentaremos aqui as principais telas do sistema, com suas respectivas entradas de dados, para
consultar informaes sobre projetos, alunos e professores do NUPEC (Ncleo de Pesquisa em
Engenharia da Computao) da Escola Politcnica de Pernambuco.
ESCOLA POLITCNICA
DE PERNAMBUCO
47
Busca On-Line
A consulta de busca On-line deve ser realizada caso ocorra a necessidade de saber quem est
presente no NUPEC em um determinado momento.
Caso seja desejada realizar essa busca, ao inicializar o aplicativo, no Menu Principal deve
ser escolhida da opo: On-Line. O aplicativo ser direcionado para a tela de Resultado da
Pesquisa onde estar sendo informado o login dos professores e alunos que esto no ncleo.
A lgica de implementao dessa consulta foi feita simulando a comunicao do relgio
de ponto com a base de dados. Levando em considerao que sempre que uma pessoa for entrar
ou sair do Ncleo, o carto de identificao deve ser passado no relgio, ento toda vez que um
determinado login aparecer em uma quantidade mpar de vezes, significa que a pessoa est
presente no NUPEC. As telas referentes a essa consulta, pode ser vista na Figura 22.
Projetos
A consulta referente a Projetos informa os dados de um determinado projeto que esta sendo
desenvolvido no Ncleo. Tais dados so o nome do projeto, o nome do professor responsvel e a
principal tcnica utilizada. A navegao das telas pode ser vista na Figura 23. Na tela de
Resultados, caso a opo SAIR for escolhida acarretar na sada do aplicativo.
Figura 23.
Projetos
ESCOLA POLITCNICA
DE PERNAMBUCO
48
Informaes
Caso a opo Informaes, disponvel no Menu principal, for escolhida, o aplicativo ser
direcionado para uma nova tela com trs outras opes. Como pode ser visto na Figura 24.
Figura 25.
Consulta de Professores
Caso a opo escolhida for aluno, o usurio ir informar o login do aluno e o sistema
mostrar na tela as informaes referente ao aluno, como mostra a Figura 26.
Figura 26.
Consulta Alunos
ESCOLA POLITCNICA
DE PERNAMBUCO
49
Se a escolha for Info. do dia, ser mostrada na tela um calendrio onde o usurio poder
escolher uma data para consulta. Depois de escolhida a data, deve ser clicado no boto SELEC
e ento os dados da consulta sero mostrados na tela do celular. O ciclo descrito, pode ser visto
da Figura 27.