Escolar Documentos
Profissional Documentos
Cultura Documentos
Bruna Georgina Bunzen de Albuquerque Romeiro Orientador: Srgio Castelo Branco Soares Recife, Maio de 2005
Bruna Georgina Bunzen de Albuquerque Romeiro Orientador: Srgio Castelo Branco Soares Recife, Maio de 2005
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.
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.
iii
Sumrio
ndice de Figuras ndice de Quadros ndice de Quadros Tabela de Smbolos e Siglas 1 2 Introduo Tecnologias
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)
v vi vi vii 9 11
11 13 14 15 15 16 17 18 18 19 21
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
23
23 24 25 26
27
29 30 31 36 39 39
42
42 43
iv
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. Plataforma Java 2 Fonte [29] ........................................................................................................ 12 Diviso da Plataforma Java Fonte [23].......................................................................................... 13 Arquitetura J2ME.............................................................................................................................. 14 Camadas da Arquitetura J2EE ......................................................................................................... 16 ConsultaAction extendendo a classe Action ..................................................................................... 17 ActionSrvlet no web.xml .................................................................................................................... 18 Protocolo http ..................................................................................................................................... 20 Fromato de Requisio de Mensagem .............................................................................................. 21 Hierarquia das interfaces no GCF e Classes relacionadas Fonte [35] ........................................ 21 Relao entre HttpConnection e ContentConnection ..................................................................... 22 Dispositivos Mveis Fonte: [29]...................................................................................................... 24 Diagrama de Seqncia da Comunicao entre o cliente e o Servidor .......................................... 28 IDE Eclipse.......................................................................................................................................... 29 Emulador MediaControlSkin............................................................................................................ 30 Diagrama de Classe do Mdulo Cliente ........................................................................................... 31 Ciclo de Vida de um Midlet ............................................................................................................... 32 Resultado da Pesquisa por Professor................................................................................................ 35 Diagrama de Classes do mdulo Servidor........................................................................................ 37 Diagrama de Classes do Sistema ....................................................................................................... 40
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. Obtendo a conexo com o HttpConnection Mtodo startApp Mtodo destroyApp Envio de dados da consulta Classe conexo recebendo resposta do servidor Tratamento da resposta vinda do servidor Mtodo setResponse no TccMIDlet Propriedades do cabealho HTTP Construtor da classe Conexo Mtodo getInstance da classe Fachada Obtendo o tipo da pesquisa Exemplo da consulta de professores Dados encaminhados para o cliente Arquivo Tcc.jad 22 32 32 33 33 34 34 35 36 36 37 38 38 40
vii
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.
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.
10
O sistema est dividido em um mdulo cliente e um mdulo servidor. O cliente o aplicativo que estar rodando no celular e ter como uma de suas responsabilidades, receber a entrada de dados informados pelo usurio. Uma comunicao com o servidor deve ser estabelecida para que os dados sejam transmitidos. Ao receber os dados, o servidor deve process-los e ento encaminh-los de volta como resposta requisio enviada pelo cliente. O Captulo 2 explica as tcnicas que foram utilizadas no desenvolvimento tanto do lado cliente quando do lado servidor. Um histrico da comunicao mvel, bem como as vantagens e desvantagens dos dispositivos mveis apresentado no Captulo 3. O Captulo 4 mostra como foi implementado tanto o mdulo cliente quando o mdulo servidor com seus respectivos diagramas de classes. Por fim, o Captulo 5 apresenta concluses que podem ser tiradas com o presente trabalho, bem como sugestes de trabalhos futuros.
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 3
12
A API (Applications Programming Interface) de Java consiste em um conjunto de bibliotecas de tempo de execuo que fornecem ao desenvolvedor de software uma forma padro de acessar os recursos do sistema [31]. A especificao da API Java assim como da mquina virtual, devem ser implementados para cada plataforma que para garantir a independncia das plataformas. A mquina virtual Java um computador hipottico, implementado como uma aplicao de software em uma mquina real [28]. A portabilidade e a segurana so caractersticas da plataforma Java que so possibilitadas pela existncia da mquina virtual. Devido ao desenvolvimento da linguagem Java e aos diferentes contextos nos quais ela est sendo aplicada, encontrou-se a necessidade de dividi-las em 3 edies, so elas: Java 2 Standard Edition (Java 2 Edio Padro, J2SE) : possui um conjunto de ferramentas para o desenvolvimento de aplicaes desktop; Java 2 Enterprise Edition (Java 2 Edio Corporativa, J2EE): um super conjunto da J2SE, voltado para aplicaes corporativas e distribudas, voltada para servidor e utilizando EJB (Entreprise JavaBeans); Java 2 Micro Edition (Java 2 Edio Micro, J2ME): voltada para o desenvolvimento de aplicativos para dispositivos mveis. J2ME um subconjunto da J2SE. Java Card: uma soluo da unio smart card com algumas funcionalidades de segurana de redes. uma plataforma que garante a privacidade e segurana de informaes.
13
Seguindo o foco deste trabalho, ocorrer uma breve explicao das caractersticas e funcionalidades da plataforma J2ME.
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.
15
O Perfil do Dispositivo de Informaes Mveis (MIDP) o primeiro perfil disponvel para a plataforma J2ME. A combinao do CLDC e do MIDP fornece um ambiente completo de desenvolvimento para a criao de aplicaes em celulares e pagers [25]. As aplicaes que conseguem executar em dispositivos que possuem suporte a MIDP so chamados de MIDlets. Para um dispositivo ter suporte ao MIDP, ele deve possuir um display de pelo menos 96 x 54 pixels e uma memria de pelo menos 128 Kbytes.
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
A mquina virtual um dos principais fundamentos da tecnologia Java, permitindo que as aplicaes escritas possam ser portveis para diversos tipos de hardware e diferentes sistemas operacionais. Em J2ME deve-se utilizar uma mquina virtual Java que seja apropriada para os dispositivos como telefones celulares, pagers e PDAs que possuem tamanho de memria reduzido [17]. A mquina virtual que o aplicativo do trabalho em questo faz referncia a KVM (Kilo Virtual Machine), utilizada pela configurao CLDC, possuindo cerca de 80K de memria. A KVM pode executar em qualquer sistema que possua um processador de 16 a 32 bits e um total de memria de 160 a 512K, devido a essas restries no possui suporte a tipos de dados longos e pontos flutuantes. 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 [17].
16
Figura 4. Camadas da Arquitetura J2EE O lado cliente pode ser dividido em duas partes: Pginas web dinmicas como, por exemplo, HTML (Hiper Text Markup Language) ou XML (Extensible Markup Language) [33] que so geradas pelos componentes web presentes na camada web. Web browser que so os responsveis por redirecionar as pginas a medida que so recebidas pelo servidor.
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.
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.
Figura 6. ActionSrvlet no web.xml Para que o ActionServlet consiga fazer o direcionamento de requisies corretamente, necessrio configurar os Actions existentes em um arquivo de configurao chamado struts-config.xml e este arquivo que deve conter todas as informaes necessrias para o funcionamento desse framework.
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.
19
No servidor, aplicaes J2EE podem ser desenvolvidas e implantadas utilizando qualquer uma das vrias aplicaes servidoras disponveis nesta plataforma. Este trabalho faz uso do framework Struts, desenvolvido pela Jakarta, como explicado na Seo 2.5. No cliente, aplicaes so desenvolvidas e essas aplicaes podem executar em qualquer dispositivo com suporte a MIDP como, por exemplo, aparelhos celulares, pagers ou assistentes pessoais (PDA). Dessa forma, possvel abranger diversos tipos de clientes tornando as aplicaes mais acessveis. Muitas aplicaes s conseguem o resultado desejado aps estabelecer uma conexo com o ambiente servidor. Esta conexo pode permanecer ativa durante todo ciclo de vida da aplicao ou ser ativada apenas quando for necessria uma comunicao com o servidor. Para obter uma soluo na tecnologia J2ME, importante ser observado que tanto a conexo de rede quanto os recursos so bastante limitados, o que no reflete um desenvolvimento tpico em um computador que possui um ambiente fixo de rede. Em um servio mvel nem sempre possvel ter uma conexo ativa de rede, variando de acordo com a localizao geogrfica. O HTTP (Hypertext Transfer Protocol) o nico protocolo de transporte que suportado pela plataforma J2ME, conseqentemente o protocolo HTTP prov a comunicao entre a aplicao MIDP e o servidor J2EE.
20
21
2.7.1
O Generic Connection Framework fica localizado no pacote javax.microedition.io e possui uma classe (Connector), um exceo (ConnectionNotFoundException) e oito interfaces, como pode ser vista na Figura 9.
22
No incio da hierarquia est a interface Connection, o tipo mais bsico de conexo, e todas as outras interfaces herdam dela. medida que se percorre para baixo nos nveis da hierarquia, as conexes vo tornando-se mais complexas. A classe Connector utilizada para gerar instncias de conexo utilizando os mtodos que possui. A instncia gerada suportada pela interface Connection ou uma de suas descendentes no nvel da hierarquia. Essa classe possui trs mtodos open, com as seguintes assinaturas: open(String url) open(String url, int mode) open(String url, int mode, boolean timeouts) Os parmetros passados por estes mtodos significam: A url a URL da conexo; O mode a mtodo de acesso; O timeout uma forma de indicar que uma exceo ser levantada ou no, caso ocorra um estouro no tempo Esse trabalho fez uso da interface HttpConnection que herda da ContentConnection, como pode ser visto na Figura 10 .
String url = "http://localhost:8080/tcc/consulta.do"; HttpConnection conn = null; conn = (HttpConnection) Connector.open(this.url); conn.setRequestMethod(HttpConnection.POST); Quadro 1. Obtendo a conexo com o HttpConnection
23
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.
25
Em se tratando especificamente do aparelho celular, h proximadamente uma dcada foi um artigo de luxo, hoje em dia tornou-se um bem de consumo bastante acessvel. medida que a demanda por funcionalidades aumenta, as empresas de telefonia celular vm acrescentando novas tecnologias a tais aparelhos, variando seus tamanhos, fazendo modificaes desde hardware at software, estimulando nos consumidores o desejo de possuir o mais recente modelo de um determinado celular. Os celulares ainda possuem como principal funo o servio de voz, porm a transmisso de dados vem tornando cada vez mais freqente. Como exemplo pode-se citar a possibilidade de ter acesso a informao e servios a qualquer hora acessando a Internet. Pode-se dizer que os celulares esto tornando-se pequenos computadores, possuindo a vantagem do tamanho reduzido. O nmero total de telefones celulares excedeu 600 milhes no ano de 2001 e a estimativa era de haver 1 bilho em 2003 [27]. Em contraste, os PC ficaram em torno de 311 milhes no incio do ano 2000 [27].
3.2.1
Do ponto de vista empresarial, os dispositivos mveis so timos geradores de informao, podendo ser utilizado na automatizao do processo, at nas coletas de informaes estratgicas, pois com suas reduzidas dimenses podem ser transportados e estar presentes em todas as situaes em que um profissional pode atuar [29]. Algumas vantagens dos dispositivos mveis em relao aos micro-computadores so listadas a seguir:
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.
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.
27
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
29
30
31
No escopo da aplicao, o cliente um aparelho celular com a caracterstica MIDP, rodando o aplicativo desenvolvido na plataforma J2ME. J o servidor um PC com o Tomcat instalado rodando a aplicao J2EE.
4.2.1
A implementao cliente foi totalmente desenvolvida utilizando a linguagem Java para dispositivos mveis, tendo como ponto de partida a classe TccMIDLet, MIDLet responsvel pela aplicao. Uma viso geral da arquitetura cliente pode ser visualizada na figura seguinte que apresenta o diagrama de classe para este mdulo.
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); } {
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:
O mtodo utilizado: no caso como foi 0 o mtodo foi o POST; A base de dados da consulta: como foi 1 significa que a pesquisa referente a professores; A String de consulta, que neste caso o login do professor;
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.
34
public void receber(DataInputStream dis, int len){ try{ if(len > 0){ String respostaServidor = dis.readUTF(); this.listener.setResponse(respostaServidor); } } catch(IOException e){ e.printStackTrace(); } catch(Exception e){ e.printStackTrace(); } Quadro 6. Tratamento da resposta vinda do servidor
Ao final do ciclo executado o tratamento atravs do mtodo setResponse no Midlet da aplicao, como mostra o Quadro 7. Como pode ser visto, a varivel resultadoForm do tipo Form. Um Form um componente grfico que faz parte da interface de alto nvel de J2ME e pode conter alguns itens. No exemplo abaixo est sendo utilizado uma StringItem, que como um prprio nome diz um item em formato de texto. Tambm esto sendo adicionados ao Form dois Commands. Um Command responsvel por encapsular as informaes de uma determinada ao. No exemplo do Quadro 7 podemos ver o voltarCommand e o sairCommand. Se o usurio escolher a opo de voltarCommand, ser exibida a tela anterior, caso contrrio o mtodo destroyApp ser chamado interrompendo o aplicativo.
public void setResponse(String resp) { resultadoForm = new Form("Resultado da Pesquisa"); StringItem item = null; item = new StringItem("",resp); resultadoForm.append(item); resultadoForm.addCommand(voltarCommand); resultadoForm.addCommand(sairCommand); resultadoForm.setCommandListener(this); theDisplay.setCurrent(resultadoForm); } Quadro 7. Mtodo setResponse no TccMIDlet
O procedimento descrito resulta no seguinte comportamento no emulador. (Ver Figura 17)
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
36
no construtor da classe Conexao onde so informados : metodoConexao: apenas o mtodo POST foi utilizado para estabelecer a conexo; tipoPesquisa: informa a base de dados que deve ser utilizada; dadoPesquisa: texto que varia conforme a consulta a ser realizada;
public Conexao(String metodoConexao, String tipoPesquisa, String dadoPesquisa) { this.metodoConexao = metodoConexao; this.tipoPesquisa = tipoPesquisa; this.dadoPesquisa = dadoPesquisa; } Quadro 9. Construtor da classe Conexao
Os valores do tipoPesquisa podem variar da seguinte forma: 0: Consulta referente a projetos; 1: Consulta referente a professores; 2: Consulta referente a alunos; 3: Consulta referente a horrios; 4: Consulta referente s pessoas que esto no NUPEC; 5: Consulta referente s pessoas que passaram no NUPEC em um determinado dia;
4.2.2
O aplicativo que executado no mdulo servidor foi desenvolvido utilizando a linguagem Java coorporativa, e possui o importante papel de capturar as solicitaes vindas do cliente para fazer o processamento necessrio. Visando diminuir a complexidade na implementao, a arquitetura foi criada de forma que apenas a classe ConsultaAction receba as requisies. O sistema servidor foi desenvolvido seguindo os padres Facade [10], Singleton [10] e Bridge [10]. A estruturao do sistema em subsistemas essencial para a reduo de complexidade, facilitando a manuteno. O padro Facade prope uma interface unificada para um conjunto de interfaces de um subsistema, definindo uma nica interface de alto nvel, que torna o subsistema mais fcil de ser utilizado. Sendo assim as solicitaes ao sistema servidor sero feitas a classe Fachada e no a cada objeto particular. O objeto Fachada se encarrega de encaminhar a solicitao ao objeto correspondente. O objetivo da utilizao do padro Singleton garantir que a classe Fachada possua apenas uma instncia, e possibilitar o acesso global a essa instncia. A forma como foi utilizado esses dois padres podem ser visto no Quadro 10. O padro Bridge tem como inteno separar a camada de dados da camada de negcios utilizando interfaces, de modo que elas possam variar fcil e independentemente. A Fachada contm instncias das interfaces IRepAlunos, IRepProfessores, IRepHorasSemanais e IRepProjetos.
37
public static Fachada getInstance(){ if(Fachada.fachada == null){ fachada = new Fachada(); } return fachada; } Quadro 10. Mtodo getInstance da classe Fachada
A Figura 18 mostra uma viso geral do comportamento do mdulo servidor.
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.
18.
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();
Quadro 12. Exemplo da consulta dos Professores O acesso aos dados dos professores feito atravs da Fachada, chamando o mtodo selectProf passando como parmetro o idProf que chegou atravs da solicitao do cliente, como pode ser visto na linha 3 no Quadro 12. A classe RepositorioProfessores responsvel pela manipulao do armazenamento de dados e isola os dados referente a professores do resto do aplicativo. Esta classe est simulando uma base de dados com informaes dos professores, utilizando armazenamento em memria, de forma que se for necessria uma troca no meio de armazenamento (arquivos, banco de dados, etc.), apenas esta classe, referente a professores, dever ser trocada ou modificada. O mesmo ocorrendo para os demais repositrios de dados do sistema. Depois de processar os dados, o servidor escreve a mensagem utilizando o formato UTF-8 atravs do mtodo writeUTF na linha 7 do Quadro 12, visto que, a leitura desse array de byte realizado no lado cliente com o mtodo readUTF. Finalizando o ciclo, a mensagem enviada de volta para mdulo cliente e assim apresentada na tela do emulador. O cdigo fonte responsvel por essa etapa pode ser visto no Quadro 13.
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
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:
suporte a MIDP 1.0; transferncia de dados ; memria que suporte um aplicativo de 100k.
MIDlet-1: Tcc, Tcc.png, TccMIDlet MIDlet-Jar-Size: 100 MIDlet-Jar-URL: Tcc.jar MIDlet-Name: Tcc MIDlet-Vendor: Unknown MIDlet-Version: 1.0 MicroEdition-Configuration: CLDC-1.0 MicroEdition-Profile: MIDP-1.0 Quadro 14. Arquivo Tcc.jad A unio dos dois mdulos, resultou no diagrama de classes que pode ser observado na na Figura 19.
41
O diagrama de casos de usos do sistema em questo pode ser observado na Figura 20.
Figura 20.
42
43
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.
45
[19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29]
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.
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.
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
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
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.