• Nenhum resultado encontrado

Aplicativo móvel colaborativo para monitoramento georreferenciado de intensidade de sinal celular

N/A
N/A
Protected

Academic year: 2021

Share "Aplicativo móvel colaborativo para monitoramento georreferenciado de intensidade de sinal celular"

Copied!
45
0
0

Texto

(1)

Universidade Federal Fluminense

Instituto de Computa¸

ao

Departamento de Ciˆ

encia da Computa¸

ao

Henrique do Prado Linhares

Aplicativo m´

ovel colaborativo para monitoramento

georreferenciado de intensidade de sinal celular

Niter´

oi-RJ

2017

(2)

ii Henrique do Prado Linhares

Aplicativo m´ovel colaborativo para monitoramento georreferenciado de intensidade de sinal celular

Monografia apresentada ao Departamento de Ciˆencia da Computa¸c˜ao da Universidade Federal Fluminense, como requisito parcial para obten¸c˜ao do Grau de Bacharel em Sistemas de Informa¸c˜ao.

Orientador: Prof. Dr.-Ing. Raphael Pereira de Oliveira Guerra

Niter´oi-RJ 2017

(3)

Ficha Catalográfica elaborada pela Biblioteca da Escola de Engenharia e Instituto de Computação da UFF

L755 Linhares, Henrique do Prado

Aplicativo móvel colaborativo para monitoramento

georreferenciado de intensidade de sinal celular / Henrique do Prado

Linhares. – Niterói, RJ : [s.n.], 2017.

44 f.

Projeto Final (Bacharelado em Sistemas de Informação) –

Universidade Federal Fluminense, 2017.

Orientador: Raphael Pereira de Oliveira Guerra.

1. Telefonia celular. 2. Aplicativo móvel. I. Título.

CDD 621.38456

(4)
(5)

iv

”Existem apenas duas coisas dif´ıceis em Ciˆencia da Computa¸c˜ao: invalida¸c˜ao de cache e dar nome `as coisas.”

(6)

v

Agradecimentos

A esta universidade, seu corpo docente, dire¸c˜ao e administra¸c˜ao.

Ao Prof. Dr.-Ing. Raphael Pereira de Oliveira Guerra pela oportunidade e apoio na elabora¸c˜ao deste trabalho.

Aos meus pais, pelo apoio e incentivo.

Aos meus amigos Raphael Quintanilha, Pablo Curty, Filipe Coimbra, Diogo Souza, Marcelo Roque e Fabrizio Moura, pelas grandes contribui¸c˜oes na minha forma¸c˜ao.

(7)

vi

Lista de Figuras

2.1 Representa¸c˜ao de uma rede celular . . . 5 2.2 Intensidade do sinal celular, exibido no topo esquerdo da tela . . . 5 3.1 Mosaico Anatel, exibindo a intensidade de sinal celular de diferentes operadoras em um

ponto no mapa. . . 9 3.2 Visualiza¸c˜ao de um mapa de intensidade de sinal da regi˜ao de Niter´oi utilizando a interface

web da aplica¸c˜ao OpenSignal . . . 10 3.3 Mapa gerado pela aplica¸c˜ao OpenSignal para a intensidade de sinal da operadora OI na

regi˜ao de Niter´oi no dia 27/05/2017 `as 13:20 (UTC-3, hor´ario de bras´ılia) . . . 11 3.4 Mapa gerado pela aplica¸c˜ao Coverage Map para a intensidade de sinal da operadora OI na

regi˜ao de Niter´oi no dia 27/05/2017 `as 13:20 (UTC-3, hor´ario de bras´ılia) . . . 12 3.5 Tela principal da aplica¸c˜ao Antennas . . . 13 4.1 Mapa com um grande n´umero de pontos, prejudicando a visualiza¸c˜ao do terreno e a

com-preens˜ao da informa¸c˜ao . . . 16 4.2 Contraexemplo de mapa de intensidade de sinal celular: exibir os n´umeros em DBM torna

dif´ıcil para o usu´ario a compreens˜ao do mapa. . . 17 4.3 Prot´otipo de mapa de intensidade de sinal celular . . . 18 5.1 Primeira tela do aplicativo, que exibe as leituras realizadas pelo dispositivo do usu´ario. . . 24 5.2 Segunda tela do aplicativo, que exibe o mapa global, gerado atrav´es do compartilhamento

de leituras realizadas por diversos usu´arios. . . 25 5.3 Terceira tela do aplicativo, que exibe as configura¸c˜oes dispon´ıveis. . . 26

(8)

vii

Lista de Tabelas

4.1 Todas as propostas de consolida¸c˜ao de dados na aplica¸c˜ao . . . 20 4.2 Propostas vi´aveis de consolida¸c˜ao de dados na aplica¸c˜ao . . . 21 6.1 Tabela de resultados do experimento . . . 29

(9)

Sum´

ario

Agradecimentos v

Lista de Figuras vi

Lista de Tabelas vii

Resumo x

Abstract xi

1 Introdu¸c˜ao 1

1.1 Defini¸c˜ao do Problema . . . 1

1.2 Objetivo . . . 2

1.3 Contribui¸c˜ao Deste Trabalho . . . 2

1.4 Organiza¸c˜ao . . . 2

2 Conceitos B´asicos 4 2.1 Rede de telefonia celular . . . 4

2.2 Intensidade de Sinal celular . . . 5

2.3 Sistema de Posicionamento Global . . . 6

2.4 Network Time Protocol (NTP) . . . 6

2.5 Network Identity and Time Zone (NITZ) . . . 7

2.6 Marca Temporal (Timestamp) . . . 7

3 Trabalhos relacionados 8 3.1 Anatel Mosaico . . . 8 3.2 OpenSignal App . . . 9 3.3 Coverage Map . . . 10 3.4 Antennas . . . 12 4 Arquitetura do Sistema 14 4.1 Vis˜ao Geral . . . 14 4.2 Armazenamento de Dados . . . 14 viii

(10)

ix

4.3 Visualiza¸c˜ao dos Dados . . . 16

4.4 Melhorando o Desempenho . . . 18

5 Prototipa¸c˜ao 22 5.1 Tecnologias Utilizadas . . . 22

5.2 Compilando e executando o aplicativo iOS . . . 22

5.3 Executando o servidor da aplica¸c˜ao . . . 23

5.4 Telas do App . . . 24 6 Avalia¸c˜ao e Experimentos 27 6.1 Objetivos . . . 27 6.2 M´etricas de avalia¸c˜ao . . . 27 6.3 Realiza¸c˜ao do experimento . . . 27 6.4 Resultados . . . 28 6.5 Conclus˜oes . . . 29 7 Conclus˜ao 30

(11)

x

Resumo

Com o objetivo de avaliar a qualidade do sinal celular fornecido pelas operadoras de telefonia , este trabalho apresenta o desenvolvimento de um aplicativo iOS para medir e mapear a intensidade do sinal celular no Brasil e no mundo. O aplicativo apresentado neste trabalho permite que os usu´arios realizem leituras de intensidade de sinal celular nas regi˜oes onde estiveram, e ´e capaz de gerar um mapa exibindo a intensidade de sinal celular destas regi˜oes. Al´em disso, ser´a poss´ıvel agregar as informa¸c˜oes fornecidas por diversos usu´arios para gerar e disponibilizar um mapa colaborativo, exibindo quais localiza¸c˜oes possuem boa cobertura de sinal celular e quais n˜ao possuem. Desta forma, podemos estimular a concorrˆencia entre as operadoras de telefonia celular, que devem se esfor¸car para melhorar a qualidade do servi¸co prestado, assim como entregar para os usu´arios informa¸c˜oes valiosas, que v˜ao auxiliar na tomada de decis˜ao sobre qual operadora contratar.

Palavras-chave: Sinal Celular, Aplica¸c˜ao iOS, Aplica¸c˜ao Mobile, Intensidade do Sinal Celular, Mapeamento.

(12)

xi

Abstract

In order to evaluate the quality of the service provided by the cell phone carriers, this work presents the development of an iOS application to measure and generate maps of the mobile network coverage in Brazil and in the world. The application presented in this work allows users to perform reads of the mobile signal coverage in the regions where they have been, and is able to generate a map displaying the signal strength of these regions. In addition, you can aggregate the information provided by several users to generate and provide a collaborative map, showing which locations have good signal coverage and which ones do not. In this way, we can stimulate competition among cellular operators, who must compete to improve the quality of the service provided, as well as deliver valuable information to users, which will help in deciding which carrier to hire.

Keywords: Cellular Signal, iOS Application, Mobile Application, Cellular Signal Intensity, Map-ping

(13)

Cap´ıtulo 1

Introdu¸

ao

Os grandes avan¸cos tecnol´ogicos que ocorreram nos ´ultimos anos trouxeram muito mais capa-cidade de processamento e armazenamento de dados nos celulares, e os avan¸cos em tecnologia de rede tornaram o celular capaz de se conectar com a rede mundial de computadores. Desta forma, temos na figura do smartphone a principal referˆencia como ferramenta que mant´em a pessoa conectada `as redes de telefonia e de computadores.[Rice and Katz, 2003]

