henrique do prado linhares - portal - iduff · 2020. 5. 25. · antena de sua operadora. sabemos...

45
Universidade Federal Fluminense Instituto de Computa¸ c ˜ ao Departamento de Ci ˆ encia da Computa¸ c ˜ ao Henrique do Prado Linhares Aplicativo m´ ovel colaborativo para monitoramento georreferenciado de intensidade de sinal celular Niter´oi-RJ 2017

Upload: others

Post on 25-Jan-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

  • Universidade Federal Fluminense

    Instituto de Computação

    Departamento de Ciência da Computação

    Henrique do Prado Linhares

    Aplicativo móvel colaborativo para monitoramento

    georreferenciado de intensidade de sinal celular

    Niterói-RJ

    2017

  • ii

    Henrique do Prado Linhares

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

    Monografia apresentada ao Departamento

    de Ciência da Computação da Universidade

    Federal Fluminense, como requisito parcial

    para obtenção do Grau de Bacharel em

    Sistemas de Informação.

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

    Niterói-RJ

    2017

  • 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

  • iv

    ”Existem apenas duas coisas dif́ıceis em Ciência da

    Computação: invalidação de cache e dar nome às

    coisas.”

    (KARLTON, Phil)

  • v

    Agradecimentos

    A esta universidade, seu corpo docente, direção e administração.

    Ao Prof. Dr.-Ing. Raphael Pereira de Oliveira Guerra pela oportunidade e apoio na elaboração

    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ções na minha formação.

    A todos que direta ou indiretamente fizeram parte da minha formação.

  • vi

    Lista de Figuras

    2.1 Representação 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ção de um mapa de intensidade de sinal da região de Niterói utilizando a interface

    web da aplicação OpenSignal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    3.3 Mapa gerado pela aplicação OpenSignal para a intensidade de sinal da operadora OI na

    região de Niterói no dia 27/05/2017 às 13:20 (UTC-3, horário de braśılia) . . . . . . . . . 11

    3.4 Mapa gerado pela aplicação Coverage Map para a intensidade de sinal da operadora OI na

    região de Niterói no dia 27/05/2017 às 13:20 (UTC-3, horário de braśılia) . . . . . . . . . 12

    3.5 Tela principal da aplicação Antennas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    4.1 Mapa com um grande número de pontos, prejudicando a visualização do terreno e a com-

    preensão da informação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    4.2 Contraexemplo de mapa de intensidade de sinal celular: exibir os números em DBM torna

    dif́ıcil para o usuário a compreensão do mapa. . . . . . . . . . . . . . . . . . . . . . . . . . 17

    4.3 Protótipo de mapa de intensidade de sinal celular . . . . . . . . . . . . . . . . . . . . . . . 18

    5.1 Primeira tela do aplicativo, que exibe as leituras realizadas pelo dispositivo do usuário. . . 24

    5.2 Segunda tela do aplicativo, que exibe o mapa global, gerado através do compartilhamento

    de leituras realizadas por diversos usuários. . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    5.3 Terceira tela do aplicativo, que exibe as configurações dispońıveis. . . . . . . . . . . . . . 26

  • vii

    Lista de Tabelas

    4.1 Todas as propostas de consolidação de dados na aplicação . . . . . . . . . . . . . . . . . . 20

    4.2 Propostas viáveis de consolidação de dados na aplicação . . . . . . . . . . . . . . . . . . . 21

    6.1 Tabela de resultados do experimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

  • Sumário

    Agradecimentos v

    Lista de Figuras vi

    Lista de Tabelas vii

    Resumo x

    Abstract xi

    1 Introdução 1

    1.1 Definição do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    1.2 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    1.3 Contribuição Deste Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    1.4 Organização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    2 Conceitos Básicos 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ão Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    4.2 Armazenamento de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    viii

  • ix

    4.3 Visualização dos Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    4.4 Melhorando o Desempenho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    5 Prototipação 22

    5.1 Tecnologias Utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    5.2 Compilando e executando o aplicativo iOS . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    5.3 Executando o servidor da aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    5.4 Telas do App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    6 Avaliação e Experimentos 27

    6.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    6.2 Métricas de avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    6.3 Realização do experimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    6.4 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    6.5 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    7 Conclusão 30

  • 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ários realizem

    leituras de intensidade de sinal celular nas regiões onde estiveram, e é capaz de gerar um mapa exibindo a

    intensidade de sinal celular destas regiões. Além disso, será posśıvel agregar as informações fornecidas por

    diversos usuários para gerar e disponibilizar um mapa colaborativo, exibindo quais localizações possuem

    boa cobertura de sinal celular e quais não possuem. Desta forma, podemos estimular a concorrência entre

    as operadoras de telefonia celular, que devem se esforçar para melhorar a qualidade do serviço prestado,

    assim como entregar para os usuários informações valiosas, que vão auxiliar na tomada de decisão sobre

    qual operadora contratar.

    Palavras-chave: Sinal Celular, Aplicação iOS, Aplicação Mobile, Intensidade do Sinal Celular,

    Mapeamento.

  • 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

  • Caṕıtulo 1

    Introdução

    Os grandes avanços tecnológicos que ocorreram nos últimos anos trouxeram muito mais capa-

    cidade de processamento e armazenamento de dados nos celulares, e os avanços 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ência como ferramenta que mantém a pessoa conectada às redes de

    telefonia e de computadores.[Rice and Katz, 2003]

    Estes avanços tecnológicos atendem as demandas de mobilidade e conectividade, ou seja, a neces-

    sidade que os usuários possuem de estar conectado com as redes de telefonia e de computadores durante

    24 horas por dia, independente se estão em casa, no trabalho, se deslocando entre estes, ou em qualquer

    outra localização geográfica.

    Os usuários de smartphone utilizam majoritariamente duas tecnologias para manter a conecti-

    vidade com a internet: as redes locais sem fio, baseadas no padrão IEEE 802.11 e as redes de telefonia

    celular, que possuem tecnologias como 3G.[Lehr and McKnight, 2003]

    1.1 Definição do Problema

    Ao estudar e compreender como funcionam as redes de telefonia celular, entendemos que para o

    usuário estar conectado com a rede de telefonia, ele precisa estar dentro de uma área coberta por uma

    antena de sua operadora. Sabemos que as antenas possuem um raio de atuação limitado, que o número

    de antenas instaladas também é limitado, e a existência do sinal celular depende do posicionamento das

    antenas.[Viswanathan, 2016]

    No Brasil, as empresas de telecomunicações são empresas privadas, e cada empresa adota sua

    própria poĺıtica sobre instalação de antenas. O problema em questão é a falta de informação transpa-

    rente e confiável que os consumidores possuem sobre a cobertura de sinal oferecida pelas empresas de

    telecomunicações. Não é posśıvel para o consumidor avaliar as diferenças entre as operadoras de telefonia

    no que diz respeito à 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ém, realizar essas medições

  • 2

    seria um trabalho árduo, ainda mais se feito por um grupo pequeno de pessoas, em um páıs de dimensões

    continentais tão grande quanto o Brasil. Além disso, a intensidade do sinal em uma região 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ência posśı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ão, e o

    consumidor poderá escolher a operadora que irá melhor atender suas necessidades.

    O mapeamento geográfico da intensidade de sinal permite aos usuários a visualização das regiões

    em que determinada operadora possui uma boa cobertura, e as regiões que não possuem uma boa cober-

    tura, para que dessa forma o usuário seja capaz de tomar uma decisão consciente de qual é a operadora

    que irá lhe fornecer a melhor cobertura para determinada localização.

    Estaremos também estimulando a concorrência entre as operadoras, pois o mapeamento da in-

    tensidade do sinal celular irá revelar para o usuário as informações sobre a qualidade do serviço prestado.

    Uma vez que os usuários tenham posse destas informações, as operadoras vão se esforçar para entregar

    um sinal de alta qualidade.

    Os mapas de intensidade de sinal celular também servem como uma ferramenta para os consu-

    midores cobrarem melhor qualidade do serviço prestado pelas operadoras, caso a mesma esteja deixando

    a desejar.

    1.3 Contribuição Deste Trabalho

    Este trabalho apresenta o desenvolvimento de um aplicativo móvel iOS para mapear geografica-

    mente a intensidade de sinal fornecido pelas operadoras telefônicas.

    Esta aplicação utiliza dados compartilhados pelos próprios usuários para possibilitar a criação e

    manutenção de um grande sistema de informação. Uma outra aplicação que segue este mesmo conceito

    é o Waze, que coleta dados de usuários que estão dirigindo para manter um sistema que é capaz calcular

    rotas que desviem de engarrafamentos.

    Também podemos destacar como uma contribuição que os artefatos produzidos neste trabalho es-

    tarão disponibilizados publicamente através do link https://github.com/linharesh/SignalStrength,

    e os componentes desenvolvidos podem ser executados, copiados, distribúıdos, estudados e modificados,

    de acordo com as premissas do software livre.

    1.4 Organização

    Este trabalho é estruturado da seguinte forma:

    https://github.com/linharesh/SignalStrength

  • 3

    • No caṕıtulo 2 ”Conceitos básicos” são 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 caṕıtulo pode servir de auxilio para o leitor que não esteja

    familiarizado com o conteúdo abordado neste trabalho.

    • No caṕıtulo 3 ”Trabalhos relacionados” são apresentados outros trabalhos desenvolvidos que pos-

    suem finalidades e objetivos alinhados com este projeto.

    • No caṕıtulo 4 ”Arquitetura do Sistema” são apresentados os elementos utilizados para projetar

    a aplicação apresentada neste trabalho.

    • No caṕıtulo 5 ”Prototipação” são apresentadas as tecnologias e ferramentas utilizadas para o de-

    senvolvimento do protótipo da aplicação mobile e do servidor. Além disso, neste caṕıtulo apresen-

    tamos um guia ensinando a compilar a aplicação mobile e executar o servidor.

    • No caṕıtulo 6 ”Avaliação e Experimentos” são apresentados experimentos realizados para ava-

    liar o aplicativo desenvolvido.

    • No caṕıtulo 7 ”Conclusão” é feita uma reflexão sobre o trabalho desenvolvido, as dificuldades en-

    contradas, os objetivos alcançados e as metas futuras.

  • Caṕıtulo 2

    Conceitos Básicos

    Neste caṕıtulo serão apresentados conceitos básicos 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 caṕıtulo serão 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óvel) é uma rede de telecomunicações projetada para

    fornecer serviços de telefonia móvel, como transmissão de dados e de voz. O telefone móvel é chamado

    de celular pois as regiões geográficas são divididas em células. Este sistema de células funciona pois

    são utilizadas células pequenas, mas também há um reaproveitamento de frequências de transmissão em

    células vizinhas. O padrão circular não é utilizado para representação de células porque nele podem

    surgir áreas de sombra e sobreposição de sinais, por esse motivo é utilizado um modelo hexagonal para

    tal representação como apresentado na figura 2.1, onde podemos observar que os hexágonos representam

    as células, e no centro de cada célula temos uma antena.[RODRIGUES, 2000]

  • 5

    Figura 2.1: Representação de uma rede celular

    2.2 Intensidade de Sinal celular

    A intensidade do sinal celular é um valor correspondente ao sinal recebido por um telefone celular

    de uma antena de rede celular. A recepção do sinal celular pode depender de vários fatores, como a

    proximidade da antena de transmissão e a presença de obstáculos como prédios e montanhas.

    Figura 2.2: Intensidade do sinal celular, exibido no topo esquerdo da tela

  • 6

    Normalmente, estamos acostumados a ler a intensidade do sinal em nossos próprios 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á sendo

    discretizado em 5 valores, para então ser representado graficamente. Porém existem outras formas de

    representar este valor.

    Uma das formas de representação da intensidade de sinal é a medida em dBm ou decibéis. Esta

    representação mede a força em decibéis das ondas de rádio, e é amplamente utilizada nas áreas de

    telecomunicações. As medidas em dBm são sempre negativas, e sua faixa de operação fica entre -50dBm

    e -115dBm. O valor de -50dBm indica um sinal perfeito, enquanto -115dBm indica a ausência de sinal.

    Outra representação existente é a ASU, que é uma sigla para Arbitrary Strength Unit, ou Unidade

    de Força Arbitrária. A medida em ASU é um valor inteiro entre 0 e 31 que representa a intensidade do

    sinal recebida pelo celular. Nesta representação, 31 indica um sinal excelente enquanto 0 indica a ausência

    de sinal.

    É posśıvel realizar a conversão de valores em dBm para ASU, assim como de ASU para DBM.

    Em uma rede GSM, a fórmula para realizar a conversão de ASU para dBm é apresentada na equação

    2.1, enquanto a fóruma para realizar a conversão de dBm para ASU é apresentada na equação 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ém conhecido como GPS, é um sistema de radiona-

    vegação desenvolvido pelo Departamento de Defesa dos Estados Unidos da América com o intuito de

    ser o principal sistema de navegação das forças armadas americanas. Este sistema utiliza a triangulação

    de satélites para descobrir o posicionamento de um dispositivo no globo terrestre, e é capaz de fornecer

    informações como latitude, longitude, entre outros. Em razão da alta acurácia proporcionada pelo sis-

    tema e do grande desenvolvimento da tecnologia envolvida nos receptores GPS, uma grande comunidade

    usuária 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. É o protocolo que

    permite a sincronização dos relógios dos dispositivos de uma rede como servidores, estações de trabalho,

    roteadores e outros equipamentos à partir de referências de tempo confiáveis.[NTP.BR, 2016]

    O NTP é baseado no protocolo UDP e opera na porta 123, e é capaz de fornecer a sincronização

    de relógio com grande precisão, na ordem dos nanosegundos e preservando uma data não amb́ıgua. O

  • 7

    protocolo inclui mecanismos para especificar a precisão e erro estimado do relógio local e as caracteŕısticas

    do relógio de referência 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ário é um mecanismo utilizado

    por operadoras de telefonia celular para fornecer para os dispositivos conectados na rede a identificação

    da rede e o fuso horário local através da própria rede.[Bari and Bonner, 2011] Este mecanismo pode ser

    utilizado para sincronizar automaticamente o relógio do celular.

    2.6 Marca Temporal (Timestamp)

    Marca temporal ou Timestamp é uma sequência de caracteres que representam um instante no

    tempo. Marcas temporais possuem diversos usos na computação, como marcar o ińıcio e o fim de eventos,

    por exemplo a criação e edição de arquivos no computador.

    A marca temporal possui uma representação f́ısica e uma interpretação temporal. A representação

    f́ısica corresponde a uma amostra de bits, enquanto a interpretação 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”.

  • Caṕıtulo 3

    Trabalhos relacionados

    Neste caṕıtulo são apresentados outros trabalhos desenvolvidos que possuem finalidades e obje-

    tivos alinhados com este projeto.

    3.1 Anatel Mosaico

    A Agência Nacional de Telecomunicações(ANATEL) disponibiliza publicamente o acesso a uma

    ferramenta que pertence ao Sistema Mosaico: a consulta de intensidade de sinal de celular. [TeleŚı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ário. O cálculo é realizado com base nas

    informações técnicas das estações do Serviço Móvel Pessoal (SMP) cadastradas no banco de dados da

    Anatel pelas operadoras.[PORTAL-BRASIL, 2016]

    Esta aplicação se destaca por ser uma iniciativa da ANATEL, um órgão governamental, e por

    possuir uma fonte consistente de dados, baseada no SMP. Porém, sua grande desvantagem é a visualização

    do mapa, que exibe a intensidade do sinal apenas de um ponto, quando o usuário realiza um clique no

    mapa.

  • 9

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

    no mapa.

    Este tipo de visualização não permite que o usuário consiga visualizar com facilidade a cobertura

    de sinal celular em grandes regiões, como em uma cidade inteira. Aplicações que utilizam mapas de

    calor tornam esta visualização mais fácil e intuitiva, uma vez que mapas de calor são uma das melhores

    ferramentas de visualização de dados de densidade de pontos. Mapas de calor são utilizados para iden-

    tificar facilmente aglomerados e encontrar onde existe uma elevada concentração de uma determinada

    atividade.[Gandhi, 2016]

    Infelizmente, o sistema Anatel Mosaico não disponibiliza uma API para que outros sistemas ex-

    ternos possam consultar os dados de intensidade de sinal celular. Caso estes dados fossem disponibilizados

    através de uma API, seria posśıvel o desenvolver um aplicativo que utilizasse os dados do Anatel Mosaico,

    porém exibisse os dados através de uma visualização por mapa de calor.

    3.2 OpenSignal App

    A OpenSignal é uma empresa britânica especializada em mapeamento de redes sem fio, que

    trabalha com aplicativos para celular. Entre os produtos desta empresa, o aplicativo também chamado

    OpenSignal é 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 caracteŕıstica do OpenSignal é o fato de não ser uma aplicação que respeite as premissas

    do software livre. O código fonte desta aplicação não é disponibilizado para ser executado, copiado,

    distribúıdo, estudado nem modificado pela comunidade de usuários e desenvolvedores. Apesar de dispo-

    nibilizar mapas de intensidade de sinal, os dados coletados pelos usuários desta aplicação também não

    estão dispońıveis publicamente.

  • 10

    Figura 3.2: Visualização de um mapa de intensidade de sinal da região de Niterói utilizando a interface

    web da aplicação 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 é um aplicativo bastante simples e com menos funcionalidades se comparado ao OpenSig-

    nal. [Mukherjee, 2011] Uma vantagem do Coverage Map é que por ser simples, possui uma usabilidade

    agradável: é um aplicativo fácil de usar e com poucas telas. Porém sua principal desvantagem é possuir

    uma base de dados com poucas informações. 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ência maior.

    Assim como o OpenSignal, o Cell Map não é um software livre e não disponibiliza publicamente

    os dados coletados.

    A comparação entre os mapas gerados para a região de Niterói é exibida nas figuras 3.4 e 3.3.

    Ambos os mapas foram gerados em 27/05/2017 às 13:20 (UTC-3, horário de braśılia), filtrando apenas

    pelo sinal da operadora OI.

    http://www.rootmetrics.com/

  • 11

    Figura 3.3: Mapa gerado pela aplicação OpenSignal para a intensidade de sinal da operadora OI na região

    de Niterói no dia 27/05/2017 às 13:20 (UTC-3, horário de braśılia)

  • 12

    Figura 3.4: Mapa gerado pela aplicação Coverage Map para a intensidade de sinal da operadora OI na

    região de Niterói no dia 27/05/2017 às 13:20 (UTC-3, horário de braśılia)

    3.4 Antennas

    ”Antennas é um aplicativo simples que lê dados do gerenciador de redes de telefonia do aparelho

    móvel e mostra esses dados em um belo gráfico desenhado por cima do Google Maps”.[Polymenakos, 2010]

  • 13

    Figura 3.5: Tela principal da aplicação Antennas

    O aplicativo Antennas, dispońıvel apenas para Android, exibe um mapa com a localização do

    usuário e das antenas localizadas em sua vizinhança. O aplicativo possui uma premissa simples e cumpre

    ela adequadamente, porém não se trata de uma ferramenta limitada, quando comparada com os outros

    trabalhos relacionados apresentados neste caṕıtulo.

  • Caṕıtulo 4

    Arquitetura do Sistema

    Neste caṕıtulo são apresentados os elementos utilizados para projetar a aplicação apresentada

    neste trabalho.

    4.1 Visão Geral

    Esta aplicação será dividida em duas partes: o cliente e o servidor. O cliente corresponde ao

    sistema que roda nos celulares e é responsável por realizar as leituras da intensidade do sinal do dispositivo.

    O cliente também exibe para o usuário as leituras realizadas pelo dispositivo, de duas formas: através de

    um mapa ou através de texto. Já o servidor corresponde a parte da aplicação que será responsável por

    armazenar e consolidar os dados das leituras de todos os usuários, assim como disponibilizar estes dados

    para consultas. O desenvolvimento desta aplicação apresenta dois grandes desafios: o armazenamento dos

    dados sobre intensidade de sinal lidos pelos celulares, que é tratado na seção ”Armazenamento de Dados”, e

    a visualização e representação adequada destes dados em um mapa, que é tratado na seção ”Visualização

    dos Dados”. A seção ”Melhorando o Desempenho”apresenta sugestões que podem ser utilizadas para

    melhorar o desempenho da aplicação, resultando em um menor consumo de memória em disco para

    armazenar as leituras realizadas, assim como menor consumo de banda de rede para trafegar dados entre

    cliente e servidor, e também 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, é necessário realizar leituras e arma-

    zenar dados destas leituras realizadas. Esta seção visa discutir quais dados devem ser armazenados, e o

    porquê.

    A primeira informação necessária de ser armazenada é o valor da intensidade do sinal celular.

    Esta informação pode ser representada de múltiplas formas, porém existem duas representações que são as

    mais adotadas: a representação por decibéis, ou dBm, e a representação por Unidade de Força Arbitrária,

  • 15

    também chamada de ASU. Com o objetivo de manter a consistência dos dados de intensidade de sinal, é

    necessário adotar um formato único para armazenar o valor da intensidade do sinal.

    Além de medir a intensidade do sinal celular, outro dado que precisa ser armazenado é a localiza-

    ção de onde a leitura de intensidade de sinal foi realizada. Sem saber a localização da leitura é imposśıvel

    mapear as regiões com melhor e pior cobertura de sinal celular. Portanto, quando uma leitura de in-

    tensidade de sinal for realizada, é necessário associar a esta leitura de intensidade de sinal a localização

    geográfica do dispositivo no momento em que a leitura foi feita. A localização geográfica pode ser obtida

    de diversas formas, porém uma forma de obter este dado que é adotada na grande maioria dos smartpho-

    nes atualmente é através do GPS, ou Sistema de Posicionamento Global. O GPS dos smartphones é

    capaz de prover uma coordenada, que é composta por dois números reais que indicam o posicionamento

    geográfico 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ém associar a operadora com a leitura realizada.

    Outro dado que precisa ser armazenado é a marca temporal (data e horário) em que a leitura

    foi realizada. Sabemos que a intensidade do sinal celular para uma determinada região não é um valor

    imutável: Diversos acontecimentos podem alterar a intensidade do sinal celular em uma região ao longo

    do tempo. Por exemplo: uma construção civil pode prejudicar a intensidade do sinal em uma região,

    ao atuar como um bloqueio para as ondas celulares. Já a instalação de uma nova antena pode melhorar

    a qualidade do sinal. Como esta aplicação trabalha com dados compartilhados de diversos usuários, e

    os usuários poderão realizar inúmeras medidas de intensidade de sinal na mesma região geográfica em

    diferentes peŕıodos do tempo, é necessário armazenar a marca temporal em que a leitura foi realizada

    pois não podemos misturar dados que foram lidos em janelas de tempo diferentes. Para exemplificar

    a necessidade de armazenar a marca temporal, vamos visualizar uma situação fict́ıcia: A região R foi

    visitada por um total de 10 usuários, que utilizaram seus smartphones para medir a qualidade do sinal

    da mesma operadora na região. Destes 10 usuários, 9 visitaram a região no ano de 2016, e todos eles

    registraram o valor de -108 dBm. Já o outro usuário realizou a visita em 2017, e observou que a intensidade

    de sinal registrava o valor de -55 dBm. No exemplo citado, a média aritmética simples entre os valores

    lidos resultaria em -102,7 dBm, que está muito mais próximo de -108 dBm do que de -55 dBm, e não seria

    um resultado correto. Por isto, não devemos misturar leituras que tenham sido realizadas em janelas de

    tempo distintas.

    Como pretendemos armazenar a marca temporal em que a leitura foi realizada, é 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 é posśıvel consultar o calendário e o

    relógio do sistema operacional para descobrir a marca temporal atual. O problema é que não é posśıvel

    garantir que o calendário e o relógio do sistema operacional estão configurados com os valores de data e

    hora corretos. Desta forma, é necessário que exista uma sincronização entre a data dos dispositivos que

    estejam realizando as leituras. A utilização de serviços como o NTP (Network Time Protocol), assim

    como a própria sincronização de relógio fornecida pelas operadoras de telefonia celular são úteis para

  • 16

    manter a sincronização de relógio entre diversos dispositivos.

    4.3 Visualização dos Dados

    Quando as leituras são realizadas a aplicação armazena diversos dados, entre eles dois valores

    relativos à localização geográfica: A latitude e a longitude que correspondem ao posicionamento geográfico

    do telefone no momento em que a leitura foi realizada. Armazenando a leitura desta forma, nós estamos

    associando a intensidade do sinal celular com uma coordenada, que representa um ponto no mapa.

    Representar pontos em um mapa é algo simples quando se trata de um pequeno número de

    pontos. Porém, conforme o número 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 é tão grande que dificulta a visualização do próprio mapa, assim como a

    compreensão da informação exibida.

    Figura 4.1: Mapa com um grande número de pontos, prejudicando a visualização do terreno e a compre-

    ensão da informação

    Além disso, acreditamos que os usuários desta aplicação estarão interessados em visualizar o

    mapeamento de intensidade de sinal para regiões, como um estado, uma cidade ou um bairro, e não para

    pontos espećıficos.

    Decidimos adotar a representação da intensidade de sinal por regiões. Quando o usuário visualizar

    o mapa, ele deverá ver um mapa com regiões demarcadas. Para cada região demarcada, o sistema deverá

    exibir para o usuário a intensidade do sinal celular para aquela região.

    Um dos desafios apresentados por este trabalho é descobrir uma forma adequada de representar

    a intensidade do sinal celular para uma região. Sabemos que as leituras de intensidade de sinal podem

    ser representadas de diversas formas, sendo que os formatos DBM e ASU são os mais utilizados para

    representar a intensidade do sinal celular, e estas representações utilizam números.

    Uma forma simples de exibir a intensidade de sinal celular seria demarcar uma região e exibir na

  • 17

    tela o valor médio em DBM para aquela região. Porém, esta forma de visualizar a intensidade do sinal

    não é fácil para o usuário, que ao olhar para uma região não consegue dizer com clareza se a cobertura

    de sinal naquela região é satisfatória ou não.

    Figura 4.2: Contraexemplo de mapa de intensidade de sinal celular: exibir os números em DBM torna

    dif́ıcil para o usuário a compreensão do mapa.

    Buscando uma representação que torne mais fácil para o usuário a compreensão do mapa de

    intensidade de sinal, adotamos neste projeto a discretização 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ém disso, associamos cada uma das categorias com uma cor, para exibição no mapa.

    As regiões do mapa deverão ser preenchidas com cores para representar a intensidade do sinal

    celular dentro daquela região, 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ões que não estiverem mapeadas vão aparecer sem nenhuma cor.

  • 18

    Figura 4.3: Protótipo de mapa de intensidade de sinal celular

    Para representar as regiões do mapa de forma adequada, é necessário determinar o tamanho das

    regiões que serão exibidas. O tamanho das regiões exibidas deve ser definido em função da altura da

    câmera do mapa: quando o usuário estiver visualizando o mapa através de uma câmera muito alta, o

    tamanho das regiões geográficas deve ser proporcionalmente grande. Conforme o usuário aproxima a

    câmera do solo, o tamanho das regiões geográficas exibidas deve ser reduzido proporcionalmente.

    Para implementar a representação de intensidade de sinal por regiões, nós adotamos neste tra-

    balho o conceito de quadrante. No contexto desta aplicação, um quadrante representa uma área coberta

    por um poĺıgono, mais especificamente um quadrilátero regular.

    Na figura 4.3, exibimos um protótipo de como esperamos que seja visualizado um mapa de

    intensidade de sinal celular.

    Uma deficiência desta representação apresentada no protótipo é a exibição de regiões retangulares

    com transições muito bruscas entre os quadrantes. Este tipo de representação pode levar o usuário a ter

    uma compreensão errada do mapa: o usuário 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ça deve ocorrer de forma gradual, portanto

    seria adequado que o mapa representasse as mudanças de intensidade de sinal celular de uma região para

    outra de forma gradual.

    4.4 Melhorando o Desempenho

    A aplicação 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ção tem como objetivo apresentar e avaliar propostas que podem melhorar o desempenho da aplicação

    e economizar recursos computacionais.

    Para gerar uma economia no espaço ocupado pelas leituras, apresentamos como proposta a con-

    solidação de leituras. A consolidação de leituras consiste em uma técnica utilizada para transformar um

  • 19

    número N de leituras de intensidade de sinal celular em apenas uma leitura.

    Um exemplo para explicar a consolidação seria quando um usuário do aplicativo permanece

    exatamente na mesma localização por um peŕıodo de cinco minutos. Durante estes cinco minutos, o

    aplicativo vai realizar N leituras de intensidade de sinal, mesmo que o usuário não tenha se deslocado.

    Como o intervalo de tempo é muito pequeno, e a localização do usuário não mudou, se torna redundante

    armazenar no banco de dados todas as N leituras realizadas nesta situação. Por isto, a técnica de

    consolidação pode ser utilizada para transformar as N leituras em apenas uma leitura.

    Para executar a consolidação de leituras é necessário utilizar regras para selecionar quais leituras

    são candidatas à consolidação. As regras definidas definidas para selecionar as leituras candidatas à

    consolidação foram de distância geográfica entre leituras, e intervalo de tempo entre as leituras. Para que

    duas (ou mais) leituras sejam candidatas à consolidação a distância geográfica 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ção 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édia móvel das intensidades de sinal que

    foram selecionadas para a consolidação. Com a criação do registro consolidado, as leituras que foram

    utilizadas na consolidação podem ser apagadas. Neste projeto, a média móvel foi calculada utilizando o

    valor de Alpha como 0.5, porém novos estudos podem ser realizados para avaliar o impacto da utilização

    de outros valores de Alpha para o cálculo da média móvel neste aplicativo. A fórmula utilizada para o

    cálculo da média móvel está representada na equação 4.1.

    V F = (V 1 ∗ (1 −ALPHA)) + (V 1 ∗ALPHA) (4.1)

    Com o objetivo de gerar uma economia no espaço ocupado nos dispositivos móveis, assim como

    gerar uma economia no volume de dados transferido do cliente para o servidor, sugerimos a utilização da

    técnica de consolidação nos próprios dispositivos móveis.

    Com o objetivo de gerar uma economia no espaço ocupado pelas leituras salvas no servidor,

    apresentamos como proposta a utilização da técnica de consolidação, já apresentada neste trabalho com o

    objetivo de economizar o espaço de armazenamento nos dispositivos móveis. A ideia consiste em aplicar

    a mesma técnica de consolidação, só que desta vez nas leituras armazenadas no servidor da aplicação.

    Porém, como gostaŕıamos possibilitar a consulta do histórico da intensidade do sinal celular,

    podemos avaliar também a possibilidade de classificar as leituras no servidor por intervalo de tempo.

    Com a adoção desta técnica, as leituras seriam consolidadas no servidor apenas se estiverem dentro do

    mesmo intervalo temporal. Desta forma, se torna posśıvel economizar espaço de armazenamento sem

    abrir mão do histórico, pois se duas leituras realizadas na mesma localização geográfica porém em janelas

    de tempo distintas forem consolidadas, não será posśıvel consultar o histórico de intensidade de sinal.

    Fazendo combinações com as 3 técnicas de economia de espaço em disco propostas, geramos a

    tabela 4.1, com um total de 8 posśıveis propostas (de P1 até P8) de quais técnicas utilizar na aplicação.

  • 20

    Tabela 4.1: Todas as propostas de consolidação de dados na aplicação

    Consolidação cliente Consolidação no servidor Consolidação no servidor por intervalo de tempo

    P 1 Não Não Não

    P 2 Não Não Sim

    P 3 Não Sim Não

    P 4 Não Sim Sim

    P 5 Sim Não Não

    P 6 Sim Não Sim

    P 7 Sim Sim Não

    P 8 Sim Sim Sim

    A proposta P1 consiste em não realizar nenhum tipo de consolidação. É a abordagem que ocupa

    mais espaço tanto nos celulares dos usuários quanto no servidor da aplicação.

    A proposta P2 não é uma proposta viável, pois não faz sentido consolidar as leituras no servidor

    separadas por intervalo de tempo se não desejamos consolidar leituras no servidor.

    A proposta P3 consiste em consolidar as leituras apenas no servidor, sem realizar a separação por

    intervalo de tempo. Esta proposta economiza espaço de armazenamento no servidor, porém tem como

    principal desvantagem não possibilitar a consulta de histórico da intensidade de sinal.

    A proposta P4 consiste em consolidar as leituras apenas no servidor, realizando a separação por

    intervalo de tempo. Esta proposta economiza espaço de armazenamento no servidor e permite a consulta

    de histórico de intensidade de sinal.

    A proposta P5 consiste em consolidar as leituras apenas no cliente. Esta proposta economiza

    espaço de armazenamento no cliente e permite a consulta de histórico de intensidade de sinal.

    A proposta P6 não é uma proposta viável, pelo mesmo motivo da inviabilidade de P2.

    A proposta P7 consiste em consolidar as leituras tanto no cliente quanto no servidor, porém sem

    realizar a separação por intervalo de tempo no servidor. Esta proposta economiza espaço de armazena-

    mento no cliente e no servidor, porém tem como principal desvantagem não possibilitar a consulta de

    histórico da intensidade de sinal.

    A proposta P8 consiste em consolidar as leituras tanto no cliente quanto no servidor, realizando

    a separação por intervalo de tempo no servidor. Esta proposta economiza espaço de armazenamento no

    cliente e no servidor, porém e permite a consulta de histórico da intensidade de sinal.

    Removendo as propostas P2 e P6, que não são viáveis, temos a tabela 4.2, com as propostas

    viáveis de consolidação de dados na aplicação.

  • 21

    Tabela 4.2: Propostas viáveis de consolidação de dados na aplicação

    Consolidação cliente Consolidação no servidor Consolidação no servidor por intervalo de tempo

    P 1 Não Não Não

    P 3 Não Sim Não

    P 4 Não Sim Sim

    P 5 Sim Não Não

    P 7 Sim Sim Não

    P 8 Sim Sim Sim

  • Caṕıtulo 5

    Prototipação

    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ão 7.3.1. A linguagem utilizada para desenvolvimento foi o Swift na versão 2.2.

    A aplicação foi constrúıda originalmente para a versão 9.3 do iOS, que era a versão mais atual na fase de

    desenvolvimento do projeto.

    Já o servidor foi desenvolvido em Ruby on Rails, utilizando a versão 5.0.0.1 do framework Rails,

    e a versão 2.3.0 da linguagem Ruby. No desenvolvimento deste projeto, o banco de dados utilizado foi o

    PostgreSQL, na versão 9.5.5.

    5.2 Compilando e executando o aplicativo iOS

    Para compilar e executar o aplicativo iOS, é necessário instalar o ambiente integrado de desen-

    volvimento Xcode versão 7.3.1, que pode ser encontrado para download no link https://developer.

    apple.com/download/more/.

    Após instalar o Xcode 7.3.1, é necessário baixar o repositório que contém o código do app. O

    link para o repositório é https://github.com/linharesh/SignalStrength. É posśıvel baixar todo

    o projeto em uma pasta compactada(.zip), ou utilizar o Git para clonar o repositório, através da url

    https://github.com/linharesh/SignalStrength.git.

    Com o repositório baixado, o próximo passo é instalar as dependências do projeto. O CocoaPods

    (https://cocoapods.org/) foi o sistema utilizado para gerenciamento de dependências deste app. O

    CocoaPods pode ser instalado ao executar o comando sudo gem install cocoapods no terminal do

    Mac.

    Após instalar o gerenciador de dependências CocoaPods, devemos abrir o terminal e navegar até

    a pasta raiz do projeto. Dentro da pasta raiz do projeto, utilizamos o comando pod install para fazer

    o download e instalar as dependências do app.

    https://github.com/linharesh/SignalStrengthhttps://github.com/linharesh/SignalStrength.githttps://developer.apple.com/download/more/https://cocoapods.org/https://developer.apple.com/download/more/

  • 23

    Assim que a instalação das dependências do projeto for conclúıda, o CocoaPods irá gerar na

    pasta raiz do projeto um arquivo com extensão ”.xcworkspace”. O próximo passo é abrir este arquivo

    com o Xcode 7.3.1, que o projeto será carregado para o workspace do Xcode. É importante notar que

    existem dois arquivos que podem ser abertos pelo XCode: O ”.xcworkspace”e o ”.xcodeproj”. O arquivo

    correto é o com extensão ”.xcworkspace”. Caso o arquivo ”.xcodeproj”seja aberto, as dependências não

    serão carregadas automaticamente, o que irá trazer mais complexidade para a construção do projeto.

    Com o XCode aberto, podemos observar que no canto superior esquerdo da tela podemos seleci-

    onar qual é o destino (target) em que desejamos executar a aplicação. É posśıvel selecionar um simulador

    de iOS, ou um dispositivo iOS que esteja conectado no computador por uma porta USB. Após definir o

    destino, basta utilizar o atalho command + r para compilar e executar o app.

    5.3 Executando o servidor da aplicação

    Para rodar o servidor da aplicação, é necessário instalar a linguagem Ruby na versão 2.3.0 e o

    banco de dados PostgreSQL na versão 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ões da linguagem Ruby no mesmo computador,

    e permite que o programador administre estas versões. Mais informações sobre o RVM podem ser en-

    contradas na url https://rvm.io/. A utilização do RVM não é necessária para executar esta aplicação,

    porém é recomendada.

    Após instalar a linguagem Ruby e o banco de dados PostgreSQL, é necessário baixar o reposi-

    tório que contém o código do servidor. O link para o repositório é https://github.com/linharesh/

    LocationSignalServer. É posśıvel baixar todo o projeto em uma pasta compactada(.zip), ou utilizar o

    Git para clonar o repositório, através da url https://github.com/linharesh/LocationSignalServer.

    git.

    Com o repositório baixado, o próximo passo é instalar as dependências do projeto. O Bundler

    (https://cocoapods.org/) foi o sistema utilizado para gerenciamento de dependências deste servidor

    de aplicação. O Bundler pode ser instalado ao executar o comando gem install bundler no terminal

    do computador.

    Após instalar o gerenciador de dependências Bundler, devemos abrir o terminal e navegar até a

    pasta raiz do projeto. Dentro da pasta raiz do projeto, utilizamos o comando bundle install para baixar

    e instalar as dependências do servidor de aplicação.

    Quando a instalação das dependências terminar, devemos utilizar o automatizador de tarefas

    Rake(https://github.com/ruby/rake) para criar o banco de dados e realizar as migrações necessárias.

    Estas tarefas já estão 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á informar que o servidor está executando. Para encerrar o servidor,

    basta fechar o terminal ou utilizar o atalho Ctrl + c.

    https://github.com/linharesh/LocationSignalServerhttps://github.com/ruby/rakehttps://rvm.io/https://github.com/linharesh/LocationSignalServer.githttps://cocoapods.org/https://github.com/linharesh/LocationSignalServer.githttps://github.com/linharesh/LocationSignalServer

  • 24

    5.4 Telas do App

    Figura 5.1: Primeira tela do aplicativo, que exibe as leituras realizadas pelo dispositivo do usuário.

  • 25

    Figura 5.2: Segunda tela do aplicativo, que exibe o mapa global, gerado através do compartilhamento de

    leituras realizadas por diversos usuários.

  • 26

    Figura 5.3: Terceira tela do aplicativo, que exibe as configurações dispońıveis.

  • Caṕıtulo 6

    Avaliação e Experimentos

    6.1 Objetivos

    Na Tabela 4.2 foram apresentadas todas as propostas viáveis de consolidação de dados na aplica-

    ção. O objetivo deste caṕıtulo é avaliar as vantagens, desvantagens e impactos de diferentes abordagens

    para armazenamento e consolidação de dados na aplicação.

    Este experimento será realizado levando em conta que manter o histórico da intensidade de sinal

    é imprescind́ıvel. Sendo assim, as propostas avaliadas neste experimento são P1(não realizar nenhuma

    consolidação), P4(consolidar somente no servidor, separando por intervalo de tempo) e P8(consolidar no

    cliente e no servidor, sendo que a consolidação no servidor deve ser separada por intervalo de tempo).

    6.2 Métricas de avaliação

    Uma métrica deste experimento é o volume de dados armazenados no banco de dados do servidor,

    medido em bytes. Através desta medição, vamos conseguir avaliar entre as três propostas apresentadas,

    quais são as que mais economizam espaço no banco de dados do servidor da aplicação, e quais que mais

    consomem estes recursos.

    Outra métrica usada é o volume de dados transferido do aplicativo móvel para o servidor da

    aplicação. Através desta medição, vamos conseguir avaliar entre as três propostas apresentadas, quais

    são as que mais economizam recursos de rede, e quais que mais consomem estes recursos.

    6.3 Realização do experimento

    Para descobrir o volume de dados transmitido pela rede, foi necessário escrever uma pequena

    aplicação utilizando NodeJS (https://nodejs.org/en/). Esta aplicação se comporta como o servidor,

    e recebe as leituras do dispositivo móvel, porém ao invés de salvar estas leituras em um banco de dados,

    a aplicação 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ção foi nomeada Post-Content-Size, e

    está disponibilizada publicamente através da url https://github.com/linharesh/post-content-size.

    https://nodejs.org/en/https://github.com/linharesh/post-content-size

  • 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ço ocupado em disco por cada um

    destes bancos.

    Vale notar que o banco de dados da aplicação mesmo sem nenhuma leitura de intensidade de sinal

    armazenada, ocupa espaço em disco. Nesta aplicação, 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ção adequada

    sobre o uso de espaço em disco de cada proposta de consolidação, devemos considerar o volume de dados

    ocupado apenas pelos dados da aplicação. 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ção deste experimento, o aplicativo móvel foi instalado no telefone de um estudante,

    e o aplicativo monitorou a qualidade do sinal durante o peŕıodo de 4 dias, sem realizar nenhum tipo de

    consolidação.

    Após coletar as leituras utilizadas no experimento, o aplicativo móvel foi configurado para não

    apagar estas leituras após o envio para o servidor. Fizemos isto pois queŕıamos preservar a amostra para

    que ela pudesse ser utilizada em todos os experimentos. As amostras coletadas estão dispońıveis através

    do seguinte link: https://github.com/linharesh/post-content-size/tree/master/Experimentos.

    Todos os três experimentos seguiram o mesmo processo: Configuração da proposta de consolida-

    ção avaliada no aplicativo móvel e no servidor(P1, P4 e P8), transferência das as leituras do aplicativo

    móvel para o Post-Content-Size para medir o volume de dados trafegado na rede, e então transmissão

    das mesmas leituras do aplicativo móvel para o servidor da aplicação. Por último, aguardar o servidor

    realizar as consolidações caso ele esteja programado para isto, e então medir o volume de dados ocupado

    no servidor.

    6.4 Resultados

    Para o experimento que avalia a proposta P1, que consiste em não realizar nenhum tipo de

    consolidação, nem no cliente nem no servidor, o volume de dados transferido na rede foi de 1.678.751

    bytes. Já o volume de dados armazenado no servidor foi de 1.528.000 bytes.

    Já para o experimento que avalia a proposta P4, que consiste em não realizar consolidação no

    cliente, mas realizar a consolidação 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á

    que nestes dois experimentos não houve nenhuma alteração na abordagem de consolidação no cliente.

    Portanto, o volume de dados transferido foi exatamente o mesmo. Já o volume de dados armazenado no

    servidor foi de 120.000 bytes.

    No experimento que avalia a proposta P8, que consiste em realizar consolidação no cliente e no

    servidor, sendo que a consolidação no servidor deve ser separada por intervalo de tempo, o volume de

    dados transferido na rede foi de 29.121 bytes. Já o volume de dados armazenado no servidor foi de 96.000

    https://github.com/linharesh/post-content-size/tree/master/Experimentos

  • 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ção

    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ões

    Com relação ao volume de dados trafegado na rede, podemos concluir que a utilização da con-

    solidação de dados no cliente reduziu significativamente o volume de dados trafegado. Ao realizar a

    consolidação 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á com relação ao volume de dados ocupado no banco de dados do servidor, podemos concluir que

    a utilização da técnica de consolidação 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ção de 12,73 vezes no volume de dados armazenados. Comparando P1 com P8 esta

    diferença continua significativa, desta vez de 15,91 vezes.

  • Caṕıtulo 7

    Conclusão

    Neste trabalho foi apresentado o desenvolvimento de um aplicativo móvel para mapear a inten-

    sidade de sinal celular. O aplicativo desenvolvido atende as necessidades propostas, e se mostrou capaz

    de realizar leituras de intensidade de sinal celular e gerar um mapa com as leituras feitas no próprio

    dispositivo. Além disso, podemos enviar as leituras para um servidor que irá armazenar as leituras feitas

    por todos os usuários e podemos gerar um mapa constrúıdo utilizando informações compartilhadas por

    diversos usuários.

    Foram apresentadas propostas para economia de recursos computacionais, e nos experimentos

    realizados estas propostas se mostraram eficientes. Como sugestão de trabalhos futuros, novas propostas

    podem ser estudadas. Além disso, também 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ções na intensidade do sinal exibida nos mapas e como minimizar este efeito.

    Muitos dos objetivos propostos foram alcançados, e conclúımos este trabalho com apresentando

    um aplicativo que atende as situações apontadas na Introdução, e resolve o problema mencionado.

    Além disso, todo o código fonte desenvolvido neste trabalho é 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ão de disponibilizar o código

    fonte deste trabalho possa contribuir com outros projetos, que podem reutilizar componentes de software

    desenvolvidos neste trabalho.

    Uma sugestão para trabalho futuro consiste tentar melhorar o mapa de intensidade de sinal celular

    gerado pelo aplicativo. A representação através de regiões retangulares possui deficiências, e acreditamos

    que a mudança de intensidade de sinal celular de uma região para outra deveria ser representada de uma

    forma gradual, para que o mapa represente algo mais próximo da distribuição de intensidade de sinal

    celular no mundo real.

    A criação e disponibilização do servidor apresentado nesta pesquisa possibilita diversos traba-

    lhos futuros, como a possibilidade de que diversos aplicativos existentes que já monitoram a localização

    geográfica do usuário passem a monitorar em segundo plano a intensidade de sinal celular, desde que o

    usuário concorde em disponibilizar estas informações. Isto possibilitaria um potencial significativo para

    https://github.com/linharesh/SignalStrengthhttps://github.com/linharesh/post-content-sizehttps://github.com/linharesh/LocationSignalServer

  • 31

    crescimento no número de usuários fornecendo informações para o sistema. Para facilitar a integração

    do servidor apresentado nesta pesquisa com aplicativos de terceiros, sugiro a criação de um guia para

    utilização da API do servidor.

    Além disso, a partir do momento em que o banco de dados do sistema estiver populado com

    dados reais, uma série de estudos podem ser realizados sobre estes dados, buscando estabelecer relações

    entre a intensidade do sinal celular e outros fatores. Fatores ambientais podem ser relacionados, como

    condições climáticas, meteorológicas e geográficas e também fatores sociais como desenvolvimento urbano

    e econômico.

  • Referências Bibliográficas

    [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-coverage-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ä-Jääski, 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ça 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.

    32

    http://www.qgistutorials.com/pt_BR/docs/creating_heatmaps.htmlhttp://www.brasil.gov.br/infraestrutura/2016/07/anatel-lanca-ferramenta-para-consulta-de-sinal-de-celularhttp://www.brasil.gov.br/infraestrutura/2016/07/anatel-lanca-ferramenta-para-consulta-de-sinal-de-celularhttp://ntp.br/ntp.phphttp://www.qgistutorials.com/pt_BR/docs/creating_heatmaps.htmlhttp://www.panix.com/~mpoly/android/antennas/r1.0/http://www.makeuseof.com/tag/rootmetrics-coverage-of-carriers/http://www.panix.com/~mpoly/android/antennas/r1.0/

  • 33

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

    wirelessbr/colaboradores/marcio_rodrigues/tel_01.html.

    [TeleŚıntese, 2016] TeleŚıntese, R. (2016). Anatel lanÇa 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].

    https://www.lifewire.com/how-does-a-mobile-network-work-2373338https://www.lifewire.com/how-does-a-mobile-network-work-2373338http://www.telesintese.com.br/anatel-lanca-sistema-que-aponta-onde-o-sinal-do-celular-esta-fraco/http://www.telegraph.co.uk/technology/mobile-app-reviews/9854742/OpenSignal-app-review.htmlhttp://www.telesintese.com.br/anatel-lanca-sistema-que-aponta-onde-o-sinal-do-celular-esta-fraco/http://www.telegraph.co.uk/technology/mobile-app-reviews/9854742/OpenSignal-app-review.htmlhttp://www.wirelessbrasil.org/wirelessbr/colaboradores/marcio_rodrigues/tel_01.htmlhttp://www.wirelessbrasil.org/wirelessbr/colaboradores/marcio_rodrigues/tel_01.html

    AgradecimentosLista de FigurasLista de TabelasResumoAbstractIntroduçãoDefinição do ProblemaObjetivoContribuição Deste TrabalhoOrganização

    Conceitos BásicosRede de telefonia celularIntensidade de Sinal celularSistema de Posicionamento GlobalNetwork Time Protocol (NTP)Network Identity and Time Zone (NITZ)Marca Temporal (Timestamp)

    Trabalhos relacionadosAnatel MosaicoOpenSignal AppCoverage MapAntennas

    Arquitetura do SistemaVisão GeralArmazenamento de DadosVisualização dos DadosMelhorando o Desempenho

    PrototipaçãoTecnologias UtilizadasCompilando e executando o aplicativo iOSExecutando o servidor da aplicaçãoTelas do App

    Avaliação e ExperimentosObjetivosMétricas de avaliaçãoRealização do experimentoResultadosConclusões

    Conclusão