SIRASS SISTEMA DE RASTREAMENTO DE SMARTPHONE - PDF
SIRASS SISTEMA DE RASTREAMENTO DE SMARTPHONE
Download "SIRASS SISTEMA DE RASTREAMENTO DE SMARTPHONE"
Stella da Conceição Gorjão
1 UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE INFORMÁTICA CURSO DE ESPECIALIZAÇÃO EM TECNOLOGIA JAVA E DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS VALMIR KIELTYKA SIRASS SISTEMA DE RASTREAMENTO DE SMARTPHONE CURITIBA 2013
2 VALMIR KIELTYKA SIRASS SISTEMA DE RASTREAMENTO DE SMARTPHONE Monografia de especialização apresentada ao Curso de Especialização em Tecnologia Java e Desenvolvimento para Dispositivos Móveis da Universidade Tecnológica Federal do Paraná como requisito parcial para a obtenção do título de especialista. Orientador: Professor Dr. João Alberto Fabro CURITIBA 2013
3 AGRADECIMENTOS Primeiramente a DEUS e a minha família. Aos professores dedicados e pacientes do Curso de Especialização Java e Desenvolvimento para Dispositivos Móveis que transmitiram com muita motivação o conhecimento de qualidade. Ao professor Fabro pela paciência, ajuda, conhecimento e conselhos vitais na confecção do documento. A todos que contribuíram, ajudaram e aconselharam de forma direta e indireta no desenvolvimento desta monografia.
4 RESUMO KIELTYKA, Valmir. Sistema de Rastreamento de Smartphone páginas. Monografia de Especialização em Tecnologia Java e Desenvolvimento para sistemas móveis Universidade Tecnológica Federal do Paraná, O surgimento de novas tecnologias e a melhoria das já existentes apoia o desenvolvimento de novos sistemas que contribuem para o desenvolvimento da tecnológica. A necessidade de manter-se disponível e conectado a web faz com que os aparatos tecnológicos estejam em nosso bolso de dia e a noite, para estarmos acessíveis a qualquer momento. Este projeto tem por objetivo a criação de um sistema para localização em tempo real de aparelhos celulares Smartphones, utilizando a plataforma Android para desenvolvimento do aplicativo com características dos sistemas de geoprocessamento para dispositivos móveis. Palavras-chave: Android, WebService, GPS, Geoprocessamento.
5 ABSTRACT Kiełtyka, Valmir. Smartphone Tracking System. In pages. Specialization in Technology Development for Java and Mobile Systems - Federal University of Technology - Paraná, The emergence of new technologies allows the development of new systems that contribute to the technological advance. The need to keep available and connected to the web all time makes us to walk with technological devices in the pocket day and night, thus being accessible at any time. This work aims to create a system for locating mobile Smartphones, using the Android platform to develop an application with geoprocessing capabilities, applied to locate and track mobile devices. Keywords: Android, WebServices, GPS, Geoprocessing.
6 LISTA DE SIGLAS ADT - Android Development Tools API - Application Programming Interface DNS - Domain Name Service EJB - Enterprise Java Beans GPS Global Positioning System - Sistema de Posicionamento Global HTTP - Hyper Text Transfer Protocol IDE - Integrated Development Environment IP - Internet Protocol J2EE - Java 2 Enterprise Edition JEE - Java Enterprise Edition JAAS - Java Authentication and Authorization Service JAX-B Java API for XML Binding JAX-RPC - Java API for XML - based RPC JAX-WS - Java API for Xml Java para Web Services XML JDBC - Java Database Connectivity JDK - Java Development Kit JMS - Java Message Service JMX - Java Management Extensions JNDI - Java Naming and Directory Interface JPA - Java Persistence API JPQL - Java Persistence Query Language JRE - Java Runtime Environment JSF - Java Server Faces JSP - Java Server Pages JTA - Java Transaction API LAN - Local Area Network ORM - Object Relational Mapping PC - Personal Computer REST - Representational State Transfer SEI - Service Endpoint Interface
7 SDK - Software Development Kit SGDB - Sistema Gerenciador de Banco de Dados SIB - Service Implementation Bean SMS - Short Message Service SOA - Service Oriented Architecture SOAP - Simple Object Access Protocol SQL - Structured Query Language UML - Unified Modeling Language URL - Uniform Resource Locator UTFPR - Universidade Tecnológica Federal do Paraná VPN - Virtual Private Network - Rede Privada Virtual XML - Extensible Markup Language WSDL - Web Service Definition Language WSS - Web Services Security
8 LISTA DE FIGURAS Figura 1 - Satélites do GPS Figura 2 - Seguimento do GPS Figura 3 - Web Service arquitetura de pilha Figura 4 - Arquitetura de um típico Web Service baseado em SOAP Figura 5 - Arquitetura geral do SIRASS Figura 6 - Estrutura aplicativo Android Figura 7 - Classe Android Cliente Figura 8 - Classe android HttpClientSingleton Figura 9 - Classe android WebServiceCliente Figura 10 - Classe android ClienteRest Figura 11 - Método android faz leitura dos valores recebidos do GPS Figura 12 - Arquivo android Manifest.xml Figura 13 - Estrutura do WebService Figura 14 - Classe cliente WS Figura 15 - Classe ClienteDAO WS Figura 16 - Classe ClienteController WS Figura 17 - Classe ConnectionFactory WS Figura 18 - Classe ClienteResource WS Figura 19 - Arquivo web.xml WS Figura 20 - Diagrama de casos de uso do sistema SIRASS Figura 21 - Diagrama de sequência instalação do aplicativo Figura 22 - Diagrama de sequência consulta localização Figura 23 - Diagrama de Classe do Android Figura 24 - Diagrama de Classe do WebService... 61
9 Figura 25 - Diagrama de Atividade do dispositivo móvel Figura 26 - Diagrama de Atividade do WebService Figura 27 - Primeira Tela do SIRASS Figura 28 - Segunda Tela do SIRASS Figura 29 - Terceira Tela do SIRASS Figura 30 - Quarta Tela do SIRASS Figura 31 - Tela dados cliente do serviço web SIRASS Figura 32 - Tela seleção da localização atual do serviço web SIRASS Figura 33 - Tela seleção da Trajetória do serviço web SIRASS... 68
10 LISTA DE TABELAS Tabela 1- Estrutura do projeto do Android Tabela 2 - Comparação Aplicativos Tabela 3- Descrição da arquitetura SIRASS Tabela 4 - Requisitos do sistema... 53
11 SUMÁRO 1 INTRODUÇÃO CONTEXTUALIZAÇÃO PROBLEMA OBJETIVO Objetivo Geral Objetivos Específicos JUSTIFICATIVA ESTRUTURAS DA MONOGRAFIA REVISÃO BIBLIOGRÁFICA TECNOLOGIAS GPS Linguagem de programação Java Java Enterprise Edition JAVA EE Web Service Soap Rest Jax-ws Ksoap EJB Json Servidores de Aplicação Segurança Sistema Operacional ANDROID Estrutura do projeto Android Activity... 33
12 Arquivo AndroidManifest.xml Google Directions Banco de Dados PostgreSQL TRABALHOS CORRELATOS Buscar Meu IPhone (Apple) SeekDroid (Google Android) Lost (Google Android) Wheres my droid Protect (Blackberry - Research in Motion) Comparação DESENVOLVIMENTO DESCRIÇÕES DO PROJETO Estrutura do aplicativo Android Biblioteca Ksoap 2 e Gson Classes do aplicativo Android Arquivo AndroidManifest.xml Estrutura do WebService Classes do projeto WebService Arquivo web.xml do WebService REQUISITOS ARQUITETURA Diagrama de casos de uso Descrição dos casos de uso Diagrama de Sequência Diagrama de Classes Diagrama de Classes do Aplicativo Móvel para Android... 60
13 Diagrama de Classes do WebService Diagrama de Atividades Diagrama de atividades do aplicativo móvel Diagrama de atividades do WebService FUNCIONALIDADES E IMAGENS DAS APLICAÇÕES APLICATIVO MÓVEL DO SIRASS SERVIÇO WEB DO SIRASS CONSIDERAÇÕES FINAIS TRABALHOS FUTUROS REFERÊNCIAS BIBLIOGRAFICAS... 71
14 14 1 INTRODUÇÃO Diariamente, a internet é acessada por milhões de pessoas em todo o mundo, sem mencionar os inúmeros negócios fechados simultaneamente, fazendo a movimentação de bilhões e bilhões de dólares. Nas duas últimas décadas as transformações e as evoluções tecnológicas têm acompanhado a vida das pessoas, sem que estas se deem conta desse processo. E, quando o assunto é informação, ou melhor, transmitir informação, nada melhor do que utilizar a tecnologia. A cada dia, mais e mais serviços são disponibilizados por empresas para que as pessoas interessadas tenham acesso a informações de maneira rápida e eficaz. Para o acesso as informações que são atualizadas frequentemente possuímos a rede de conexão, internet, acessada principalmente de computadores, porem há uma crescente nestes últimos anos para área dos celulares, principalmente os smartphones. O uso de smartphones para acesso e transmissão de dados vem crescendo assustadoramente, tanto no Brasil como no mundo, conforme a matéria divulgada pelo site da Folha de São Paulo 1, De 2011 para 2012, a quantidade de dados consumidos por cada smartphone praticamente dobrou, pois a média global passou de 189 Mbytes por mês para 342 Mbytes por mês, um aumento de 81%. As informações são do estudo Visual Networking Index, da Cisco, que também registrou um aumento de 70% no tráfego global de dados móveis no mesmo período de 520 petabytes por mês para 885 petabytes mensais. Um petabytes equivale a mil terabytes, ou 250 mil DVDs. No Brasil, o crescimento foi ligeiramente menor do que a média global --de 11,8 petabytes, em 2011, 1 FOLHA DE S.PAULO. Uso de dados móveis em smartphones quase dobra em um ano. Disponível em:<http://www1.folha.uol.com.br/tec/ uso-de-dados-moveis-em-smartphonequase-dobra-em-um-ano.shtml>. Acessado em 20/04/ 2013.
15 15 para 19,8 petabytes, em 2012, um aumento de cerca de 68%. Sendo assim, ao carregar um smartphones para suprir as necessidades de trabalho, assim como para o entretenimento, o usuário está mais sujeito a esquecer, perder ou até mesmo sofrer roubo ou furto do aparelho. Segundo dados da Federal Communications Commission - FCC, órgão regulador das telecomunicações nos Estados Unidos, quase um a cada três roubos do país envolve telefones celulares. "A violência epidêmica de crimes de roubo e de revenda de aparelhos furtados é real e o crescimento desses crimes ameaça as comunidades americanas", disse Schneiderman em um comunicado à imprensa. De acordo com pesquisas, cerca de 113 smartphones são roubados ou perdidos a cada minutos nos Estados Unidos, e muitas vezes essas ações de roubo terminam em violência" 2. Temos hoje no mercado alguns softwares específicos para localização de celular, porém uma grande parte deles com recursos limitados, de difícil instalação, com custos, necessidade de cadastros e repasse de informações confidenciais e de fácil interrupção do serviço. A implementação e a modelagem do processo de negócio, proposto neste trabalho serão aplicados para usuários do sistema Android. Com base no estudo realizado sobre os softwares existentes e mais procurados no mercado, e os problemas apontados pelos usuários de smartphones que tiveram seu aparelho roubado ou perdido sem a possibilidade de rastreamento ou com limitações no rastreamento, este trabalho apresenta o desenvolvimento do Sistema de Rastreamento de Smarthphone - SIRASS - objetivando suprir uma alternativa de simples instalação e configuração, permitindo a localização remota. 2 Disponível em <http://tecnologia.uol.com.br/noticias/redacao/2013/06/13/para-reduzir-roubo-deaparelhos-promotores-americanos-sugerem-opcao-de-matar-smartphones.htm>. Acessado em 09/04/13.
16 CONTEXTUALIZAÇÃO Empresas tanto da iniciativa pública quanto da iniciativa privada necessitam que seus funcionários estejam conectados a internet ou estejam com seus celulares ligados ininterruptamente para assim ficarem disponíveis para eventuais necessidades. Os Smartphones possibilitam que o usuário esteja conectado à rede e/ou disponível para ligações, mesmo não estando em sua sala ou local de trabalho, e podem ser levados para todos os lugares, por isso há uma maior possibilidade de perda por esquecimento em qualquer lugar visitado, ou ainda por roubo do aparelho em qualquer lugar. 1.2 PROBLEMA Devido ao grande montante de aparelhos Smartphones vendidos no Brasil, temos uma ideia da quantidade de usuários. Foi realizada uma pesquisa global conduzida pela empresa F-SECURE que disponibilizou a informação em entrevista a usuários de banda larga de 14 países, no caso dos brasileiros, 25% afirmaram que já tiveram o dispositivo móvel roubado ou perdido, índice considerado alto se comparado à média mundial de 11% 3. Possuímos um índice bem alto no Brasil em relação a roubo ou perda de dispositivos móveis, sendo muito difícil localizar os aparelhos, pois não instalamos aplicativos de localização ou contratamos serviços de busca, com estes fatos acabamos perdendo importantes dados nele embarcado, sejam fotos, vídeos, mensagens entre outros documentos, resumindo as informações contidas em um dispositivo móvel podem até ser mais valiosas do que o próprio aparelho. 3 TECMUNDO. 25% dos brasileiros já tiveram seu celular roubado ou perdido. Disponível em: <http://www.tecmundo.com.br/celular/ dos-brasileiros-ja-tiveram-seu-celularroubado-ou-perdido.htm>. Acessado em 20/04/2013.
17 OBJETIVO Objetivo Geral Desenvolver um aplicativo para o sistema operacional Android, que possibilite a monitoração em tempo real da localização do aparelho, utilizando um serviço de Web Service Objetivos Específicos Os objetivos específicos estão compostos pelas atividades realizadas abaixo, para viabilizar o desenvolvimento do software: Identificação das funcionalidades necessárias e elaboração da documentação para análise técnica, as quais auxiliaram no desenvolvimento do software. Pesquisa de softwares similares existentes e trabalhos correlatos. Desenvolvimento de um sistema que monitore um smartphone, a fim de receber e enviar o ponto exato da sua localização no mapa, por meio de um aplicativo para o sistema operacional Android. Implantar uma aplicação Web Service para transmitir e obter os dados da localização do dispositivo móvel.
18 JUSTIFICATIVA Devido ao grande crescimento da tecnologia e telecomunicações, a venda de smartphones com o sistema operacional Android aumentou significadamente. Com o uso ininterrupto do aparato tecnológico, estamos sujeitos à perda ou roubo do smartphone. Com algum conhecimento uma pessoa, que veio a achar ou furtar um dispositivo móvel, pode retirar o chip do celular assim deduzindo que desabilitou serviços para localização do aparelho. Hoje no mercado há alguns softwares específicos para localização de celular, porém uma grande parte deles com recursos limitados, de difícil instalação e operação, com custos altos e ainda de fácil interrupção do serviço. As melhorias de um sistema são objetivos essenciais para uma gama de entidades e pessoas, bem como o desenvolvimento de inovações que visem um maior desempenho, podendo resultar numa contribuição para a sociedade em geral. Este trabalho apresenta como proposta o desenvolvimento do SIRASS, uma aplicação cliente-servidor utilizando-se de linguagem Java, arquitetura JEE e agente e cliente desenvolvidos para o sistema operacional Android, com o objetivo de repassar informações da localização geográfica de um smartphone e visualizá-las em um site da internet. O presente projeto visa uma solução para reaver smartphones perdidos ou roubados, pois com as ferramentas práticas e simples do SIRASS é possível localizar o aparelho, tendo sua posição apontada no mapa.
19 ESTRUTURAS DA MONOGRAFIA O trabalho em questão é composto de estudos a aplicações de várias tecnologias de mercado, tendo como resultado um sistemas para localização de smartphones. O capítulo 1 foi uma abordagem geral da monografia, o cenário atual, seus objetivos e problemas envolvidos. O capítulo 2 apresenta um referencial teórico abordando alguns aplicativos semelhantes ao SIRASS e descrevendo os conceitos das tecnologias utilizadas para o desenvolvimento do trabalho. O capítulo 3 (UML) mostra o detalhamento do trabalho. Neste capítulo são apresentados todos os componentes desenvolvidos e integrados através da modelagem UML. O capítulo 4 apresenta as funcionalidades do sistema e as telas das aplicações. O capítulo 5 expõe as conclusões e considerações finais sobre o trabalho, bem como sugestões para trabalhos futuros.
20 20 2 REVISÃO BIBLIOGRÁFICA Este capítulo tem como objetivo descrever a pesquisa efetuada sobre sistemas de informação e as tecnologias disponíveis no mercado, para dar a fundamentação teórica ao projeto. 2.1 TECNOLOGIAS A seguir estão especificadas as tecnologias que serão utilizadas para o desenvolvimento do projeto GPS O GPS (Global Positioning System) que significa sistema de posicionamento global, em português, é um sistema de navegação por satélite com um aparelho móvel que envia informações sobre posição de algo em qualquer horário e em qualquer condição climática. O GPS foi desenvolvido pelo departamento de defesa dos Estados Unidos no início da década de 1970 (ELRABBANY, 2002, p.1) 4. A tecnologia inicialmente era utilizada somente pelos militares, posteriormente os civis também passaram a ter acesso à tecnologia com uma precisão inferior à militar. Há pouco tempo era utilizado na aviação geral e comercial e na navegação marítima, porém, atualmente é utilizado por pessoas em automóveis e em dispositivos moveis, com um sistema de mapas, para localizar sua posição ou rotas para viajar. Os satélites do GPS (apresentados na figura 1), segundo French (1996): estão distribuídos em órbitas com 60º de espaçamento. Em cada órbita há aproximadamente 3 ou 4 satélites, 4 EL-RABBANY, Ahmed. Introduction to GPS: The Global Positioning System. Boston: Artech House, 2000.
21 21 compondo um total de 24 satélites, considerando todas as órbitas. A estação central de controle pode movimentar os satélites dentro da órbita, porém não é possível a movimentação entre as órbitas 5. Figura 1 - Satélites do GPS Fonte: A figura 2 ilustra os segmentos do GPS. Conforme El-Rabbany (2002) 6 o GPS é formado por três segmentos espaço, controle e usuários. O espaço é formado pelos 24 satélites nas órbitas, o controle são as estações localizadas em vários lugares do mundo com o objetivo de monitorar os satélites e o funcionamento do sistema e ainda fazer ajustes da rota se necessário, e o segmento dos usuários compreende todos os que utilizam o sistema de posicionamento. 5 FRENCH, Gregory T. GPS An Introduction to the Global Positioning System: What It Is and How It Works. Bethesda: GeoResearch, EL-RABBANY, Ahmed. Introduction to GPS: The Global Positioning System. Boston: Artech House, 2000, p. 02.
22 22 Figura 2 - Seguimento do GPS Fonte: El-Rabbany (2002, p.1) Linguagem de programação Para Fischer e Grodzinsky (1993) a linguagem de programação é um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador 7. Segundo Ana Cristina e Flávio Soares uma das principais metas das linguagens de programação é permitir que programadores tenham uma maior produtividade, permitindo expressar suas intenções mais facilmente do que quando comparado com a linguagem que um computador entende nativamente (código de máquina) 8. Hoje contamos com várias linguagens de programação, entre elas destacam-se PHP e Java. A Linguagem Java foi utilizada neste projeto, por ser a com melhor suporte para o desenvolvimento em smartphones com o sistema operacional Android. 7 FISCHER, Alice E.; GRODZINSKY, Frances. The Anatomy of Programming Languages. Englewood Cliffs, New Jersey: Prentice Hall, p MELO, Ana Cristina Vieira de; Silva, Flávio Soares Corrêa da. Princípios de Linguagens de Programação. São Paulo: Edgard Blücher Ltda, p
23 Java A linguagem de programação Java foi desenvolvida em 1991 por um grupo de pesquisadores da Sun Microsystems, denominado Green. Seu objetivo era a utilização em dispositivos eletrônicos inteligentes, como set-top boxes, micro-ondas e controles remotos, porém não obtiveram o resultado esperado. Então, aproveitando-se da expansão da internet, em 1995 a Sun Microsystems oficialmente lançou a linguagem Java, que foi utilizada para geração de conteúdos dinâmicos nas páginas na Internet (DEITEL E DEITEL, 2003) 9. A linguagem Java tem constantemente evoluído, estando presente cada vez mais no mercado e na área acadêmica. Com suas funcionalidades para as aplicações desktops, web e mobile, sua comunidade vem crescendo e ajudando cada vez mais no desenvolvimento da linguagem, tornando-se uma ferramenta de sucesso na solução de muitos problemas enfrentado pelos desenvolvedores atuais. A linguagem de programação Java utiliza o paradigma de programação orientado a objetos é uma linguagem do tipo interpretada, ou seja, no processo de compilação o código fonte É transformado em bytecodes e para a interpretação destes é necessário um Máquina Virtual Java (JVM). Segundo Schildt (2007) 10, uma das vantagens da existência do JVM é a de proporcionar a execução de programas Java em vários ambientes. Devido à presença da JVM na plataforma Java, as aplicações desenvolvidas são portáveis, ou seja, após o desenvolvimento do trabalho sua execução pode ser feita em qualquer Sistema Operacional que possua uma implementação da JVM, atualmente os principais Sistemas Operacionais como Windows, Linux e Mac OS possuem o JVM. Ainda estão presentes dois serviços importantes na plataforma Java que são o Garbage Collector, utilizado para varrer os objetos criados e desnecessários assim liberando a memória, e a otimização realizada nos bytecodes gerados. 9 A. DEITEL, Paul J.; DEITEL, H. M. Java: how to program. EUA: Prentice Hall p SCHILDT, Herbert. Java The Complete Reference. Nova York: McGraw-Hill, 2007, p. 09.
24 Java Enterprise Edition JAVA EE Segundo Jendrock, Evans, Gollapudi, Haase e Srivathsa (2010): O modelo de aplicação Java EE define uma arquitetura para implementar serviços como aplicações multicamadas, proporcionando a escalabilidade, acessibilidade e o gerenciamento, necessários para as aplicações corporativas 11. Sriganesh, Brose e Silverman (2006) 12 definem o Java EE como uma conglomeração de conceitos, padrões de programação e inovações, todos escritos na linguagem de programação Java Web Service Kopack (2003) 13 define Web Service como um sistema que pode ser acessado remotamente, e semelhante a sites Web ele é identificado na rede por uma URL e fornece ao cliente uma resposta a uma requisição. Web Service é um tipo de aplicação para a web sendo possível executar uma rotina externa através de algum protocolo de rede, é uma referência para integração de sistemas distribuídos, cujos componentes podem ser aplicados e executados em dispositivos distintos. Kalin (2010) 14 esclarece que, a forma de implementação de um Web Service poderia ser feita com uma única classe Java, mas, seguindo as 11 JENDROCK Eric; EVANS, Ian; GOLLAPUDI, Devika; HAASE, Kim; CHINMAYEE, Srivathsa. The Java EE Tutorial:Basic Concepts. 4 ed. Boston: Addison-Wesley, p SRIGANESH, Rima P.; BROSE, Gerald; Silverman, Micah. Mastering Enterprise JavaBeans ed. Indianópolis: Wiley Publishing, p POTTS, Stephen. KOPACK, Mike. Aprenda Web Services em 24 horas. Tradução de Marcos Vieira. Ed. Campus, KALIN, Martin. Java Web Services: Implementando. Rio de Janeiro, RJ. Ed. Altabooks,2010.
25 25 melhores práticas, deve haver uma interface que declare os métodos chamada de SEI (Service Endpoint Interface), e uma implementação, que defina os métodos declarados na interface, chamada de SIB (Service Implementation Bean). Na figura 3 temos uma ilustração de algumas tecnologias que podem ser usadas para projetar, construir e implantar Web Services. Figura 3 - Web Service arquitetura de pilha Fonte: Neste projeto, a aplicação cliente, que acessa o Web Service, foi implementada para a plataforma Android utilizando o plug-in para a IDE Eclipse chamado de Android SDK e a biblioteca KSOAP2. E a biblioteca KSOAP2 tem a característica de ser mais flexível quanto à geração do código de suporte, necessário ao cliente para acessar o Web Services.
26 Soap DEITEL; DEITEL (2012) 15 define SOAP Web Service como um protocolo de plataforma-independente que usa XML para interagir com Web Services. O protocolo de acesso simples a objetos (SOAP) é um protocolo de comunicação baseado em XML, o SOAP é um tipo de Web Service e sua arquitetura é orientada a serviço SOA, que permite o transporte de informações sobre HTTP. Ele é utilizado para fazer a comunicação entre sistemas que não estejam escritos na mesma linguagem de programação. Pelo fato de SOAP utilizar XML e HTTP, a comunicação entre sistemas é facilitada, pois qualquer linguagem que permite a comunicação com HTTP pode utilizar SOAP para comunicação com outros sistemas. Uma mensagem SOAP é um documento XML que contém os elementos que definem a mensagem, como o envelope responsável por identificar um mensagem SOAP, o header que contém as informações de cabeçalho, o body contém as informações principais de uma mensagem, e fault que quando acontece um erro no Web Service as informações e detalhes são enviados por ele. A figura 4 representa o modelo relativo ao processo geral para estabelecimento de um Web Service baseado em SOAP. Figura 4 - Arquitetura de um típico Web Service baseado em SOAP Fonte: Kalin (2010) 15 A. DEITEL, Paul J.; DEITEL, H. M. Java: how to program. EUA: Prentice Hall ed. P.1302.
27 Rest DEITEL; DEITEL (2012) 16 define REST como uma arquitetura de rede que usa o mecanismo tradicional de requisição/resposta da web como GET e POST. REST e SOAP são diferentes, REST é um modelo de arquitetura de software para sistemas de hipermídias distribuídos, a WEB é um exemplo deste sistema, já o SOAP é um protocolo de mensagem. O modelo REST utiliza um conjunto de interfaces genéricas para promover Interações sem estado através da transferência de representações de recursos, em vez de operar diretamente sobre esses recursos Jax-ws O JAX-WS é uma API Java para Web Services, utilizada para a criação deste que utiliza XML/SOAP como forma de comunicação e também faz parte da JEE. Com a JAX-WS é possível transformar uma classe com diversas operações em um WebService e expô-lo na rede para que outras aplicações possam utilizar através de RPC. Vohra (2011) 17 explica que um serviço da Web em JAX-WS consiste, basicamente, em uma classe Java com a declaração da anotação javax.jws.webservice Ksoap O Ksoap é uma biblioteca desenvolvida em Java que permite que aplicativos móveis se comuniquem com WebService. O Ksoap foi inicialmente 16 A. DEITEL, Paul J.; DEITEL, H. M. Java: how to program. EUA: Prentice Hall ed. P VOHRA, Deepak. Acessando um Serviço da Web em JAX-WS a partir do Android. Publicado em 01/07/2011. Disponível em <http://www.ibm.com/developerworks/br/library/wsandroid/index.html?ca=drs>. Acessado em 17/05/2013.
28 28 desenvolvido para ser utilizado com JME, porém recentemente foi adaptado para ser usado em aplicativos Android (ksoap2-android) EJB Enterprise Java Beans (EJB) e uma arquitetura de componentes para desenvolvimento de aplicações JAVA Server-side, muiti-tier, distribuídas, seguras, portáteis, escaláveis e orientadas a objetos. Esse permite o desenvolvimento mais rápido e simplificado de aplicações distribuídas, pois ele possui controle de transação e persistência deixando o desenvolvedor mais focado em pensar nas regras de negocio 19. Existem dois tipos de escopos de acesso ao EJB: Remoto e Local. No tipo Local, o acesso é local na aplicação e exige que o cliente esteja na mesma JVM que o EJB. No tipo Remoto, a interface do EJB pode ser exposta e utilizada por um cliente que esteja em outra JVM e até em outra rede Json O JSON foi projetado como um formato de troca de dados, e o XML foi projetado primeiramente como um formato de intercâmbio de documentos. A maioria das linguagens de programação não mapeiam diretamente as estruturas de dados contidas nas construções em XML já que a distinção entre elementos e atributos não está presente nas estruturas de dados de grande parte das linguagens de programação (DEITEL; DEITEL, 2012, A, p. 1320) KSOAP. Biblioteca para comunicação com Web Services em Android. Disponível em: <http://code.google.com/p/ksoap2-android/>. Acesso em 10/05/ ORACLE. Enterprise JavaBeans Technology. Disponível em <http://www.oracle.com/technetwork/java/ejb html>. Acessado em 15/05/ A. DEITEL, Paul J.; DEITEL, H. M. Java: how to program. EUA: Prentice Hall ed. P.1320.
29 29 O JSON é utilizado para troca de informações em requisições AJAX e recentemente tem sido muito utilizado em arquiteturas do tipo REST como formato de envio e recebimento de mensagens. A principal vantagem do JSON em relação ao XML é o formato reduzido que ele utiliza Servidores de Aplicação Borrielo (2006) 21 explica que servidores de aplicação que utilizam à plataforma J2EE estão se tornando cada vez mais frequentes e recomendados para empresas, destacando as características de alta disponibilidade, alta capacidade para acesso simultâneo nos containers WEB e EJB, facilidades de configuração e utilização de banco de dados, facilidade de alteração, publicação e disponibilização de sistemas em tempo real, segurança, balanceamento de carga e tolerância a falhas, como alguns dos recursos que estes servidores oferecem. Gomes (2000) 22 explica que J2EE fornece ao programador recursos para desenvolver softwares exatamente para ambientes corporativos. Formado por um conjunto de recursos padronizados, que fornecem os principais serviços necessários para desenvolver um sistema multicamada de qualidade. Caelum (2013) 23 também explica que existem diversas dessas implementações de Java EE. A partir do Java EE 6, existe o termo application server web profile, para poder se referenciar a servidores que não oferecem tudo, mas um grupo menor de especificações, consideradas essenciais para o desenvolvimento Web. 21 BORRIELO, Daniela. GOMES, Rafael V. A.. JUNIOR, Antonio P. Castro. SANTOS, Roberto F. T. Análise comparativa entre servidores de aplicação livres que seguem a plataforma J2EE.Disponível <http://www.sbpcnet.org.br/livro/58ra/senior/resumos/resumo_394.html>. Acessado em 10/05/ GOMES, Handerson Ferreira. A plataforma J2EE. Webinsider, Disponível em <http://webinsider.uol.com.br/2000/12/05/a-plataforma-j2ee/>. Acessado em 10/05/ CAELUM. FJ-21: Java para Desenvolvimento Web. Apostilas gratuitas. Disponível em <http://www.caelum.com.br/download/caelum-java-web-fj21.pdf>. Acessado em 11/05/2013.
30 Segurança Segundo Moreira (2001) a segurança da informação é um dos mais vastos, complexos e recorrentes temas dentro da tecnologia da informação por envolver diversos componentes e preocupações diferentes durante sua implantação e produção em um ambiente computacional 24. A segurança em WebService é muito complexa e ampla. Para uma melhor utilização de segurança pode-se utilizar o Web Services Security que é uma coleção de protocolos que especificam como diferentes níveis de segurança podem ser reforçados em WebService baseados em SOAP ou REST. Por exemplo, o WSS especifica como assinaturas digitais e informações de codificação podem ser inseridas em cabeçalhos. Para Hartman (2003) os Web Services expõem suas funcionalidades através de uma arquitetura orientada a serviços que é bem mais aberta em virtude de sua característica distribuída e de sua natureza heterogênea quanto a plataformas de execução. Por prover essas facilidades de acesso e integração, a arquitetura de Web Services é frágil em relação à segurança, que deve ser então considerada o foco principal durante o projeto de um sistema baseado em Web Services. O desafio é manter a eficiência dessas funcionalidades e ainda proporcionar um ambiente seguro 25. O objetivo da segurança, quando envolve informações protegidas, é ter um mecanismo preciso para manter um alto nível de segurança e ainda fazê-lo o máximo desobstruído e transparente possível Sistema Operacional ANDROID O sistema operacional Android foi utilizado como plataforma para desenvolvimento do aplicativo cliente para o WebService. 24 MOREIRA, Nilton Stringasci. Segurança Mínima: uma visão corporativa da segurança de informações. 1. ed. Rio de Janeiro: Axcel, HARTMAN, Bret et al. Mastering Web Services Security. 1. ed. Indianapolis: Wiley, 2003.
31 31 Segundo GOOGLE (2013) 26 o sistema operacional Android oferece ferramentas para a criação de aplicativos interessantes a fim de tirar proveito dos recursos de hardware disponíveis em cada dispositivo. Ele se adapta automaticamente a interface do usuário para olhar o seu melhor em cada dispositivo, dando-lhe tanto controle quanto você quiser sobre a interface do usuário em diferentes tipos de dispositivos. O sistema operacional é baseado em Linux e as aplicações são desenvolvidas na linguagem Java e executadas em uma máquina virtual chamada Dalvik. O sistema operacional Android, para LECHETA(2010): Inclui um sistema operacional baseado no Linux e diversas aplicações, com uma rica interface gráfica, um browser para navegar na Internet, integração com o Google Maps, suporte a multimídia, GPS, banco de dados integrado, jogos em 3D e muito mais 27. Vascolcelos (2011 b) 28 explica que o Android tem uma estrutura especial para aproveitar o uso de recursos como imagens, vídeos, etc. E também possibilita a configuração de recursos alternativos para suportar configurações especificas como o tamanho da tela, orientação, etc. 26 GOOGLE Android. Estrutura de desenvolvimento poderoso. Disponível em <http://developer.android.com/about/index.html />. Acessado em 20/05/ LECHETA, Ricardo R.. Google Android: Aprenda a criar aplicações para dispositivos móveis com o Android SDK. São Paulo, SP. Novatec, VASCOLCELOS b, Marcos Antonio. Android Estrutura e organização da aplicação. Mark Vasconcelos Disponível em <http://markytechs.wordpress.com/2011/01/24/android-estrutura-eorganizacao-daaplicacao/>. Acessado em 29/05/2013.
32 Estrutura do projeto Android Segundo LECHETA (2010) 29 a estrutura do projeto Android esta descrita na Tabela 1: PASTA src gen assets res drawable layout values DESCRIÇÃO Pasta do projeto que contém as classes Java. Contém a classe que foi criada pelo wizard. Contém a classe R.java que é gerada automaticamente permite que a aplicação acesse qualquer recurso como arquivos e imagens utilizando as constantes desta classe. Esta classe nunca deve ser alterada manualmente. Contém arquivos opcionais ao projeto, como por exemplo, uma fonte customizada. Pasta que contém os recursos da aplicação, como imagens, layouts de telas e arquivos de internacionalização. Tem três subpastas: drawable, layout e values. Pasta com as imagens da aplicação. Atualmente como existem diversos celulares Android com resolução de tela diferentes, é possível customizar as imagens para ficar com o tamanho exato em cada resolução automaticamente. Para isso existem 3 pastas para as imagens: drawable-lpdi, drawable-mdpi e drawable-hpdi. Contém os arquivos XML de layouts para construir as telas da aplicação. Contém os arquivos XML utilizados para a internacionalização da aplicação e outras configurações. O XML é composto de uma layout simples com chave=valor. Tabela 1- Estrutura do projeto do Android Fonte: Google Android: Aprenda a criar aplicações para dispositivos móveis com o Android SDK 29 LECHETA, Ricardo R.. Google Android: Aprenda a criar aplicações para dispositivos móveis com o Android SDK. São Paulo, SP. Novatec, P
33 Activity Segundo LECHETA(2010) 30 uma Activity deve herdar da classe android.app.activity, tornando-se subclasse desta. Geralmente representa uma tela da aplicação e é responsável por tratar os eventos gerados nessa tela, como, por exemplo, quanto o usuário pressiona um botão ou quando um item de menu é escolhido. SILVA (2013) 31 esclarece que todas as classes de uma aplicação de Android devem ser derivadas da classe Activity (Atividade) e possui, como método principal, o método oncreate. Dentro desse método ele invoca o método oncreate da super classe passando mesmo parâmetro (o savedinstancestate), logo após esse método, vem o método setcontentview, responsável por exibir a tela da minha aplicação, baseado nos layouts xml. Por padrão ele chama o arquivo main.xml. A Activity é uma tela da aplicação, onde é possível adicionar componentes (Views) e programar eventos. Cada Activity deve ser obrigatoriamente declarada no arquivo AndroidManifest.xml, da mesma forma que declaramos um servlet n arquivo web.xml de uma aplicação web. Isso é feito por meio da tag <acrivity>, assim demonstrado <Activity android:name= MinhaClasseActivity /> Arquivo AndroidManifest.xml Segundo LECHETA (2010) 32 o arquivo AndroidManifest.xml é o arquivo principal do projeto e centraliza as configurações da aplicação. Este arquivo é a base de uma aplicação Android. Ele é obrigatório e deve ficar na pasta raiz do projeto, contendo todas as configurações necessárias para executar a aplicação, 30 LECHETA, Ricardo R.. Google Android: Aprenda a criar aplicações para dispositivos móveis com o Android SDK. São Paulo, SP. Novatec, P SILVA, Luciano Alves da. Programando passo a passo. Apostila de Android. Disponível em <http://www.portalandroid.org/comunidade/viewtopic.php?f=7&t=2528>. Acessado 20/04/ LECHETA, Ricardo R.. Google Android: Aprenda a criar aplicações para dispositivos móveis com o Android SDK. São Paulo, SP. Novatec, p. 74.
34 34 como o nome do pacote utilizado, o nome das classes de cada Activity e várias outras configurações. Podemos comparar o arquivo AndroidManifest.xml com o arquivo web.xml utilizado nas aplicações web Java. Em uma aplicação web cada classe de servlet deve ser declarada no arquivo web.xml e, da mesma forma, no Android cada Activity deve ser declarada no arquivo AndroidManifest.xml Google Directions O Google Directions é uma API para cálculo de rotas e distâncias. Ele calcula as rotas disponíveis entre dois pontos. O Google Directions fornece a API em forma de serviços REST. A entrada do serviço é passada como parâmetros GET na URL e o retorno podem ser em formato XML ou JSON Banco de Dados Um banco de dados é uma coleção de dados relacionados. Os dados são fatos que podem ser gravados e que possuem um significado implícito. As informações são uma coleção de dados com um significado. (ELMARSI 2005) 33. A definição de um banco de dados implica em especificar os tipos de dados, as estruturas e as restrições para os dados a serem armazenados em um banco de dados. Segundo ELMARSI (2005) um sistema gerenciador de banco de dados é uma coleção de programas que permite aos usuários criar e manter um banco de dados, facilitar os processos de definição, construção, manipulação e compartilhamento de banco de dados entre vários usuários e aplicações. Date (2000) 34 afirma que um SGBD é basicamente um sistema computadorizado de armazenamento de registros cujo propósito geral é o 33 ELMASRI, Ramez. Sistemas de banco de dados. São Paulo: Pearson, p DATE, C. J. Introdução a sistemas de bancos de dados. 7. ed. Rio de Janeiro: Campus, p. 4.
35 35 armazenamento de informações e proporcionar a busca e atualização destas informações. Um banco de dados é uma coleção integrada de dados onde o mesmo envolve os próprios dados, o hardware em que os dados residem, o software que controla o armazenamento e os usuários (DEITEL; DEITEL, 2003) PostgreSQL Segundo PostgreSQL BR (2003), PostgreSQL é: [...] um SGBD (Sistema Gerenciador de Banco de Dados) objeto-relacional de código aberto, com mais de 15 anos de desenvolvimento. É extremamente robusto e confiável, além de ser extremamente flexível e rico em recursos 36. O PostgreSQL também tem como característica seguir as normas estabelecidas no SQL:2003, além de oferecer importantes recursos, tais como: queries complexas, chaves estrangeiras, triggers, views e integridade transacionais. Além de possuir tais recursos, ele é extensível, ou seja, é possível a criação de funções, operações, métodos de índices e 16 linguagens procedurais (POSTGRESQL, 2005) 37. Entretanto, como o SGBD PostgreSQL é um produto aberto, não há uma equipe própria que possa fornecer o devido suporte técnico. O seu suporte é totalmente dependente de seus usuários, que formam grupos de discussões e fóruns. Por estes motivos, soluções para problemas que venham ocorrer podem não ser facilmente encontradas. 35 DEITAL, H. M.; DEITEL, P.J. Java como programar. 3. ed. Porto Alegre: Bookman, p POSTGRESQL. Introdução. [S.l.], [2003]. Disponível em: <http://wiki.postgresql.org/wiki/introdução_e_histórico>. Acessado em 20/04/ POSTGRESQL. Triggers. [S.l.], [2005]. Disponível em: <http://www.postgresql.org/docs/8.0/interactive/triggers.html>. Acessado em 16/05/2013.
36 TRABALHOS CORRELATOS Os aplicativos destinados para a localização de dispositivo móvel, a seguir, foram encontrados através de busca em site 38 específico que cita a empresa detentora da tecnologia empregada, sendo eles a base de desenvolvimento do SIRASS Buscar Meu IPhone (Apple) Desenvolvido pela própria Apple, o programa permite que o usuário localize seu smartphone acessando sua localização através de um computador, entre suas vantagens estão que o programa é gratuito, permite exibir uma mensagem na tela do smartphone, emitir som, bloqueá-lo remotamente e até pagar os dados do dispositivo, porém temos alguns problemas como: primeiro, para este serviço estar disponível precisamos ter uma conta no ICloud (serviço de armazenamento de dados da Apple) ou no MobileMe; segundo, o programa precisa ser ativado nas configurações do aparelho SeekDroid (Google Android) Para os smartphone que possuem o sistema Android temos o SeekDroid, que possui as vantagens como habilitar o GPS do aparelho remotamente para assim localizá-lo, também permite que o seu usuário veja as ligações realizadas e também possibilita que o conteúdo do aparelho seja apagado, porém este aplicativo tem um custo de R$ 8,70 para ser adquirido, este aplicativo e de fácil desativação, os dados apagado por este aplicativo não podem ser recuperados. 38 Disponível em <http://g1.globo.com/tecnologia/noticia/2011/10/aplicativos-ajudam-usuarioachar-celular-e-tablet-apos-roubo-ou-perda.html>. Acessado em 04/06/2013.
37 Lost (Google Android) O aplicativo Lost é para usuários do sistema Android, ele é gratuito, faz a localização do aparelho, apaga seus dados remotamente e possibilita a leitura de mensagens de texto que foram enviadas e recebidas pelo smartphone. Este aplicativo e de fácil desativação, tem pouca procura, os dados apagado por este aplicativo não podem ser recuperados Wheres my droid Além de oferecer opções para encontrar o smartphone, o Wheres My Droid também permite emitir sons e enviar mensagens de texto para o celular perdido. Ele possui versão gratuita, porém muito limitada Protect (Blackberry - Research in Motion) Para os donos de aparelhos Blackberry há um aplicativo chamado Protect, fornecido pela Research in Motion (RIM). O programa é gratuito, possui a vantagem de bloquear o celular remotamente, apagar as informações contidas no aparelho e ainda faz um backup das informações do smartphone.
38 SeekDroid Lost Wheres my droid SIRRAS Comparação O ganho pela proposta está em comparação com alguns aplicativos específicos para Android. A Tabela 2 é o resumo de alguns itens que o SIRASS tem evidenciando em comparação com outros aplicativos. Usa-se a legenda da letra 'N' para identificar a inexistência de determinada ferramenta e a letra 'S' para existência. APLICATIVOS VANTAGENS Gratuito Difícil desativação Fácil operação Envio de sons ou mensagens ao celular Apagam dados sem recuperação Consulta da localização por internet N S N S S N N S N N S S S S S S S S N N S S N S Tabela 2 - Comparação Aplicativos Fonte: Autoria própria Como podemos verificar na Tabela acima, quanto somatória final da presença de determinada ferramenta, o SIRASS possui algumas vantagens em comparação a outros aplicativos. Estas vantagens demonstram a escolha mais apropriada para o usuário.
39 39 3 DESENVOLVIMENTO Todo o projeto, tanto WebService quanto o aplicativo móvel em Android foram desenvolvidos utilizando o Java SDK na versão 7. O Java SDK é composto por dois pacotes de software, sendo um o JDK que contém ferramentas de software para o desenvolvimento de aplicações utilizando a plataforma Java e o JRE que contém ferramentas de software necessárias à execução de aplicações Java. Para desenvolver o WebService e o aplicativo móvel para Android foi utilizada a ferramenta de desenvolvimento IDE Eclipse SDK 4.2 versão Juno. Esta monografia fez uso da UML para elaboração da documentação resumida de análise e projeto dos sistemas WebService e aplicativo Android. 3.1 DESCRIÇÕES DO PROJETO Este aplicativo verifica a atual localização do smartphone através da latitude e longitude e constantemente envia os dados, de tempo em tempo para o WebService, que salva as informações em um banco de dados para consultas, da atual localização do dispositivo móvel bem como seu trajeto, consultas feitas pelo site projetowebvrk-com-br.webnode.com. A Figura 5 apresenta a arquitetura geral do SIRASS, e seus principais componentes.
40 40 Figura 5 - Arquitetura geral do SIRASS Fonte: Autoria própria Na Tabela 3 esta descrito a funcionalidade de cada componente ilustrado na Figura 5, esta correspondente a arquitetura geral do SIRASS. Componente SIRASS SirassWebService SIRASS Banco de Dados Projetowebvrk-combr.webnode.com Descrição Aplicativo móvel responsável pelo envio dos dados os usuário e a obtenção da localização do smartphone, através da latitude e longitude, para enviar constantemente esses dados ao WebService. Servidor Web que oferece todos os serviços utilizados pelo aplicativo e pelo site para busca. Serviços como verificar duplicidade de , enviar ao banco dados do cliente, localização do smartphone e buscar dados no banco. Base de dados que contém as ultimas informações da localização do smartphone, sua latitude e longitude, e dados do cliente com e senha. Permite consultar a localização de um smartphone Android em tempo real e em todo o mundo pela internet. Tabela 3- Descrição da arquitetura SIRASS Fonte: Autor próprio
41 Estrutura do aplicativo Android O aplicativo tem a finalidade de enviar dados do usuário e do seu smartphone, este último sendo o foco. Iniciando a instalação do aplicativo, o cliente irá fornecer seu e senha para futuro acesso, através de um site na internet, a localização do seu dispositivo móvel em um mapa do Google. Esta localização vem das informações de latitude e longitude enviadas pelo smartphone. Para desenvolver o aplicativo móvel SIRASS foi utilizado o Android SDK, juntamente com a ferramenta de desenvolvimento Eclipse SDK. O Google disponibiliza a instalação de uma ferramenta que integra o Eclipse ao Android SDK, um emulador de smartphones, a fim de executar e testar as aplicações desenvolvidas. A figura 6 apresenta a estrutura do projeto Android. Figura 6 - Estrutura aplicativo Android Fonte: Autoria própria
42 Biblioteca Ksoap 2 e Gson Para que o aplicativo Android possa enviar dados para o WebService, desenvolvido com a tecnologia REST-Based JSON, foram utilizadas as bibliotecas ksoap2-j2se-full jar e gson jar que possuem as classes que geram as requisições e recebem as respostas necessárias para se comunicar com o WebService Classes do aplicativo Android O aplicativo SIRASS contém as classes interligadas, responsáveis pelo funcionamento do aplicativo. A seguir são apresentadas as classes e suas funcionalidades. A Figura 7 mostra a classe cliente, com os atributos necessários para o objetivo do aplicativo, foi usado o implements Serializable devido ao envio de objetos via socket (cliente/servidor). Figura 7 - Classe Android Cliente Fonte: Autoria própria Na Figura 8 visualizamos a classe HttpClientSingleton, que está sendo chamada em cada transação com o WebService, sendo assim muito requisitada,
43 43 para não perder o controle de quantas instâncias desta classe estariam em memória num dado momento, foi decidido o uso de um padrão de projeto singleton para garantir a existência de apenas uma instância. Figura 8 - Classe android HttpClientSingleton Fonte: Autoria própria A Figura 9 mostra a classe WebServiceCliente, responsável pelos GET s, POST s, PUT s e DELETE s, sendo esta classe a interface com o WebService. Nesta classe foi implementado apenas os métodos GET (usando o objeto Httpget), e POST (usando o Httppost), pois para a funcionalidade do aplicativo SIRASS será necessário apenas uma consulta banco de dados, para verificar se há duplicidade de , e após envio de dados para serem gravados constantemente no bando de dados.
44 44 Conforme as boas práticas recomendam, uma classe nunca deve ter muitas funções, ou fazer mais do que o necessário, nem ser muito extensa, por isso foram desenvolvidas várias classes simples. Figura 9 - Classe android WebServiceCliente Fonte: Autoria própria
45 45 Na figura 10 temos a classe ClienteRest, esta vai fazer o serviço intermediário, a conexão entre o WebService e a Activity. Figura 10 - Classe android ClienteRest Fonte: Autoria própria A Figura 11 mostra um método que faz a leitura dos valores recebidos pelo GPS, nesta classe utiliza-se o LocationManager. Em aplicativos que trabalham com informações de posição geográfica, é necessário utilizar algum dispositivo como GPS ou a rede para obter as coordenadas. No Android, a classe LocationManager oferece serviços de localização geográfica obtidos através do GPS e rede. Para utilizá-la é necessário se registrar para receber as atualizações de localização. Geralmente isso é feito no método onresume e deve ser informado o tipo de serviço de localização a ser usado: GPS_PROVIDER(GPS) ou NETWORK_PROVIDER(Rede WiFi).
46 46 Figura 11 - Método android faz leitura dos valores recebidos do GPS Fonte: Autoria própria Arquivo AndroidManifest.xml A Figura 12 apresenta o código do arquivo AndroidManifest.xml, contendo em suas linhas o caminho da Activity que será iniciada pelo aplicativo. O aplicativo SIRASS comunica-se com serviços via Internet, devido a isso é necessário declarar a permissão INTERNET, assim como é usado o GPS (simulação) é necessário a permissão ACCESS_FINE_LOCATION. Figura 12 - Arquivo android Manifest.xml Fonte: Autoria própria
47 Estrutura do WebService O WebService tem a finalidade de primeiramente verificar o se há duplicidade quanto ao informado pelo usuário, após salvar os dados do cliente, e senha, e enfim receber a latitude e longitude enviados por um smartphone de um determinado usuários, identificado pelo seu endereço eletrônico, os dados serão salvos no banco PostgreSQL. Para o desenvolvimento do WebService foi utilizado a arquitetura RESTful baseado em SOAP, JAX-RS e Jersey para a comunicação com o aplicativo móvel, utilizado as ferramenta Eclipse SDK Java EE juntamente com o Tomcat 7 como servidor local. A figura 13 apresenta a estrutura do projeto WebService. Figura 13 - Estrutura do WebService Fonte: Autor próprio
48 Classes do projeto WebService Para o desenvolvimento do WS foram criados 5(cinco) classes sendo elas Cliente.java, ClienteDAO.java, ClienteController.java, ConnectionFactory.java e ClienteResource.java. Na Figura 14 temos a classe Cliente, que contém os atributos do usuário de um smartphone. Foi utilizada a na definição da classe, ela é fundamental para que o Jersey conheça a representação do objeto cliente em JSON. Desse modo os atributos irão se tornar nós no momento em que o JSON for enviado para o aplicativo móvel Android, e do mesmo jeito quando chegar um JSON no corpo de uma requisição, o sistema vai saber converter esse JSON em um objeto do tipo Cliente. Figura 14 - Classe cliente WS Fonte: Autoria própria
49 49 A Figura 15 demonstra a classe ClienteDAO ele faz as operações básicas de Cadastramento, Remoção, Listagem e Atualização. Figura 15 - Classe ClienteDAO WS Fonte: Autoria própria
50 50 Na Figura 16 é apresentada a classe ClienteController, ela vai tratar os erros e os procedimentos no objetos. Aqui foi criado um método para inserir dados um a um usando o método do ClienteDAO. Figura 16 - Classe ClienteController WS Fonte: Autor próprio A figura 17 é apresentada a classe ConnectionFactory responsável pela conexão com o banco de dados PostgreSQL.
51 51 Figura 17 - Classe ConnectionFactory WS Fonte: Autoria própria Na Figura 18 é apresentada a classe ClienteResource, que passa a chamar os métodos da camada de serviço. Figura 18 - Classe ClienteResource WS Fonte: Autoria própria
52 Arquivo web.xml do WebService A Figura 19 apresenta o código do arquivo web.xml do WebService, contendo em suas linhas o cadastro da servlet. Nesta classe é passado o parâmetro de inicialização ao qual corresponde ao pacote onde estão os resources. Figura 19 - Arquivo web.xml WS Fonte: Autoria própria
53 REQUISITOS Na Tabela 4, são apresentados os requisitos funcionais do sistema SIRASS. Requisito 1. Realizar instalação 2. Ativar GPS e Wi-Fi 3. Informar Login e senha Descrição Deve-se poder instalar o aplicativo no smartphone, e para seu funcionamento o aparelho deve possuir acesso à internet ativa. O sistema irá ativar o GPS ou Wi-Fi do dispositivo móvel. O sistema deve solicitar o do usuário e a senha, e depois de informados os dados e pressionado o botão OK, será feita a verificação de duplicidade de , se for necessário será solicitado o preenchimento de outro . O e- mail e senha serão solicitados para autenticação, quando for realizar a consulta da localização do smartphone no site projetowebvrk. 4. Conectar com servidor 5. Salvar informação 6. Consultar localização e trajeto O sistema estabelece conexão com o WebService. O sistema guardará no bando de dados as informações iniciais, e senha, do usuário. Em seguida o sistema envia a latitude e longitude, para serem salvos no banco PostgreSQL, para futura consulta. Será feito antes do envio da localização do smartphone a verificação dos serviços de GPS e WI-FI. O sistema possibilitará a consulta, através do site projetowebvrk, da localização e trajeto no mapa de seu smartphone. Tabela 4 - Requisitos do sistema Fonte: Autoria própria
54 ARQUITETURA Diagrama de casos de uso Um caso de uso representa uma interação que um Ator realiza com o sistema. O objetivo do diagrama de Casos de Uso é mostrar as possibilidades de interação do usuário com o sistema. A figura 20 demonstra o diagrama de casos de uso referente ao sistema. Figura 20 - Diagrama de casos de uso do sistema SIRASS Fonte: Autoria própria
55 Descrição dos casos de uso Descrição Instalação do aplicativo 1. Usuário seleciona o aplicativo para a instalação. 2. Aplicativo inicia a instalação. Fluxo 3. Ao final do processo abre uma nova tela, informando que para continuar é necessário ter acesso à internet ou conexão Wi-Fi. 4. Selecionar o botão OK para continuidade da instalação. Pré-condições Possuir um smartphone Android. Pós-condições Descrição Ativar GPS e Wi-Fi Fluxo 1. O Aplicativo verifica se o GPS e o Wi-Fi estão habilitados se não estiverem os inicia. 2. É verificado a cada ciclo de tempo se os dispositivos GPS e Wi-Fi estão habilitados, se não estiverem os inicia. Pré-condições Smartphone deve possuir alguma conexão de rede. Pós-condições O aplicativo estará instalado.
56 56 Descrição Informar Login e senha 1. Aplicativo abre uma nova tela solicitando e senha. 2. Usuário preenche os campos com as informações, o endereço de seu e a senha, após aperta o botão OK. Fluxo 3. O sistema conecta-se com o servidor que faz uma varredura no bando de dados para verificar se não há duplicidade de Não havendo duplicidade o sistema informa que os dados foram aceitos com sucesso e o aplicativo encontra-se em funcionamento. 5. Caso tenha o já cadastrado o sistema solicitará um novo ao usuário. Pré-condições Smartphone deve possuir alguma conexão de rede. Descrição Conectar com o servidor 1. O aplicativo SIRASS abre uma conexão com WebService. Fluxo 2. Envia dado para ser consultado pelo WS no banco PostgreSQL. 3. Envio de informações do usuário e localização do aparelho móvel, este último ininterruptamente em ciclos de tempo, para serem salvo no banco de dados. Pré-condições Smartphone deve possuir alguma conexão de rede.
57 57 Descrição Salvar Latitude e Longitude 1. Ativar GPS e Wi-Fi. Fluxo 2. Identificar o do usuário, já informado, buscar através do GPS a latitude e longitude do smartphone. 3. O sistema conecta com o servidor, enviando os dados do cliente ao WS para salvar estas informações no banco de dados. Pré-condições Smartphone deve possuir alguma conexão de rede. Descrição Consultar localização e trajeto 1. O usuário acessa o site projetoewbvrk-combr.webnode.com. 2. Usuário seleciona o serviço SIRASS. Fluxo 3. Na tela seguinte o cidadão preenche o e senha para autenticação e aperte o botão Enviar. 4. O usuário escolhe as opções Localizar Smartphone e Trajeto do Smartphone. 5. Será demonstrado a localização do dispositivo móvel ou o trajeto percorrido. Pré-condições 1. Possuir um microcomputador com conexão a internet. 2. Ter acesso à internet. Pós-condições 1. O aplicativo estar instalado. 2. Ter o e senha para acesso.
58 Diagrama de Sequência Os diagramas de sequência demonstram o fluxo sistêmico dos processos ou funcionalidades da aplicação, o diagrama tem por objetivo demonstrar as interações que ocorrem entre os componentes de um sistema. Serão demonstrados nos diagramas a seguir os seguintes processos do SIRASS: Instalação e o serviço de envio das informações; Consultar a localização e trajetória do smartphone; Figura 21 - Diagrama de sequência instalação do aplicativo Fonte: Autoria própria A figura 21 demonstra o processo de instalação do aplicativo, envio e registro do login e senha, sendo o login o do usuário. Continua o processo habilitando o GPS e o Wi-Fi, enviando os dados de localização latitude e longitude e após a gravação dos dados. O processo tem seu inicio com a instalação do aplicativo pelo usuário, ao qual tendo finalizado a instalação
59 59 solicita ao usuário um e senha para futura autenticação afim da consulta em um site da localização do smartphone, após as informações preenchidas e salvas o aplicativo inicia o processo, começando a habilitar o GPS e o Wi-Fi, se os mesmos estiverem desabilitados, após há captura da latitude e da longitude do dispositivo móvel e o envio dos dados para o servidor a fim de gravá-los no banco de dados, esse serviço de habilitar, capturar e enviar entra em loop, isto é constantemente feito de tempo em tempo. Figura 22 - Diagrama de sequência consulta localização Fonte: Autoria própria A figura 22 traz o processo para consulta da localização e o trajeto do dispositivo móvel. Ao usuário acessar o site projetowebvrk é providenciado ao usuário uma tela solicitando o e senha para autenticação das informações e após são habilitadas as opções de localização do smartphone e a trajetória do dispositivo móvel.
60 Diagrama de Classes O Diagrama de classe tem por objetivo demonstrar as classes e as relações entre elas de um determinado aplicativo orientado a objeto Diagrama de Classes do Aplicativo Móvel para Android Na Figura 23 é apresentado o diagrama de classes do aplicativo móvel. Figura 23 - Diagrama de Classe do Android Fonte: Autoria própria
61 Diagrama de Classes do WebService Na Figura 24 é demonstrado o diagrama de classes do WebService. Figura 24 - Diagrama de Classe do WebService Fonte: Autoria própria Diagrama de Atividades O diagrama de atividades mostra o fluxo entre atividades, seus paralelismos e desvios condicionais. O diagrama de atividades apresentado nas Figuras 25, diagrama de atividade do aplicativo móvel, e 26, diagrama de atividade do WebService, demonstram de forma ilustrativa as regras que envolvem a utilização do aplicativo móvel SIRASS.