Estes avan¸cos tecnol´ogicos atendem as demandas de mobilidade e conectividade, ou seja, a neces-sidade que os usu´arios possuem de estar conectado com as redes de telefonia e de computadores durante 24 horas por dia, independente se est˜ao em casa, no trabalho, se deslocando entre estes, ou em qualquer outra localiza¸c˜ao geogr´afica.

Os usu´arios de smartphone utilizam majoritariamente duas tecnologias para manter a conecti-vidade com a internet: as redes locais sem fio, baseadas no padr˜ao IEEE 802.11 e as redes de telefonia celular, que possuem tecnologias como 3G.[Lehr and McKnight, 2003]

1.1

Defini¸

ao do Problema

Ao estudar e compreender como funcionam as redes de telefonia celular, entendemos que para o usu´ario estar conectado com a rede de telefonia, ele precisa estar dentro de uma ´area coberta por uma antena de sua operadora. Sabemos que as antenas possuem um raio de atua¸c˜ao limitado, que o n´umero de antenas instaladas tamb´em ´e limitado, e a existˆencia do sinal celular depende do posicionamento das antenas.[Viswanathan, 2016]

No Brasil, as empresas de telecomunica¸c˜oes s˜ao empresas privadas, e cada empresa adota sua pr´opria pol´ıtica sobre instala¸c˜ao de antenas. O problema em quest˜ao ´e a falta de informa¸c˜ao transpa-rente e confi´avel que os consumidores possuem sobre a cobertura de sinal oferecida pelas empresas de telecomunica¸c˜oes. N˜ao ´e poss´ıvel para o consumidor avaliar as diferen¸cas entre as operadoras de telefonia no que diz respeito `a qualidade e cobertura de sinal de forma imparcial.

Para que o consumidor possa ter acesso aos dados da qualidade do sinal celular estes dados precisam ser coletados, armazenados e disponibilizados publicamente. Por´em, realizar essas medi¸c˜oes

(14)

2 seria um trabalho ´arduo, ainda mais se feito por um grupo pequeno de pessoas, em um pa´ıs de dimens˜oes continentais t˜ao grande quanto o Brasil. Al´em disso, a intensidade do sinal em uma regi˜ao pode mudar ao longo do tempo. Exemplo: Uma operadora pode instalar uma nova antena para melhorar a cobertura em uma cidade que possui cobertura fraca. Por isto, precisamos de um volume grande de leituras, e que elas sejam atualizadas com a maior frequˆencia poss´ıvel.

1.2

Objetivo

Este trabalho tem o objetivo de permitir que os consumidores avaliem a qualidade do sinal celular das operadoras. Assim, estamos criando uma ferramenta para auxiliar a tomada de decis˜ao, e o consumidor poder´a escolher a operadora que ir´a melhor atender suas necessidades.

O mapeamento geogr´afico da intensidade de sinal permite aos usu´arios a visualiza¸c˜ao das regi˜oes em que determinada operadora possui uma boa cobertura, e as regi˜oes que n˜ao possuem uma boa cober-tura, para que dessa forma o usu´ario seja capaz de tomar uma decis˜ao consciente de qual ´e a operadora que ir´a lhe fornecer a melhor cobertura para determinada localiza¸c˜ao.

Estaremos tamb´em estimulando a concorrˆencia entre as operadoras, pois o mapeamento da in-tensidade do sinal celular ir´a revelar para o usu´ario as informa¸c˜oes sobre a qualidade do servi¸co prestado. Uma vez que os usu´arios tenham posse destas informa¸c˜oes, as operadoras v˜ao se esfor¸car para entregar um sinal de alta qualidade.

Os mapas de intensidade de sinal celular tamb´em servem como uma ferramenta para os consu-midores cobrarem melhor qualidade do servi¸co prestado pelas operadoras, caso a mesma esteja deixando a desejar.

1.3

Contribui¸

ao Deste Trabalho

Este trabalho apresenta o desenvolvimento de um aplicativo m´ovel iOS para mapear geografica-mente a intensidade de sinal fornecido pelas operadoras telefˆonicas.

Esta aplica¸c˜ao utiliza dados compartilhados pelos pr´oprios usu´arios para possibilitar a cria¸c˜ao e manuten¸c˜ao de um grande sistema de informa¸c˜ao. Uma outra aplica¸c˜ao que segue este mesmo conceito ´e o Waze, que coleta dados de usu´arios que est˜ao dirigindo para manter um sistema que ´e capaz calcular rotas que desviem de engarrafamentos.

Tamb´em podemos destacar como uma contribui¸c˜ao que os artefatos produzidos neste trabalho es-tar˜ao disponibilizados publicamente atrav´es do link https://github.com/linharesh/SignalStrength, e os componentes desenvolvidos podem ser executados, copiados, distribu´ıdos, estudados e modificados, de acordo com as premissas do software livre.

1.4

Organiza¸

ao

(15)

3 • No cap´ıtulo 2 ”Conceitos b´asicos” s˜ao apresentados diversos conceitos relacionados com o tema desta pesquisa, que envolvem redes de computadores e de telefonia celular, intensidade de sinal celular e protocolos de rede. Este cap´ıtulo pode servir de auxilio para o leitor que n˜ao esteja familiarizado com o conte´udo abordado neste trabalho.

• No cap´ıtulo 3 ”Trabalhos relacionados” s˜ao apresentados outros trabalhos desenvolvidos que pos-suem finalidades e objetivos alinhados com este projeto.

• No cap´ıtulo 4 ”Arquitetura do Sistema” s˜ao apresentados os elementos utilizados para projetar a aplica¸c˜ao apresentada neste trabalho.

• No cap´ıtulo 5 ”Prototipa¸c˜ao” s˜ao apresentadas as tecnologias e ferramentas utilizadas para o de-senvolvimento do prot´otipo da aplica¸c˜ao mobile e do servidor. Al´em disso, neste cap´ıtulo apresen-tamos um guia ensinando a compilar a aplica¸c˜ao mobile e executar o servidor.

• No cap´ıtulo 6 ”Avalia¸c˜ao e Experimentos” s˜ao apresentados experimentos realizados para ava-liar o aplicativo desenvolvido.

• No cap´ıtulo 7 ”Conclus˜ao” ´e feita uma reflex˜ao sobre o trabalho desenvolvido, as dificuldades en-contradas, os objetivos alcan¸cados e as metas futuras.

(16)

Cap´ıtulo 2

Conceitos B´

asicos

Neste cap´ıtulo ser˜ao apresentados conceitos b´asicos relacionados com o tema deste trabalho, como redes de computadores e de telefonia celular, intensidade de sinal celular e protocolos de rede. Os conceitos abordados neste cap´ıtulo ser˜ao apresentados de forma resumida, com o objetivo de facilitar o entendimento deste trabalho para os leitores.

2.1

Rede de telefonia celular

A rede de telefonia celular(ou telefonia m´ovel) ´e uma rede de telecomunica¸c˜oes projetada para fornecer servi¸cos de telefonia m´ovel, como transmiss˜ao de dados e de voz. O telefone m´ovel ´e chamado de celular pois as regi˜oes geogr´aficas s˜ao divididas em c´elulas. Este sistema de c´elulas funciona pois s˜ao utilizadas c´elulas pequenas, mas tamb´em h´a um reaproveitamento de frequˆencias de transmiss˜ao em c´elulas vizinhas. O padr˜ao circular n˜ao ´e utilizado para representa¸c˜ao de c´elulas porque nele podem surgir ´areas de sombra e sobreposi¸c˜ao de sinais, por esse motivo ´e utilizado um modelo hexagonal para tal representa¸c˜ao como apresentado na figura 2.1, onde podemos observar que os hex´agonos representam as c´elulas, e no centro de cada c´elula temos uma antena.[RODRIGUES, 2000]

(17)

5

Figura 2.1: Representa¸c˜ao de uma rede celular

2.2

Intensidade de Sinal celular

A intensidade do sinal celular ´e um valor correspondente ao sinal recebido por um telefone celular de uma antena de rede celular. A recep¸c˜ao do sinal celular pode depender de v´arios fatores, como a proximidade da antena de transmiss˜ao e a presen¸ca de obst´aculos como pr´edios e montanhas.

(18)

6 Normalmente, estamos acostumados a ler a intensidade do sinal em nossos pr´oprios celulares. No exemplo da figura 2.2, podemos visualizar a barra de intensidade de sinal exibindo 2 pontos de um total de 5. Quando estamos visualizando a barra de intensidade de sinal sabemos que este valor est´a sendo discretizado em 5 valores, para ent˜ao ser representado graficamente. Por´em existem outras formas de representar este valor.

Uma das formas de representa¸c˜ao da intensidade de sinal ´e a medida em dBm ou decib´eis. Esta representa¸c˜ao mede a for¸ca em decib´eis das ondas de r´adio, e ´e amplamente utilizada nas ´areas de telecomunica¸c˜oes. As medidas em dBm s˜ao sempre negativas, e sua faixa de opera¸c˜ao fica entre -50dBm e -115dBm. O valor de -50dBm indica um sinal perfeito, enquanto -115dBm indica a ausˆencia de sinal.

Outra representa¸c˜ao existente ´e a ASU, que ´e uma sigla para Arbitrary Strength Unit, ou Unidade de For¸ca Arbitr´aria. A medida em ASU ´e um valor inteiro entre 0 e 31 que representa a intensidade do sinal recebida pelo celular. Nesta representa¸c˜ao, 31 indica um sinal excelente enquanto 0 indica a ausˆencia de sinal.

´

E poss´ıvel realizar a convers˜ao de valores em dBm para ASU, assim como de ASU para DBM. Em uma rede GSM, a f´ormula para realizar a convers˜ao de ASU para dBm ´e apresentada na equa¸c˜ao 2.1, enquanto a f´oruma para realizar a convers˜ao de dBm para ASU ´e apresentada na equa¸c˜ao 2.2. [Ou et al., 2013]

dBm = (2 ∗ ASU ) − 113 (2.1)

ASU = (dBm + 113)/2 (2.2)

2.3

Sistema de Posicionamento Global

O Sistema de Posicionamento Global, tamb´em conhecido como GPS, ´e um sistema de radiona-vega¸c˜ao desenvolvido pelo Departamento de Defesa dos Estados Unidos da Am´erica com o intuito de ser o principal sistema de navega¸c˜ao das for¸cas armadas americanas. Este sistema utiliza a triangula¸c˜ao de sat´elites para descobrir o posicionamento de um dispositivo no globo terrestre, e ´e capaz de fornecer informa¸c˜oes como latitude, longitude, entre outros. Em raz˜ao da alta acur´acia proporcionada pelo sis-tema e do grande desenvolvimento da tecnologia envolvida nos receptores GPS, uma grande comunidade usu´aria emergiu dos mais variados segmentos da comunidade civil.[Monico, 2000]

2.4

Network Time Protocol (NTP)

NTP significa Network Time Protocol ou Protocolo de Tempo para Redes. ´E o protocolo que permite a sincroniza¸c˜ao dos rel´ogios dos dispositivos de uma rede como servidores, esta¸c˜oes de trabalho, roteadores e outros equipamentos `a partir de referˆencias de tempo confi´aveis.[NTP.BR, 2016]

