Escolar Documentos
Profissional Documentos
Cultura Documentos
Klessis Lopes Dias Wescley Pimentel Fontes Orientadora: Regiane Silva Kawasaki Francs
Belm 2003
1
UNIVERSIDADE FEDERAL DO PAR CENTRO DE CINCIAS EXATAS E NATURAIS DEPARTAMENTO DE INFORMTICA CURSO DE BACHARELADO EM CINCIA DA COMPUTAO
Klessis Lopes Dias Wescley Pimentel Fontes Orientadora: Regiane Silva Kawasaki Francs
Belm 2003
Trabalho de Concluso de Curso apresentado para obteno do grau de Bacharel em Cincia da Computao pela Universidade Federal do Par. Submetido banca examinadora do Colegiado constituda pelos PROFESSORES:
BDC%EFHGH&$IP0QRS EFT0QPTEF0QP3451UV@W4X Y`ba%cHd3%ReGc fgHGI`ihf35HGppGH51PEq0#T3HrtsHQEFuEvRTxwyHrsHuGHR51 5EFHT%RHR)3RIR2TEq0sHR`a%cH3cH3$t3%P 5EF0 3PS%&EFPGH $IP`yP0i4Ev4Ev$fcHEd3GHe3%P &EqeP345EfbAgIcG&EdQHRh3%RIyRh$I&eCPhGi$fcHEjyf`ka%cH yP0i4Ev3%Rh4Ev Eq$le&3EF0 cH0 Im$IPeP350#HeP3451 G)$I&3nhfohfpP3$lq`Q53451GHP345Evac3451 &EFG&iIqGH cHqPrh3RIIs&EqeP345HGH&EFh Ev IEdhtuC%q3I`v Pe yn&e Eq&$IPHeGf` &3GH yc 4H$epP3$q & GH c3G&0QP345 T0i E75w3%$lq EF $I&3$xc&fsH GH 5EFHT%RyPz3RIIPp30Q&EFHG&P`{ac|P0i Ev}51ohfPEF0 4H$epP3$q~P0 3RUH$l&TPEGH &Eq0$EqT3Rf3%P 0Q&0QP3451RGkGH e$fceGHGH ! "#%$&')( 10243657 98 3@5A
4
SUMRIO
1- INTRODUO .................................................................................10 1.1- Objetivos........................................................................................12 1.2- Organizao do Trabalho..................................................................12 2- COMUNICAES MVEIS ..............................................................13 2.1-Histrico das Comunicaes Mveis...................................................13 2.2-Elementos de Uma Rede Mvel Celular...............................................17 3- APLICAES MVEIS ....................................................................19 3.1-Comunicaes...................................................................................20 3.2-Servios de Valor Agregado...............................................................21 3.3-Aplicaes Verticais..........................................................................22 3.4-Servios Baseados em Localizao......................................................22 3.5- Publicidade......................................................................................23 4- A TECNOLOGIA JAVA .....................................................................24 4.1-Uma breve Histria de Java................................................................24 4.2-A Arquitetura de Java........................................................................25 4.2.1-A Linguagem de Programao Java..................................................25 4.2.2-O Arquivo Class.......................... ..................................................28 4.2.3-A API Java....................................................................................28 4.2.4-A Mquina Virtual Java..................................................................29 4.2.4.1-A Carga e execuo de uma JVM..................................................30 4.2.4.2 - Class Loader (Carregador de Classes).........................................30 4.2.4.3 - O Engenho de Execuo.............................................................31 4.3- Evoluo da Linguagem Java: do Lanamento at Java 2.....................32 4.3.1- Java Development Kit 1.0 (JDK).....................................................32 4.3.2- Java Development Kit 1.1...............................................................33 4.3.3- Java 2...........................................................................................33 4.4- O Processo da Comunidade Java (JCP)...............................................35 4.4.1- A Requisio de Especificao Java (JSR).......................................36 5- A PLATAFORMA JAVA 2 MICRO EDITION ....................................37 5.1- O que J2ME?.................................................................................37 5.2- O que J2ME oferece?........................................................................37 5
5.3- Os Conceitos de Configuraes e Perfis.............................................39 5.3.1- Configuraes...............................................................................39 5.3.2- Perfil............................................................................................40 5.4- As Mquinas Virtuais J2ME..............................................................41 5.4.1- A mquina virtual K (KVM)...........................................................41 5.4.2- A mquina virtual C (CVM)...........................................................43 5.5- A Configurao para Dispositivos com Limite de Conexo (CLDC)......44 5.5.1- Caractersticas eliminadas da J2SE (Java 2 Standard Edition )...........45 5.5.2- Processo de Verificao.................................................................45 5.5.3- APIs suportadas............................................................................46 5.6- O Modelo MIDP..............................................................................47 5.6.1- Requisitos mnimos de Hardware para um dispositivo MIDP.............47 5.6.2- Requisitos mnimos de Software para um dispositivo MIDP..............48 5.6.3- As APIs do MIDP..........................................................................48 6- TCNICAS E DIRETRIZES PARA O DESENVOLVIMENTO DE APLICAES SEM FIO ........................................................................53 6.1- Restries em Aplicaes Sem Fio.....................................................53 6.2- Desafios para o desenvolvimento sem fio...........................................55 6.2.1- Transmisso de Erros.....................................................................55 6.2.2- Latncia........................................................................................55 6.2.3- Segurana.....................................................................................56 6.3- Diretrizes para o Desenvolvimento de Aplicaes Mveis....................57 6.4- Tcnicas para otimizar a performance em aplicaes J2ME..................58 7- ESTUDO DE CASO ............................................................................59 7.1- Aplicao Agenda Telefnica............................................................59 7.2- Estrutura da Aplicao......................................................................60 7.3- O Processo de desenvolvimento.........................................................60 7.4- Resultados Obtidos...........................................................................62 8- CONSIDERAES FINAIS E TRABALHOS FUTUROS .....................64
RESUMO
objetivo prover ao usurio, acesso a uma rede fixa ou mvel, independente de sua localizao. A principal vantagem deste paradigma a de fornecer a capacidade de acessar informaes, aplicaes e servios a qualquer lugar e a qualquer momento atravs de um dispositivo mvel. O objetivo desta monografia apresentar a arquitetura da plataforma denominada Java 2 Micro Edition (J2ME), voltada para o desenvolvimento de aplicaes para dispositivos mveis. Dispositivos mveis so os elementos fundamentais dentro do paradigma da computao mvel, eles renem caractersticas como mobilidade e recursos computacionais limitados. Desta forma sero abordados conceitos e benefcios da arquitetura J2ME para o desenvolvimento de aplicaes para o ambiente da computao mvel.
ABSTRACT
Mobile computation is a new computational paradigm that has as goal to provide for user access to a permanent or mobile net, independent of your physical position. The main advantage of this paradigm is provide the capacity of accessing information, applications and services to anywhere and at anytime, through a mobile device. The goal of this monograph is introduce the platform framework called Java 2 Micro Edition (J2ME). This Java technology has been developed to provide solutions for mobile devices. Mobile devices are the fundamental elements for this computational paradigm, having characteristics as mobility and limited computational resources. Thus will be presented concepts and benefits of the J2ME architecture environment. for the applications development for mobile computation
Lista de Figuras
1. Instrumentos de Informao conectados a Internet............................11 2. Arquitetura de uma Rede Celular.....................................................18 3. Portabilidade de Java.....................................................................26 4. Cdigo Java transformado para o bytecode aps a compilao...........28 5. Subsistemas de uma JVM...............................................................30 6. Diagrama do class loader ...............................................................30 7. Passos de Execuo de uma JVM....................................................32 8. A Plataforma Java 2.......................................................................35 9. Download de aplicaes J2ME........................................................38 10. Arquitetura J2ME.... ........................................... ........................43 11. Passos para a execuo de programas em dispositivos mveis........ ..47 12. Teclas de um telefone celular.........................................................54 13. KtoolBar......................................................................................60 14. Ambiente de Desenvolvimento Sun One Mobile Edition 4.................61 16. Telas da aplicao.........................................................................62 17. Telas da aplicao.........................................................................63
1. Introduo
Conectividade, personalizao e inteligncia nos instrumentos de
informao, como apresentado nos dispositivos mveis, esto trazendo importantes benefcios em nossos negcios e vida privada. Estes dispositivos tais como, telefones celulares, pagers , screen phones 1 , PDAs 2 ( Personal Digital Assistant ) e sistemas de navegao de carros possuem muitas caractersticas em comum, porm diferem em diversas formas e funes. Estes dispositivos [9]. A proliferao desses instrumentos de informao tem crescido tendem a ser construdos para um propsito especfico diferentemente das mquinas de computao convencionais de propsito geral
rapidamente. Segundo [9], o nmero de assinantes wireless (sem fio) no mundo estimado em cerca de um bilho para o final de 2002 e incio de 2003, comparando com os computadores pessoais existentes, que no incio de 2002 estavam por volta de 311 milhes no mundo.
Segundo [9], prev-se que dentro de dois a cinco anos, a maioria dos instrumentos de informao estaro conectados Internet. Isto resultar em uma radical mudana na maneira de como as pessoas utilizam esses dispositivos. Os usurios dos instrumentos de informao querem acessar informaes como, contedo da web , dados corporativos e dados pessoais de maneira conveniente em qualquer lugar e a qualquer hora atravs de uma variedade de dispositivos. A figura 1 mostra o ambiente dos instrumentos de informao conectados Internet.
1 2
Espcie de telefone convencional com tela para acessar a internet. Dispositivo porttil que combina caractersticas de telefone, fax, agenda, computao e rede.
10
Figura 1. Instrumentos de Informao conectados Internet. Uma conseqncia importante da evoluo dos instrumentos de
informaes, que estes dispositivos sero muito mais personalizados e customizveis. Diferentemente do que ocorria no passado, quando os dispositivos como telefones celulares eram fabricados com um conjunto de funes prdeterminadas, por exemplo: jogos, agenda, etc, que permaneciam imutveis por toda a vida til do aparelho. Podem hoje, com avano tecnolgico desses dispositivos aliado a tecnologia J2ME, permitir aos usurios customizar seus dispositivos, carregando novos servios e aplicaes da Internet de acordo com suas necessidades [6].
11
1.1. Objetivos
O objetivo principal deste trabalho mostrar um estudo da linguagem J2ME, abordando seus conceitos, fundamentos, aplicaes e tcnicas, e alm disso, mostrar a importncia do ganho de produtividade na criao de solues para dispositivos mveis que so desenvolvidas com esse tipo de tecnologia Java.
12
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 [4]. A seguir, apresentado um breve histrico das comunicaes mveis. 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. As comunicaes sem fio tiveram uma contribuio fundamental com Michel Faraday demonstrando a induo eletromagntica 1 em 1831. Em 1864, James C. Maxwell lana os fundamentos tericos sobre campos magnticos com suas famosas equaes. Em 1876, Alexander Graham Bell inventa o telefone. Finalmente, Heinrich Hertz foi o primeiro a demonstrar, atravs de um experimento em 1887, as equaes de Maxwell sobre ondas eletromagnticas [4]. As equaes de Maxwell, descrevendo a propagao de ondas
eletromagnticas, e os experimentos de Heinrich Hertz, foram as bases para a descoberta da radiotelegrafia por Marconi, o qual conseguiu a primeira patente industrial na rea de comunicaes sem fio, em 1896. Marconi demonstrou a primeira transmisso de rdio da Ilha de Wight , localizada na Inglaterra, at um rebocador situado a dezoito milhas da Ilha [22]. Em 1905, ocorreu a primeira transmisso de voz e msica em um canal sem fio por
1
13
Reginald Fessenden, e em 1946, o primeiro sistema de telefonia mvel comercial, operado pela empresa americana Bell, foi implantado em St. Louis, Missouri, nos Estados Unidos. Nos anos 80, as unidades mveis eram instaladas em veculos o que permitia apenas uma comunicao veicular e no pessoal. 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 [4]. O espectro de freqncias, que constitui o meio de transmisso das redes mveis sem fio, precisa ser compartilhado entre os vrios usurios do sistema. sob este espectro que as tcnicas de acesso mltiplo ao meio operam, garantindo um acesso compartilhado e com equidade para todos os terminais mveis [4]. As principais tcnicas responsveis pela diviso dos recursos de freqncia em vrios canais no interferentes possibilitando o acesso mltiplo dos usurios so FDMA 1 ( Frequency Division Multiple Access ), TDMA 2 ( Time Division Multiple Access ) e CDMA 3 (Code Division Multiple Access). Vrios padres para a telefonia celular foram adotados em diferentes pases e ficaram conhecidos como sistemas de 1 Gerao (1G), entre eles podem-se citar: o AMPS ( Advanced Mobile Telephone System ) nos Estados Unidos, o TACS ( Total Access Communications Systems ) no Reino Unido, o JTACS ( Japan Total Access Communications Systems ) no Japo e o NMT ( Nordic Mobile Telephones system ) nos pases do norte europeu (Dinamarca, Finlndia, Sucia e Noruega). Os sistemas de 1G utilizam a transmisso de dados no modo analgico e a tcnica de acesso ao meio utilizada a FDMA. Os principais problemas com esses sistemas eram a baixa qualidade e capacidade dos canais de comunicao e a incompatibilidade entre os diversos sistemas existentes.
1 2
Tcnica de mltiplo acesso ao meio de transmisso por diviso da freqncia. Tcnica de mltiplo acesso ao meio de transmisso por diviso do tempo. 3 Tcnica de mltiplo acesso ao meio de transmisso por diviso de cdigo.
14
Depois da primeira gerao de sistemas mveis veio a 2 a Gerao (2G) numa tentativa de ampliar a capacidade dos sistemas existentes. O sistema AMPS( Advanced/American Mobile Phone System) evoluiu para o DAMPS( Digital Advanced Mobile Phone System) que utilizava TDMA, tambm conhecido por IS-54 ( Interim Standard 54). Como uma alternativa ao IS-54 surgiu nos Estados Unidos o IS-95 ( Interim Standard 95), ainda na primeira metade da dcada de 90 e utilizava o CDMA, aumentando a capacidade em relao aos sistemas existentes. O IS-54 foi sucedido pelo IS-136 ( Interim Standard 136). Portanto, em meados da dcada de 90 dois sistemas mveis digitais competiam nas Amricas na faixa de 800 MHz. Na Europa surgiu o GSM ( Global System for Mobile Communications ), no incio da dcada de 90, alcanando um maior nmero de assinantes, devido abranger uma maior rea de cobertura dentre os padres de segunda gerao. Utiliza acesso FDMA/TDMA. Uma grande inovao do sistema GSM o mdulo de identificao do usurio, o SIM ( Subscriber Identification Module ) que contm a identificao completa do usurio, chaves de cdigo de privacidade e outras informaes especficas sobre o usurio. O SIM se apresenta sob a forma de um carto de crdito ou de um plug-in 1 que conectado ao terminal GSM. Estes cartes podem ser removidos de um telefone GSM e usados em um outro, permitindo que o usurio utilize qualquer telefone GSM. Sem o SIM, o terminal torna-se inoperante. Esse sistema padronizou as comunicaes celulares na Europa,
permitindo ao usurio utilizar seu telefone em qualquer pas europeu. Ainda pode-se destacar como sistema 2G o PDC ( Personal Digital Cellular ) desenvolvido no Japo. Com a 2 gerao de celulares foram introduzidos novos servios de comunicao de voz, com maior qualidade e capacidade de transmisso, possibilitando atender um maior nmero de usurios e, tambm, foram criados servios de transmisso de dados como o Servio de Mensagens Curtas ( Short
1
Mdulo de software ou hardware independente, que pode ser adicionado a um sistema a fim de se obter alguma funcionalidade extra.
15
Messages Service SMS ) para transmisso de pequenos pacotes de dados. O SMS permite que o usurio envie e receba mensagens de texto de at 160 bytes [4]. Ainda no incio da dcada de 90 surgiu a idia da 3 a Gerao (3G) dos sistemas celulares, como uma proposta para a padronizao global das comunicaes mveis, com a disponibilizao de altas taxas de transmisso de dados possibilitando o suporte a aplicaes multimdia e acesso Internet. O IMT-2000 ( International Mobile Telecommunications 2000 ) a especificao para os sistemas 3G que est sendo desenvolvida pela ITU 1 ( International Telecommunication Union ). Esses sistemas, que j se encontram em uso no Japo, disponibilizam servios de voz, dados, e aplicaes multimdia sobre as redes sem fio. A idia que o IMT-2000 especifique uma famlia de padres que disponibilize pelo menos taxas de 2 Mbps (Mega bits por segundo) em ambientes indoor 2 , 384 Kbps em ambientes de baixa mobilidade, 144 kbps (Kilo bits por segundo) em ambientes veiculares ( outdoor 3 ). [4] Na dcada passada, duas tecnologias - comunicaes mveis e a Internet, cresceram de uma maneira que excederam todas as expectativas. O servio mvel celular obteve um crescimento muito grande de usurios juntamente com a reduo drstica dos planos para os servios de voz. Por outro lado, a Web proporciona uma grande possibilidade de acesso a informaes para os usurios fixos. A possibilidade de acesso informao e servios a qualquer hora e em qualquer lugar poder moldar uma nova sociedade de informao com os usurios acessando a informao na Internet atravs de diversos dispositivos mveis, tais como telefones celulares, PDAs (Assistentes Pessoais Digitais) e Laptops.
1 2
rgo internacional responsvel pela padronizao das Telecomunicaes. Ambiente interno. 3 Ambiente externo.
16
O conceito introduzido pelos sistemas celulares permite que pequenas reas de cobertura de rdio tornem-se parte de um grande sistema atravs da interconexo destas pequenas reas por meio do MSC. Com o crescimento da demanda e o reduzido espectro de freqncias, as clulas tm uma tendncia a reduzirem sua rea de cobertura. As clulas reduzem, tambm, a potncia de suas BSs. Um procedimento importante em sistemas celulares denominado handoff e corresponde mudana automtica de chamada de uma clula para outra medida que o usurio se desloca.
Permite aos usurios viajarem volta das reas de cobertura sem serem desconectados.
17
Na figura 2 pode-se visualizar os elementos que compem uma rede de comunicao mvel celular bsica.
18
3. Aplicaes Mveis
Aplicaes mveis apresentam vrias caractersticas que agregam
funcionalidade aos seus usurios. A primeira delas a mobilidade, a capacidade de manter voz constante e comunicao de dados enquanto em movimento. Em segundo lugar est o imediatismo, que permite aos usurios obter conectividade quando necessrio, sem considerar a localizao e sem uma longa sesso de login 1 . Finalmente, localizao permite aos usurios obterem informaes relevantes para suas localizaes atuais. A combinao dessas caractersticas fornece uma grande faixa de possveis aplicaes que podem ser oferecidas aos usurios mveis. Essas aplicaes podem ficar disponveis em uma rede do provedor de servio ou na Internet pblica. As aplicaes mveis so de vrias categorias e incluem [14]: Comunicaes intranet/Internet; Servio de valor agregado(VAS Value added services ) servios de informao e jogos; M-commerce venda a varejo, compra de bilhetes, servios bancrios e comrcio financeiro; Aplicao baseada em localizao Navegao, condies de trfego de veculos, localizao de pessoas e hospitais, etc; Aplicaes verticais gerenciamento de frota, alocao de recursos, etc; Publicidade. A seguir, sero detalhadas as categorias de aplicaes mveis citadas anteriormente. e -mail , fax, mensagem unificada e acesso
19
3.1. Comunicaes
Aplicaes de comunicaes incluem aquelas em que o usurio utiliza a rede de comunicao mvel apenas como um canal para acessar mensagens ou informaes. Diferem de outras aplicaes em que os usurios acessam um servio fornecido por uma operadora de rede mvel. As aplicaes de comunicaes so: Acesso intranet permite aos usurios manter contato com a sede atravs de e-mail, fax e voice mail usando sistemas de mensagem unificada. Arquivos e dados podem ser acessados atravs da intranet da empresa; Acesso Internet a Internet um meio de grande valor para acessar
dados corporativos alm de informao sobre produtos e servios. As empresas esto usando a Internet como um ambiente para realizar negcios com seus clientes e fornecedores atravs do e-commerce (comrcio eletrnico), e como meio de divulgao de propagandas; E-mail e Fax e-mails em redes mveis podem ser de dois tipos.
possvel mandar o e-mail para um usurio mvel diretamente, ou usurios podem ter uma conta de e-mail em uma operadora de rede mvel ou em um provedor de servio Internet. No segundo caso, uma notificao ser enviada para o terminal mvel do usurio e incluiro informaes sobre o emissor, hora/data e assunto;
20
Internet. Outros podem ser configurados para alertar o usurio no tipo de terminal de sua escolha quando as mensagens so recebidas [14].
eletronicamente em relao s transaes feitas no prprio banco. Transaes bancrias que podem ser feitas em uma conexo sem fio incluem: verificao de saldo, transferncia de dinheiro entre contas, pagamento de taxas; Comrcio financeiro a velocidade com que as transaes so feitas usando a Internet e atualizao das informaes a todo o momento, tem tornado o comrcio financeiro uma aplicao bastante utilizada.
22
3.5. Publicidade
Publicidades so servios oferecidos do tipo push . Servios de
propaganda podem ser oferecidos aos clientes para subsidiar os custos com os servios de voz e outros servios de informao. Propaganda pode tambm ser sensvel a localizao, por exemplo, um usurio entra em um shopping e recebe publicidade especfica das lojas daquele shopping [4].
23
24
Applications Programming Interface - Interfaces para programao de aplicaes que oferecem funcionalidades para a construo de interface com o usurio, banco de dados, etc. 2 So instncias de uma classe.
25
Figura 3. Portabilidade de Java. Segurana: Apresenta uma tipagem de dados forte, por somente permitir acesso a campos pelo nome (e no por endereo), um programa em Java pode ser verificado antes de ser executado para prevenir a execuo de cdigo no autorizado alm de proteger o sistema do cliente contra possveis ataques no intencionais, o ambiente tambm deve proteger contra aes premeditadas. A presena de coleta automtica de lixo, evita erros comuns que os programadores cometem quando so obrigados a gerenciar diretamente a memria. A eliminao do uso de ponteiros1, em favor do uso de vetores2, objetos e outras estruturas substitutivas, traz benefcios em termos de segurana. O programador proibido de obter acesso memria que no pertence ao seu programa. As presenas de mecanismos de tratamento de excees tornam as aplicaes mais robustas, no permitindo que elas falhem, mesmo quando esto rodando sob condies anormais [2]. Coleta de Lixo: A coleta de lixo uma eficiente tcnica de liberao de memria utilizada pela linguagem Java [15]. Muitas linguagens permitem que o programador aloque memria em tempo de execuo. Esta alocao consiste geralmente no retorno de um ponteiro que indica o incio do bloco da memria que foi alocado. Quando aquela memria no mais necessria, o programa deve liberar recursos para que ela possa ser reutilizada e evitar que o sistema pare por falta de memria. Nas linguagens de
1 2
So utilizados em programas para acessar a memria e manipular endereos. Estrutura de dados utilizada para armazenar informaes do mesmo tipo.
26
programao como C e C++, o programador deve se preocupar em controlar a memria alocada e liber-la quando no for mais utilizada. Esta, geralmente, uma tarefa complexa e propensa a erros, uma vez que deixa a cargo do programador o gerenciamento de memria da aplicao [15]. O sistema de coleta de lixo da linguagem Java tira esta responsabilidade do programador. Atravs de uma linha de execuo (thread) de baixa prioridade, o sistema de coleta de lixo mantm um registro da memria alocada e conta o nmero de referncias para cada ponteiro de memria. Nos intervalos em que a mquina virtual Java est inativa, o coletor de lixo (Garbage Collector CG) verifica quais os ponteiros de memria que no tm mais referncias apontando para eles e libera a memria. Suporte a programao concorrente (multithreandig): Programas em Java podem ter mais de uma linha de execuo ocorrendo simultaneamente. Os programadores podem definir quando e com que prioridade certas linhas de execuo sero rodadas. A vantagem disso que programas podem ficar realizando outras tarefas enquanto o usurio interage com ele. Java ainda fornece meios de sincronizar essas linhas de execuo. Quando um programa usa muitas delas e h o risco de utilizarem o mesmo conjunto de dados, necessrio sincronizar as aes para que no haja conflitos. 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 APPLETS (so pequenos programas escritos em Java que podem ser inseridos em documentos de hipertextos HTML1) que so carregados pela web e executados dentro de um browser2, SERVLETS, que so aplicaes para serem executados dentro de um servidor web, MIDLETs, que so aplicaes designadas para serem executados dentro de dispositivos mveis (telefones celulares, pagers, etc), XLETS, que so aplicaes para receptores de TV digital ou Set Top Boxes (dispositivo que estende a funcionalidade de um receptor de TV digital), entre outros [11] .
1 2
Linguagem de Marcao de Hipertexto. Programa que permite visualizar um documento criado em html.
27
Um modelo para um objeto que contm variveis para descrev-los e mtodos para descrever seu comportamento. 2 Uma especificao do comportamento abstrato que as classes individuais podem implentar.
28
plataforma para os programas que rodam sobre os mesmos. Para acessar recursos nativos do sistema, a API Java invoca mtodo nativos. Em Java, h dois tipos dos mtodos: Java e nativo. Um mtodo Java escrito na linguagem Java, compilado para bytecodes , e armazenado em um arquivo .class. Um mtodo nativo escrito em alguma outra linguagem, tal como C, C++ ou assembly , e compilado para cdigo nativo de mquina de um processador particular. Os mtodos nativos so armazenados em uma biblioteca de vnculo dinmico cuja forma exata especfica da plataforma. Mtodos Java so independentes de plataforma; os mtodos nativos no so. Quando um programa Java chama um mtodo nativo, a JVM carrega a biblioteca de vnculo dinmico que contm o mtodo nativo e o invoca [17]. Esta API contribui no apenas com a independncia de plataforma, mas tambm com a segurana, pois os mtodos da mesma verificam se possuem permisso para efetuar qualquer ao potencialmente prejudicial (como por exemplo, apagar arquivos).
plataforma Java obtidas pela existncia de uma mquina virtual para a qual os programas Java so feitos. 29
Durante a carga de uma classe, o class loader responsvel por encontrar uma representao binria para a mesma. Caso no seja possvel, um erro ser gerado. A fase de verificao checa se a estrutura binria da classe carregada bem formada, o carregador de classes tem essas informaes na hora em que se transfere um programa Java do disco local ou de um endereo remoto. Programas locais so considerados confiveis e tm menos restries. Programas remotos tm que passar pelo verificador, que ir dizer se o cdigo foi corrompido ou no, garantindo a no violao da integridade do sistema. A preparao envolve a criao dos campos estticos de classes ou interfaces e iniciao dos mesmos com seus valores padro. Na fase de resoluo, referncias simblicas so validadas e, tipicamente, substitudas com referncias diretas.
31
A figura abaixo ilustra a execuo de uma Mquina Virtual Java em todos os passos.
4.3 Evoluo da Linguagem Java: do Lanamento at Java 2 4.3.1 Java Development Kit 1.0 (JDK)
Em 1995, a linguagem Java foi disponibilizada pela primeira vez para o grande pblico atravs da primeira verso do Java Development Kit (JDK 1.0). O JDK uma coleo de ferramentas de linha de comando para, entre outras tarefas, compilar, executar e depurar aplicaes Java. Alm disso, a existncia do interpretador Java e a sua biblioteca padronizada foram outros pontos a favor da linguagem. Nessa primeira verso do JDK 1.0, foram introduzidas vrias bibliotecas (pacotes 1 ). Java.lang e java.applet disponibilizam as classes que formam a base da linguagem. O pacote java.awt o que define as ferramentas para desenvolvimento de interfaces grficas. O pacote java.net fornece facilidades para acesso aos recursos da rede bem como para programao concorrente e distribuda.
1
32
Foram disponibilizados ainda os pacotes java.io e java.util. Java tambm permite a definio e controle de processos leves ( threads 1 ) atravs de elementos da prpria linguagem desde sua verso inicial. Nessa verso foram introduzidos vrios mecanismos importantes como RMI ( Remote Method Invocation ) e JNI ( Java Native Interface ). RMI usado em programas cliente-servidor e distribudos para acessar mtodos de objetos remotos. JNI permite o acesso a funes implementadas em outras linguagens, como C e C++, como se fossem mtodos Java, facilitando a integrao de sistemas legados [12].
4.3.3 Java 2
J com a maturidade alcanada, foi lanada a verso 1.2 do JDK em 1998, que posteriormente veio a ser chamada pela Sun de J2SDK(Java Software Development Kit 2) ou simplesmente Java 2. O J2SDK, foi dividido em duas partes, o JRE (Java Run-Time Environmen t) que o Ambiente de Execuo Java responsvel por fornecer as condies para executar as aplicaes Java e o SDK( Software Development Kit) o Kit de Desenvolvimento de Software, o qual superconjunto do JRE. O SDK contm
33
tudo que o JRE possui mais ferramentas adicionais como compiladores e depuradores responsveis pelo desenvolvimento das aplicaes Java. O mais importante, porm, foi que a plataforma Java foi dividida em trs edies a partir da verso Java 2. Cada uma dessas edies define um conjunto de ferramentas que podem ser usadas para uma determinada categoria de plataforma. Dentre outras coisas essas ferramentas contm: Mquinas Virtuais Java para uma ampla gama de dispositivos; Bibliotecas e APIs (Interfaces para Programao de Aplicaes)
especializadas para cada tipo de dispositivo; Ferramentas para desenvolvimento e configurao de dispositivos.
As trs edies so explicadas abaixo: Java 2 Standard Edition (J2SE): Java 2 Edio Padro, possui um conjunto de ferramentas que possibilita o desenvolvimento de aplicaes para desktop; Java 2 Enterprise Edition (J2EE): Java 2 Edio Corporarativa, um superconjunto distribudas, Pages), da J2SE, para
1
voltado o
para
aplicaes usando
corporativas outras
voltadas
servidor,
dentre
coisa, e
Enterprise JavaBeans
CORBA 2 ( Common
XML 3 (Linguagem de Marcao Extensvel); Java 2 Micro Edition (J2ME): Java 2 Edio Micro, voltada para o desenvolvimento de aplicaes para dispositivos portteis. J2ME um subconjunto da J2SE, pois no apresenta todas as classes que J2SE apresenta.
1
2 3
uma arquitetura para o desenvolvimento e gerenciamento de aplicaes distribuda baseada em componentes. Tipo de arquitetura que permite as aplicaes distribudas comunicarem-se e trocarem informaes. uma maneira de representar as informaes.
34
Cada uma dessas edies apresenta um determinado grau de sofisticao em suas aplicaes, por exemplo, na edio J2EE o nmero de classes bem superior ao disponvel para J2ME. Com a diviso de Java em trs edies, foi possvel a evoluo da linguagem em diferentes direes, mostrando o verdadeiro esprito da linguagem. A figura 8 mostra o panorama de algumas plataformas que as edies contemplam.
documento, que diz o que um produto deve fazer, mas no diz como ele deve fazer. basicamente uma especificao que detalha toda a interface, e o que deve acontecer do ponto de vista do desenvolvedor que utiliza a especificao. A partir dessas informaes, qualquer fornecedor pode definir a sua implementao especfica [18]. Maiores informaes sobre o JCP podem ser encontradas em
http://www.jcp.org, onde, possvel conseguir uma lista de todo o JSRs que foram definidos ou esto no processo para serem definidos.
36
depois de feito o download da aplicao para o dispositivo, trabalhar conectado rede ( on-line ) ou desconectado da rede ( off-line ), no caso de se estar desconectado da rede, quando a rede estiver disponvel pode-se fazer a sincronizao 1 dos dados e das informaes utilizadas anteriormente. As aplicaes para a plataforma J2ME vo desde jogos, aplicaes que acessam banco de dados, etc. A figura 9 ilustra como novas aplicaes podem ser baixadas para os dispositivos.
Figura 9. Download de aplicaes J2ME. Utilizar Java na programao de pequenos aparelhos significa ganhar todas as vantagens que a tecnologia traz consigo:
Dinamismo: novas aplicaes podem ser baixadas da rede e Segurana: etc, garantem verificao a de classes, das forte tipagem, garbage pelo
colection
proteo
informaes
carregadas
dispositivo. Dados de uma aplicao no so acessveis por outras aplicaes; Portabilidade: aplicaes podem ser portadas entre dispositivos Orientao a Objetos: alto nvel de abstrao do cdigo, de diferentes fabricantes e de diferentes tipos;
modularizao e reusabilidade.
1
38
foram
definidos
edio
5.3.1 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, pela mquina virtual e suas bibliotecas de classes e APIs, as quais um determinado fabricante pode esperar que estaro disponveis em todos os dispositivos de uma mesma categoria [8]. Atualmente existem duas configuraes definidas e validadas pela Sun : Configurao para dispositivos conectados (CDC). A CDC designada para dispositivos fixos um pouco maiores, com pelo menos dois megabytes de memria disponvel, conectividade com redes, possibilitando estabilidade e grande largura de banda. Usa a mquina virtual Compact Virtual Machine (CVM) que uma mquina virtual completa e projetada para os dispositivos que necessitam de toda a funcionalidade presente na edio J2SE (JVM), apresentando porm 39
bem
menos
requisitos
de
memria,
tendo
assim
suporte
para
implementao completa de sua especificao. Alguns exemplos desses dispositivos so: televiso com Internet, sistema de navegao de carros, entre outros. Configurao para dispositivos com limites de conexo (CLDC). A CLDC designada para dispositivos mveis, pequenos e com grande restrio de recursos, conectividade a algum tipo de rede, em geral sem-fio. Conexo intermitente e banda limitada. Usa uma mquina virtual reduzida em relao mquina virtual clssica, que a KVM ( Kilo Virtual Machine ). A KVM ser apresentada mais adiante. pagers e PDAs so alguns dos dispositivos telefones celulares,
5.3.2 Perfil
Um perfil define uma plataforma Java para um segmento vertical especfico do mercado, ou seja, para uma categoria de dispositivos. O perfil a camada mais visvel para usurios e desenvolvedores de aplicaes. Define o conjunto mnimo de interfaces de programa da aplicao (APIs) disponvel em uma classe particular dos dispositivos representando um segmento de mercado vertical particular. Os perfis so implementados para uma configurao particular (CLDC ou CDC). As aplicaes so escritas para um perfil especfico sendo, deste modo, portteis para qualquer dispositivo que suporte aquele perfil. Um dispositivo pode sustentar mltiplos perfis. Existem vrios perfis como, por exemplo, o Perfil Fundamental ( Foundation Profile ), complementa a configurao CDC e o Perfil do Dispositivo de Informao Mvel (MIDP), para dispositivos de informao mveis que complementa a configurao CLDC [7]. Neste trabalho dar-se- nfase ao perfil MIDP que ser detalhado mais adiante. A introduo de perfil facilita a portabilidade de aplicaes dentro de uma mesma categoria, mas limita tal caracterstica para perfis diferentes. 40
A KVM pode executar em qualquer sistema que possua um processador de 16 ou 32 bits e um total de memria de 160 a 512K. Alm disso, no suporta tipos de dados longos e de ponto flutuante. Seu projeto foi baseado em algumas importantes consideraes, incluindo o tamanho reduzido para conservar um melhor espao em memria quanto possvel (tanto em termos de armazenamento quanto execuo) e a capacidade de rodar em processadores de pequeno poder computacional [9]. A meta do projeto para a construo da KVM era o de criar uma mquina virtual compacta que mantivesse os aspectos mais importantes da linguagem de programao Java, e que conseguisse executar em um dispositivo com recursos limitados, com s algumas dezenas ou centenas de kilobytes de memria disponvel (da vem o K, de kilobyte s) [9]. Mais especificamente, a KVM projetada para ser: Pequena e com baixo requisito de memria; Enxuta e portvel; Modular e customizvel; To completa e rpida quanto possvel.
A KVM implementada na linguagem C, por isso pode ser portvel para outras plataformas que contenham um compilador C.
42
funcionalidade aos dispositivos da segunda categoria dos quais a KVM no Praticamente mquina engloba todas caractersticas de uma mquina virtual Java convencional, s que de forma mais otimizada. Eis algumas caractersticas da CVM: Melhor desempenho em aplicaes real time 1 ; Coleta automtica de Lixo ( garbage collection ) otimizada; Mapeamento direto de threads Java para threads nativos; Execuo de classes diretas da memria ROM; Portabilidade; Sincronizao com um reduzido nmero de instrues;
Os conceitos de Perfil, Configuraes e Mquinas Virtuais formam as camadas da Arquitetura J2ME, mostrada na Figura abaixo.
43
Os dispositivos que se enquadram nesta configurao apresentam como caractersticas: Processadores de 16 ou 32 bits; Requerem de 160Kb a 512Kb de memria total disponvel para a plataforma Java; Baixos consumos de potncia, freqentemente so dispositivos operados por bateria; Conectividade com alguma espcie de rede, freqentemente com uma conexo intermitente, sem fio e com largura de banda limitada (9600bps ou menos). A especificao da CLDC no impe nenhum requisito de hardware especfico, a no ser o requisito de memria de 160Kb-512Kb. Mais especificamente: 128Kb de memria no voltil para a mquina virtual e bibliotecas CLDC; Pelo menos 32Kb de memria voltil para o ambiente de execuo e objetos alocados. A CLDC abrange as seguintes reas: Caractersticas da mquina virtual e da linguagem; Entrada/sada; 44
Acesso rede; Segurana; Internacionalizao; Bibliotecas de classes e APIs suportadas (java.util.*, java.lang.*) .
As seguintes reas no so cobertas pela CLDC, devendo ser abrangidas por perfis montados no topo da CLDC: Interface com o usurio; Manipulao de eventos; Gerenciamento do ciclo de vida da aplicao (instalao, remoo, etc.).
eliminadas
da
J2SE
(Java
Standard
Algumas caractersticas foram eliminadas da JVM que suporta CLDC (KVM) porque as bibliotecas de classes includas na CLDC so mais limitadas que as presentes na edio padro de Java. So elas: Suporte a operaes de ponto flutuante; Finalizao; Java native interface (JNI); Class loaders definidos pelo usurio; Reflexo; Grupos de threads e daemon threads ; Referncias fracas.
consumidor de memria, e que esta tcnica se torna invivel para os dispositivos menores, a CLDC define um mecanismo alternativo para tal finalidade. Assim, na configurao CLDC, foi adotada uma estratgia dividida em duas partes: pr-verifio e verificao final . A primeira etapa, a prverificao, feita fora do dispositivo aonde a aplicao vai executar, normalmente na mquina onde as classes foram compiladas. Numa segunda etapa, j no dispositivo alvo, uma nova verificao, bem mais eficiente feita para poder validar o arquivo. Em seguida, o programa est pronto para ser executado pela mquina virtual Java.
Memria: 128Kbytes para os componentes MIDP; 8Kbytes para dados das aplicaes; 47
Rede: Duplex, sem fio, possivelmente intermitente (sem conexo permanente) e com largura de banda limitada.
O MIDP herda a conectividade do CLDC e suporta um subconjunto do HTTP (Protocolo de Transferncia de HiperTexto) , que pode ser implementado com protocolos IP1 (TCP/IP) e no-IP (WAP2 e i-mode3). A interface HttpConnection possui funcionalidades que permitem a realizao de funes especficas do HTTP. Aparelho como: telefones celulares, pagers e PDAs, que implemente MIDP devem suportar o HTTP 1.1, requisies HEAD, GET, POST e FORMS [21]. Em adio, foram acrescentados outros pacotes especficos do perfil MIDP, so eles: javax.microedition.lcdui classes utilizadas para a implementao de interfaces com o usurio para aplicaes MIDlet. Elas so constitudas de APIs de baixo nvel e de alto nvel. A API de baixo nvel fornece pouca abstrao e designada para aplicaes que necessitam ter controle preciso sobre o posicionamento e atuao dos componentes grficos, alm de necessitar manipular eventos de baixo nvel. Esta API implementada pela classe Graphics 4 . importante salientar que a utilizao da API de baixo nvel no garante a portabilidade da aplicao porque elas acessam detalhes que so especficos de um dispositivo em particular. A API de alto nvel designada para aplicaes que executam em dispositivos nos quais a portabilidade importante. Para conseguir portabilidade, a API de alto nvel apresenta algumas limitaes. Por exemplo, aplicaes utilizando API de alto nvel no podem acessar entradas de dispositivos, como teclas especficas.
Protocolo projetado para permitir a interconexo de redes de computadores que utilizam tecnologia de comutao de pacotes. 2 Padro para aplicaes de ambientes sem fio desenvolvido pelo WAP Frum. 3 Arquitetura para aplicaes de ambientes sem fio da operadora Japonesa NTT DoCoMo. 4 Esta uma classe bsica usada para desenhar objetos no display do dispositivo.
49
javax.microedition.rms MIDP fornece um mecanismo para que os MIDlets armazenem e recuperem dados de forma persistente. o chamado Record Management System (RMS). A API RMS contm as classes necessrias para implementar uma base
de dados de armazenamento persistente no dispositivo. Essa base de dados limitada em suas potencialidades para armazenar e recuperar a informao devido s limitaes do tamanho do dispositivo. A classe RecordStores localizada no pacote javax.microedition.rms uma coleo de registros que permanece o mesmo durante mltiplas chamadas do MIDlet. A plataforma responsvel por manter a integridade desses registros, mesmo aps dispositivo sofrer reboots ou trocas de baterias.
javax.microedition.midlet define aplicaes MIDP (MIDlets) e as interaes entre estas aplicaes e o ambiente no qual a aplicao executa. O pacote de javax.microedition.midlet contm a classe MIDlet . Esta e fornece o mtodo
classe
executa
ciclo
de
vida
do
MIDlet
getAppProperty(key) para recuperar informao a partir das propriedades da aplicao definidas em um arquivo jad, que contm a descrio de algumas das caractersticas da mesma. O MIDP define um modelo de aplicao que permite que os recursos limitados dos MIDs sejam compartilhados por vrias aplicaes, as MIDlets. Este compartilhamento vivel mesmo com os limitados recursos e framework de segurana do MID, pois eles so obrigados a compartilhar classes e esto sujeitos a um conjunto de polticas e controles que permitem isso. Os elementos de uma MIDlet Sute( um ou mais MIDlets agrupados) formam software de gerenciamento de aplicao , do qual se espera, a 50
implementao
de
funes
necessrias
pelos
usurios
para
instalar,
selecionar, rodar e remover midlets, estes elementos so: Ambiente de Execuo : compartilhado por todas as MIDlets que esto na mesma MIDlet suite, e qualquer MIDlet pode interagir com outra que esteja no mesmo pacote. Empacotamento do MIDlet Suite : uma ou mais MIDlets podem ser empacotadas de um num nico arquivo seu JAR, que contm arquivo as classes da compartilhadas e os arquivos de recursos utilizados pelas MIDlets, alm manifesto descrevendo contedo( Descritor Aplicao Java - JAD). Existem vrios atributos pr-definidos que permitem identificao de uma MIDlet, como nome, verso, tamanho de dados, descrio, etc. Descritor de Aplicao : utilizado para gerenciar a MIDlet e usada pela prpria MIDlet para atributos de configurao especfica. O descritor permite que seja verificado que a MIDlet adequada ao aparelho antes de se carregar todo o arquivo JAR da MIDlet suite. Ele tambm permite que parmetros sejam passados para as MIDlets sem modificar os arquivos JAR. Ciclo de Vida da Aplicao : uma MIDlet no deve possuir um mtodo public void static main() . O software de gerenciamento de aplicao deve suprir a classe inicial necessria pelo CLDC para iniciar a MIDlet. Quando uma MIDlet instalada, ela mantida no aparelho e fica pronta para uso. Quando executada, uma instncia criada atravs de seu construtor pblico sem argumentos, e seus mtodos so chamados para mudar pelos estados da MIDlet. Quando ela terminada, ou destruda, os recursos utilizados por ela podem ser recuperados, incluindo os objetos criados e suas classes. O software de gerenciamento de aplicao disponibiliza um ambiente no qual a MIDlet instalado, iniciado, parado e desinstalado. Tambm 51
responsvel por manusear os erros que podem ocorrer durante alguma destas etapas. O compartilhamento de dados e outras informaes entre MIDlets so controlados pelas APIs individuais e suas implementaes. Assim, por exemplo, os mtodos da API de um sistema de gerenciamento de registros devem ser especificados para manusear com dados que podem ser compartilhados com outras MIDlets. O Software de Gerenciamento de Aplicao pode administrar as atividades de mltiplos MIDlets dentro de um ambiente em tempo de execuo ( runtime ). Alm disso, o MIDlet pode iniciar sozinho algumas mudanas de estados e notificar para o software de gerenciamento de Aplicao que estas mudanas ocorreram.
52
O crescimento do mercado de dispositivos sem fio est estimulando esforos na adaptao quase total de qualquer tecnologia j desenvolvida aos computadores de mesa ( desktops ) para que estejam disponveis aos dispositivos mveis. Essa adaptao no uma tarefa trivial. As aplicaes sem fio devem trabalhar dentro das restries dos dispositivos, tais como:
53
Pouca memria: os dispositivos como telefones celulares e pagers possuem memrias limitadas, obrigando a considerar o gerenciamento de memria um fator primordial.
Baixo poder de processamento: os dispositivos de sem fio tambm possuem uma potncia de processamento limitada (variando de 32Kbytes a 64Mbytes).
Entrada de dados: as capacidades de entrada so limitadas. A maioria dos telefones celular dispe de uma entrada com doze botes: sendo dez nmeros e alguns smbolos especiais como (*) e (#), como mostrado na Figura 12. J Palmtops possuem entrada atravs de canetas ou teclados alfanumricos.
Figura 12. Teclas de um telefone celular. Tela: O vdeo pode ter uma dimenso pequena (96 pixels de largura por 54 pixels comprimento) e monocromtico. A quantidade de informaes que se pode escrever em uma tela de um telefone celular bastante limitada. fcil perceber as limitaes dos dispositivos, mas, alm disso, no se pode deixar de mencionar em que condies esses dispositivos operam: As Redes Wireless possuem baixa largura de banda. As Redes Wireless esto sujeitas a mais erros do que a redes com fio. A grande mobilidade dos dispositivos pode gerar perda da conexo.
54
dispositivos sem fio uma tarefa desafiadora. Na seo abaixo sero pontos aplicaes sem fio devem estar atentos antes de iniciar a construo de uma
6.2.2 Latncia
Latncia o tempo que uma mensagem leva at chegar ao seu destino. A Latncia principalmente afetada pela natureza de cada sistema que emite a mensagem, e pelo tempo de processamento necessrio em cada n de origem at o destino.
importante lembrar que uma mensagem pode ser entregue para um usurio muito tempo depois de ser enviada. Uma demora longa poderia ser devido a problemas de cobertura ou erros de transmisso ou o dispositivo do 55
usurio pode estar desligado ou ter ficado sem a bateria. Alguns sistemas continuam tentando transmitir a mensagem at que seja entregue. Outros sistemas armazenam a mensagem que no pode ser enviada em determinado momento, e quando o dispositivo for reconectado rede, a mensagem enviada. A grande preocupao evitar que sejam enviadas informaes desatualizadas.
6.2.3 Segurana
Quaisquer informaes transmitidas sobre redes sem fio esto sujeitas a interceptaes. Algumas informaes podem ser confidenciais, como nmeros de carto de crdito e outras informaes pessoais. Para prover uma soluo de segurana fim a fim, deve-se implementar a segurana nas duas partes, tanto no cliente quanto no servidor, e estar assegurado que os sistemas intermedirios, tambm sejam seguros.
Uma soluo para utilizar quando as informaes manipuladas so altamente confidenciais seria a criptografia, onde o remetente codifica os dados antes de transmiti-los pela rede sem fio, e o receptor autorizado recebe os dados codificados e os decifra usando uma tecla especificada.
As
aplicaes
de
Comrcio
Eletrnico
utilizam
Protocolo
de
Transferncia de Hipertexto Seguro (HTTPS), que o HTTP sobre a Camada de Sockets Seguros 1 (SSL). O SSL trabalha de forma eficiente com comrcio eletrnico e existem expectativas que ele seja bastante utilizado pelo mcommerce 2 tambm. Para J2ME j existe uma verso do SSL para dispositivos mveis chamado kSSL( Kilo Safe Sockets Layer) .
1 2
Protocolo de segurana da Web criado pela Netscape. Comrcio Eletrnico feito atravs de dispositivos mveis.
56
Aplicaes utilizadas em dispositivos mveis devem ser de rpida execuo, pois quanto menor o tempo de execuo, menos tempo de uso da bateria, acarretando uma maior satisfao para o usurio [11]. Nesta seo so apresentadas algumas tcnicas de programao para aumentar a performance de aplicaes J2ME. Sempre que possvel utilizar variveis locais ao invs de variveis de classes, assim o acesso aos atributos de objeto mais rpido com o uso das variveis locais; Tentar diminuir as chamadas de mtodos, pois quando um mtodo chamado, a mquina virtual java aloca um novo nodo da pilha de execuo, isso faz com que a memria seja sobrecarregada; Minimizar a criao de objetos, pois quando um objeto criado, na maioria das vezes ele ser destrudo, isso leva uma diminuio da performance da aplicao. Para evitar a criao de muitos objetos devese utilizar objetos que possam ser reciclados ou mantidos na memria o mximo de tempo possvel;
58
Atravs da notao em UML, o diagrama de casos de uso abaixo (Figura 13), mostra as funcionalidades da Agenda:
59
Management System ,
uma base de dados de armazenamento persistente no dispositivo. Essa base de dados chamada de persistente, porque mesmo quando o dispositivo sofre reboots , troca de bateria ou desligamentos, os dados gravados permanecem inalterados. A base limitada em suas potencialidades para armazenar e recuperar a informaes devido s limitaes do dispositivo.
Figura 14. KtoolBar As aplicaes podem ser desenvolvidas com um simples editor de texto com os arquivos possuindo a extenso .java ou com ambientes de desenvolvimento integrados (IDEs), compatveis com o J2ME Wireless 60
Toolkit , que automatizam grande parte do desenvolvimento. Utilizando-se o Sun One 4 Mobile Edition 4.0, ambiente de desenvolvimento que se integra com o J2ME Toolkit para simplificar a codificao e depurao na construo de MIDlets. A figura 15 mostra o Sun One 4 Mobile Edition 4.0 integrado com o emulador.
61
desenvolvida, para isso utilizamos um dos emuladores que fazem parte do J2ME Wireless Toolkit . Trata-se de um dispositivo que simula um telefone celular (Figura 16 e Figura 17).
Tela Principal
Confirmao
62
Pesquisar nome
Deletar nome
63
Neste trabalho, foi abordada uma tecnologia muito importante para a consolidao do paradigma da computao mvel, a linguagem J2ME. Dentre as muitas questes trazidas pela computao mvel, uma questo fundamental seria os fatores que um desenvolvedor deve preocupar-se na implementao de uma aplicao para um sistema mvel. Um sistema mvel tem diversas peculiaridades que o torna diferente de um sistema distribudo comum. Dentre as principais restries esto: alto ndice de perda de pacotes, baixa largura de banda, alta latncia de acesso aos dados, dispositivos com pouca capacidade de processamento, armazenamento e energia, dentre outras questes. Assim, J2ME auxilia o desenvolvimento de aplicaes mveis, tentando trabalhar da melhor forma possvel, para que as restries da computao mvel no tornem as aplicaes inviveis para o uso. As sugestes para trabalhos futuros abrangem os seguintes segmentos: Aplicaes empresarias : Relatrio de Despesas: Todas as empresas tm seus representantes externos, especialmente o pessoal de vendas. Essas pessoas esto constantemente em movimento. O relatrio de despesas pode ser integrado em um aplicativo disponibilizado em um Palm; Gerenciamento de Projetos: Desenvolvimento de gerenciadores de projetos portteis que possam ser executados de um PDA; Sade: Acompanhamento mdico: Estes tipos de aplicaes podem ser utilizados papel; para armazenar e processar informaes sobre pacientes do hospital usando dispositivos portteis em vez de
64
Transporte: Aplicaes que informem ao usurio de transporte urbano, por exemplo, qual a linha de nibus que presta servios a um determinado bairro e quais os horrios dos coletivos. Informaes que poderiam ser mostradas no visor de um telefone celular;
Acesso a banco de dados remotos: Aplicaes que permitam ao usurio a partir de seu dispositivo de informao mvel acessar os dados residentes em servidores remotos;
Entretenimento: Desenvolvimento de interfaces para jogos, que podem ser baixados ou atualizados da Internet diretamente para os dispositivos de informao mveis.
65
9. Referncias
[1]
Brief
History
of
the
Green
Project.
Disponvel
em:
http:
Computao, 1996. Disponvel em: http://www.dcc.unicamp.br/~aacesta. [3] Java Connected, Limited Device Configuration. Specification Version 1.0a 2 Platform Micro Edition, 2000. Disponvel em:
QoS. XIX Simpsio Brasileiro de Redes de Computadores, 2001. [5] Dornan, A. Wireless Communications O Guia Essencial de
Comunicao sem Fio. Editora Campus, 2001. [6] Gomes, A. Tutorial: J2ME Viso Geral. Disponvel em:
Programming with J2ME. Hungry Minds, Inc, 2002. [8] Introduction to Java 2 Platform Micro Edition and KVM. Disponvel
em: http://www.sun.java.com. [9] Java 2 Platform Micro Edition (J2ME ) Technology for Creating Mobile
66
Lisboa, C. PicoJava :
http://www.inf.ufrgs.br/procpar/disc/cmp157/trabalhos/sem2000-2/tf/lisboa,
Mahmoud,
Q.
H.
Wireless
Software
Design
Techniques
What every wireless software developer should know. May 2002. Disponvel em: http://wireless.java.sun.com/midp/articles/uidesign/ [12] 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, 1999. [13] MIDP Style Guide - Mobile Information Device Profile (MIDP)
1.0a. Sun, 2002. Disponvel em: http://www.sun.java.com. [14] Ribeiro, A. Servios de Dados Mveis. Trabalho de Concluso de
Disciplina - Sistemas de Comunicaes Mveis. 2002. [15] Rocha, H. Tutorial: Desenvolvimento de Applets & Aplicaes em
Java. 1998. [16] Sharma, C. Aplicaes Comerciais da Internet Sem Fio. Editora Makron
Books, 2001 [17] Silva, W. Tecnologias Java para Sistemas Embarcados. Trabalho de
Concluso de Curso. 2001 [18] Souza, B. O mais importante do Java Esforo de uma comunidade.
Revista Java Magazine, Edio 4, 2003. [19] Tanenbaum, A.S.; Woodhull, A.S. Sistemas Operacionais: Projeto e
67
[20]
Gosling and Henry McGilton. [21] Topley, Kim. J2ME in a Nutshell. The Mobile Information Device
Profile and MIDlets. OREILLY, 2002. [22] Walrand, J.; Varaiya, P. High-Performance Communication Networks,
68
Lista de Siglas
1G - Primeira Gerao de Sistemas Celulares. 2G - Segunda Gerao de Sistemas Celulares. 3G -Terceira Gerao de Sistemas Celulares. AMPS - Advanced Mobile Telephone System. AOT- Ahead-of-Time. APIs - Applications Programming Interface. BSs - Base Stations. CDC - Configurao para dispositivos conectados. CDMA - Code Division Multiple Access CG - Garbage Collector. CLDC - Configurao para dispositivos com limites de conexo. CORBA - Common Object Request Broker Architecture. CVM - Compact Virtual Machine. EJB - Enterprise JavaBeans. ESN - Eletronic Serial Number. FDMA - Frequency Division Multiple Access. GSM - Global System for Mobile Communications. HLR - Home Location Register. HTTP - Protocolo de Transferncia de Hipertexto. HTTP - Protocolo de Transferncia de HiperTexto. HTML - Linguagem de Marcao de Hipertexto. HTTPS - Protocolo de Transferncia de Hipertexto Seguro. IMT - 2000 - International Mobile Telecommunications 2000. IP - Internet Protocol. IS-136-Interim Standard 136. IS-54 - Interim Standard 54 IS-95 - Interim Standard 95. ITU - International Telecommunication Union. J2ME - Java 2 Micro Edition J2EE - Java 2 Enterprise Edition. J2SDK- Java Software Development Kit 2. 69
J2ME- Java 2 Micro Edition. J2SE - Java 2 Standard Edition. JAR - Java Archive. JAD - Java Archive Descriptor. JCP - Java Community Process. JDBC - Java Data Base Connection. JDK - Java Development Kit. JIT - Just in Time. JNI - Java native interface. JNI - Java Native Interface. JRE - Java Run-Time Environment. JSR - Java Specification Request. JTACS- Japan Total Access Communications Systems. JVM - Java Virtual Machine. KVM - Kilo Virtual Machine. M-commerce - Mobile commerce. MIN- Mobile Identification Number. MIDP - Perfil do Dispositivo de Informaes Mveis. MS - Mobile Stations. MSC - Mobile Switching Center. NMT - Nordic Mobile Telephones system. PDC - Personal Digital Cellular. PDAs - Personal Digital Assistant PSTN - Public Switched Telephone Network. RMS - Record Management System. RMI - Remote Method Invocation SIM - Subscriber Identification Module. SMS- Short Messages Service. SSL - Camada de Sockets Seguros. TACS - Total Access Communications Systems. TCP/IP - Transmission Control Protocol. TDMA - Time Division Multiple Access VLR - Visitor Location Register. WAP - Wireless Application Protocol. 70
71
Softwares: Emulador J2ME Wireless Toolkit. Disponvel para download em http://www.java.sun.com ; Ambiente de Desenvolvimento Integrado Sun One Mobile Studio 4. Disponvel para download em http://www.java.sun.com; Ferramenta Case Rational Rose. Disponvel em
http://www.rational.com/rose.
72