Luziânia
05 de Julho de 2017
Instituto Federal de Goiás
Tecnologia em Análise e Desenvolvimento de Sistemas
Luziânia
05 de Julho de 2017
G635a Gonçalves, Aparecido Carlos V.
SMRA - Aplicativo de gestão de animais para dispositivos móveis com NFC e plataforma
Android. / Aparecido Carlos V. Gonçalves, Íthalo Fabrício G. S. de Oliveira. – 2017.
74 f. ; 30 cm.
CDD 005.1
AGRADECIMENTOS
Agradecemos primeiramente a Deus que nos permitiu este momento. Aos nossos pais, que
contribuíram ao longo de nossas vidas servindo-nos de referência para superarmos as dificuldades e
seguirmos em frente, a nossas companheiras que estiveram sempre a nos apoiar, compreender e ajudar nos
momentos que estivemos a precisar, a nossos irmãos, a todos os professores que contribuíram em nosso
processo de formação em especial ao nosso orientador Prof. Me. Henrique que nos prestou importantes
esclarecimentos e sugestões e a todos os demais parente e amigos que estiveram de alguma forma,
seja ela direta ou indiretamente, nos apoiando a cada degrau avançado nesta caminha exploratória de
conhecimentos fazendo com que conseguíssemos alcançar este ponto que marca o início de uma nova
jornada de busca por novos conhecimentos e compartilhamento de tudo o que nos foi compartilhado e
ensinado ao longo deste período que finalizamos.
RESUMO
GONÇALVES, Aparecido Carlos Vieira, OLIVEIRA, Íthalo Fabrício Gonçalves Soares
de. SMRA - Aplicativo de gestão de animais para dispositivos móveis com
NFC e plataforma Android. Luziânia, 05 de Julho de 2017. 74p. Trabalho de
Conclusão de Curso. Instituto Federal de Goiás
Este documento apresenta o Sistema de Manejo e Rastreabilidade Animal (SMRA), desenvolvido para a
plataforma Android que está disponível numa variedade de dispositivos móveis atuais como smartphones
e tablets. o aplicativo visa auxiliar pequenos produtores na gestão de animais, utilizando tecnologia de
fácil acesso e baixo custo, fornecendo ferramentas e informações para facilitar seu trabalho. A capacidade
de trabalhar com NFC e baixo custo de implantação é a principal características do SMRA. O aplicativo
encontra-se descrito neste trabalho.
Palavras-chave: Gestão de animais, Aplicativo, Android, SMRA, NFC, RFID, Rastreabilidade, Manejo.
ABSTRACT
This document introduces the Animal Handling and Traceability System (SMRA), developed to enableArea
that is available on a variety of current mobile devices with smartphones and tablets. The application
aims to assist small producers in the management of animals, using affordable and low-cost technology,
providing tools and information to facilitate their work. The ability to work with NFC and low deployment
cost is the main feature of SMRA. The application is described in this work.
Figura 1 – Número de produtores por área por Estado - Ano base 2006 [1]. . . . . . . . . . . . . 15
Figura 2 – Topologia genérica de uma rede para computação móvel [2]. . . . . . . . . . . . . . . . 18
Figura 3 – Estados de uma operação de desconexão [2]. . . . . . . . . . . . . . . . . . . . . . . . . 20
Figura 4 – A unidade móvel (carro) viaja de uma célula para a outra, ainda mantendo a conexão,
graças ao processo de handoff (adaptada de [3]). . . . . . . . . . . . . . . . . . . . . . 20
Figura 5 – PDA - Personal Digital Assistant [4]. . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Figura 6 – Smartphone [5]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Figura 7 – Tablet [6]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Figura 8 – Notebook [7]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Figura 9 – Utilização do celular ultrapassa o uso de microcomputadores no acesso a intertet [8]. . 26
Figura 10 – Ranking de vendas no Brasil de smartphones com sistema operacional Android [9]. . . 28
Figura 11 – Arquitetura do Sistema Android [10]. . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Figura 12 – Replicação de banco de dados (adaptada de [11]). . . . . . . . . . . . . . . . . . . . . 34
Figura 13 – Acesso da Biblioteca SQLite ao arquivo de banco de dados [12]. . . . . . . . . . . . . . 38
Figura 14 – Tag RFID e suas camadas [13]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Figura 15 – Funcionamento do Sistema RFID [14]. . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Figura 16 – Funcionamento do NFC (adaptada de [15]). . . . . . . . . . . . . . . . . . . . . . . . . 44
Figura 17 – Gravando ações para um aplicativo do smartphone em uma Tag NFC [16]. . . . . . . 45
Figura 18 – Efetuando pagamentos com o Smartphone através da tecnologia NFC [17]. . . . . . . 45
Figura 19 – Troca de arquivos através do NFC, bastando encostar os dispositivos na tampa traseira
[18]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Figura 20 – Vários padrões de comunicação sem fio que coexistem atualmente [19]. . . . . . . . . . 46
Figura 21 – Modelos diversos de Tags NFC. Imagens da internet, autor desconhecido. . . . . . . . 47
Figura 22 – Ciclo do Scrum [20]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Figura 23 – Modelo relacional do banco de dados do SMRA. . . . . . . . . . . . . . . . . . . . . . 53
Figura 24 – Fragmento do arquivo scriptdb.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Figura 25 – Arquitetura abstrata do SMRA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Figura 26 – Layout de uma activity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Figura 27 – Model é responsável por implementar regras de negocio, recuperar informações e
armazenar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Figura 28 – Controller responsável por mediar as interações do usuário, fornecer os dados do model
para a view se ligar a interface do usuário. . . . . . . . . . . . . . . . . . . . . . . . . 56
Figura 29 – View responsável por exibir os dados ao usuário criando assim uma Interface do usuário
(IU). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Figura 30 – Diagrama de classes do SMRA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Figura 31 – Tela de apresentação. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Figura 32 – Tela principal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Figura 33 – Tela de cadastro de proprietários. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Figura 34 – Tela de cadastro de animais A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Figura 35 – Tela de cadastro de animais B. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Figura 36 – Tela de Cadastro de Eventos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Figura 37 – Tela Dashboard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Figura 38 – Tela de Cadastro de Raças. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Figura 39 – Tela Cadastros Locais. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Figura 40 – Tela de Backup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Figura 41 – Tela lançamento de manejo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Figura 42 – Tela Cadastros animais por manejo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Figura 43 – Aplicativo BovControl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Figura 44 – Aplicativo Brabov. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Figura 45 – Aplicativo SisBov. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
LISTA DE TABELAS
3G Terceira Geração
4G Quarta Geração
CD Compact Disc
HF High Frequency
IP Internet Protocol
IU Interface do usuário
LAN Local Area Network
LF Low Frequency
MVC Model-View-Controller
PC Computador Pessoal
QR Quick Response
SO Sistema Operacional
XP Extreme Programming
SUMÁRIO
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.1 Contextualização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2 Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.1 Objetivo geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.2 Objetivos específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.5 Estrutura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2 REFERENCIAL TEÓRICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1 Computação móvel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.1 Características da computação móvel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.1.1 Mobilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.1.2 Desconexão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.1.3 Handoff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.1.4 Adaptação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.2 Tecnologias de comunicação sem fio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.2.1 Telefonia celular 3G e 4G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.2.1.1 3G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.2.1.2 4G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.2.2 Wi-Fi (Wireless Fidelity ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.2.3 Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.3 Restrições da computação móvel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2 Dispositivos móveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3 Sistemas operacionais para dispositivos móveis . . . . . . . . . . . . . . . . . . . . . . 26
2.3.1 Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.1.1 Arquitetura Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.1.2 Desenvolvimento Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.3.1.3 Definições e Permissões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.3.1.4 Componentes do Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3.1.5 Persistência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4 Gerenciamento de banco de dados móveis . . . . . . . . . . . . . . . . . . . . . . . . 32
2.4.1 Características . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.4.1.1 Replicação e sincronização de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.4.1.2 Caching e difusão de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.4.1.3 Gerenciamento de localidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.4.1.4 Transações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.4.1.5 Recuperação de falhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4.1.6 Segurança . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4.2 SQLite Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.5 Identificação por radiofrequência (RFID) . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.5.1 Componentes de um sistema RFID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.5.1.1 Etiqueta eletrônica (Tag ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.5.1.2 Antenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.5.1.3 Leitor ou Transceiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.5.1.4 Controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.5.2 Funcionamento do sistema RFID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.5.3 Frequências operacionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.5.4 Tipos de memória . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.6 Near Field Communication (NFC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.6.1 Etiquetas NFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.7 Metodologias ágeis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.7.1 Extreme Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.7.2 Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.7.2.1 Papéis do Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.7.2.2 Ciclo do Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.7.2.3 Etapas do Sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
14
1 INTRODUÇÃO
1.1 Contextualização
De acordo com estudo realizado pelo Centro de Estudos de Economia Agrícola (CEPEA) da
Escola Superior de Agricultura Luiz de Queiroz de Piracicaba - SP, publicado em matéria no portal G1,
o agronegócio brasileiro emprega 19 milhões de pessoas representando 20% do total de 91 milhões de
trabalhadores empregados no país. O estudo mostra que o setor do agronegócio que mais emprega é o da
agricultura familiar com 11,5 milhões de trabalhadores, excluindo-se desta contagem os agricultores que
produzem para consumo próprio [24].
De acordo com o relatório anual 2016 sobre o perfil da pecuária no Brasil, disponibilizado no
portal da Associação Brasileira das Indústrias Exportadoras de Carne (ABIEC), a pecuária é responsável
por cerca de 30% do PIB do agronegócio no país, em especial a criação de bovinos. Segundo o relatório,
no ano de 2016 o Brasil possuía cerca de 209,13 milhões de cabeças de gado distribuídos em 167 milhões
de hectares, onde maior parte dessa distribuição se dá entre os produtores classificados como produtores
de médio e pequeno porte que possuem áreas de até 200 Hectares para criação de seus animais. Por meio
da Figura 1 é possível observar o número de produtores de cada estado com dados coletados no censo
2006 [25, 1].
No país, grande parcela dos produtores rurais, aproximadamente 83% de acordo com dados
do censo agropecuário de 2006, exercem a agricultura familiar [26] e conforme observado na Figura 1,
enquadram-se como pequenos produtores tendo como principal fonte de renda a criação de animais. Para
obtenção de melhores resultados, os produtores necessitam de uma gestão efetiva de suas criações, a fim de
assegurar aos produtores qual a quantidade de animais por faixa de idade de sua propriedade, o controle
alimentício e de vacinação, registro histórico de eventos que podem ocorrer com cada animal ao longo de
sua vida e diversas outras informações específicas de cada criação que tornam o manejo destes animais
menos complexo.
A não existência desses dados para o produtor, pode acarretar em autuação por não cumprimento
da legislação vigente e redução de lucros. Atualmente no mercado existem softwares para esta gestão,
porém, está fora da realidade orçamentária de um pequeno produtor por exigir altos investimentos em
equipamentos e mão de obra qualificada. Partindo dessa premissa surge a necessidade de um aplicativo
que permita essa gestão a baixo custo, auxiliando os produtores no manejo de suas criações.
Capítulo 1. Introdução 15
Figura 1 – Número de produtores por área por Estado - Ano base 2006 [1].
Por meio deste trabalho será desenvolvido um aplicativo para dispositivos móveis que possuem o
sistema operacional Android que possibilitará a gestão de animais, e caso este dispositivo móvel possua a
tecnologia Near Field Communication (NFC) ela poderá ser utilizada para a otimização do seu uso.
1.2 Problema
Com o aumento crescente das obrigações exigidas pelo Ministério da Agricultura, Pecuária e
Abastecimento, das autarquias estaduais e dos órgãos de defesa sanitária animal, os produtores devem
ficar atentos para o cumprimento das medidas sanitárias obrigatórias, nos prazos e condições determinadas
pelo Serviço Veterinário Oficial (SVO).
Além das diversas regras e normas impostas pela legislação, diversos outros fatores tais como a
falta de tecnologia, as condições precárias das estradas, a baixa qualidade de mão de obra, a concorrência
acirrada, os clientes mais exigentes, a necessidade de otimizar custos e gerenciar a jornada de trabalho,
dentre outros, dificultam e tornam cada vez mais complexa a administração de uma pequena propriedade
rural.
Diante destas dificuldades, produtores de grande porte fazem altos investimentos em software de
gerenciamento de animais existentes no mercado, porém, os pequenos e médios produtores possuem baixo
poder aquisitivo e são obrigados a concorrer com os grandes lideres em produtividade e qualidade.
1.3 Objetivos
1.4 Justificativa
Sabendo que a maior parcela dos produtores do país enquadram-se como pequenos e médios
produtores, e que atualmente ferramentas tecnológicas para o gerenciamento de propriedades exigem
investimentos elevados e são de difícil acesso para essa categoria de produtores, identifica-se a necessidade de
um aplicativo que faça melhor aproveitamento de tecnologias existentes, tais como smartphones que muitos
produtores já utilizam em seu dia a dia, ampliando as possibilidades de utilização de seus dispositivos
permitindo obter menores custos de manutenção, implantação e que permita melhores resultados no
gerenciamento de suas propriedades para que essa categoria de pequenos e médios produtores tenham
maior capacidade competitiva de mercado.
1.5 Estrutura
• No capítulo 2 é apresentado o referencial teórico, onde será possível a compreensão dos conceitos
básicos necessários para o entendimento do trabalho.
2 REFERENCIAL TEÓRICO
Diante do cenário onde as pessoas passaram a utilizar os dispositivos móveis como parte de sua
rotina, a computação móvel é vista como um novo paradigma computacional que permite aos usuários
diversas formas de aplicações a seus dispositivos móveis tais como criar, acessar, processar, armazenar e
compartilhar a informação onde quer que estejam até mesmo durante mudanças de localização, ampliando
o conceito de computação distribuída [28, 30].
A comunicação de dispositivos com redes fixas ou móveis através de um meio sem fio, ignorando
a localização do usuário, podendo inclusive, estar em movimento é descrita através da utilização do termo
computação móvel. Para que a computação móvel seja possível faz-se necessário o uso de dispositivos
móveis, tais como smartphones, tablets, notebooks, Personal Digital Assistants (PDAs) dentre outros
equipados com tecnologia que permita a comunicação sem fio e toda a infraestrutura de comunicação sem
fio viabilizada nas áreas de comunicação celular, serviços via satélite e redes locais sem fio [27, 28, 30, 2] .
2.1.1.1 Mobilidade
2.1.1.2 Desconexão
Devido a estrutura da comunicação móvel sem fio, a confiabilidade e qualidade das conexões são
comprometidas. Neste ambiente é comum a ocorrência de desconexões intencionais como no caso de um
dispositivo que realizam a desconexão para poupar energia em situações de baixo nível de bateria ou não
intencionais nos casos onde o dispositivo é desconectado espontaneamente por estar em uma região onde
não há cobertura. Devido a essas situações diversas os aplicativos, os sistemas operacionais e os protocolos
de comunicação devem estar aptos a suportar oscilações na qualidade destas conexões [34, 33].
As operações de desconexão envolvem três estados distintos e esses estados podem se alternar a
cada ocorrência de uma desconexão, como visto na Figura 3 [2].
O estado de operações locais ocorre no período em que o dispositivo está desconectado da rede
fixa podendo realizar operações apenas dos dados que possuem no banco de dados local, isso ocorre após o
Capítulo 2. Referencial teórico 20
hoarding. Caso os dados necessários não estejam disponíveis, é criada uma fila para execução de operações
futuras que ocorrerão na próxima conexão à rede.
Por fim, o estado de reintegração que ocorre durante a reconexão, quando os dados são sincroni-
zados na unidade fixa conforme as informações provenientes dos dispositivos conectados. Uma situação de
sincronização concorrente entra em funcionamento e deve ser tratada por uma semântica correta para que
não ocorra inconsistência nos dados sincronizados.
2.1.1.3 Handoff
Handoff é a capacidade de uma rede de dar suporte dinâmico à migração de terminais móveis
entre suas células. É através desse processo, ilustrado na Figura 4, que usuários da rede conseguem manter
seus dispositivos móveis conectados ao sair de uma célula para outra vizinha. Ou seja, graças ao handoff
é possível perder o contato com uma estação base numa célula, estabelecendo contato com outra sem, no
entanto, haver desconexão, esta troca deve ocorrer quando o host móvel (o carro da Figura 4) está na
região onde as células se sobrepõem [3].
Figura 4 – A unidade móvel (carro) viaja de uma célula para a outra, ainda mantendo a conexão, graças
ao processo de handoff (adaptada de [3]).
Capítulo 2. Referencial teórico 21
Isto implica que uma estação base pode detectar qualquer entrada e qualquer saída de usuários
dentro e fora da sua célula. Durante o processo de handoff, as estações base são responsáveis pela
comunicação sem fio das unidades móveis, sendo que este processo é realizado de forma transparente ao
usuário [33].
2.1.1.4 Adaptação
Devido a constante mudança de contexto de um usuário móvel, ocasionado por seu deslocamento
no ambiente, faz-se necessário que as unidades móveis sejam adaptativas a fim de garantir o seu correto
funcionamento. À capacidade de ajuste e a possibilidade de produzir resultados apesar de condições
adversas dá-se o nome de adaptação. Dispositivos neste ambiente devem possuir a capacidade de executar
um número crescente de tipos de aplicações e se adaptar a situações onde há uma demanda por recursos
computacionais nem sempre disponíveis e outras, onde os recursos são abundantes e aparentemente
dispensáveis [3].
As estratégias de adaptação de um ambiente móvel variam entre dois pontos extremos. Num
extremo, a adaptação é de inteira responsabilidade das aplicações individuais. Apesar de evitar a necessidade
de suporte do sistema, a este tipo de abordagem falta um gerenciador central a fim de resolver a
incompatibilidade de demanda por recursos em diferentes contextos e impor limites no uso destes recursos.
As aplicações também se tornam mais difíceis de codificar. No outro extremo, a responsabilidade da
adaptação é inteiramente do sistema. O sistema fornece total gerenciamento e controle. Sistema nesse
contexto é a infraestrutura computacional (servidores, links de comunicação e etc.) aos quais as aplicações
individuais funcionam. Entre estes dois extremos, estão as possibilidades que são coletivamente referidas
como adaptações cientes da aplicação. Esta abordagem permite que as aplicações determinem o quanto
devem se adaptar, mas preserva a habilidade do sistema de monitorar os recursos e decidir onde alocá-los
[34, 30].
2.1.2.1.1 3G
A partir do surgimento da tecnologia de terceira geração (3G), iniciou-se uma nova forma de
utilização dos telemóveis que passaram a ter uma nova aparência física e deixaram de ter as chamadas
como principal função dando espaço a novas funcionalidades para estes dispositivos, tais como, envio
de e-mails, registro de imagens através das câmeras de video que passaram a ser incorporadas a estes
dispositivos, além de reproduzirem musicas e interagirem com o meio Web assim como os computadores
[35].
Os sistemas móveis de terceira geração (3G), chamados de sistemas International Mobile Telecom-
munications - 2000 (IMT-2000), foram projetados para prover o acesso a diferentes tipos de serviços de
comunicação de dados, e também voz, dentre eles aplicações multimídia, acesso Web e outras aplicações
que precisam de uma largura de banda não controlada normalmente em redes celulares 2G e 2,5G. Os
sistemas de terceira geração são uma evolução dos sistemas 2G [28].
Esta tecnologia permite às operadoras da rede oferecer a seus usuários uma variedade de avançados
serviços, já que possuem uma capacidade de rede maior por causa de uma melhora na eficiência espectral,
ou seja, uma melhoria na taxa de informação que pode ser transmitida em uma dada largura de banda
Capítulo 2. Referencial teórico 22
quando comparada a tecnologias anteriores a ela. Entre os serviços, há a telefonia por voz e a transmissão
de dados a longas distâncias, tudo em um ambiente móvel. Normalmente, são fornecidos serviços com
taxas de 5 a 10 Megabits por segundo [36].
2.1.2.1.2 4G
A tecnologia de quarta geração (4G) também conhecida por LTE (Long Term Evolution) é a
mais recente e atual evolução das redes de comunicação móvel. Essa tecnologia promete a seu utilizador
vantagens superiores ao que é oferecido pela tecnologia 3G. Essa tecnologia consegue fornecer velocidades
de download na ordem dos 150MBps, capacidade de visualizar vídeos em alta definição através dos
dispositivos móveis, menor latência na conexão, dentre outras vantagens [37].
Conhecido como “Wi-Fi ” abreviação de Wireless Fidelity, utiliza a tecnologia de rádio no padrão
IEEE 802.11 para conectar computadores uns aos outros, à Internet e a outras redes cabeadas usando
Ethernet[36].
O padrão de redes locais sem fio (802.11) define o protocolo e a compatibilidade de interconexão
de equipamentos de comunicação de dados via ar, rádio ou infravermelho em uma rede local (LAN) usando
o “Carrier Sense Multiple Access Protocol With Collision Avoidance” (CSMA/CA) como mecanismo de
compartilhamento do meio. O Media Access Control (MAC) suporta operações abaixo do controle do
ponto de acesso assim como entre as estações independentes. O protocolo inclui autenticação, associação e
reassociação de serviços, um procedimento opcional que cifra e decifra o gerenciamento de energia[36].
O padrão inclui a definição de base de informação gerenciável usando uma linguagem para
descrever informações estruturadas denominada Abstract Syntax Notation One (ASN.1) e especifica o
Capítulo 2. Referencial teórico 23
protocolo MAC formalmente, usando a linguagem de descrição e especificação Specification and Description
Language (SDL) definida pela União Internacional das Telecomunicações [36].
2.1.2.3 Bluetooth
Bluetooth é uma tecnologia para conexão sem fio do padrão IEE/802.15, que é de curta distância
utilizada em dispositivos móveis como celulares, palms, fones de ouvido, microfones, computadores entre
outros. A tecnologia Wireless Bluetooth é um padrão de fato e uma especificação para enlaces entre
dispositivos móveis, usando ondas de rádio de curto alcance.
A proposta da tecnologia Bluetooth é habilitar os usuários para a conexão de uma grande variedade
de dispositivos de computação e telecomunicações de maneira simples e fácil, sem a necessidade de cabos.
Como a tecnologia é baseada em enlace via rádio, é fácil a transmissão rápida e segura de voz e dados
na rede. A operação do Bluetooth é efetuada em uma banda de frequência entre 2.402 e 2.480 Ghz
que está globalmente disponível e tem compatibilidade mundial, sendo portanto um padrão global para
conectividade wireless.
• Restrições dos dispositivos móveis: devido à limitação de tamanho, dispositivos móveis continu-
arão tendo algumas limitações, como por exemplo, velocidade do processador, capacidade de memória,
tamanho da tela e sua resolução. A diversidade arquitetural proporciona grande variabilidade das
configurações de hardware das unidades móveis;
• Restrições de comunicação: limitações como largura de banda, desconexão, alta latência e área
de cobertura;
Para [38] as redes de dados móveis proporcionaram novas formas de comunicação através do uso
de dispositivos móveis tais como Personal Digital Assistant (PDA), atualmente esse tipo de dispositivo
é pouco utilizado uma vez que as tecnologias atuais ultrapassaram a gama de benefícios que este tipo
de equipamento oferecia em sua época de criação, tablets e smartphones. Estes equipamentos vão muito
além de assistentes pessoais e agendas eletrônicas, são computadores que podem facilmente serem levados
a qualquer lugar com intuito de suprir as necessidades de profissionais e pessoas em movimento que
necessitam de facilidade, rapidez e segurança no acesso a informações sejam elas pessoais ou corporativas.
Capítulo 2. Referencial teórico 24
Existem inúmeros aparelhos que podem ser utilizados no ambiente de computação móvel, no
entanto a escolha do equipamento adequado irá depender de fatores como tipo de atividade, modelo de
captura e apresentação das informações e volumes de dados esperados. Veja a seguir alguns dos dispositivos
móveis mais utilizados [39, 33]:
• Smartphone
São telefones celulares com funções mais avançadas. O termo “smart” vem do inglês e significa
“inteligente”, sendo assim “telefones inteligentes”, esses dispositivos permitem conexão com a internet
através de meios sem fio (wireless), possuem a capacidade de executar softwares, possuem processa-
mento gráfico e de informações entre outros recursos disponibilizados por eles, a Figura 6 ilustra
alguns desses dispositivos móveis. Atualmente a maior desvantagem é o tamanho da tela, a qual,
geralmente é menor que a de um tablet [36].
• Tablet
Capítulo 2. Referencial teórico 25
É um dispositivo pessoal em formato de prancheta que pode ser utilizado para acesso à internet,
organização pessoal, comunicação, acesso de informações, leitura de livros, jornais entre outros.
Também pode ser utilizado para tirar fotos e gravar vídeos, além de possuir uma tela sensível ao
toque (touchscreen) sem a necessidade da utilização de periféricos para navegar, por exemplo, mouse
e teclado externos [36]. A Figura 7 ilustra a representação de um tablet.
• Notebook
É um computador portátil como é ilustrado na Figura 8 com as mesmas funções de um desktop.
Tem maior poder de processamento e armazenamento que o palmtop e o handheld. É também mais
caro. Possui teclado, mouse, CD, DVD, etc. [33]
Para aqueles do time de profissionais móveis que maior parte do tempo é despendido em trabalhos
remotos, estes equipamentos além de serem dedicados podem ainda ser versáteis, multifuncionais e em
alguns casos de uso genérico. Diante da quantidade de recursos existentes nestes dispositivos tornam-
se grandes aliados no âmbito empresarial quando aplicados no uso de coleta de dados e produção de
informações estratégicas agregados a outros recursos tais como internet, câmeras de captura de imagens e
sensores de localização GPS (Global Positioning System) [33, 40].
Uma importante observação é feita por [34], onde esclarece que portabilidade e mobilidade são
conceitos diferentes, um dispositivo pode ser portátil e não possuir capacidade de computação móvel
como, por exemplo, um laptop num carro, ou num avião, realizando tarefas comuns (como processamento
de texto e planilha eletrônica), mas sem capacidade de se conectar a uma rede sem fio (sem um cartão
PCMCIA, por exemplo). Analogamente, num Escritório de uma empresa que funcione num prédio sem
fiação, a LAN (Local Area Network ) será uma rede sem fio (wireless), mas esse não será um caso de
computação móvel.
Essa elevação do número de usuários fez com que fabricantes destes dispositivos buscassem
melhorias na tecnologia a fim de entregar a estes usuários um melhor desempenho no uso de seus
dispositivos e possibilitando aos desenvolvedores inovar no desenvolvimento de suas aplicações gerando
cada vez mais facilidade de utilização e elevando a quantidade de processos e atividades que antes eram
desenvolvidas apenas por desktops locais para serem utilizados em aparelhos móveis[36].
De maneira genérica e simplificada um sistema operacional pode ser entendido como sendo um
programa que realiza o intermédio entre o hardware do computador e seu usuário, de modo que este
usuário consiga de forma descomplicada a realização das operações desejadas sem que ocorra o contato
direto com o hardware do computador[41].
• Sistemas operacionais projetados para o uso em computadores pessoais (PC): Tem maior
ênfase em prover ao usuário uma interface de usuário que seja conveniente e eficiente, permitindo
que games e aplicações comerciais como planilhas, processadores de texto, acesso à internet sejam
facilmente executadas. Os sistemas operacionais mais conhecidos para essa finalidade são Microsoft
Windows, Linux, Mac OS X.
• Sistemas operacionais para dispositivos móveis: Possui características dos sistemas operaci-
onais para computadores pessoais combinados com recursos úteis e necessários para dispositivos
móveis. Os dispositivos portáteis em sua maioria possuem limitações quanto a sua capacidade de
armazenamento e processamento, essa característica os tornam inferiores quando comparados com a
capacidade de armazenamento e processamento dos PC’s no entanto, estes sistemas operacionais são
menores mas possuem capacidade de manipular telefonia, fotografia digital, recursos de localização
GPS e comunicação sem fio, dentre outros. Seu uso é comum em dispositivos que cabem no bolso
tais como telefones celulares, smartphones, tablets e PDAs. Os projetistas deste tipo de sistema
operacional enfatizam a capacidade de gerenciar todo seu hardware com baixíssimo consumo de
energia e a capacidade de prover a informação e a manipulação desta pelo usuário através das
pequenas telas que muitos destes equipamentos possuem. Os sistemas operacionais mais conhecidos
para essa finalidade são Symbian, Windows Phone, IOS e Android que serão abordados na próxima
seção.
2.3.1 Android
O sistema operacional Android foi em outubro de 2003 desenvolvido por uma start-up americana
no vale do Silício chamada Android Inc.. Logo mais, em agosto de 2005 foi adquirida pela empresa
Google que juntamente com a Open Handset Alliance (OHA) que é uma aliança formada por mais de 30
empresas das quais figuram o próprio Google e outras de importância nos ramos de telefonia, fabricação de
semicondutores (Intel) e fabricação de celulares (Motorola), dentre outras, amadureceu o projeto inicial e o
tornou público em 2007 com objetivo de apresentar a primeira plataforma open source de desenvolvimento
para dispositivos móveis baseada no kernel do Linux sendo este, mantido até os dias atuais pela OHA.
Após uma semana do seu lançamento foi liberada a primeira versão do SDK para Android.
Originalmente este sistema foi desenvolvido para câmeras fotográficas, porém, seus desenvolvedores
perceberam um canal de maior exploração no ramo de telefonia ocasionando o desvio de foco do segmento
de câmeras para o segmento de smartphones diretamente competindo com os sistemas Symbian e Windows
Mobile [43, 44].
Seus desenvolvedores o definem como sendo uma pilha de software de código aberto criada para
uma grande variedade de dispositivos com diferentes fatores de forma. Os principais propósitos do Android
são criar uma plataforma de software aberto disponível para operadoras, fabricantes de equipamentos e
desenvolvedores para tornar suas idéias inovadoras uma realidade e para introduzir um produto de sucesso,
real-world que melhora a experiência móvel para os usuários [45].
Em um evento realizado no ano de 2015 o CEO do Google, Sundar Pichai afirmou que o sistema
operacional Android ultrapassou 1,4 bilhão de usuários no mundo [46]. Pesquisa realizada por empresa
americana Kantar Worldpanel, mostra que no ultimo trimeste de 2015 smartphones com sistema Android
se mantiveram na liderança do ranking de vendas no Brasil terminando em dezembro de 2015 com 91,8%
de participação de mercado conforme ilustrado na Figura 10, elevando o indice que em 2014 era de 89%
[47, 9].
Capítulo 2. Referencial teórico 28
Figura 10 – Ranking de vendas no Brasil de smartphones com sistema operacional Android [9].
Baseado no kernel Linux, o Android de forma geral tem sua estrutura dividida nas seguintes
camadas conforme ilustrado na Figura 11:
• Application Framework : É a camada que está ao topo da estrutura. Nesta camada são instaladas
as aplicações construídas pelos desenvolvedores [10, 43].
• Binder Inter-Process Comunication (IPC) Proxies: Situada logo abaixo da camada Appli-
cation Framework. É responsável por realizar a ponte entre as aplicações instaladas na camada
imediatamente acima com a próxima camada denominada System Services. É uma interface que
permite a interação de APIs de alto nível com serviços do sistema que estão situados na camada
inferior a ela [10, 43].
• System Services: Abaixo da camada Binder IPC Proxies, esta camada permite através de módulos
o acesso a hardwares específicos. Divididos em duas categorias, Media Server que são os serviços
responsáveis por gerenciar conteúdos de mídia como gravação e reprodução de áudio e vídeo e
System Server que são serviços responsáveis por gerenciar os demais tipos de serviço do sistema
como notificações. Cada serviço dessa camada é responsável pelo gerenciamento de um componente
especifico como notificações e buscas [10, 43].
• Hardware Astraction Layer (HAL): Permite aos fornecedores de hardware criarem interfaces e
drivers para os hardwares que estes produzem. Dessa forma, é possível a criação e implementação de
novas funcionalidades sem que as demais camadas do sistema sejam afetadas [10, 43].
• Linux Kernel : Por fim temos esta camada que nada mais é que uma versão modificada do kernel
do Linux. Esta versão recebeu algumas modificações tais como, gerenciamento de memórias mais
avançados, apropriados para dispositivos móveis e funcionalidades para dispositivos embarcados
[10, 43].
Capítulo 2. Referencial teórico 29
Para que um desenvolvedor tenha seu aplicativo disponibilizado para uso, faz-se necessário a
publicação deste na loja de aplicativos do Google, Google Play Store, no entanto, além do aplicativo
passar por um processo de avaliação a fim de verificar se não está sendo violada nenhuma das políticas
estabelecidas pela loja é cobrada uma taxa única no valor de US$25 [43].
Obrigatoriamente para cada aplicação desenvolvida para Android deverá existir em seu diretório
raiz um arquivo que disponha de todas as suas definições e permissões. O principal arquivo de configuração
do aplicativo é o AndroidManifest.xml que possui uma estrutura em Extensible Markup Language (XML)
e fica a cargo do desenvolvedor realizar o preenchimento deste arquivo. Nele ficam declarados todos os
recursos que serão utilizados pela aplicação, bem como as definições de permissões para as execuções
das tarefas e informações gerais sobre o aplicativo, como a versão mínima do Android compatível, o
versionamento do aplicativo, a primeira Activity a ser aberta, dentre outras. [48].
Capítulo 2. Referencial teórico 30
Toda aplicação desenvolvida para Android realiza sua comunicação através de componentes, onde
cada componente existente possui identidade única e implementa suas próprias regras, podendo ou não
haver dependências com outros componentes. Os componentes dos aplicativos Android são divididos em
dois grupos: os componentes principais que podem servir de ponto de partida e são responsáveis por
funcionalidades de maior complexidade e os componentes adicionais que não foram projetados para servir
como ponto de partida dos aplicativos servindo apenas para suporte para a realização das atividades dos
componentes principais. Os quatro principais tipos de componentes do Android são a Activity, o Service,
o Content Provider e o Broadcast Receiver, onde [49, 48]:
• Activity : é o componente mais utilizado, tendo como responsabilidade a iteração do usuário com a
tela do dispositivo. Sua representação é tida como uma tela do aplicativo e em um aplicativo que
possua mais de uma Activity será necessário configurar no arquivo Manifest apenas uma delas como
sendo a Activity que será exibida quando o aplicativo for aberto;
• Broadcast Receiver : é o componente responsável por alertas gerados para todo o sistema, ou seja,
é ativado quando ocorre a transmissão de uma mensagem pelo sistema ou qualquer outro aplicativo
para todos aqueles que estiverem ouvindo.
• Intents: representa uma mensagem assíncrona enviada para ativar Activities, Services ou Broadcast
Receivers. A inicialização de uma Activity, seja para navegar dentro do próprio aplicativo ou para a
utilização do serviço de um outro aplicativo, ocorre utilizado esse componente, sendo possível o envio
de dados nesta mensagem de maneira que o componente chamado saiba de uma forma apropriada
realizar o tratamento desta requisição;
• Fragments: representa uma parte de uma Activity. A utilização deste componente permite que o
conteúdo de uma Activity possa ser alterado conforme o tamanho da tela do dispositivo. Caso a
tela possua um tamanho maior e seja suficiente é possível em uma mesma Activity a disposição de
múltiplos Fragments. A partir desse componente tornou-se possível a criação de aplicativos onde a
implementação de Activities ocorra de maneira mais modular;
• Views: representa o elemento mais básico de uma interface de usuário, sendo este elemento o
responsável pelo desenho e pelo tratamento de eventos da estrutura desta interface. Estes componentes
podem ser adicionados em um arquivo XML para a criação da interface do usuário de forma
Capítulo 2. Referencial teórico 31
declarativa, porém, existe a possibilidade de serem gerenciados dinamicamente por meio de comandos
da API Java do Android ;
• Layouts: é um container para Views que realiza o gerenciamento de sua disposição na tela. É um
componente útil para o ajuste da interface do usuário criada de forma declarativa através de um
arquivo XML. Uma série de diferentes Layouts são disponibilizadas pelo Android cada um com suas
particularidades na configuração para disposição dos elementos;
• Recursos: podem ser utilizados pelo código fonte que implementa a lógica de negócio de um
aplicativo Android. Estes recursos incluem imagens estáticas, definição de cores, temas, estilos,
animações e layouts das interfaces de usuário, arquivos de Strings utilizados para internacionalização
do aplicativo, entre outros arquivos de configuração. É possível ainda armazenar arquivos quaisquer
que seu aplicativo pode necessitar.
2.3.1.5 Persistência
Varias opções de persistência de dados dos aplicativos são oferecidas pelo sistema Android. A
escolha de uma solução ideal pode variar de acordo com cada caso e para que ocorra uma escolha adequada
é importante a observação de alguns fatores, tai como: quanto de armazenamento será exigido para
armazenar os dados? Os dados de uma aplicação deverão ser exclusivos ou poderão ser compartilhados?
As possibilidades de armazenamento de dados disponibilizadas pelo Android são [48]:
• Armazenamento interno: Esta opção de persistência utiliza a memória interna do aparelho para
persistir os dados e enquanto a aplicação estiver instalada no aparelho os dados serão mantidos. Por
padrão outras aplicações não poderão recuperar os dados armazenados de outra aplicação, mantendo
uma exclusividade para determinado aplicativo.
• Armazenamento externo: É comum esse tipo de persistência para todo dispositivo que tenha
suporte para armazenamento externo, podendo ser um cartão de memória removível que geralmente
possuem capacidade de armazenamento elevadas. Neste local os dados persistidos são públicos
podendo ser lidos, modificados e ate mesmo removidos por outros aplicativos ou dispositivos que
tenham capacidade de leitura desse tipo de memória, logo, os dados escritos neste local não são
removidos automaticamente quando o usuário remove o aplicativo e sua disponibilidade deverá
sempre ser verificada antes do uso.
• Shared Preferences: É uma Application Programming Interface (API) disponibilizada pelo Android
para realizar a persistência de dados simples, tais como, as variáveis primitivas da linguagem java. Os
dados permanecerão armazenados ainda que o aplicativo não esteja em execução. Além de ser uma
API de fácil utilização, é uma opção adequada para uma pequena quantidade de dados. Geralmente
é empregado no armazenamento de variáveis que devem manter seu valor entre sessões do usuário.
• Nuvem: Para aqueles que não podem se limitar a capacidade de armazenamento local, o Android
permite que seja realizado a persistência dos dados em um servidor remoto através de serviços
de comunicação em nuvem e web services, porém, esta opção esta limitada a disponibilidade e
capacidade de conexão.
• SGBD SQLite: Para armazenamentos de dados que podem ser estruturados em tabelas assim
como um banco de dados relacional, o Android oferece suporte completo SGBD SQLite. Sendo as
informações armazenadas nesse tipo de persistência privadas ao aplicativo que criou o banco.
Capítulo 2. Referencial teórico 32
Nos dias atuais muitas informações são geradas por meio de agendas eletrônicas, pesquisas
cientificas, operações financeiras, avaliações e análises diversas, dentre outras inúmeras formas de produzir
informações, porém, para que informações sejam produzidas é necessário que existam os dados armazenados
para que as pessoas possam trabalhar esses dados e produzir a informação.
Produzir informações por meio de recursos computacionais tem sido uma atividade muito comum
no cotidiano das pessoas e para que isso seja possível, faz-se necessário a existência de um banco de dados
onde é possível manter os dados de forma organizada e relacionados a fim de recupera-los sempre que
necessário por meio de programas que permitam a manipulação destes dados. De forma genérica um banco
de dados é definido como uma coleção de dados relacionados que por meio de uma coleção de programas
conhecidos como SGBD permite ao usuário acessar e modificar estes dados, formando assim um sistema
de banco de dados [41, 50].
Como é possível ter a visão de computação móvel como uma variação da computação distribuída,
[50] aponta dois possíveis cenários para a distribuição dos bancos de dados móveis onde, no primeiro
cenário a distribuição da base de dados se dá principalmente entre os componentes sob a rede cabeada,
possivelmente com replicação integral ou parcial dos dados. Um servidor é responsável por gerenciar sua
própria base de dados através de um SGBD com funcionalidades adicionais para realizar a localização
de unidades móveis e para gerenciar consultas e transações que satisfação as necessidades dos ambientes
móveis. No segundo cenário, a distribuição da base de dados é feita entre os componentes sob a rede
cabeada e sob a rede sem fio. Compartilhando a responsabilidade do gerenciamento da base de dados
entre os servidores de base de dados e as unidades móveis.
De acordo com [50], podem ser aplicados aos bancos de dados móveis muitas das questões
de gerenciamento de bancos de dados distribuídos desde que os aspectos a seguir sejam levados em
consideração:
• Segurança: Por estarem em um ambiente móvel, os dados móveis são mais suscetíveis a perdas e
inconsistências do que os dados que são deixados em uma localização fixa. As técnicas formais para
gerenciamento e autorização de acesso a dados críticos se tornam mais importantes nesse ambiente.
Os dados também são mais voláteis, e as técnicas precisam ser capazes de compensar sua perda.
2.4.1 Características
Alguns fatos que caracterizam os bancos de dados móveis foram citados na seção anterior, nesta
seção serão apresentados individualmente os conceitos de algumas destas características.
Dá-se o nome de replicação ao processo onde um grupo de arquivos ou arquivo individual é copiado
de seu local de armazenamento original para outras maquinas que integram um sistema distribuído. A fim
de obter maior disponibilidade de dados e a performance de aplicações contidas em dispositivos móveis
sobre estes dados, cópias redundantes das informações contidas no banco de dados distribuídos (dados
replicados) são carregadas pelos dispositivos móveis [34]. Através da replicação, recursos de hardware e
rede são otimizados elevando a flexibilidade e a escalabilidade em ambientes heterogêneos, podendo ser
essa replicação parcial ou total. Na replicação parcial apenas uma parte dos dados de um banco de dados
são replicados para outros bancos, já na replicação total todos os dados são replicados de um banco para
outro. Com a replicação total, se pelo menos uma das cópias estiver disponível, a confiabilidade aumenta,
uma vez que o usuário não depende apenas dos dados disponibilizados em uma única localidade. No caso
de acontecer algum problema no sistema, a réplica dos dados é solicitada pelo usuário [2].
Capítulo 2. Referencial teórico 34
A Figura 12 ilustra o cenário onde os dados contidos no banco de dados original são replicados
para outras estações distribuídas na rede, ou seja, cópias idênticas aos dados contidos no banco de dados
original são feitas em outras estações, essas réplicas são sincronizadas com o banco de dados original a
fim de garantir que as transações realizadas pelos dispositivos móveis possam ser realizadas através das
réplicas ainda que o banco de dados original não esteja disponível para acesso direto e imediato pelos
dispositivos móveis.
• Sessão: Neste esquema, a replicação ocorre através de uma linha de comunicação direta entre a base
consolidada e a base remota, dependendo da configuração inicial, os intervalos entre duas destas
sessões podem ser de minutos, horas, dias ou semanas. A base remota cliente abre a comunicação
com o servidor de sincronização, enviando uma lista completa das modificações feitas naquela base
desde a última sincronização. O servidor, então, atualiza a base consolidada e envia de volta as
modificações relevantes. O host remoto incorpora o conjunto de mudanças e fecha a sessão logo após
enviar uma confirmação de sucesso da operação junto com uma tabela que mapeia o conteúdo das
informações que foram atualizadas (mapping table);
• Mensagens: A troca de dados entre as bases pode ocorrer também através de mensagens, que
normalmente são arquivos armazenados em algum diretório particular ou mensagens de correio
eletrônico com formato especial. Um agente de mensagens vinculado a cada base envia mensagens,
Capítulo 2. Referencial teórico 35
informando as mudanças recentes em sua base e recebe mensagens de um ou mais outros agentes,
modificando seus dados de acordo com o conteúdo delas. Este sistema permite replicação entre
bancos de dados que não estão diretamente conectados. Neste tipo de replicação, cada uma das
mensagens carrega informações de controle como o seu endereço de destino para que nenhuma
conexão seja necessária entre as aplicações que se comunicam remotamente;
A falta de padronização do protocolo é um dos desafios enfrentados por sistemas que necessitam de
sincronização[34, 2]. Em fevereiro de 2000, empresas como a Ericsson, IBM, Motorola e Nokia, entre
outras se reuniram para começar a resolver o problema. O primeiro e importante passo foi a criação do
SyncML, um padrão aberto para a sincronização universal de dados e informações pessoais entre vários
tipos de redes, plataformas e dispositivos. O SyncML especifica 7 diferentes tipos de sincronização:
1. Em dois sentidos (Two-way sync), o tipo mais comum de sincronização, onde cliente e servidor
trocam informações sobre as modificações ocorridas em suas bases (ver os passos de uma replicação
baseada em sessão, acima);
2. Lenta (Slow sync) é uma forma de sincronização onde todos os itens da base de dados do cliente são
comparados com os da base consolidada campo a campo. Pode ser requisitada pelo cliente após uma
perda do seu log de operações, por exemplo;
3. Partindo do cliente (One-way sync from client only): neste tipo de sincronização, apenas o cliente
envia suas modificações ao servidor, aquelas ocorridas apenas na base consolidada não são enviadas
ao cliente;
4. Atualização a partir do cliente (Refresh sync from client only): aqui, o cliente exporta todos os seus
dados para o servidor, que deve então substituir os dados da base alvo por eles;
5. Partindo do servidor (One-way sync from server only): o cliente recebe todas as modificações
ocorridas no servidor sem enviar as que ocorreram em sua base;
6. Atualização a partir do servidor (Refresh sync from server only): neste cenário, o servidor exporta
seus dados e exige que o cliente troque os dados da base alvo por eles;
7. Sincronização alertada pelo servidor (Server-alerted sync): aqui, o servidor informa ao cliente que
um típico específico de sincronização deve ser iniciada entre eles.
Com o intuito de otimizar o tempo de resposta nas consultas realizadas no ambiente de computação
móvel e prover suporte as unidades moveis que estão desconectadas faz-se o uso do mecanismo de
caching, mas para que este mecanismo produza bons resultados é preciso que estejam previamente
definidas as estruturas de dados e as estratégias de gerenciamento do caching levando em consideração as
particularidades de cada aplicação e o padrão de acesso aos dados [2].
Quando os dados consultados não se encontram na cache, é necessária uma solicitação de dados
ao servidor. Esta solicitação pode ser total, quando o cliente precisa receber todos os dados do servidor
ou parcial, quando alguns dados na base remota podem ser utilizados para responder à consulta [34, 2].
Capítulo 2. Referencial teórico 36
Segundo [41], existem dois motivos para se usar difusão de dados. Primeiro, a unidade móvel evita o gasto
de energia com a transmissão de solicitação de dados. Segundo, os dados difundidos podem ser recebidos
por um grande número de unidades móveis de uma só vez, sem um custo adicional, o que é ideal para um
grupo de clientes com as mesmas necessidades de atualizações. As estratégias de envio de mensagens por
difusão se classificam em pull-based, quando o cliente faz o papel ativo, requisitando dados ao servidor e
recebendo estes dados em seguida e push-based, quando a iniciativa de transmissão de dados é do servidor
e o cliente funciona apenas como receptor.
Na computação móvel, objetos como softwares ou usuários que usam aparelhos sem fio podem se
movimentar de um local para o outro da rede. Informações sobre o atual posicionamento destes objetos
devem ser mantidas em locais específicos da rede. Este gerenciamento de localidade envolve duas operações
básicas: busca e atualização.
Uma busca é solicitada cada vez que há a necessidade de localizar um objeto, para se comunicar
com usuários móveis ou executar aplicações remotamente. A atualização da localidade armazenada de um
objeto é necessária quando este migra de um local para outro dentro da rede ou para uma outra rede.
2.4.1.4 Transações
Uma transação é uma unidade lógica de processamento de banco de dados que inclui uma ou
mais operações de acesso à base. Entre estas operações estão inserção, exclusão, modificação e consulta de
dados [2].
A concorrência de transações que acessam a mesma base de dados pode levar a problemas como a
perda de consistência dos dados. Portanto, transações têm que apresentar algumas propriedades desejáveis
a fim de evitar estes erros. O controle de concorrência e os métodos de recuperação de falhas devem
assegurar estas que são chamadas de propriedades ACID que são as seguintes [34]:
Capítulo 2. Referencial teórico 37
• Atomicidade: uma transação deve ser uma unidade atômica de processamento sendo completamente
executada ou descartada. O subsistema de recuperação de transações deve assegurar que se uma
falha ocorrer durante a execução da transação, nenhuma das modificações feitas por ela persistam;
• Consistência: a transação deve levar a base de dados de um estado consistente a outro. O estado
do banco de dados é uma coleção de todos os itens de dados armazenados num dado momento. Um
estado consistente é aquele que satisfaz as restrições impostas pelo esquema do banco de dados,
assim como outras que forem especificadas;
O sistema de banco de dados deve controlar a execução concorrente de transações para assegurar
que o estado do banco de dados permaneça consistente. Podem ocorrer alguns conflitos de operações
de transações que acontecem concorrentemente, por isso técnicas como serialização e agendamento de
transações se fazem necessárias para evitar conflitos
Uma transação móvel é uma transação distribuída, onde alguma parte da computação é executada
na unidade móvel e outra parte em umhostfixo. O uso do meio sem fio e a mobilidade resultante dos
consumidores e produtores de dados afetam o processamento das transações [2].
Para que o sistema não seja prejudicado devido às falhas em seus componentes, erros devem
ser detectados o mais rápido possível, através de um diagnóstico apropriado. Para recuperar os dados,
informações relevantes são armazenadas em um local fixo durante o processamento de transações.
2.4.1.6 Segurança
um dispositivo móvel deve ser simplificada, devido à escassez de recursos e pouco poder de processamento
destes computadores [3].
O SQLite armazena tudo que é preciso em um único arquivo, nele está contido toda a estrutura
do banco de dados e os dados nele armazenados indiferentemente do número de tabelas e índices utilizados.
É considerado um gerenciador de banco de dados leve, mas isto não está relacionado à sua capacidade de
armazenamento de dados e sim a questões de complexidade de instalação e administração de recursos. É
independente de servidor, ou seja, os arquivos são acessados diretamente de sua biblioteca, sem necessidades
de configurações extras, necessita de pouco menos de 4MB de memória para seu funcionamento, realizando
o mínimo de configuração (eliminando recursos avançados) pode ser alcançado um funcionamento com
menos de 256KB de memória [12, 49].
A criação e exclusão de tabelas no SQLite são feitas através dos comandos CREATE TABLE
e DROP TABLET da linguagem SQL. Os dados das tabelas são manipulados através dos conhecidos
comandos DML (INSERT, UPDATE e DELETE) e são consultados através do uso do comando SELECT.
O SQLite fornece todo o serviço de persistência de dados [49, 51].
Capítulo 2. Referencial teórico 39
Nos dias atuais é muito frequente a necessidade de sistemas de identificação. O código de barras
que é uma representação gráfica de dados numéricos ou alfanuméricos, pode ser considerado o sistema de
identificação de maior utilização pois é facilmente identificado em uma ampla gama de aplicações tais
como títulos bancários, identificação de produtos e objetos, crachás de identificação, etc.
Devido a limitada quantidade de informações que o código de barras pode carregar, surgiu o QR
Code que nada mais é que a evolução do código de barras em uma representação bidimensional, permitindo
o carregamento de uma quantidade maior de informações.
Com a utilização do RFID (Radio Frequency Identification) a leitura pode ocorrer com os produtos
dentro de suas próprias embalagens com etiquetas afixadas aos itens, dispensando a necessidade de ter o
contato visual com o código impresso pois essa identificação é realizada por uso de rádio frequência.
Desde o início da década de 80 a tecnologia de identificação por rádio frequência (RFID) tem
sido testada como meio de identificação alternativo ao uso de códigos de barras e QR Code em virtude de
sua praticidade em dispensar o contato visual e permitir a identificação simultânea de múltiplos objetos.
Enquanto o uso do código de barras e QR Code em virtude de estar impresso permite alterações do
dado que ele carrega apenas por intermédio de modificações no banco de dados de informações associadas
àquele código, a tecnologia RFID permite além da leitura a gravação de novos dados na etiqueta RFID
possibilitando o mantenimento histórico de determinado item, recurso largamente utilizado na cadeia de
logística e armazenamento de produtos [53].
A etiqueta eletrônica em sua grande maioria contém dados sobre um objeto. Tem por função
transmitir e responder aos comandos que são recebidos por radiofrequência. Sua estrutura básica é: um
chip que armazena informações e uma resistência fazendo o papel de antena, envolvidos por algum material
como plástico ou silicone [54]. Na Figura 14 é possivel ver uma Tag RFID e suas camadas. Estas etiquetas
costumam ser classificadas em três tipos:
• Tags Passivas: Não necessitam de alimentação interna. Sua energia vem do próprio sistema de
leitura, através de indução magnética ou campo eletromagnético. Seu alcance típico dificilmente
ultrapassa os 5 metros. São as mais comuns e amplamente utilizadas por um simples motivo: o custo.
As ondas eletromagnéticas geradas pelo dispositivo leitor são transmitidas através de uma antena do
tipo dipolo até a antena instalada na etiqueta, que também é uma antena do tipo dipolo. A antena
da etiqueta recebe o sinal e o transforma em uma diferença de potencial. Como o sinal recebido é
uma corrente alternada e os circuitos internos necessitam de uma corrente contínua, um circuito
retificador de onda completa é utilizado para obtenção de uma tensão contínua que irá carregar os
capacitores que servirão de baterias para a alimentação da etiqueta. O mesmo canal de recepção é
Capítulo 2. Referencial teórico 40
utilizado também para transmitir os dados armazenados na etiqueta para o dispositivo leitor através
de um processo de modulação [54, 55].
• Tags Semi-passivas: Têm uma fonte de alimentação interna (bateria), apenas para a recepção
de dados. Isso permite que sejam lidas sem a energia do leitor externo, fazendo-as serem capazes de
trabalhar em ambientes com potência muito baixa de campo magnético. Isto reduz a quantidade de
energia necessária para o sistema funcionar e também as interferências externas ao sistema. Como
tem uma bateria interna, seu alcance pode chegar a 100 m. São mais caras se comparadas com as
passivas, porém garantem distância maior de operação. É comumente utilizada para controle de
acesso devido ao baixo custo e à fácil adaptação em cartões feitos de materiais plásticos e de vidro
[54, 55].
• Tags Ativas: Também conhecidas por etiquetas de duas vias. Esse tipo de etiqueta possui uma
fonte de energia interna (bateria) e um transmissor. Alcance pode chegar a alguns quilômetros.
São muito caras para produção em grande escala e utilizadas em sistemas específicos geralmente
em produtos de alto valor monetário, como por exemplo, caminhões e automóveis. Essas etiquetas
operam em uma faixa de frequência que varia entre 850 MHz e 5,8 GHz. Portanto, as etiquetas ativas
são sistemas de radio completos com bateria, receptor, transmissor e circuito de controle [54, 55].
2.5.1.2 Antenas
As antenas são a base para a comunicação sem fio. Baseadas em transceptores, esses dispositivos
são utilizados tanto para irradiar quanto para receber ondas de rádio, dessa forma, é de sua responsabilidade
a transformação da energia irradiada e energia guiada em um meio de transmissão. A radiação de ondas
eletromagnéticas ocorre em todos os condutores sujeitos a uma diferença de potencial e/ou corrente
elétrica variante no tempo. Uma antena é um componente que é projetado para operar em uma faixa
de frequência especifica baseada nas especificações do projeto. Existem vários tipos de antena e muitas
variações, isto ocorre devido ao fato de cada aplicação geralmente modificar algumas características para
melhor se adaptar a um sistema específico [54].
Os Leitores são componentes que se comunicam com as etiquetas através de uma antena pela
emissão de sinais de radiofreqüência. Em outras palavras, são transceptores – transmissores e receptores em
um único dispositivo. Esses sinais ativam a etiqueta que se comporta como um transponder – dispositivo
que recebe um sinal com uma determinada frequência e retransmite, podendo esse sinal retransmitido
Capítulo 2. Referencial teórico 41
possuir uma frequência diferente da recebida – permitindo a comunicação com o dispositivo leitor, que
repassará os dados do produto para um middleware que nada mais é que um software responsável por
pegar informações vindas do leitor ou do gerenciador de eventos e transferi-las para um sistema gerenciador
de produtos ou um software de controle de estoques ou vendas por exemplo [54, 55].
Exitem dois tipos de leitores, os de “leitura” e os de “leitura/escrita”. Os leitores que são capazes
de apenas realizar a leitura são utilizados com etiquetas passivas, que apenas enviam os dados, já os
leitores que realizam tanto a leitura quanto a escrita são utilizados com etiquetas ativas, que enviam e
recebem os dados. O leitor RFID opera em frequências padronizadas que variam de 125 KHz a 2.4 GHz
[54].
2.5.1.4 Controlador
Em sua grande maioria os sistemas de RFID estão delimitados em três faixas de frequências de
operação acordo com [54, 55], sendo elas:
• LF (Low Frequency ): Faixa de operação de 125 kHz até 134 kHz. São denominados sistemas de
baixa frequência. Nesta faixa são encontrados os sistemas RFID mais antigos e estáveis do mercado.
As principais caracteristicas dos sistemas que operam nesta faixa de frequência são:
a) Baixa taxa de transferência de dados (leva até 100 ms para a leitura de um tag de 16
caracteres);
b) Leitura de apenas uma tag por vez;
c) Só existe com sistema de alimentação passivo;
d) Pequenas distâncias de leitura (máximo de 30 cm);
e) Não sofre absorção pelos líquidos;
f) Baixo desempenho próximo a metais;
g) Leitores de baixo custo e tags de alto custo;
h) Tags de tamanho elevado;
i) Aplicações: Identificação de gado, controle de acesso, identificação de atletas.
• HF (High Frequency ): Faixa de operação de 13,56 MHz. São denominados sistemas de alta
frequência. Os sistemas de HF são sistemas já estáveis que estão no mercado a mais de vinte anos. A
faixa de frequência de 13,56 MHz é conhecida como banda ISM (Industrial, Scientific, Medical ) sendo
que é uma faixa de frequência que não necessita de licença para operar. As principais características
dos sistemas que operam nesta faixa de frequência são:
• UHF (Ultra Frequency ): Faixa de operação de 860 MHz até 960 MHz. São denominados sistemas
de UHF. São os sistemas de RFID UHF que estão gerando a maior expectativa e motivação para
as implantações de RFID. Esta faixa de frequência também é classificada como banda ISM. Além
disso, as características eletromagnéticas desta faixa de frequência contribuem para a implantação de
RFID para toda a cadeia logística e outras aplicações. As principais características destes sistemas
são:
a) Distância de leitura de até 10 metros (para tags passivos) e 100 metros (para tags ativos);
b) Protocolo de anti-colisão, até 1000 tags/segundo;
c) Absorção da energia pelos líquidos;
d) Acoplamento Reflexivo;
e) Alta taxa de transferência de dados;
f) Bom desempenho perto do metal;
g) Tags de menor tamanho;
h) Utilizado para: Controle da cadeia logística, controle de falsificação;
i) Identificação de veículos, Identificação de ferramentas, Padrão mundial EPC.
• Somente Leitura: Os dados gravados apenas na hora da fabricação da etiqueta tornam a etiqueta
à prova de adulteração (característica nativa das etiquetas sem chips);
• Uma Gravação/Várias Leituras: A capacidade de gravar os dados apenas uma vez torna a
etiqueta à prova de adulteração, mas oferece a flexibilidade de gravação dos dados depois da
fabricação da etiqueta, o que pode reduzir significativamente os custos de produção;
NFC (Near Field Communication) é um padrão de comunicação sem fio de curtíssimo alcance
lançado em 2004 pela Sony, Philips e Nokia. Desenvolvido para fazer uma comunicação simples e intuitiva
entre dois equipamentos eletrônicos. Ela é capaz de transferir energia entre dispositivos, habilitando a
implementação semi-passiva sem qualquer tipo de energia. Entretanto, isso exige da tecnologia do NFC
que suporte uma operação com índices nulos de operação gerando uma espera de ativação do dispositivo
NFC e um gerenciamento de energia durante a comunicação. Em 2005, o NFC IP-2 foi estabelecido como
uma ISO/IEC padrão internacional 21481 [57].
Permitindo a comunicação entre dois dispositivos, não mais que isso, a tecnologia NFC faz uso
da indução magnética para estabelecer o seu funcionamento, respeitando uma distancia máxima de
10 centímetros entre os dois dispositivos. Um dispositivo emite uma pequena corrente elétrica de sua
antena fazendo o papel de iniciador e ficando sob sua responsabilidade a inicialização da comunicação e o
controle da troca de informações, a corrente elétrica emitida através da antena do iniciador cria um campo
magnético que ocupa o espaço entre o iniciador e o outro dispositivo que assume o papel de alvo ( Target)
responsável por responder às solicitações enviadas pelo iniciador, logo, esse campo é recebido por uma
bobina existente na antena do dispositivo, onde novamente é convertido em sinais elétricos possibilitando
dessa forma a comunicação e troca de dados entre os dispositivos [15, 58]. Este cenário é ilustrado na
Figura 16.
A velocidade de transmissão em uma comunicação NFC pode variar entre 106, 212 e 424 Kb/s
(kilobits por segundo) e pode ocorrer de dois modos, sendo eles o passivo onde apenas um dos dispositivos
gera o sinal elétrico da conexão, normalmente este dispositivo é o iniciador, e o modo ativo onde ambos
os dispositivos podem gerar o sinal elétrico, a exemplo um sistema de pagamento que faz o uso de um
smartphone e um receptor no terminal de recebimento do estabelecimento.
Considerada uma subdivisão do RFID, esta tecnologia visa melhorar a transmissão de dados
ponto a ponto. Sendo a combinação de duas tecnologias complementares. Onde a tecnologia do RFID
possibilita que um dispositivo identifique o outro e a transmissão de dados sem fio permite que, depois de
identificados, os dispositivos se comuniquem e troquem dados [57].
É uma tecnologia extremamente simples de usar, e que permite troca de dados entre dois
dispositivos eletrônicos, num curto espaço físico, da ordem de poucos centímetros. Em virtude de sua
simplicidade o NFC dispensa a necessidade de uma série de elementos que compõem o sistema RFID para
o seu funcionamento [19].
O NFC permite sua utilização em três modos de operação possíveis e diferentes entre si, sendo
eles [57, 15]:
• Escrita e leitura: Neste modo o dispositivo móvel que possui a tecnologia NFC pode realizar
Capítulo 2. Referencial teórico 45
a leitura de informações que estão inseridas em etiquetas com tecnologia RFID ou NFC, desde
que estas etiquetas tenham sido construídas para tal finalidade. O usuário pode ainda através do
dispositivo móvel, realizar a gravação de dados nas etiquetas. Caso a etiqueta esteja gravada com
informações tais como código de produto, descrição, validade, etc. as informações nela contidas
serão lidas e disponibilizadas a aplicativos instalados no dispositivo móvel. A Figura 17 ilustra a
possibilidade de gravar ou executar ações de uma etiqueta NFC afixada no painel de um veículo.
Figura 17 – Gravando ações para um aplicativo do smartphone em uma Tag NFC [16].
• Emulação de cartão: Desta forma o dispositivo móvel atua como um cartão inteligente (Smart
Card contactless) permitindo que o dispositivo móvel seja utilizado para efetuar pagamentos, liberar
catracas de acesso, substituindo a utilização de um cartão de crédito ou débito convencional e até
mesmo os crachás de identificação. A Figura 18 ilustra a utilização de um dispositivo neste modo de
operação para a realização de pagamentos.
• Ponto a ponto (Peer-to-Peer ): Neste modo é possível estabelecer uma ponte de comunicação
de dados entre um dispositivo móvel e outro dispositivo eletrônico qualquer que possua a tecnologia
NFC, os dois dispositivos com NFC ativos conversam entre si e realizam a troca de informações. É
possível neste modo, fazer com que dados de uma conexão Wifi seja compartilhado, um dispositivo
móvel seja pareado a uma caixa de som Bluethoot e a troca de dados como cartões de visita ou
fotografias digitais assim como ilustra a Figura 19.
Através da Figura 20 são comparadas as tecnologias sem fio. É possível perceber que o NFC tem
baixo alcance e baixa taxa de transmissão de dados comparado as demais tecnologias [19].
Capítulo 2. Referencial teórico 46
Figura 19 – Troca de arquivos através do NFC, bastando encostar os dispositivos na tampa traseira [18].
Figura 20 – Vários padrões de comunicação sem fio que coexistem atualmente [19].
Basicamente as Tags NFC são formadas por um pequeno chip de rádio, uma antena simples e
alguma quantidade de memória utilizada para armazenamento de dados. Estes dispositivos normalmente
operam em modo passivo, dispensando a necessidade de ligação constante com uma fonte de energia.
Ainda que estas Tags possam ser encontradas nas mais diversas formas, ilustradas na Figura 21, tais
como: anel, pulseira, chaveiro, etiqueta adesiva, brinco animal e etc. existem ao menos quatro categorias
de Tags NFC que permitem ser configuradas como somente leitura, onde as informações são gravadas na
fábrica, ou configuradas com permissão 7p.ara reescrita de dados, possibilitando a reutilização dessa Tag
em outra aplicação. Os tipos normalmente encontrados são [58]:
• Tipo 1: normalmente armazena entre 96 bytes e 2 KB de dados e tem velocidade de 106 Kb/s
(kilobits por segundo);
• Tipo 2: armazena entre 48 bytes e 2 KB de dados e tem velocidade de 106 Kb/s. É compatível com
o tipo 1;
• Tipo 3: baseada em uma tecnologia da Sony chamada FeliCa, esse tipo normalmente armazena
2 KB (mas pode chegar a 1 MB) e tem velocidade de 212 Kb/s. A compatibilidade com outros
Capítulo 2. Referencial teórico 47
• Tipo 4: armazena até 32 KB e tem velocidade entre 106 Kb/s e 424 Kb/s. É compatível com os
tipos 1 e 2.
As metodologias ágeis geralmente não trazem nada de novo, apenas diferem das metodologias
tradicionais através do enfoque e dos valores, onde o enfoque das metodologias ágeis concentram-se
nas pessoas e não em processos ou algoritmos, além da preocupação de despender mais tempo com a
implementação e menos tempo com a documentação [59].
Capítulo 2. Referencial teórico 48
As metodologias ágeis são capazes de se adaptarem a novos fatores que venham a surgir em
decorrência do desenvolvimento do projeto, dispensando uma análise prévia de tudo o que pode acontecer
no decorrer do desenvolvimento. Essa análise prévia é difícil e apresenta alto custo, além de tornar-se um
problema caso não se queira fazer alterações nos planejamentos, logo, uma característica das metodologias
ágeis é que elas são adaptativas ao invés de serem preditivas conforme as metodologias tradicionais [59].
Uma série de caracteristicas que refletem os princípios dos métodos ágeis são identificadas na
metodologia XP conforme aponta [60]:
• Desenvolvimento de testes antes do código: É mais fácil implementar código após conhecer os testes
que serão impostos;
• Refatoração do código: Os desenvolvedores devem modificar o código sempre que possível, visando
facilitar sua manutenção futura;
• Integração contínua: Após a conclusão de uma tarefa, todo o código é reintegrado em um repositório,
sendo novamente testado;
• Ritmo sustentável de trabalho: Para melhor qualidade de código, os desenvolvedores devem estar
motivados a completarem a iteração planejada;
• Cliente no local em tempo integral: Um representante do cliente fica disponível no local, como parte
da equipe.
2.7.2 Scrum
O Scrum é um processo ágil ou ainda um conjunto de boas práticas utilizadas para o gerenciamento
de projetos ágeis. É largamente utilizado no processo de desenvolvimento de software, porém não se limita
apenas a esse tipo de aplicação, o Scrum pode ser utilizado no desenvolvimento de outros produtos e
gerenciamento de qualquer outro trabalho [59, 20].
Capítulo 2. Referencial teórico 49
Uma das características do Scrum é que ele além de ser um processo ágil para o gerenciamento
e controle de projetos que envolve práticas de engenharia, aborda o desenvolvimento de produtos e
sistemas onde as alterações e mudanças de requisitos são contantes, visa a comunicação otimizada do time
favorecendo a cooperação, é escalável para pequenos projetos e corporações de maior porte, bem como
para para projetos longos, largos e distribuídos [59].
• Sprints: O Sprint é o ciclo de desenvolvimento do Scrum, caracterizado por ter um curto período
onde a equipe foca na entrega de uma meta específica;
• Sprint Backlog : O Sprint Backlog é gerado a partir das histórias retiradas do Product Backlog e
que serão implementadas durante o Sprint.
• Scrum Master : é o gerente do projeto, sua função é ser o facilitador do processo e ajudar as
pessoas a resolver os problemas;
• Scrum Team: é o time do projeto com no máximo 10 a 15 participantes e deve ser multidisciplinar
e auto organizado;
• Product Owner : é o cliente de um time Scrum, ele é responsável pelo retorno do investimento de
um produto.
O progresso de desenvolvimento adotado pelo Scrum é baseado em iterações com durações que
podem variar entre duas e seis semanas, essas iterações são chamadas Sprints. A reunião de planejamento
(Sprint Planning) é a primeira etapa dentro do Sprint. Nesta reunião o time (Scrum Team), em conjunto
com o cliente (Product Owner ) define o que será implementado na iteração, onde a priorização do trabalho
a ser feito fica sob responsabilidade do cliente [20].
Outra etapa é a execução. O time realiza o detalhamento das tarefas necessárias para a implemen-
tação do que foi solicitado pelo cliente e logo em seguida inicia a execução das tarefas definidas. Reuniões
diárias (Daily Meeting) com duração de 15 minutos são realizadas durante o Sprint para verificação e
acompanhamento do progresso do desenvolvimento. Este acompanhamento ocorre através da utilização do
Burn Down Chart, que é um gráfico utilizado para o registro das tarefas a realizar, em andamento e já
concluídas [20].
Capítulo 2. Referencial teórico 50
Ao fim do Sprint, uma reunião para validação da entrega (Sprint Review ) é realizada, nesta reunião
as partes interessadas no produto podem verificar se o objetivo proposto para o Sprint foi alcançado.
Imediatamente após esta reunião é realizada uma nova reunião (Sprint Retrospective) composta apenas
pelo time, com o propósito de avaliar o Sprint sob a perspectiva de processo, time ou produto, quais
foram os acertos e os erros objetivando a melhora do processo de trabalho [20].
O Sprint é definido como um ciclo de desenvolvimento curto em que o time foca em atingir o
objetivo proposto pelo Product Owner. Durante a execução de um ciclo o time deverá ter plena competência
para o gerenciamento da execução deste, sem que haja interferências externas sejam elas de clientes ou
outras pessoas [20].
Sprint Planning : é a primeira atividade dentro do Sprint, uma reunião, durante essa reunião é
feita uma seleção das histórias que serão implementadas durante aquele ciclo.
Daily Scrum: é uma reunião rápida que deve ter o tempo fechado, realizada todo dia, reuniões
em pé no qual os membros do time explicam entre si o que foi feito desde a última Daily Scrum.
Sprint Review : acontece no final de cada Sprint, durante esta reunião o time mostra o resultado
do seu trabalho para o Product Owner e para outros clientes.
Sprint Retrospective: é a reunião do time realizada sempre ao final de cada Sprint e deve ser
utilizada para a correção dos problemas detectados pelo time no processo de desenvolvimento.
51
3.1 Metodologia
O sistema proposto neste trabalho é uma aplicação que permite aos produtores cadastrar os
animais de sua propriedade, coletar dados produzidos ao longo do desenvolvimento das diversas atividades
envolvidas no manejo animal e facilmente gravar e recuperar as informações contidas no sistema com o
simples aproximar de seus dispositivos móveis que possuam a tecnologia NFC a Tags que identificam seus
animais e até mesmo a realização de atividades. Com esse aplicativo os produtores terão maior controle e
melhor gestão de propriedades melhorando os ganhos com um investimento de baixo custo.
Manejo é um termo amplo que diz respeito a todas as atividades diariamente desenvolvidas com
os animais. Mais do que assegurar a sanidade dos animais, a preocupação com bem-estar visa reduzir
situações de dor ou injustiça na vida do animal, e ainda garantir que ele possa expressar comportamentos
naturais. De acordo com os padrões internacionais ISSO 8402, rastreabilidade é definida como a habilidade
de descrever a história, aplicação, processos ou eventos e localização, de um produto, a uma determinada
organização, através de registros e identificação. Em outras palavras, rastrear é manter os registros
necessários para identificar a informar os dados relativos à origem e ao destino de um produto. Esse
sistema de controle registra todas as ocorrências relevantes ao longo da vida do animal, desde o seu
nascimento até o abate [61, 62, 63].
Este capítulo descreve os passos na ordem em que foram realizados e apresenta o processo de
desenvolvimento escolhido.
Inicialmente foi identificado que a gestão de uma propriedade rural por parte dos pequenos e
médios produtores tem um grau elevado de complexidade, uma vez que estes produtores não contam com
sistemas que permitam essa gestão a baixo custo, logo, foi discutido a necessidade de um sistema que
resolvesse essa questão apresentada.
A coleta de requisitos foi realizada por meio de diálogos com pequenos produtores e logo após
a coleta de requisitos foi feito uma comparação dos requisitos com as funcionalidades dos aplicativos
existentes, e a partir da análise dessas funcionalidades e os requisitos coletados foram descritas as
funcionalidades que seriam necessárias para cumprir com os requisitos levantados.
Após coletados os requisitos e realizado a descrição das funcionalidades foi dado inicio ao passo de
desenvolvimento aplicando conceitos da metodologia Scrum visando o desenvolvimento ágil da aplicação.
Com as tarefas e exigências necessárias para a construção da aplicação listadas, foram definidas e iniciadas
as Sprints sendo que ao termino de cada Sprint era realizada uma reunião com a finalidade de discutir
melhorias, testar as funcionalidades implementadas e verificar a conformidade do desenvolvimento com os
requisitos listados.
Capítulo 3. SMRA - Sistema de Manejo e Rastreabilidade Animal 52
3.2 Requisitos
Nesta sessão são apresentados os requisitos funcionais e não funcionais do sistema, brevemente
descritos e seus relacionamentos.
Requisitos relacio-
Identificação Descrição
nados
O sistema deve permitir o cadastramento e manuten-
RF01 ção de Espécies. Exemplo: Bovinos, Bubalinos, Equinos,
Caprinos, Ovinos, Suínos, Caninos e etc.
O sistema deve permitir o cadastramento e manutenção
RF02 de Raças. Exemplo: Nelore, Angus, Jersey, Charolês e RF01
etc.
O sistema deve permitir o cadastramento e manutenção
RF03 de Categorias de animais. Exemplo: Leite, Reprodutor,
Engorda, Genética e etc.
O sistema deve permitir o cadastramento e manutenção de
RF04
Locais. Exemplo: Pasto, Curral, Confinamento, Balança
O sistema deve permitir o cadastramento e manutenção
RF05
de Proprietários.
O sistema deve permitir o cadastramento e manutenção RF02, RF03, RF04,
RF06
de Animais. RF05, RF01
O sistema deve permitir o cadastramento e manutenção de
RF07 Eventos. Exemplo: Lactação, Pesagem, Toque, Cirurgia,
Vacinação, Inseminação e etc.
O sistema deve permitir o cadastramento e manutenção
RF08 de eventos bloqueados. Exemplo: Carência para Lactação RF07
de x dias após eventos que utilizem “Antibióticos”
O sistema deve permitir o cadastramento e manutenção
RF09 de Eventos obrigatórios. Exemplo: Durante x dias fazer RF07
Curativos em animais que sofreram Cirurgia.
O sistema deve permitir o cadastramento e manutenção RF04, RF07, RF06,
RF10
de Manejos. RF08, RF09
O sistema deve permitir procurar um animal utilizando
RF11 RF06
Tags RFID.
Tabela 1 – Requisitos funcionais do SMRA.
Requisitos relacio-
Identificação Descrição
nados
O sistema deve ser desenvolvido para Android, de versão
RNF01
igual ou superior a 5.1
RNF02 O Sistema deve ser desenvolvido na linguagem JAVA.
O sistema deve ter uma interface de fácil utilização. Pa-
RNF03
dronizada em todos os cadastros.
O sistema deve exporta dados em XML para que possa
RNF04
ser transmitidos a outros dispositivos.
RNF05 O Sistema deve utilizar Banco de Dados SQlite.
RNF06 O Sistema deve ler Tags Rfid utilizando a tecnologia NFC
RNF07 O Sistema deve permitir enviar XML via Email.
Tabela 2 – Requisitos não funcionais do SMRA.
Capítulo 3. SMRA - Sistema de Manejo e Rastreabilidade Animal 53
A Figura 23 exibe a estrutura das tabelas na qual serão armazenadas as informações, divididas
em tabelas todas com campo ID utilizados como chave primaria por isso não aceita valores nulos, e serão
utilizados para apontamento de chaves estrangeira para o relacionamento entre outras tabelas para manter
a integridade referencial.
Para o aplicativo SMRA o SGBD utilizado é o SQLite, por se tratar de um banco gratuito que
possui recursos suficientes para persistir dados de uma aplicação, e por ser local o que possibilitará a
criação de aplicação que funcione sem necessidade de estar conectado à internet.
Capítulo 3. SMRA - Sistema de Manejo e Rastreabilidade Animal 54
Somente a aplicação que criou o banco de dados pode visualiza-lo, sendo que, cada aplicação pode
criar um ou mais banco de dados, que ficam localizados na pasta /data/data/nome_pacote/databases/,
relativa ao nome do pacote do projeto [64].
Para o aplicativo SMRA, as linhas de comando para criação do banco de dados foram armazenadas
como recursos de textos para melhor organização do código visando uma manutenibilidade. Essas
informações podem ser vistas no arquivo scriptdb.xml armazenados no diretório values. A Figura 24
apresenta o fragmento do arquivo.
3.4 Implementação
3.4.1 Arquitetura
A arquitetura do SMRA se baseia no padrão MVC. O padrão Model-View-Controller (MVC)
está dividido em três módulos, chamados de Model, View e Controller, conforme a Figura 25, o MVC
ajudou a impor uma estrutura sobre o desenvolvimento para que o código se torne mais controlado e
com maior qualidade. A separação em MVC torna muito mais fácil a manutenção e entendimento dos
desenvolvedores.
O módulo View é a representação visual do modelo, onde se encontra todo o conteúdo a ser
visualizado pelo usuário. É a camada de apresentação com usuário, é a interface que proporcionará a
entrada de dados e a visualização de respostas geradas. Nas aplicações web é representado pelo HTML que
é mostrado pelo browser, geralmente a visão contém formulários, tabelas, menus e botões para entrada e
saída de dados, com base nisso pode-se dizer que a camada de visão é responsável por mostrar os dados
de uma maneira que o usuário possa entender e pelos inputs de entrada de dados [65].
Capítulo 3. SMRA - Sistema de Manejo e Rastreabilidade Animal 55
O módulo View interage com o usuário através de Layouts (. xml) e Activities que formam a
base para o desenvolvimento visual da aplicação SMRA. As Activitys (Controller ) realiza os tratamentos
dos eventos de tela e define qual View será desenhada na tela. Para cada tela deverá ser representada por
uma Activity que é implementada como uma subclasse de Activity. As activities devem possuir um layout
conforme Figura 26.
A Classe R é responsável por gerenciar o acesso aos recursos de imagem, layout, menu, values,
por exemplo.
O controller (Activities) fornece os dados do modelo para a view se ligar a interface do usuário.
Quaisquer alterações ao controlador são transparentes para a view e as mudanças de interface do usuário
não afetarão a lógica de negócios e vice-versa.
Figura 27 – Model é responsável por implementar regras de negocio, recuperar informações e armazenar.
Figura 28 – Controller responsável por mediar as interações do usuário, fornecer os dados do model para
a view se ligar a interface do usuário.
Capítulo 3. SMRA - Sistema de Manejo e Rastreabilidade Animal 57
Figura 29 – View responsável por exibir os dados ao usuário criando assim uma Interface do usuário (IU).
Na Figura 30 é apresentado o projeto das variáveis, classes, métodos e seus relacionamentos. Esse
modelo foi utilizado para criar e manter proprietários, animais, raças, espécie, categoria, locais, eventos,
manejo e representação da comunicação entre as classes.
Utilizando herança, uma característica da Programação orientada a objeto (POO), todas as classes
herdam o campo ID da classe Gregistro, onde é implementado a interface Serializable (java.io.Serializable),
um recurso que permite que as classes sejam serializadas e trafegadas como texto.
Para facilitar o desenvolvimento optou-se pela utilização de um IDE, porém, é possível o de-
senvolvimento de aplicativos Android de forma nativa através do uso do Kit de Desenvolvimento de
Software (Software Development Kit - SDK ) para Android usando linguagem de programação JAVA. O
Android SDK inclui projetos de exemplo com código-fonte, ferramentas de desenvolvimento, emuladores
e bibliotecas necessárias para criar os aplicativos Android [70]. Componentes como o SDK Tools foram
utilizados no desenvolvimento do SMRA e a versão utilizada do SDK é a de número 25.2.2.
3.4.3.0.3 NBAndroid
Para que seja possível o desenvolvimento de um aplicativo Android utilizando o IDE NetBeans é
necessário que um plug-in seja instado, dessa forma suas funcionalidades são expandidas. O NBAndroid é
o plug-in que realiza a integração do NetBeans com o SDK Android, além do mais, através da utilização
deste plug-in é possivel realizar o debug por meio de dispositivo emulado ou físico.
3.4.3.0.5 SQLite
Para a persistência dos dados do SMRA foi escolhido dentre os tipos de persistência disponibilizados
pelo Android o SQLite, pois esse tipo de persistência permite o armazenamento local das informações de
forma estruturada utilizando SQL e garante a privacidade dos dados do aplicativo.
3.4.4 Interface
Figura 31, tela de apresentação Splash exibida durante alguns segundos enquanto o aplicativo
realiza os processos iniciais de carregamento.
Na tela principal, Figura 32 são apresentadas as opções da aplicação, é possível escolher dentre
oito opções distintas.
4. Dashboard Gráficos;
7. Cópia de segurança;
No campo Sisbov e possível informar o número de registro do animal junto ao órgão de controle,
no campo grau sanguíneo deve-se informar a fração que indique o cruzamento do animal e no campo
Categoria deve se classificar a finalidade da criação do animal exemplo: engorda, recria, reprodução.
Os botões Obrigatórios e Bloqueados devem ser utilizados para cadastrar uma lista de eventos.
Exemplo: ao criar o evento Cirurgia o campo Obs deverá estar habilitado e deve-se cadastrar na lista
Obrigatórios o evento Curativos parametrizado para ocorrer durante 3 dias, enquanto na lista Bloqueados
o evento Lactação deverá ser adicionado. A partir desta parametrização, fica a cargo do sistema avisar
sobre os eventos obrigatórios e não permitir a realização de eventos bloqueados no animal.
A Figura 38 corresponde ao cadastro de raças atendendo ao requisito RF02, onde deverá ser
preenchido o nome da raça e uma descrição mais detalhada da raça e sua espécie.
A Figura 40 permite fazer ou recuperar cópias de segurança das informações no formato XML,
onde serão enviadas via email atendendo aos requisitos não funcionais RNF04 e RNF07.
Após lançados os dados do manejo deverá ser realizado o relacionamento dos animais que recebeu
a dose de vacina, atendendo ao requisito RF11. Conforme a Figura 42 no manejo 00002, foi ministrada
ao animal Boi soberano 1 dose de vacina de aftosa e nenhuma particularidade ocorreu com esse animal
durante esse evento, dispensando a necessidade de preenchimento do campo Obs.
Capítulo 3. SMRA - Sistema de Manejo e Rastreabilidade Animal 66
Para auxiliar na definição do projeto do SMRA, foram identificados, testados e revisados outros
softwares inseridos no mesmo contexto de Gestão de animais com funcionalidades semelhantes às dese-
jadas para este aplicativo. Os aplicativos escolhidos foram o Brabov <https://play.google.com/store/
apps/details?id=com.brabov.mobile>, SisBov <https://play.google.com/store/apps/details?id=com.wmd.
sisbov> e BovControl <https://play.google.com/store/apps/details?id=com.bovcontrol.bovcontrol>. Eles
podem ser baixados gratuitamente pela Google Play Store, plataforma do Google onde se concentram os
aplicativos Android. Nas Figura 43, 44 e 45, pode-se ver screenshots dos aplicativos mencionados.
Capítulo 3. SMRA - Sistema de Manejo e Rastreabilidade Animal 67
Conexão: verifica se o aplicativo é capaz de trabalhar sem conexão com a Internet, o que é uma
situação muito comum para os produtores.
Os resultados da comparação entre as 3 aplicações citadas e o SMRA podem ser vistos na Tabela
4.
Pode-se observar, a partir dos dados apresentados, que a capacidade de utilização sem conectividade
é essencial para o contexto.No que se refere à leitura de Tags, a maioria lida com apenas Bluetooth.
No entanto, nenhum dos aplicativos comparados oferece leitura via NFC. A interface com o
usuário da maioria dos aplicativos é pouco intuitiva e difícil de aprender a usar inicialmente. Neste quesito,
o aplicativo SisBov se destaca, já que sua interface segue um padrão. O formato do compartilhamento de
dados é bastante variado entre os aplicativos. Os Brabov e BovControl oferecem opções de Sincronização
dentro da mesma conta que permite substituir o aparelho ou ate mesmo trabalhar em equipe sem perdas
de dados.
A criação de um sistema próprio, que tivesse uma boa usabilidade, atendesse todos animais de
uma pequena propriedade, fornecesse posterior acesso aos dados coletados em planilhas e permitisse
a leitura das Tags via NFC seria imprescindível para que se pudesse de fato solucionar os problemas
relatados por pequenos produtores tais como dificuldade de acesso a tecnologia de baixo custo e de fácil
manuseio e manutenção.
70
4 CONCLUSÃO
Para resolver este problema foi levado em consideração alguns requisitos: a criação de uma
aplicação para dispositivos móveis, a compatibilidade da aplicação com o sistema Android um dos sistema
mais utilizados atualmente em smartphones e tablets, o uso de NFC para identificação dos animais, e o
baixo custo de implantação.
Os produtores que antes não tinham uma ferramenta de apoio as suas atividades de gestão de
animais, passaram a ter um aplicativo que pode ser instala em seu dispositivo móvel dispensando a compra
de novos equipamentos, dessa forma é possível realizar a coleta e análise de informações do animal ao longo
de sua vida, permitindo que essas informações sejam utilizadas nas tomadas de decisões e cumprimento
de medidas sanitárias obrigatórias.
REFERÊNCIAS
41 KORTH, H. F.; SILBERSCHATZ, A.; SUDARSHAN, S. Sistemas de Bancos de Dados. 5a edição. ed.
[S.l.]: Campus, 2006.
42 TANENBAUM, A. S. Sistemas operacionais modernos. 3a edição. ed. [S.l.]: Pearson, 2009.
43 MATOS, B. R. D.; SILVA, J. G. d. B. e. Estudo comparativo entre o desenvolvimento de aplicativos
móveis utilizando plataformas nativas e multiplataforma. 2016.
44 GOMES, E. W. C. Global interface process usando Android através de webservices. 2011.
45 ANDROID. The Android Source Code. 2016. <http://source.android.com/source/index.html>.
Acessado Dezembro 07, 2016.
46 VINCENT, J. Android is now used by 1.4 billion people. 2015. <http://www.theverge.com/2015/9/
29/9409071/google-android-stats-users-downloads-sales>. Acessado Dezembro 07, 2016.
47 ALVIM, M. Venda de celulares com Android e Windows cresceu no Brasil
em 2015; iOS teve queda. 2016. <http://blogs.oglobo.globo.com/lauro-jardim/post/
vendas-de-celulares-com-sistema-android-e-windows-cresceram-no-brasil-em-2015-ios-teve-queda.
html>. Acessado Dezembro 07, 2016.
48 MACêDO, B. A. P. d. M.; NUNES, R. C. M. RockDroid - Uma Arquitetura para Coleta de Dados
Geológicos. 2016.
49 NUNES, F. Avaliação de técnicas e mecanismos para entrada e saída de informações em dispositivos
móveis. 2014.
50 ELMASRI, R.; NAVATHE, S. B. Sistemas de Bancos de Dados. 4a edição. ed. [S.l.]: Pearson, 2005.
51 SQLITE. Sobre SQLite. –. <http://www.sqlite.org/about.html>. Acessado Julho 25, 2016.
52 COELHO, T.; PRADO, G. Análise comparativa para avaliação de tecnologias de banco de dados para
dispositivos móveis. 2014.
53 CUNHA, A. RFID – Etiquetas com eletrônica de ponta. 2016. <http://www.embarcados.com.br/
rfid-etiquetas-com-eletronica-de-ponta/>. Acessado Dezembro 12, 2016.
54 QUEIROZ, E. L. d.; ARAÚJO, T. A. d.; HORTA, M. M. B. RFID e o seu uso no indústria. 2014.
55 ALMEIDA, L. C. d. Aplicações da tecnologia de identificação por rádio frequência – RFID. 2011.
56 CARNEIRO, H. M. P. S. Sistemas de Controlo de Acesso. Dissertação (Mestrado) — Universidade de
Porto, 2004.
57 URBINO, N. P.; PEREIRA, S. R.; CARVALHO, E. S.; LODDI, S. A. MOBILE PAYMENT: Uma
visão geral. 2010.
58 ALECRIM, E. O que é NFC (Near Field Communication)? 2017. <https://www.infowester.com/nfc.
php#funcionamento>. Acessado Março 22, 2017.
59 AUGUSTO, M. V. Desenvolvimento de software com apoio de práticas Scrum. 2011.
60 SOUZA, D. R. d. Implantação da metodologia ágil Scrum em um ambiente de desenvolvimento. 2014.
61 VANZIN, I. M. INSEMINAÇÃO ARTIFICIAL E MANEJO REPRODUTIVO DOS BOVINOS. ????
<http://inseminacaoartificial.com.br/manejo.htm>. Acessado Julho 31, 2017.
62 BITTAR, C. M. M.; GALLO, M. P. d. C. Práticas de manejo com efeito no bem-estar
animal: demanda crescente. 2011. <https://www.milkpoint.com.br/radar-tecnico/animais-jovens/
praticas-de-manejo-com-efeito-no-bemestar-animal-demanda-crescente-75482n.aspx>. Acessado Julho 31,
2017.
63 MELDAU, D. C. Rastreabilidade Bovina. 2011. <http://www.infoescola.com/zootecnia/
rastreabilidade-bovina/>. Acessado Julho 31, 2017.
Referências 74