O NTP ´e baseado no protocolo UDP e opera na porta 123, e ´e capaz de fornecer a sincroniza¸c˜ao de rel´ogio com grande precis˜ao, na ordem dos nanosegundos e preservando uma data n˜ao amb´ıgua. O

(19)

7 protocolo inclui mecanismos para especificar a precis˜ao e erro estimado do rel´ogio local e as caracter´ısticas do rel´ogio de referˆencia para o qual ele pode ser sincronizado.[Mills, 1985]

2.5

Network Identity and Time Zone (NITZ)

O Network Identity and Time Zone ou Identidade de rede e fuso hor´ario ´e um mecanismo utilizado por operadoras de telefonia celular para fornecer para os dispositivos conectados na rede a identifica¸c˜ao da rede e o fuso hor´ario local atrav´es da pr´opria rede.[Bari and Bonner, 2011] Este mecanismo pode ser utilizado para sincronizar automaticamente o rel´ogio do celular.

2.6

Marca Temporal (Timestamp)

Marca temporal ou Timestamp ´e uma sequˆencia de caracteres que representam um instante no tempo. Marcas temporais possuem diversos usos na computa¸c˜ao, como marcar o in´ıcio e o fim de eventos, por exemplo a cria¸c˜ao e edi¸c˜ao de arquivos no computador.

A marca temporal possui uma representa¸c˜ao f´ısica e uma interpreta¸c˜ao temporal. A representa¸c˜ao f´ısica corresponde a uma amostra de bits, enquanto a interpreta¸c˜ao temporal corresponde ao significado dado para esta amostra de bits, ou seja, a marca temporal (ou momento no tempo) que estes bits representam.[Dyreson and Snodgrass, 1993]

A marca temporal pode ser representada em diferentes formatos. O sistema Unix representa marcas temporais como o intervalo de segundos contados desde a ”data zero”, que corresponde a 00:00:00 (UTC) de 01 de janeiro de 1970. Um exemplo de timestamp no formato unix seria ”1256953732”, que significa que se passaram 1256953732 segundos desde a ”data zero”.

(20)

Cap´ıtulo 3

Trabalhos relacionados

Neste cap´ıtulo s˜ao apresentados outros trabalhos desenvolvidos que possuem finalidades e obje-tivos alinhados com este projeto.

3.1

Anatel Mosaico

A Agˆencia Nacional de Telecomunica¸c˜oes(ANATEL) disponibiliza publicamente o acesso a uma ferramenta que pertence ao Sistema Mosaico: a consulta de intensidade de sinal de celular. [TeleS´ıntese, 2016]

Por meio de um mapa interativo, o sistema apresenta a intensidade dos sinais 2G, 3G e 4G de cada operadora em um ponto de interesse escolhido pelo usu´ario. O c´alculo ´e realizado com base nas informa¸c˜oes t´ecnicas das esta¸c˜oes do Servi¸co M´ovel Pessoal (SMP) cadastradas no banco de dados da Anatel pelas operadoras.[PORTAL-BRASIL, 2016]

Esta aplica¸c˜ao se destaca por ser uma iniciativa da ANATEL, um ´org˜ao governamental, e por possuir uma fonte consistente de dados, baseada no SMP. Por´em, sua grande desvantagem ´e a visualiza¸c˜ao do mapa, que exibe a intensidade do sinal apenas de um ponto, quando o usu´ario realiza um clique no mapa.

(21)

9

Figura 3.1: Mosaico Anatel, exibindo a intensidade de sinal celular de diferentes operadoras em um ponto no mapa.

Este tipo de visualiza¸c˜ao n˜ao permite que o usu´ario consiga visualizar com facilidade a cobertura de sinal celular em grandes regi˜oes, como em uma cidade inteira. Aplica¸c˜oes que utilizam mapas de calor tornam esta visualiza¸c˜ao mais f´acil e intuitiva, uma vez que mapas de calor s˜ao uma das melhores ferramentas de visualiza¸c˜ao de dados de densidade de pontos. Mapas de calor s˜ao utilizados para iden-tificar facilmente aglomerados e encontrar onde existe uma elevada concentra¸c˜ao de uma determinada atividade.[Gandhi, 2016]

Infelizmente, o sistema Anatel Mosaico n˜ao disponibiliza uma API para que outros sistemas ex-ternos possam consultar os dados de intensidade de sinal celular. Caso estes dados fossem disponibilizados atrav´es de uma API, seria poss´ıvel o desenvolver um aplicativo que utilizasse os dados do Anatel Mosaico, por´em exibisse os dados atrav´es de uma visualiza¸c˜ao por mapa de calor.

3.2

OpenSignal App

A OpenSignal ´e uma empresa britˆanica especializada em mapeamento de redes sem fio, que trabalha com aplicativos para celular. Entre os produtos desta empresa, o aplicativo tamb´em chamado OpenSignal ´e o que mais se relaciona com este trabalho, pois compartilha o mesmo objetivo de construir um mapeamento de intensidade de sinal celular. [Warman, 2013]

Uma caracter´ıstica do OpenSignal ´e o fato de n˜ao ser uma aplica¸c˜ao que respeite as premissas do software livre. O c´odigo fonte desta aplica¸c˜ao n˜ao ´e disponibilizado para ser executado, copiado, distribu´ıdo, estudado nem modificado pela comunidade de usu´arios e desenvolvedores. Apesar de dispo-nibilizar mapas de intensidade de sinal, os dados coletados pelos usu´arios desta aplica¸c˜ao tamb´em n˜ao est˜ao dispon´ıveis publicamente.

(22)

10

Figura 3.2: Visualiza¸c˜ao de um mapa de intensidade de sinal da regi˜ao de Niter´oi utilizando a interface web da aplica¸c˜ao OpenSignal

3.3

Coverage Map

