Henrique do Prado Linhares - Portal - IdUFF · 2020. 5. 25. · antena de sua operadora. Sabemos...
Transcript of Henrique do Prado Linhares - Portal - IdUFF · 2020. 5. 25. · antena de sua operadora. Sabemos...
-
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