O aplicativo Coverage Map, desenvolvido pela RootMetrics (http://www.rootmetrics.com/) se apresenta como um concorrente do OpenSignal, compartilhando algumas de suas funcionalidades. O Coverage Map ´e um aplicativo bastante simples e com menos funcionalidades se comparado ao OpenSig-nal. [Mukherjee, 2011] Uma vantagem do Coverage Map ´e que por ser simples, possui uma usabilidade agrad´avel: ´e um aplicativo f´acil de usar e com poucas telas. Por´em sua principal desvantagem ´e possuir uma base de dados com poucas informa¸c˜oes. Ao comparar um mapa gerado pelo Coverage Map com um mapa gerado pelo OpenSignal App, podemos observar com clareza que o mapa do OpenSignal possui uma abrangˆencia maior.

Assim como o OpenSignal, o Cell Map n˜ao ´e um software livre e n˜ao disponibiliza publicamente os dados coletados.

A compara¸c˜ao entre os mapas gerados para a regi˜ao de Niter´oi ´e exibida nas figuras 3.4 e 3.3. Ambos os mapas foram gerados em 27/05/2017 `as 13:20 (UTC-3, hor´ario de bras´ılia), filtrando apenas pelo sinal da operadora OI.

(23)

11

Figura 3.3: Mapa gerado pela aplica¸c˜ao OpenSignal para a intensidade de sinal da operadora OI na regi˜ao de Niter´oi no dia 27/05/2017 `as 13:20 (UTC-3, hor´ario de bras´ılia)

(24)

12

Figura 3.4: Mapa gerado pela aplica¸c˜ao Coverage Map para a intensidade de sinal da operadora OI na regi˜ao de Niter´oi no dia 27/05/2017 `as 13:20 (UTC-3, hor´ario de bras´ılia)

3.4

Antennas

”Antennas ´e um aplicativo simples que lˆe dados do gerenciador de redes de telefonia do aparelho m´ovel e mostra esses dados em um belo gr´afico desenhado por cima do Google Maps”.[Polymenakos, 2010]

(25)

13

Figura 3.5: Tela principal da aplica¸c˜ao Antennas

O aplicativo Antennas, dispon´ıvel apenas para Android, exibe um mapa com a localiza¸c˜ao do usu´ario e das antenas localizadas em sua vizinhan¸ca. O aplicativo possui uma premissa simples e cumpre ela adequadamente, por´em n˜ao se trata de uma ferramenta limitada, quando comparada com os outros trabalhos relacionados apresentados neste cap´ıtulo.

(26)

Cap´ıtulo 4

Arquitetura do Sistema

Neste cap´ıtulo s˜ao apresentados os elementos utilizados para projetar a aplica¸c˜ao apresentada neste trabalho.

4.1

Vis˜

ao Geral

Esta aplica¸c˜ao ser´a dividida em duas partes: o cliente e o servidor. O cliente corresponde ao sistema que roda nos celulares e ´e respons´avel por realizar as leituras da intensidade do sinal do dispositivo. O cliente tamb´em exibe para o usu´ario as leituras realizadas pelo dispositivo, de duas formas: atrav´es de um mapa ou atrav´es de texto. J´a o servidor corresponde a parte da aplica¸c˜ao que ser´a respons´avel por armazenar e consolidar os dados das leituras de todos os usu´arios, assim como disponibilizar estes dados para consultas. O desenvolvimento desta aplica¸c˜ao apresenta dois grandes desafios: o armazenamento dos dados sobre intensidade de sinal lidos pelos celulares, que ´e tratado na se¸c˜ao ”Armazenamento de Dados”, e a visualiza¸c˜ao e representa¸c˜ao adequada destes dados em um mapa, que ´e tratado na se¸c˜ao ”Visualiza¸c˜ao dos Dados”. A se¸c˜ao ”Melhorando o Desempenho”apresenta sugest˜oes que podem ser utilizadas para melhorar o desempenho da aplica¸c˜ao, resultando em um menor consumo de mem´oria em disco para armazenar as leituras realizadas, assim como menor consumo de banda de rede para trafegar dados entre cliente e servidor, e tamb´em melhorias para otimizar o tempo levado para gerar e exibir de um mapa de intensidade de sinal celular.

4.2

Armazenamento de Dados

Para realizar o mapeamento da intensidade do sinal celular, ´e necess´ario realizar leituras e arma-zenar dados destas leituras realizadas. Esta se¸c˜ao visa discutir quais dados devem ser armazenados, e o porquˆe.

A primeira informa¸c˜ao necess´aria de ser armazenada ´e o valor da intensidade do sinal celular. Esta informa¸c˜ao pode ser representada de m´ultiplas formas, por´em existem duas representa¸c˜oes que s˜ao as mais adotadas: a representa¸c˜ao por decib´eis, ou dBm, e a representa¸c˜ao por Unidade de For¸ca Arbitr´aria,

(27)

15 tamb´em chamada de ASU. Com o objetivo de manter a consistˆencia dos dados de intensidade de sinal, ´e necess´ario adotar um formato ´unico para armazenar o valor da intensidade do sinal.

Al´em de medir a intensidade do sinal celular, outro dado que precisa ser armazenado ´e a localiza-¸

c˜ao de onde a leitura de intensidade de sinal foi realizada. Sem saber a localiza¸c˜ao da leitura ´e imposs´ıvel mapear as regi˜oes com melhor e pior cobertura de sinal celular. Portanto, quando uma leitura de in-tensidade de sinal for realizada, ´e necess´ario associar a esta leitura de intensidade de sinal a localiza¸c˜ao geogr´afica do dispositivo no momento em que a leitura foi feita. A localiza¸c˜ao geogr´afica pode ser obtida de diversas formas, por´em uma forma de obter este dado que ´e adotada na grande maioria dos smartpho-nes atualmente ´e atrav´es do GPS, ou Sistema de Posicionamento Global. O GPS dos smartphones ´e capaz de prover uma coordenada, que ´e composta por dois n´umeros reais que indicam o posicionamento geogr´afico do telefone em latitude e longitude.

Como desejamos que o mapa de intensidade de sinal celular possa ser filtrado por operadora, e sa-bemos que operadoras diferentes podem possuir mapas intensidades de sinal celular diferentes, precisamos tamb´em associar a operadora com a leitura realizada.

Outro dado que precisa ser armazenado ´e a marca temporal (data e hor´ario) em que a leitura foi realizada. Sabemos que a intensidade do sinal celular para uma determinada regi˜ao n˜ao ´e um valor imut´avel: Diversos acontecimentos podem alterar a intensidade do sinal celular em uma regi˜ao ao longo do tempo. Por exemplo: uma constru¸c˜ao civil pode prejudicar a intensidade do sinal em uma regi˜ao, ao atuar como um bloqueio para as ondas celulares. J´a a instala¸c˜ao de uma nova antena pode melhorar a qualidade do sinal. Como esta aplica¸c˜ao trabalha com dados compartilhados de diversos usu´arios, e os usu´arios poder˜ao realizar in´umeras medidas de intensidade de sinal na mesma regi˜ao geogr´afica em diferentes per´ıodos do tempo, ´e necess´ario armazenar a marca temporal em que a leitura foi realizada pois n˜ao podemos misturar dados que foram lidos em janelas de tempo diferentes. Para exemplificar a necessidade de armazenar a marca temporal, vamos visualizar uma situa¸c˜ao fict´ıcia: A regi˜ao R foi visitada por um total de 10 usu´arios, que utilizaram seus smartphones para medir a qualidade do sinal da mesma operadora na regi˜ao. Destes 10 usu´arios, 9 visitaram a regi˜ao no ano de 2016, e todos eles registraram o valor de -108 dBm. J´a o outro usu´ario realizou a visita em 2017, e observou que a intensidade de sinal registrava o valor de -55 dBm. No exemplo citado, a m´edia aritm´etica simples entre os valores lidos resultaria em -102,7 dBm, que est´a muito mais pr´oximo de -108 dBm do que de -55 dBm, e n˜ao seria um resultado correto. Por isto, n˜ao devemos misturar leituras que tenham sido realizadas em janelas de tempo distintas.

Como pretendemos armazenar a marca temporal em que a leitura foi realizada, ´e importante questionar como descobrir a marca temporal atual no momento em que a leitura foi realizada. Em todo smartphone que possui um sistema operacional Android ou iOS ´e poss´ıvel consultar o calend´ario e o rel´ogio do sistema operacional para descobrir a marca temporal atual. O problema ´e que n˜ao ´e poss´ıvel garantir que o calend´ario e o rel´ogio do sistema operacional est˜ao configurados com os valores de data e hora corretos. Desta forma, ´e necess´ario que exista uma sincroniza¸c˜ao entre a data dos dispositivos que estejam realizando as leituras. A utiliza¸c˜ao de servi¸cos como o NTP (Network Time Protocol), assim como a pr´opria sincroniza¸c˜ao de rel´ogio fornecida pelas operadoras de telefonia celular s˜ao ´uteis para

(28)

16 manter a sincroniza¸c˜ao de rel´ogio entre diversos dispositivos.

4.3

Visualiza¸

ao dos Dados

Quando as leituras s˜ao realizadas a aplica¸c˜ao armazena diversos dados, entre eles dois valores relativos `a localiza¸c˜ao geogr´afica: A latitude e a longitude que correspondem ao posicionamento geogr´afico do telefone no momento em que a leitura foi realizada. Armazenando a leitura desta forma, n´os estamos associando a intensidade do sinal celular com uma coordenada, que representa um ponto no mapa.

Representar pontos em um mapa ´e algo simples quando se trata de um pequeno n´umero de pontos. Por´em, conforme o n´umero de pontos aumenta, a complexidade para representar e visualizar estes dados aumenta proporcionalmente. Em um mapa superlotado de pontos, como na figura 4.1, a quantidade de pontos exibidos ´e t˜ao grande que dificulta a visualiza¸c˜ao do pr´oprio mapa, assim como a compreens˜ao da informa¸c˜ao exibida.

Figura 4.1: Mapa com um grande n´umero de pontos, prejudicando a visualiza¸c˜ao do terreno e a compre-ens˜ao da informa¸c˜ao

Al´em disso, acreditamos que os usu´arios desta aplica¸c˜ao estar˜ao interessados em visualizar o mapeamento de intensidade de sinal para regi˜oes, como um estado, uma cidade ou um bairro, e n˜ao para pontos espec´ıficos.

Decidimos adotar a representa¸c˜ao da intensidade de sinal por regi˜oes. Quando o usu´ario visualizar o mapa, ele dever´a ver um mapa com regi˜oes demarcadas. Para cada regi˜ao demarcada, o sistema dever´a exibir para o usu´ario a intensidade do sinal celular para aquela regi˜ao.

Um dos desafios apresentados por este trabalho ´e descobrir uma forma adequada de representar a intensidade do sinal celular para uma regi˜ao. Sabemos que as leituras de intensidade de sinal podem ser representadas de diversas formas, sendo que os formatos DBM e ASU s˜ao os mais utilizados para representar a intensidade do sinal celular, e estas representa¸c˜oes utilizam n´umeros.

(29)

17 tela o valor m´edio em DBM para aquela regi˜ao. Por´em, esta forma de visualizar a intensidade do sinal n˜ao ´e f´acil para o usu´ario, que ao olhar para uma regi˜ao n˜ao consegue dizer com clareza se a cobertura de sinal naquela regi˜ao ´e satisfat´oria ou n˜ao.

Figura 4.2: Contraexemplo de mapa de intensidade de sinal celular: exibir os n´umeros em DBM torna dif´ıcil para o usu´ario a compreens˜ao do mapa.

Buscando uma representa¸c˜ao que torne mais f´acil para o usu´ario a compreens˜ao do mapa de intensidade de sinal, adotamos neste projeto a discretiza¸c˜ao dos valores de intensidade. Para discretizar estes valores, criamos 5 categorias de intensidade de sinal celular: Muito bom, Bom, Regular, Ruim e Muito Ruim. E al´em disso, associamos cada uma das categorias com uma cor, para exibi¸c˜ao no mapa.

As regi˜oes do mapa dever˜ao ser preenchidas com cores para representar a intensidade do sinal celular dentro daquela regi˜ao, seguindo a paleta de cores de verde, amarelo e vermelho, onde a cor verde indica uma alta intensidade de sinal, a cor amarela indica uma intensidade regular e a cor vermelha indica uma fraca intensidade de sinal. As regi˜oes que n˜ao estiverem mapeadas v˜ao aparecer sem nenhuma cor.

(30)

18

Figura 4.3: Prot´otipo de mapa de intensidade de sinal celular

Para representar as regi˜oes do mapa de forma adequada, ´e necess´ario determinar o tamanho das regi˜oes que ser˜ao exibidas. O tamanho das regi˜oes exibidas deve ser definido em fun¸c˜ao da altura da cˆamera do mapa: quando o usu´ario estiver visualizando o mapa atrav´es de uma cˆamera muito alta, o tamanho das regi˜oes geogr´aficas deve ser proporcionalmente grande. Conforme o usu´ario aproxima a cˆamera do solo, o tamanho das regi˜oes geogr´aficas exibidas deve ser reduzido proporcionalmente.

Para implementar a representa¸c˜ao de intensidade de sinal por regi˜oes, n´os adotamos neste tra-balho o conceito de quadrante. No contexto desta aplica¸c˜ao, um quadrante representa uma ´area coberta por um pol´ıgono, mais especificamente um quadril´atero regular.

Na figura 4.3, exibimos um prot´otipo de como esperamos que seja visualizado um mapa de intensidade de sinal celular.

Uma deficiˆencia desta representa¸c˜ao apresentada no prot´otipo ´e a exibi¸c˜ao de regi˜oes retangulares com transi¸c˜oes muito bruscas entre os quadrantes. Este tipo de representa¸c˜ao pode levar o usu´ario a ter uma compreens˜ao errada do mapa: o usu´ario pode entender que a partir do momento que ele sair de um quadrante de cor vermelha e entrar em um quadrante de cor verde, a intensidade do sinal celular deveria melhorar imediatamente. Na realidade, esta mudan¸ca deve ocorrer de forma gradual, portanto seria adequado que o mapa representasse as mudan¸cas de intensidade de sinal celular de uma regi˜ao para outra de forma gradual.

4.4

Melhorando o Desempenho

A aplica¸c˜ao apresentada neste trabalho possui potencial de consumir um grande volume de re-cursos computacionais como processamento de dados, armazenamento de dados, e banda de rede. Esta se¸c˜ao tem como objetivo apresentar e avaliar propostas que podem melhorar o desempenho da aplica¸c˜ao e economizar recursos computacionais.

Para gerar uma economia no espa¸co ocupado pelas leituras, apresentamos como proposta a con-solida¸c˜ao de leituras. A consolida¸c˜ao de leituras consiste em uma t´ecnica utilizada para transformar um

(31)

19 n´umero N de leituras de intensidade de sinal celular em apenas uma leitura.

Um exemplo para explicar a consolida¸c˜ao seria quando um usu´ario do aplicativo permanece exatamente na mesma localiza¸c˜ao por um per´ıodo de cinco minutos. Durante estes cinco minutos, o aplicativo vai realizar N leituras de intensidade de sinal, mesmo que o usu´ario n˜ao tenha se deslocado. Como o intervalo de tempo ´e muito pequeno, e a localiza¸c˜ao do usu´ario n˜ao mudou, se torna redundante armazenar no banco de dados todas as N leituras realizadas nesta situa¸c˜ao. Por isto, a t´ecnica de consolida¸c˜ao pode ser utilizada para transformar as N leituras em apenas uma leitura.

Para executar a consolida¸c˜ao de leituras ´e necess´ario utilizar regras para selecionar quais leituras s˜ao candidatas `a consolida¸c˜ao. As regras definidas definidas para selecionar as leituras candidatas `a consolida¸c˜ao foram de distˆancia geogr´afica entre leituras, e intervalo de tempo entre as leituras. Para que duas (ou mais) leituras sejam candidatas `a consolida¸c˜ao a distˆancia geogr´afica entre elas deve ser menor que 200 metros, e o intervalo de tempo entre uma leitura e outra deve ser menor do que uma hora.

A consolida¸c˜ao em si consiste em criar um novo registro de leitura de intensidade de sinal celular, em que a intensidade armazenada seja calculada utilizando a m´edia m´ovel das intensidades de sinal que foram selecionadas para a consolida¸c˜ao. Com a cria¸c˜ao do registro consolidado, as leituras que foram utilizadas na consolida¸c˜ao podem ser apagadas. Neste projeto, a m´edia m´ovel foi calculada utilizando o valor de Alpha como 0.5, por´em novos estudos podem ser realizados para avaliar o impacto da utiliza¸c˜ao de outros valores de Alpha para o c´alculo da m´edia m´ovel neste aplicativo. A f´ormula utilizada para o c´alculo da m´edia m´ovel est´a representada na equa¸c˜ao 4.1.

V F = (V 1 ∗ (1 − ALP HA)) + (V 1 ∗ ALP HA) (4.1) Com o objetivo de gerar uma economia no espa¸co ocupado nos dispositivos m´oveis, assim como gerar uma economia no volume de dados transferido do cliente para o servidor, sugerimos a utiliza¸c˜ao da t´ecnica de consolida¸c˜ao nos pr´oprios dispositivos m´oveis.

Com o objetivo de gerar uma economia no espa¸co ocupado pelas leituras salvas no servidor, apresentamos como proposta a utiliza¸c˜ao da t´ecnica de consolida¸c˜ao, j´a apresentada neste trabalho com o objetivo de economizar o espa¸co de armazenamento nos dispositivos m´oveis. A ideia consiste em aplicar a mesma t´ecnica de consolida¸c˜ao, s´o que desta vez nas leituras armazenadas no servidor da aplica¸c˜ao.

Por´em, como gostar´ıamos possibilitar a consulta do hist´orico da intensidade do sinal celular, podemos avaliar tamb´em a possibilidade de classificar as leituras no servidor por intervalo de tempo. Com a ado¸c˜ao desta t´ecnica, as leituras seriam consolidadas no servidor apenas se estiverem dentro do mesmo intervalo temporal. Desta forma, se torna poss´ıvel economizar espa¸co de armazenamento sem abrir m˜ao do hist´orico, pois se duas leituras realizadas na mesma localiza¸c˜ao geogr´afica por´em em janelas de tempo distintas forem consolidadas, n˜ao ser´a poss´ıvel consultar o hist´orico de intensidade de sinal.

Fazendo combina¸c˜oes com as 3 t´ecnicas de economia de espa¸co em disco propostas, geramos a tabela 4.1, com um total de 8 poss´ıveis propostas (de P1 at´e P8) de quais t´ecnicas utilizar na aplica¸c˜ao.

(32)

20

Tabela 4.1: Todas as propostas de consolida¸c˜ao de dados na aplica¸c˜ao

Consolida¸c˜ao cliente Consolida¸c˜ao no servidor Consolida¸c˜ao no servidor por intervalo de tempo

P 1 N˜ao N˜ao N˜ao P 2 N˜ao N˜ao Sim P 3 N˜ao Sim N˜ao P 4 N˜ao Sim Sim P 5 Sim N˜ao N˜ao P 6 Sim N˜ao Sim P 7 Sim Sim N˜ao

P 8 Sim Sim Sim

A proposta P1 consiste em n˜ao realizar nenhum tipo de consolida¸c˜ao. ´E a abordagem que ocupa mais espa¸co tanto nos celulares dos usu´arios quanto no servidor da aplica¸c˜ao.

A proposta P2 n˜ao ´e uma proposta vi´avel, pois n˜ao faz sentido consolidar as leituras no servidor separadas por intervalo de tempo se n˜ao desejamos consolidar leituras no servidor.

A proposta P3 consiste em consolidar as leituras apenas no servidor, sem realizar a separa¸c˜ao por intervalo de tempo. Esta proposta economiza espa¸co de armazenamento no servidor, por´em tem como principal desvantagem n˜ao possibilitar a consulta de hist´orico da intensidade de sinal.

A proposta P4 consiste em consolidar as leituras apenas no servidor, realizando a separa¸c˜ao por intervalo de tempo. Esta proposta economiza espa¸co de armazenamento no servidor e permite a consulta de hist´orico de intensidade de sinal.

A proposta P5 consiste em consolidar as leituras apenas no cliente. Esta proposta economiza espa¸co de armazenamento no cliente e permite a consulta de hist´orico de intensidade de sinal.

A proposta P6 n˜ao ´e uma proposta vi´avel, pelo mesmo motivo da inviabilidade de P2.

A proposta P7 consiste em consolidar as leituras tanto no cliente quanto no servidor, por´em sem realizar a separa¸c˜ao por intervalo de tempo no servidor. Esta proposta economiza espa¸co de armazena-mento no cliente e no servidor, por´em tem como principal desvantagem n˜ao possibilitar a consulta de hist´orico da intensidade de sinal.

A proposta P8 consiste em consolidar as leituras tanto no cliente quanto no servidor, realizando a separa¸c˜ao por intervalo de tempo no servidor. Esta proposta economiza espa¸co de armazenamento no cliente e no servidor, por´em e permite a consulta de hist´orico da intensidade de sinal.

Removendo as propostas P2 e P6, que n˜ao s˜ao vi´aveis, temos a tabela 4.2, com as propostas vi´aveis de consolida¸c˜ao de dados na aplica¸c˜ao.

(33)

21

Tabela 4.2: Propostas vi´aveis de consolida¸c˜ao de dados na aplica¸c˜ao

Consolida¸c˜ao cliente Consolida¸c˜ao no servidor Consolida¸c˜ao no servidor por intervalo de tempo

P 1 N˜ao N˜ao N˜ao

P 3 N˜ao Sim N˜ao

P 4 N˜ao Sim Sim

P 5 Sim N˜ao N˜ao

P 7 Sim Sim N˜ao

(34)

Cap´ıtulo 5

Prototipa¸

ao

5.1

Tecnologias Utilizadas

Como o desenvolvimento do aplicativo mobile foi feito de forma nativa para iOS, as ferramentas utilizadas foram as fornecidas pela Apple. Como Ambiente de Desenvolvimento Integrado (ou IDE), foi utilizado o XCode na vers˜ao 7.3.1. A linguagem utilizada para desenvolvimento foi o Swift na vers˜ao 2.2. A aplica¸c˜ao foi constru´ıda originalmente para a vers˜ao 9.3 do iOS, que era a vers˜ao mais atual na fase de desenvolvimento do projeto.

J´a o servidor foi desenvolvido em Ruby on Rails, utilizando a vers˜ao 5.0.0.1 do framework Rails, e a vers˜ao 2.3.0 da linguagem Ruby. No desenvolvimento deste projeto, o banco de dados utilizado foi o PostgreSQL, na vers˜ao 9.5.5.

5.2

Compilando e executando o aplicativo iOS

Para compilar e executar o aplicativo iOS, ´e necess´ario instalar o ambiente integrado de desen-volvimento Xcode vers˜ao 7.3.1, que pode ser encontrado para download no link https://developer. apple.com/download/more/.

Ap´os instalar o Xcode 7.3.1, ´e necess´ario baixar o reposit´orio que cont´em o c´odigo do app. O link para o reposit´orio ´e https://github.com/linharesh/SignalStrength. E poss´ıvel baixar todo´ o projeto em uma pasta compactada(.zip), ou utilizar o Git para clonar o reposit´orio, atrav´es da url https://github.com/linharesh/SignalStrength.git.

Com o reposit´orio baixado, o pr´oximo passo ´e instalar as dependˆencias do projeto. O CocoaPods (https://cocoapods.org/) foi o sistema utilizado para gerenciamento de dependˆencias deste app. O CocoaPods pode ser instalado ao executar o comando sudo gem install cocoapods no terminal do Mac.

Ap´os instalar o gerenciador de dependˆencias CocoaPods, devemos abrir o terminal e navegar at´e a pasta raiz do projeto. Dentro da pasta raiz do projeto, utilizamos o comando pod install para fazer o download e instalar as dependˆencias do app.

(35)

23 Assim que a instala¸c˜ao das dependˆencias do projeto for conclu´ıda, o CocoaPods ir´a gerar na pasta raiz do projeto um arquivo com extens˜ao ”.xcworkspace”. O pr´oximo passo ´e abrir este arquivo com o Xcode 7.3.1, que o projeto ser´a carregado para o workspace do Xcode. ´E importante notar que existem dois arquivos que podem ser abertos pelo XCode: O ”.xcworkspace”e o ”.xcodeproj”. O arquivo correto ´e o com extens˜ao ”.xcworkspace”. Caso o arquivo ”.xcodeproj”seja aberto, as dependˆencias n˜ao ser˜ao carregadas automaticamente, o que ir´a trazer mais complexidade para a constru¸c˜ao do projeto.

Com o XCode aberto, podemos observar que no canto superior esquerdo da tela podemos seleci-onar qual ´e o destino (target) em que desejamos executar a aplica¸c˜ao. ´E poss´ıvel selecionar um simulador de iOS, ou um dispositivo iOS que esteja conectado no computador por uma porta USB. Ap´os definir o destino, basta utilizar o atalho command + r para compilar e executar o app.

5.3

Executando o servidor da aplica¸

ao

Para rodar o servidor da aplica¸c˜ao, ´e necess´ario instalar a linguagem Ruby na vers˜ao 2.3.0 e o banco de dados PostgreSQL na vers˜ao 9.5.5.

Para instalar a linguagem Ruby, foi utilizado o Ruby Version Manager (ou RVM). O Ruby Ver-sion Manager permite que sejam instaladas diversas vers˜oes da linguagem Ruby no mesmo computador, e permite que o programador administre estas vers˜oes. Mais informa¸c˜oes sobre o RVM podem ser en-contradas na url https://rvm.io/. A utiliza¸c˜ao do RVM n˜ao ´e necess´aria para executar esta aplica¸c˜ao, por´em ´e recomendada.

Ap´os instalar a linguagem Ruby e o banco de dados PostgreSQL, ´e necess´ario baixar o reposi-t´orio que cont´em o c´odigo do servidor. O link para o reposit´orio ´e https://github.com/linharesh/ LocationSignalServer. ´E poss´ıvel baixar todo o projeto em uma pasta compactada(.zip), ou utilizar o Git para clonar o reposit´orio, atrav´es da url https://github.com/linharesh/LocationSignalServer. git.

Com o reposit´orio baixado, o pr´oximo passo ´e instalar as dependˆencias do projeto. O Bundler (https://cocoapods.org/) foi o sistema utilizado para gerenciamento de dependˆencias deste servidor de aplica¸c˜ao. O Bundler pode ser instalado ao executar o comando gem install bundler no terminal do computador.

Ap´os instalar o gerenciador de dependˆencias Bundler, devemos abrir o terminal e navegar at´e a pasta raiz do projeto. Dentro da pasta raiz do projeto, utilizamos o comando bundle install para baixar e instalar as dependˆencias do servidor de aplica¸c˜ao.

Quando a instala¸c˜ao das dependˆencias terminar, devemos utilizar o automatizador de tarefas Rake(https://github.com/ruby/rake) para criar o banco de dados e realizar as migra¸c˜oes necess´arias. Estas tarefas j´a est˜ao definidas no Rake, e podemos utilizar o comando rake db:setup.

Para inicializar o servidor, basta abrir o terminal e executar o comando ./StartServer na pasta raiz do servidor. Uma mensagem ir´a informar que o servidor est´a executando. Para encerrar o servidor, basta fechar o terminal ou utilizar o atalho Ctrl + c.

(36)

24

5.4

Telas do App

(37)

25

Figura 5.2: Segunda tela do aplicativo, que exibe o mapa global, gerado atrav´es do compartilhamento de leituras realizadas por diversos usu´arios.

(38)

26

(39)

Cap´ıtulo 6

Avalia¸

ao e Experimentos

6.1

Objetivos

Na Tabela 4.2 foram apresentadas todas as propostas vi´aveis de consolida¸c˜ao de dados na aplica-¸

c˜ao. O objetivo deste cap´ıtulo ´e avaliar as vantagens, desvantagens e impactos de diferentes abordagens para armazenamento e consolida¸c˜ao de dados na aplica¸c˜ao.

Este experimento ser´a realizado levando em conta que manter o hist´orico da intensidade de sinal ´e imprescind´ıvel. Sendo assim, as propostas avaliadas neste experimento s˜ao P1(n˜ao realizar nenhuma consolida¸c˜ao), P4(consolidar somente no servidor, separando por intervalo de tempo) e P8(consolidar no cliente e no servidor, sendo que a consolida¸c˜ao no servidor deve ser separada por intervalo de tempo).

6.2

etricas de avalia¸

ao

Uma m´etrica deste experimento ´e o volume de dados armazenados no banco de dados do servidor, medido em bytes. Atrav´es desta medi¸c˜ao, vamos conseguir avaliar entre as trˆes propostas apresentadas, quais s˜ao as que mais economizam espa¸co no banco de dados do servidor da aplica¸c˜ao, e quais que mais consomem estes recursos.

Outra m´etrica usada ´e o volume de dados transferido do aplicativo m´ovel para o servidor da aplica¸c˜ao. Atrav´es desta medi¸c˜ao, vamos conseguir avaliar entre as trˆes propostas apresentadas, quais s˜ao as que mais economizam recursos de rede, e quais que mais consomem estes recursos.

6.3

Realiza¸

ao do experimento

Para descobrir o volume de dados transmitido pela rede, foi necess´ario escrever uma pequena aplica¸c˜ao utilizando NodeJS (https://nodejs.org/en/). Esta aplica¸c˜ao se comporta como o servidor, e recebe as leituras do dispositivo m´ovel, por´em ao inv´es de salvar estas leituras em um banco de dados, a aplica¸c˜ao apenas exibe na tela o volume total em bytes de dados trafegado nas chamadas HTTP referentes ao envio dos dados do celular para o servidor. Esta aplica¸c˜ao foi nomeada Post-Content-Size, e est´a disponibilizada publicamente atrav´es da url https://github.com/linharesh/post-content-size.

(40)

28 Para descobrir o volume de dados ocupado no banco de dados do servidor, acessamos o console do banco de dados e utilizamos o comando L+. Este comando exibe uma listagem com todas os bancos de dados do tipo PostgreSQL existentes no computador, e exibe o espa¸co ocupado em disco por cada um destes bancos.

Vale notar que o banco de dados da aplica¸c˜ao mesmo sem nenhuma leitura de intensidade de sinal armazenada, ocupa espa¸co em disco. Nesta aplica¸c˜ao, o banco de dados apenas com as tabelas, mas sem nenhum dado preenchido, ocupa em disco o volume de 7.303.000 bytes. Para uma avalia¸c˜ao adequada sobre o uso de espa¸co em disco de cada proposta de consolida¸c˜ao, devemos considerar o volume de dados ocupado apenas pelos dados da aplica¸c˜ao. Este volume pode ser encontrado ao subtrair o volume de dados total encontrado pelo volume de dados ocupado pelo banco de dados sem nenhum dado (7.303.000 bytes).

Para a realiza¸c˜ao deste experimento, o aplicativo m´ovel foi instalado no telefone de um estudante, e o aplicativo monitorou a qualidade do sinal durante o per´ıodo de 4 dias, sem realizar nenhum tipo de consolida¸c˜ao.

Ap´os coletar as leituras utilizadas no experimento, o aplicativo m´ovel foi configurado para n˜ao apagar estas leituras ap´os o envio para o servidor. Fizemos isto pois quer´ıamos preservar a amostra para que ela pudesse ser utilizada em todos os experimentos. As amostras coletadas est˜ao dispon´ıveis atrav´es do seguinte link: https://github.com/linharesh/post-content-size/tree/master/Experimentos.

Todos os trˆes experimentos seguiram o mesmo processo: Configura¸c˜ao da proposta de consolida-¸

c˜ao avaliada no aplicativo m´ovel e no servidor(P1, P4 e P8), transferˆencia das as leituras do aplicativo m´ovel para o Post-Content-Size para medir o volume de dados trafegado na rede, e ent˜ao transmiss˜ao das mesmas leituras do aplicativo m´ovel para o servidor da aplica¸c˜ao. Por ´ultimo, aguardar o servidor realizar as consolida¸c˜oes caso ele esteja programado para isto, e ent˜ao medir o volume de dados ocupado no servidor.

6.4

Resultados

Para o experimento que avalia a proposta P1, que consiste em n˜ao realizar nenhum tipo de consolida¸c˜ao, nem no cliente nem no servidor, o volume de dados transferido na rede foi de 1.678.751 bytes. J´a o volume de dados armazenado no servidor foi de 1.528.000 bytes.

J´a para o experimento que avalia a proposta P4, que consiste em n˜ao realizar consolida¸c˜ao no cliente, mas realizar a consolida¸c˜ao no servidor separando por intervalo de tempo, o volume de dados transferidos na rede foi de 1.678.751 bytes, exatamente o mesmo do experimento da proposta P1, j´a que nestes dois experimentos n˜ao houve nenhuma altera¸c˜ao na abordagem de consolida¸c˜ao no cliente. Portanto, o volume de dados transferido foi exatamente o mesmo. J´a o volume de dados armazenado no servidor foi de 120.000 bytes.

No experimento que avalia a proposta P8, que consiste em realizar consolida¸c˜ao no cliente e no servidor, sendo que a consolida¸c˜ao no servidor deve ser separada por intervalo de tempo, o volume de dados transferido na rede foi de 29.121 bytes. J´a o volume de dados armazenado no servidor foi de 96.000

(41)

29 bytes.

A tabela 6.1 exibe os resultados do experimento.

Tabela 6.1: Tabela de resultados do experimento

Volume de dados trafegado na rede Volume de dados ocupado no banco de dados da aplica¸c˜ao

P1 1.678.751 bytes 1.528.000 bytes

P2 1.678.751 bytes 120.000 bytes

P4 29.121 bytes 96.000 bytes

6.5

Conclus˜

oes

Com rela¸c˜ao ao volume de dados trafegado na rede, podemos concluir que a utiliza¸c˜ao da con-solida¸c˜ao de dados no cliente reduziu significativamente o volume de dados trafegado. Ao realizar a consolida¸c˜ao no cliente, o volume de dados trafegados na rede reduziu de 1.678.751 bytes para 29.121 bytes, um volume 57,64 vezes menor.

J´a com rela¸c˜ao ao volume de dados ocupado no banco de dados do servidor, podemos concluir que a utiliza¸c˜ao da t´ecnica de consolida¸c˜ao no servidor reduz significativamente o volume de dados ocupado em disco. Ao comparar os resultados do experimento P1 com os resultados do experimento P4, podemos observar uma redu¸c˜ao de 12,73 vezes no volume de dados armazenados. Comparando P1 com P8 esta diferen¸ca continua significativa, desta vez de 15,91 vezes.

(42)

Cap´ıtulo 7

Conclus˜

ao

Neste trabalho foi apresentado o desenvolvimento de um aplicativo m´ovel para mapear a inten-sidade de sinal celular. O aplicativo desenvolvido atende as necesinten-sidades propostas, e se mostrou capaz de realizar leituras de intensidade de sinal celular e gerar um mapa com as leituras feitas no pr´oprio dispositivo. Al´em disso, podemos enviar as leituras para um servidor que ir´a armazenar as leituras feitas por todos os usu´arios e podemos gerar um mapa constru´ıdo utilizando informa¸c˜oes compartilhadas por diversos usu´arios.

Foram apresentadas propostas para economia de recursos computacionais, e nos experimentos realizados estas propostas se mostraram eficientes. Como sugest˜ao de trabalhos futuros, novas propostas podem ser estudadas. Al´em disso, tamb´em pode ser avaliado o impacto das propostas de economia de recursos na fidelidade dos mapas de intensidade de sinal, ou seja, avaliar se as propostas de economia de recursos podem gerar distor¸c˜oes na intensidade do sinal exibida nos mapas e como minimizar este efeito. Muitos dos objetivos propostos foram alcan¸cados, e conclu´ımos este trabalho com apresentando um aplicativo que atende as situa¸c˜oes apontadas na Introdu¸c˜ao, e resolve o problema mencionado.

Al´em disso, todo o c´odigo fonte desenvolvido neste trabalho ´e aberto e disponibilizado nos links https://github.com/linharesh/SignalStrength, https://github.com/linharesh/LocationSignalServer e https://github.com/linharesh/post-content-size. Esperamos que a decis˜ao de disponibilizar o c´odigo fonte deste trabalho possa contribuir com outros projetos, que podem reutilizar componentes de software desenvolvidos neste trabalho.

Uma sugest˜ao para trabalho futuro consiste tentar melhorar o mapa de intensidade de sinal celular gerado pelo aplicativo. A representa¸c˜ao atrav´es de regi˜oes retangulares possui deficiˆencias, e acreditamos que a mudan¸ca de intensidade de sinal celular de uma regi˜ao para outra deveria ser representada de uma forma gradual, para que o mapa represente algo mais pr´oximo da distribui¸c˜ao de intensidade de sinal celular no mundo real.

A cria¸c˜ao e disponibiliza¸c˜ao do servidor apresentado nesta pesquisa possibilita diversos traba-lhos futuros, como a possibilidade de que diversos aplicativos existentes que j´a monitoram a localiza¸c˜ao geogr´afica do usu´ario passem a monitorar em segundo plano a intensidade de sinal celular, desde que o usu´ario concorde em disponibilizar estas informa¸c˜oes. Isto possibilitaria um potencial significativo para

(43)

31 crescimento no n´umero de usu´arios fornecendo informa¸c˜oes para o sistema. Para facilitar a integra¸c˜ao do servidor apresentado nesta pesquisa com aplicativos de terceiros, sugiro a cria¸c˜ao de um guia para utiliza¸c˜ao da API do servidor.

Al´em disso, a partir do momento em que o banco de dados do sistema estiver populado com dados reais, uma s´erie de estudos podem ser realizados sobre estes dados, buscando estabelecer rela¸c˜oes entre a intensidade do sinal celular e outros fatores. Fatores ambientais podem ser relacionados, como condi¸c˜oes clim´aticas, meteorol´ogicas e geogr´aficas e tamb´em fatores sociais como desenvolvimento urbano e econˆomico.

(44)

Referˆ

encias Bibliogr´

aficas

[Bari and Bonner, 2011] Bari, F. and Bonner, T. (2011). Network identity and timezone (nitz) functio-nality for non-3gpp devices. US Patent 7,881,748.

[Dyreson and Snodgrass, 1993] Dyreson, C. E. and Snodgrass, R. T. (1993). Timestamp semantics and representation. Information Systems, 18(3):143–166.

[Gandhi, 2016] Gandhi, U. (2016). Criando mapas de calor. http://www.qgistutorials.com/pt_BR/ docs/creating_heatmaps.html. [Online; acessado em 04-Junho-2017].

[Lehr and McKnight, 2003] Lehr, W. and McKnight, L. W. (2003). Wireless internet access: 3g vs. wifi? Telecommunications Policy, 27(5):351–370.

[Mills, 1985] Mills, D. L. (1985). Network time protocol (ntp). Network.

[Monico, 2000] Monico, J. F. G. (2000). Posicionamento pelo Navstar-GPS. Unesp.

[Mukherjee, 2011] Mukherjee, A. (2011). Rootmetrics cellphone coverage map: Check the actual cove-rage of carriers. http://www.makeuseof.com/tag/rootmetrics-covecove-rage-of-carriers/. [Online; acessado em 20-Junho-2017].

[NTP.BR, 2016] NTP.BR (2016). O ntp. http://ntp.br/ntp.php. [Online; acessado em 06-Junho-2017]. [Ou et al., 2013] Ou, Z., Dong, S., Dong, J., Nurminen, J. K., Yl¨a-J¨a¨aski, A., and Wang, R. (2013). Characterize energy impact of concurrent network-intensive applications on mobile platforms. In Pro-ceedings of the Eighth ACM International Workshop on Mobility in the Evolving Internet Architecture, MobiArch ’13, pages 23–28, New York, NY, USA. ACM.

[Polymenakos, 2010] Polymenakos, M. (2010). Antennas for android 1.0. http://www.panix.com/ ~mpoly/android/antennas/r1.0/. [Online; acessado em 15-Maio-2017].

[PORTAL-BRASIL, 2016] PORTAL-BRASIL (2016). Anatel lan¸ca ferramenta para con-sulta de sinal de celular. http://www.brasil.gov.br/infraestrutura/2016/07/ anatel-lanca-ferramenta-para-consulta-de-sinal-de-celular. [Online; acessado em 04-Junho-2017].

[Rice and Katz, 2003] Rice, R. E. and Katz, J. E. (2003). Comparing internet and mobile phone usage: digital divides of usage, adoption, and dropouts. Telecommunications Policy, 27(8):597–623.

(45)

33 [RODRIGUES, 2000] RODRIGUES, M. (2000). Telefonia celular. http://www.wirelessbrasil.org/

wirelessbr/colaboradores/marcio_rodrigues/tel_01.html.

[TeleS´ıntese, 2016] TeleS´ıntese, R. (2016). Anatel lan ¸Ca app que mos-tra intensidade do sinal do celular. http://www.telesintese.com.br/ anatel-lanca-sistema-que-aponta-onde-o-sinal-do-celular-esta-fraco/. [Online; aces-sado em 20-Junho-2017].

[Viswanathan, 2016] Viswanathan, P. (2016). How does a mobile network work? https://www. lifewire.com/how-does-a-mobile-network-work-2373338. [Online; acessado em 20-Junho-2017]. [Warman, 2013] Warman, M. (2013). Opensignal app review. http://www.telegraph.co.uk/

technology/mobile-app-reviews/9854742/OpenSignal-app-review.html. [Online; acessado em 20-Junho-2017].

Referências

Documentos relacionados

Então se esse requisito obrigatório não for legível, abre um leque de probabilidades para uma interpretação errada do profissional, podendo acarretar graves danos à saúde

3 O presente artigo tem como objetivo expor as melhorias nas praticas e ferramentas de recrutamento e seleção, visando explorar o capital intelectual para

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Para disciplinar o processo de desenvolvimento, a Engenharia de Usabilidade, também conceituada e descrita neste capítulo, descreve os métodos estruturados, a

resultou em uma investigação sobre a legislação vigente no que diz respeito aos direitos e garantias de homossexuais, para verificar se o país é considerado tolerante ou não e se

Hoje o gasto com a saúde equivale a aproximada- mente 8% do Produto Interno Bruto (PIB), sendo que, dessa porcentagem, o setor privado gasta mais que o setor público (Portal

Ainda segundo Gil (2002), como a revisão bibliográfica esclarece os pressupostos teóricos que dão fundamentação à pesquisa e às contribuições oferecidas por

Dentro do processo utilizado para a gestão de projetos, existe alguma diferenciação entre a gestão de equipes locais e virtuais (quanto à gestão de recursos humanos,