Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
Impacto IoT
As projeções sobre o impacto potencial da IoT são impressionantes.
Cerca de 14 bilhões, ou apenas 0,06%, das “coisas” estavam conectadas à Internet há 5 anos.
A Cisco Systems prevê que no final de 2020 esse número chegará a 50 billion.
Estas novas conexões resultarão em US $ 19 trillion em lucros e economia de custos.
Genesis de IoT
Costuma-se dizer que a era de IoT começou entre os anos de 2008 e 2009.
3
A pessoa responsável pela criação do termo “Internet das Coisas” é Kevin Ashton.
Enquanto trabalhava para a Procter & Gamble em 1999, Kevin usou essa frase para explicar
uma nova ideia relacionada à ligação da cadeia de abastecimentos da empresa à Internet.
«No século XX, os computadores eram cérebros sem sentidos - eles só sabiam o que lhes
dizíamos. Os computadores dependiam de humanos para inserir dados e conhecimento por
meio de digitação, códigos de barras e assim por diante. IoT vem mudando este paradigma;
no século XXI, os computadores estão a sentir as coisas por eles mesmos.»
O conceito de IoT tornou-se popular pela primeira vez no centro de Auto-ID, MIT
Uma importante iniciativa industrial está agora a ser realizada por grandes corporações onde
o nome Machine to Machine (M2M) é mais comumente usado.
Nomenclaturas alternativas para IoT
USN (ubiquitous (presente em todo lado) sensor networks)
M2M (Machine-to-Machine)
IoE (Internet of Everything)
Cloud of Things
Web of Things
Internet of Bodies
Componentes IoT
▪ Rede de Coisas
4
▪ Armazenamento de dados
▪ Mecanismos de aprendizagem analítica/de máquina
«Com um trillion de sensores embebidos no ambiente - todos conectados por sistemas de
computação, software e serviços - será possível ouvir o batimento cardíaco da Terra,
impactando a interação humana com o globo tão profundamente quanto a Internet
revolucionou a comunicação.» Peter Hartwell, pesquisador sénior, HP Labs.
Arquitetura IoT
6
7
Padrões IoT
Base para
Microkernel Kernel monolítico
comparação
Em serviços de utilizador de No kernel monolítico, os serviços
Básico microkernel e kernel, os serviços do utilizador e os serviços do
são mantidos num espaço de kernel são mantidos no mesmo
endereço separado. espaço de endereço.
Tamanho Microkernel são menores em O kernel monolítico é maior que o
tamanho. microkernel.
Execução
Tempos de execução mais lentos. Tempos de execução rápidos.
Extensível O microkernel é facilmente O kernel monolítico é difícil de
extensível. estender.
Se um serviço travar/crash, isso
Segurança Se um serviço travar, todo o
não influencia o funcionamento
sistema trava no kernel monolítico.
do microkernel.
Para escrever um kernel
Código Para escrever um microkernel,
monolítico, menos código é
mais código é necessário.
necessário.
QNX, Symbian, L4Linux, Linux, BSDs (FreeBSD, OpenBSD,
Singularity, K42, Mac OS X, NetBSD), Microsoft Windows
Exemplo Integrity, PikeOS, HURD, Minix, (95,98,Me), Solaris, OS9, AIX, HP-
and Coyotos. UX, DOS, OpenVMS, XTS-400 etc.
Modelo de programação
o A hierarquia de memória e a simultaneidade decidem o modelo a ser utilizado.
o Afeta o desempenho e a produtividade do sistema.
12
Kernel preemptivo
o Em cada ponto de agendamento, a tarefa de maior prioridade pronta para ser
executada recebe o controlo da CPU
o Se uma tarefa de maior prioridade ficar pronta, a tarefa em execução no momento é
suspensa e movida para a fila de pronta
o O tempo máximo de resposta é menor do que no sistema não preemptivo
o Deve-se usar código reentrante (pode executar a mesma tarefa/função em paralelo)
o Dados partilhados normalmente precisam de semáforos (mecanismos de
sincronização de acessos a zonas de memória partilhadas)
Cooperativo
Preemptivo
Networking
o As entidades IoT devem ser capazes de se comunicar com baixo consumo de
energia.
o Stacks TCP/IP convencionais e tecnologias de rede WSN não são adequadas para
IoT.
o A stack de rede IoT deve ser leve, confiável e habilitada para Internet.
o O Ipv6 é obrigatório em sistemas IoT para ter identidades exclusivas em redes
tremendamente grandes.
o Sistemas de comunicação, protocolos: 6LoWPAN (Rede de área pessoal wireless de
baixa potência sobre IPV6), RPL (Protocolo de roteamento IPv6 para redes de baixa
potência e com perdas) e CoAP (Protocolo de aplicação restrito) são projetados para
sistemas de baixa potência.
o A compressão do header e a inclusão de recursos mínimos ajudam a manter os
protocolos viáveis para IoT.
Gestão da memória
o O objetivo principal é ter kernels simples e pequenos.
o Os requisitos dependem do tipo de aplicação e do suporte fornecido pelas
plataformas de hardware.
o A alocação de memória pode ser estática/dinâmica.
o Um mecanismo de alocação de memória estática é menos complexo, mas não
fornece a flexibilidade para gerir a memória conforme necessário em tempo de
execução. A gestão de memória dinâmica fornece isso ao custo de uma
implementação de sistema operacional mais complexa.
Portabilidade
o O sistema operativo deve ser facilmente transportável para diferentes plataformas de
hardware.
o Deve suportar uma grande variedade de arquiteturas de hardware.
o Os microcontroladores usados em IoT variam de 8 a 32 bits.
o O sistema operativo deve ser capaz de aproveitar a arquitetura subjacente.
o O sistema operativo deve ser ajustável às necessidades específicas das aplicações e
fornecer uma abstração razoável dos detalhes de implementação de hardware.
17
Tendências:
Princípio Protothread
20
Um exemplo
RIOT
o É um sistema operativo microkernel de open source para IoT. Foi inicialmente
desenvolvido pela Freie Universität Berlin (FU Berlin), Institut National de
Recherche en Informatique et en Automatique (INRIA), França e Hochschule für
Angewandte Wissenschaften Hamburgo (HAW Hamburgo)
o RIOT é um sistema operativo baseado numa arquitetura de microkernel.
o O kernel do RIOT é herdado principalmente do FireKernel, um kernel que foi
originalmente desenvolvido para redes de sensores.
Estrutura RIOT
23
RIOT: microkernel
• kernel minimalista
• Funções do kernel:
o Agendador/Scheduler
o IPC
o Mutexes
o Timer
• Módulos e drivers comunicam-se pelo IPC
• Tempo de execução determinístico de todas as funções do kernel
• Mudança de contexto otimizada
RIOT: Scheduler
• Tickless, ou seja, nenhum evento temporizador periódico
o Mais complexo de implementar, mas mais eficiente em termos de energia
• Run-to-complete, ou seja, o agendador não distribui igualmente para todos os threads
• Baseado em prioridades
o As prioridades devem ser escolhidas com cuidado para cumprir os requisitos de
tempo real
RIOT: Gestão da Memória
• Cada tópico tem a sua própria pilha/stack
• A pilha/stack também contém o TCB
• Não há proteção de memória => um overflow da pilha pode destruir outra pilha
24
• TinyOS
o TinyOS é um sistema operativo baseado em componentes de software de código
aberto e gratuito e uma plataforma voltada para redes de sensores wireless (RSSFs).
o TinyOS começou como um projeto na UC Berkeley como parte do programa
DARPA NEST para a iniciativa Stardust - um sistema de muitos sistemas
microeletromecânicos minúsculos (MEMS), como sensores, robôs ou outros
dispositivos, que podem detetar, por exemplo, luz, temperatura, vibração,
magnetismo ou produtos químicos
o TinyOS é um sistema operativo embebido escrito na linguagem de programação
nesC como um conjunto de tarefas e processos cooperativos.
Um módulo orientado a eventos simples - BlinkM.nc
• FreeRTOS
o FreeRTOS é um kernel de sistema operativo em tempo real popular para dispositivos
embebidos, que foi portado para 35 microcontroladores. Desenvolvido em parceria
com as principais empresas de chips do mundo ao longo de um período de 15 anos.
o É distribuído sob a GPL com uma exceção opcional.
25
• Frequências mais altas geram maior consumo de energia, o que pode criar restrições na
possível fonte de energia (e, portanto, na mobilidade do objeto) e na faixa de
transmissão.
Dados simples ou complexos/ricos:
• Esta classificação é baseada na quantidade de dados trocados a cada ciclo do relatório.
• Um sensor de humidade num campo pode relatar um valor de índice diário simples
(numa escala binária de 0 a 255), enquanto um sensor de motor pode relatar centenas de
parâmetros, de temperatura a pressão, velocidade do gás, velocidade de compressão,
índice de carbono e muitos outros.
• Dados mais ricos normalmente geram maior consumo de energia.
• Esta classificação é frequentemente combinada com as anteriores para determinar a taxa
de transferência de dados do objeto (baixa taxa de transferência para alta taxa de
transferência). Assim, o rendimento é uma métrica combinada. Um objeto de rendimento
médio pode enviar dados simples numa frequência bastante alta (neste caso, a estrutura
de fluxo parece contínua) ou pode enviar dados ricos em frequência bastante baixa (neste
caso, a estrutura de fluxo parece em bursty).
Intervalo do relatório/Report Range (alcance da transmissão de informação):
• Esta classificação é baseada na distância em que o gateway está localizado.
• Por exemplo, para que a faixa de fitness se comunique com o telemóvel, precisa de estar
localizada a alguns metros de distância, no máximo. O pressuposto é que o telemóvel
precisa estar a uma distância visual para que seja possível consultar os dados relatados no
ecrã do telemóvel. Se o telemóvel estiver longe, normalmente não é usado, e não é
necessário relatar dados da banda para o mesmo.
• Por outro lado, um sensor de humidade no alcatrão de uma estrada pode precisar de
comunicar com o seu leitor a várias centenas de metros ou mesmo Km de distância.
Densidade do objeto por célula (relacionado com a eficiência do canal de comunicação):
• Esta classificação é baseada no número de objetos inteligentes (com necessidade
semelhante de comunicação) numa determinada área, conectados ao mesmo gateway.
• Um oleoduto pode utilizar um único sensor em locais-chave a cada poucas milhas. Em
contraste, telescópios como o telescópio SETI Colossus no Observatório Whipple
implantam centenas, e às vezes milhares, de espelhos em uma pequena área, cada um
com vários giroscópios, gravidade e sensores de vibração
Do ponto de vista da arquitetura de rede, a tarefa inicial é determinar qual tecnologia deve ser
usada para permitir que objetos inteligentes se comuniquem. Esta determinação depende da
forma como as “coisas” são classificadas.
No entanto, alguns setores (como manufatura e serviços públicos) podem incluir objetos em
várias categorias, atendendo a diferentes necessidades.
29
As categorias usadas para classificar coisas podem influenciar outros parâmetros e também
podem influenciar umas às outras.
É improvável que um objeto inteligente pequeno e altamente móvel exija uma antena grande
e uma fonte de energia poderosa. Esta restrição limitará o alcance da transmissão e, portanto,
o tipo de protocolo de rede disponível para as suas conexões.
A criticidade dos dados também pode influenciar o fator de forma e, portanto, a arquitetura.
Exemplo: Um sensor químico pode ter uma parte que converte a energia de uma reação
química em calor (transdutor) e outra parte, uma termopilha, que converte o calor num sinal
elétrico.
Transdutor
• Dispositivo que converte uma forma primária de energia num sinal correspondente com
uma forma de energia diferente.
Formas de energia primária: mecânica, térmica, eletromagnética, ótica, química, etc.
• Assumir a forma de um sensor ou atuador.
Sensor (por exemplo, termómetro)
30
• Converte um parâmetro físico numa saída elétrica (um tipo de transdutor, por exemplo,
um microfone)
Atuador (por exemplo, aquecedor)
• Converte um sinal elétrico numa saída física (oposto a um sensor, por exemplo, um
altifalante)
• Dispositivo que gera um sinal ou estímulo
Sistemas de Sensor
Normalmente interessado em sensor eletrónico
• Converter o parâmetro desejado num sinal mensurável eletricamente
Sensor Eletrónico Geral
• Transdutor primário: converte o parâmetro do "mundo real" num sinal elétrico.
• Transdutor secundário: converte o sinal elétrico em valores analógicos ou digitais.
Exemplo de sensor
Função de transferência
Caraterísticas do Sensor
• Entrada de amplitude ou escala completa/ Span or Full-scale input
o Uma faixa dinâmica de estímulos que podem ser convertidos por um sensor
o Representa o maior valor de entrada possível (margem/gama dinâmica) que pode ser
aplicado ao sensor sem causar uma imprecisão inaceitavelmente grande
o g para acelerómetro
• Saída em escala real/ Full-scale output
o Diferença algébrica entre os sinais de saída elétrica medidos com o estímulo de
entrada máximo e o estímulo de entrada mais baixo aplicado
o Por exemplo. LM35
32
Accuracy/Precisão
• A precisão é medida como o maior desvio de um valor representado pelo sensor em
relação ao valor ideal ou verdadeiro na sua entrada
• Os limites de precisão geralmente são usados na análise do pior caso para determinar o
pior desempenho possível do sistema
• A classificação de imprecisão pode ser representada de várias formas:
o Diretamente em termos de valor medido
o Em percentagem da amplitude de entrada (escala completa)
o Em termos de sinal de saída
Calibração
Determinação de variáveis específicas que descrevem a função de transferência geral
o Meios gerais de todo o circuito, incluindo o sensor, o circuito de interface e o
conversor A/D
Exemplo: uso de díodo polarizado direto para medição de temperatura:
o Função de transferência v = a + bt
o Faça a medição em dois T's e resolva e determine a e b: V1 = a + bt1 e V2 = a + bt2
Para a função não linear, mais de um ponto pode ser necessário, dependendo da função
de transferência
Outra maneira é usar uma aproximação por partes
Erro de calibração:
Imprecisão permitida por um fabricante quando um sensor é calibrado na fábrica
O erro é de natureza sistemática
33
Histerese:
Desvio da saída do sensor num ponto especificado do sinal de entrada quando ele se
aproxima das direções opostas
Repetibilidade:
Causado pela incapacidade de um sensor de representar o mesmo valor em condições
idênticas
34
Comunicação em Paralelo
Requer mais traços e, portanto, mais espaço no PCB
Pode ser mais rápido do que a comunicação em série
A taxa de transferência de dados pode ser aumentada aumentando o número de conexões
Usado em parte para parte de comunicação em computadores RAM <-> CPU <-> GPU
Exemplo de LCD paralelo (barramento de dados de 4 bits)
UART
Recetor/transmissor assíncrono universal
Hardware que traduz entre formas em paralelo e em série
Normalmente usado em conjunto com padrões de comunicação como EIA, RS-232, RS-
422 ou RS-485
Protocolo
Cada caracter é enviado como
um bit de início baixo lógico
um número configurável de bits de dados (geralmente 7 ou 8, às vezes 5)
um bit de paridade opcional
um ou mais bits de alto stop lógico
com um determinado tempo de bit ("baud")
40
O recetor também verifica se o bit de stop é ‘1’. Caso contrário, reporta “erro de
enquadramento” ao sistema host
41
O novo bit de início pode aparecer imediatamente após o bit de stop. O recetor irá sincronizar
novamente em cada bit de início
Diagrama de bloco do transmissor
Protocolo
As transferências são orientadas por bytes, MSB primeiro
Início: SDA vai baixo enquanto SCL está alto
O master envia o endereço do slave (7 bits) nos próximos 7 relógios
Master envia bit de solicitação de leitura / escrita
0 - escrita para slave
1 - leitura do slave
Slave ACKs puxando SDA para baixo no próximo relógio
As transferências de dados agora começam
Terminologia
Transmiter - O dispositivo que envia dados para o bus
Receiver - Dispositivo que recebe dados do bus
43
Master - dispositivo que inicia uma transferência, gera um relógio e encerra uma
transferência
Slave - Dispositivo endereçado pelo master
Multi-master - mais de um master pode tentar controlar o bus
Arbitration - procedimento para garantir que apenas um master tenha controlo do bus a
qualquer momento
Sincronização - procedimento para sincronizar os relógios de dois ou mais dispositivos
Transferência de dados master to slave
O relógio é controlado pelo master
Os dados são gravados no slave nos próximos 8 pulsos de clock
O recebimento de dados é reconhecido pelo slave no 9º pulso puxando SDA para baixo
Quando o escravo é libertado, o SDA master pode enviar o próximo byte
O master acabará por definir uma condição de Stop, fazendo uma transição de baixo para
alto no SDA com SCL alto
Extensões I2C
Endereçamento de 10 bits (até 1024 endereços)
Modo rápido - até 400 kbits / s
Alta velocidade - até 3,4 Mbits / s
Serial Peripheral Interconnect (SPI)
Outro tipo de protocolo serial em sistemas embebidos (proposto pela Motorola)
Protocolo de quatro fios
o SCLK - Relógio em série
o MOSI / SIMO - Saída Master, Entrada Slave
o MISO / SOMI - Entrada Master, Saída Slave
o SS - Slave Select
Dispositivo master único e com um ou mais dispositivos slave
Maior rendimento do que I2C e pode fazer "transferências de fluxo"
Sem necessidade de arbitragem
Mas:
o Requer mais pinos
o Não tem controlo de fluxo de hardware
Protocolo Serial Bus
Rápido, fácil de usar, simples
Todos apoiam
Nenhum reconhecimento de slave (o mmaster pode estar a comunicar com o ar e nem mesmo
saber disso)
45
SPI Basics
Um protocolo de comunicação usando 4 fios, também conhecido como barramento de 4
fios
Usado para se comunicar em pequenas distâncias
Multiple Slaves, Single Master
Sincronizado
Sempre Full Duplex
o Comunicação em duas direções ao mesmo tempo
o A transmissão não precisa ser significativa
Velocidade de transmissão de vários Mbps
Transfere dados em caracteres de 4 a 16 bits
Múltiplos slaves
o Possibilidade de encadeamento
Protocolo SPI
Fios:
o Master Out Slave In (MOSI)
o Master In Slave Out (MISO)
o Relógio do sistema (SCLK)
o Slave Select 1… N
Master Set Slave Select baixo
Mestre gera relógio
Os registos de deslocamento mudam para dentro e para fora dos dados
46
Comunicação SPI
MOSI - Carrega dados do Master para o Slave
MISO - carrega dados do Slave para o Master
o Ambos os sinais acontecem para cada transmissão
SS_BAR - Linha única para selecionar um slave
SCLK - relógio produzido pelo master para sincronizar a transferência de dados
Microcontrolador VS Microprocessador
Um microcontrolador é um pequeno computador num único circuito integrado que contém
um núcleo de processador, memória e periféricos de entrada/saída programáveis.
Um microprocessador incorpora as funções da unidade de processamento central (CPU) de
um computador num único circuito integrado.
48
Tipos de Processadores
Na computação de uso geral, a variedade de arquiteturas de conjunto de instruções hoje é
limitada, com a arquitetura Intel x86 dominando todas de forma esmagadora.
Não existe tal domínio na computação embebida. Ao contrário, a variedade de processadores
pode ser assustadora para um designer de sistemas.
Coisas que importam: periféricos, simultaneidade e tempo, taxas de clock, capacidade de
memória (SRAM e flash), tamanhos de pacotes.
Caraterísticas Comuns de Sistemas Embebidos
Single-functioned
o Executa um único programa, repetidamente
Estritamente restrito/Tightly-constrained
o Baixo custo, baixo consumo de energia, pequeno, rápido, etc.
Reativo e em tempo real/Reactive and real-time
o Reage continuamente às mudanças no ambiente do sistema
o Deve calcular certos resultados em tempo real sem demora
Tipos de microcontroladores
49
RISC VS CISC
Existem duas arquiteturas de conjunto de instruções principais:
RISC (Reduced Instruction Set Computer)
CISC (Complex Instruction Set Computer)
Até 1980, a tendência era construir CPUs cada vez mais complexas com um conjunto
complexo de instruções como (CISC)
Conceito RISC: Instrução executada em ciclo único → “Arquitetura que reduz a
complexidade do chip por instruções de processamento mais simples”.
CPUs de arquitetura RISC capazes de executar apenas um conjunto muito limitado (simples)
de instruções.
Abordagem CISC
Conclui a tarefa em poucos códigos de linha em assembly
Exemplo: TASK multiplicar os números das localizações 2:3, 5:2 e colocar a saída na
localização 5:2
Command: MULT 2:3, 5:2
MULT é o que é conhecido como uma "instrução complexa".
A instrução não é concluída na execução de um ciclo.
Hardware do processador que é capaz de compreender e executar uma série de operações.
Abordagem RISC
50
Os processadores RISC usam apenas instruções simples que podem ser executadas num ciclo
de relógio.
Comando "MULT" dividido em três comandos separados:
LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A
Execução de cada instrução num Ciclo Único
RISC
Vantagens dos computadores com conjunto de instruções reduzidas
Execução rápida de instruções devido a instruções simples para CPU.
Os chips RISC requerem menos transístores, o que os torna mais baratos para projetar e
produzir.
Ênfase no software
Single-clock, instrução reduzida apenas
Registo para registo: “LOAD” e “STORE“ são instruções independentes
Gasta mais transístores em registos de memória
Arquitetura Interna MCU
Todos os MCs usam um dos dois modelos básicos de design: Harvard Architecture e von-
Neumann Architecture.
Eles representam duas maneiras diferentes de trocar dados entre a CPU e a memória.
51
Tipos de memória
Tipos de memória primária:
a. RAM (Randomly Access Memory) – Memória de escrita/leitura, rápida mas não
persistente
i. SRAM
ii. DRAM
b. ROM (Read Only Memory) – Memória apenas de leitura
i. PROM
ii. EPROM
c. Híbrido
i. EEPROM
ii. NVRAM
iii. Memória flash
Memória primária
O armazenamento primário (ou memória principal ou memória interna), muitas vezes
referido simplesmente como memória, é o único armazenamento diretamente acessível para a
CPU. A CPU lê continuamente as instruções armazenadas e executa-as conforme necessário.
A memória principal está direta ou indiretamente conectada à CPU através de um bus de
memória. Na verdade, são dois buses: um bus de endereço e um bus de dados. A CPU
52
Tipos de RAM
Double Data Rate (DDR) synchronous dynamic random access memory ou também
conhecida como DDR1 SDRAM é uma classe de memória usada em computadores.
A interface usa double pumping (transferência de dados nas bordas ascendente e descendente
do sinal do clock) para diminuir a frequência do clock.
Uma vantagem de manter a frequência do clock baixa é que isso reduz os requisitos de
integridade do sinal na placa de circuito que conecta a memória ao controlador.
A célula de memória DDR2 ainda tem o clock na mesma frequência que as células DDR
SDRAM e SDRAM, mas a frequência dos buffers de entrada/saída é maior com DDR2
SDRAM.
O bus que conecta as células de memória aos buffers é duas vezes mais largo em comparação
com o DDR. Assim, os buffers de I/O realizam multiplexing: os dados estão a vir das células
de memória ao longo de um bus largo e estão saindo dos buffers num bus da mesma largura
que no DDR SDRAM, mas com uma frequência duas vezes maior. Isso permite aumentar a
largura de banda da memória sem aumentar a frequência operacional.
Tipos de ROM
As memórias na família ROM são diferenciadas pelos métodos usados para escrever novos
dados nelas (geralmente chamados de programming) e pelo número de vezes que podem ser
reescritas.
Esta classificação reflete a evolução dos dispositivos ROM de hardwired para programáveis
ou para apagáveis e programáveis.
Uma característica comum é a capacidade de reter dados e programas para sempre, mesmo
durante uma queda de energia.
O conteúdo da ROM tinha que ser especificado antes da produção do chip, de forma que os
dados reais pudessem ser usados para organizar os transístores dentro do chip.
PROM
Um passo à frente da ROM mascarada é a PROM (ROM programável), que é adquirida num
estado não programado. Os dados de uma PROM não programado são compostos
inteiramente de 1's.
O processo de escrita dos dados na PROM envolve um equipamento especial denominado
programador de dispositivo. O programador do dispositivo escreve dados no dispositivo, uma
palavra de cada vez, aplicando uma carga elétrica aos pinos de entrada do chip.
Uma vez que uma PROM tenha sido programada desta forma, o seu conteúdo nunca poderá
ser alterado. Caso seja necessário alterar o código ou os dados armazenados na PROM, o
dispositivo atual deve ser descartado. Como resultado, as PROMs também são conhecidas
como dispositivos programáveis de uma só vez (OTP).
EPROM
Uma EPROM (ROM apagável e programável) é programada exatamente da mesma maneira
que uma PROM.
No entanto, as EPROMs podem ser apagadas e reprogramadas repetidamente. Para apagar
uma EPROM, é necessário expor o dispositivo a uma forte fonte de luz ultravioleta. (Uma
janela na parte superior do dispositivo permite que a luz alcance o silício.) Ao fazer isso,
redefine-se o chip inteiro para seu estado inicial não programado.
Embora mais caro do que os PROMs, a sua capacidade de ser reprogramado torna os
EPROMs uma parte essencial do processo de desenvolvimento e teste de software.
54
Memória NVRAM
O terceiro membro da classe de memória híbrida é NVRAM (RAM não volátil).
55
Em aplicações à prova de falhas, o sistema do computador deve ter uma alta cobertura de
deteção de erros.
Frequentemente, um watchdog é necessário para monitorizar a operação do sistema do
computador e colocá-lo no estado seguro.
Watchdog Timers
Embora não seja possível lidar com todas as anomalias de hardware e software, o
desenvolvedor pode empregar o uso de temporizadores de vigilância para ajudar a mitigar os
riscos.
Um cronómetro de watchdog é um dispositivo de cronometragem de hardware que dispara
um reset do sistema, ou operação semelhante, após um determinado período de tempo
decorrido.
Um cronómetro de watchdog pode ser um componente de hardware independente ou
embutido no próprio processador.
Para evitar uma redefinição, uma aplicação deve redefinir periodicamente o cronómetro do
watchdog antes que esse intervalo expire. Isso também é conhecido como “kicking the dog”.
Watchdogs externos
Os temporizadores de watchdog externos são circuitos integrados que ativam fisicamente o
pino de reset do processador.
O processador deve declarar um pino de saída de alguma forma para redefinir o mecanismo
de temporização do watchdog.
Este tipo de watchdog é geralmente considerado o mais apropriado devido à total
independência do watchdog do processador.
Alguns watchdogs externos apresentam um reset em “windowed”.
Impõe restrições de tempo para uma redefinição adequada do watchdog.
Minimiza a probabilidade de software incorreto redefinir o watchdog.
Watchdogs - Mars Pathfinder
Em julho de 1997, uma inversão de prioridade ocorreu na missão Mars Pathfinder, depois da
nave aterrar na superfície marciana.
Uma tarefa de comunicação de alta prioridade foi forçada a aguardar um mutex mantido por
uma tarefa “científica” de prioridade mais baixa.
O tempo do software foi comprometido, e um reset do sistema emitida pelo seu cronómetro
de watchdog trouxe o sistema de volta às condições normais de operação.
Na Terra, os cientistas conseguiram identificar o problema e enviar um novo código para
corrigi-lo.
Assim, o restante da missão de $ 265 milhões de dólares poderia ser concluído com sucesso.
57
Watchdogs - Conclusão
Os cronómetros de watchdog podem adicionar uma grande confiabilidade aos sistemas
embebidos, se usados corretamente.
Para fazer isso, é necessária uma boa abordagem geral. Reiniciar o cronómetro do watchdog
deve fazer parte do projeto geral.
Verificar a integridade de operação do sistema e usar isso como um critério para reiniciar o
cronómetro de watchdog.
Além de validar se o software “faz a coisa certa”, verificar se o faz no tempo esperado.
Supor que o software apresentará um mau funcionamento de hardware ou falha de software.
Adicionar informações de debugging suficientes para ajudar na situação de debug.
Input/Output
Registos de dispositivos mapeados em “portas”; um espaço de endereço separado
Mecanismo de interrupção
Responde a eventos raros, mas importantes
o Condições de alarme, como bateria fraca
o Condições de erro
Sincronização de I/O
o Dispara interrupção quando o sinal numa porta muda
59
Interrupções periódicas
o Gerado pelo cronómetro numa taxa regular
o O temporizador Systick pode gerar interrupção quando chega a zero
o Valor de reload + frequência determinam taxa de interrupção
Uma interrupção:
o Transferência automática de software
o Em resposta a um evento de hardware
Exemplos
o Periodicamente: saída para DAC fazendo som
o Nova entrada: recebe novos dados
o A saída está idle: envia mais dados
ARM
Fundado em novembro de 1990:
o Extraído de computadores Acorn
Projeta a gama ARM de núcleos de processador RISC
Licencia projetos de núcleo ARM para parceiros de semicondutores que fabricam e
vendem para seus clientes.
o ARM não fabrica silício ela mesma
Também desenvolver tecnologias para auxiliar no design da arquitetura ARM
o Ferramentas de software, placas, hardware de debug, software de aplicação,
arquiteturas de bus, periféricos, etc.
62
Communications Criteria
Critérios para avaliação de casos e soluções:
• Existem várias soluções wireless e wired para conectar things.
• No entanto, o wireless é dominante para a conectividade de objetos inteligentes porque
permite que estes tenham mobilidade.
Caraterísticas e atributos relevantes para conectar objetos inteligentes: alcance, bandas de
frequência, consumo de energia, topologia, dispositivos restritos e redes de nós restritos.
Communications Criteria – Range/Alcance
• Quão longe?
• Qual área?
• Interior, exterior?
Para simplesmente analisar, três intervalos serão considerados:
Curto alcance: dezenas de metros
Alcance médio: dezenas a centenas de metros; distância máxima geralmente < 1,6 Km
Longo alcance: > 1,6 Km
Em implantações reais, as especificações de cobertura máxima não devem ser consideradas
garantidas!
71
Várias faixas sub-GHz foram definidas para ISM. As bandas mais conhecidas estão
centradas em 169 MHz, 433 MHz, 868 MHz e 915 MHz.
A faixa de 868 MHz foi definida na Recomendação 70-03 da Conferência Europeia
das Administrações de Correios e Telecomunicações (CEPT), no Comité Europeu de
Radiocomunicações (ERC), em 1959, nomeadamente a sua
o potência de transmissão permitida ou EIRP (potência irradiada isotrópica efetiva)
o e duty cycle/ciclo de trabalho
A banda de 868 MHz é aplicável a tecnologias de acesso IoT, como IEEE 802.15.4,
802.15.4g, 802.11ah e LoRaWAN.
Mais recentemente (2015), a Recomendação 70-03 introduziu uma nova banda: 870-
846 MHz. Essa banda é mencionada no IEEE 802.15.4v e no Wi-SUN 1.0.
A banda de 169 MHz é usada na Europa para aplicações de medição de água e gás
wireless - Porquê? Esta banda permite uma leitura remota 1x por mês, mesmo em
áreas densamente povoadas, esta banda pode ser utilizada e gerida de forma eficiente.
Constrained Network: uma rede onde algumas das caraterísticas usuais da Internet
não são alcançáveis.
Challenge Network: uma rede que tem muita dificuldade em manter o que uma
aplicação esperaria hoje do modelo IP de ponta a ponta (por exemplo, exibindo sérias
interrupções na conectividade IP de ponta a ponta ou atraso excessivo).
Constrained-Node Network: uma rede cujas caraterísticas são influenciadas por serem
compostas por uma porção significativa de nós restritos. Uma rede de nós restritos
sempre é uma rede restrita por causa das restrições de rede decorrentes das restrições
de nós, mas também pode ter outras restrições que já a tornam uma rede restrita.
As redes de nós restritos são frequentemente chamadas de redes de baixa potência e
com perdas/Low-Power and Lossy Networks (LLNs).
Os LLNs são geralmente compostos de muitos dispositivos incorporados com energia,
memória e recursos de processamento limitados interconectados por uma variedade de
links, como IEEE 802.15.4 ou Wi-Fi de baixa potência [RFC 7228].
Redes com perdas indicam que o desempenho da rede pode sofrer interferência e
variabilidade devido a ambientes de rádio adversos.
Os protocolos da Camada 1 e Camada 2 que podem ser usados para redes de nós
restritos devem ser avaliados no contexto das seguintes caraterísticas para
aplicabilidade de caso de uso: taxa de dados e rendimento, latência e determinismo e
sobrecarga e payload.
Data Rate and Throughput/Taxa de dados e taxa de transferência:
o Há uma grande variedade de valores de taxa de dados (de 100 bps com Sigfox a
dezenas de megabits por segundo com tecnologias como LTE e IEEE 802.11ac)
o No entanto, a taxa de transferência real pode, às vezes, ser significativamente menor do
que a taxa de dados.
o As tecnologias não especialmente projetadas para IoT, como celular e Wi-Fi, são
adequadas para aplicações de IoT com requisitos de alta largura de banda. Nesse caso,
o design tende a se concentrar nos requisitos da aplicação, como latência e
determinismo.
o As tecnologias de curto alcance também podem fornecer taxas de dados médias a altas
com taxa de transferência suficiente para conectar alguns terminais. Por exemplo, os
sensores Bluetooth que agora aparecem em wearables conectados enquadram-se nesta
categoria. Neste caso, as soluções concentram-se mais na área ocupada e na vida útil da
bateria do que na taxa de dados.
o As tecnologias de acesso IoT desenvolvidas para nós restritos são otimizadas para
baixo consumo de energia, mas também são limitadas em termos de taxa de dados, que
depende da banda de frequência selecionada e da taxa de transferência.
o As redes LPWA são projetadas para um determinado número de mensagens por dia ou
por terminal, em vez de apenas ter um limite de uso de largura de banda puro.
o Numa topologia de malha de acesso, o comportamento de uma aplicação, como
pesquisa de frequência, afeta o design porque todos os dispositivos partilham a
capacidade de largura de banda restrita.
o A taxa de transferência real geralmente é importante para nós restritos que
implementam uma pilha de IP.
77
Nesse caso, a taxa de transferência é uma percentagem menor da taxa de dados, mesmo
se o nó obtiver toda a largura de banda da rede restrita num determinado momento.
Para ver a diferença entre a taxa de dados e a taxa de transferência/débito de dados,
considere a sub-rede IEEE 802.15.4g implementando a modulação 2FSK a 150 kbps para
a banda de frequência de 915 MHz.
o Para cobrir o caso limite de distância e qualidade do sinal de rádio, Forward Error
Correction (FEC) será ativado, o que reduz a taxa de transferência de 150 kbps para 75
kbps.
o Adicionando a sobrecarga da pilha/stack overhead de protocolo, o tratamento de
comunicação bidirecional e o tamanho do payload de dados variável, a taxa de
transferência máxima será de 30 a 40 kbps.
o Isso deve ser considerado como o melhor valor porque o número de dispositivos que se
comunicam simultaneamente com a topologia e a sobrecarga do plano de controlo
também afetará o rendimento.
o A maioria dos dispositivos IoT inicia a comunicação.
o Consequentemente, o tráfego upstream para um servidor de aplicações tende a ser
maior do que o tráfego downstream do servidor de aplicações.
o Esta caraterização do tráfego é importante para determinar a capacidade de rede
necessária
Latency and Determinism:
o Assim como os requisitos de rendimento, as expectativas de latência das aplicações IoT
devem ser conhecidas ao selecionar uma tecnologia de acesso.
o Em redes wireless, a perda de pacotes e as retransmissões devido a interferência,
colisões e ruído são comportamentos normais.
o A latência pode variar de alguns milissegundos a segundos, e as aplicações e pilhas de
protocolo devem lidar com estes valores abrangentes.
Por exemplo, o UDP na camada de transporte é altamente recomendado para
terminais IP que se comunicam por LLNs.
No caso de topologias em malha, se houver necessidade de comunicação entre dois
dispositivos dentro da malha, a otimização do routing do caminho de
encaminhamento é obtida usando RPL (Protocolo de Roteamento IPv6 para Redes
de Baixa Potência e com Perdas) - RCF 6550.
o Quando a latência é uma grande preocupação, tecnologias de acesso emergentes como
Ethernet Determinística ou o modo Time-Slotted Channel Hopping (TSCH) do IEEE
802.15.4e devem ser consideradas.
acesso da camada de link com MTUs menores. Nota: O uso de IP em dispositivos IoT é
um tópico aberto de discussão. Lembre-se de que as classes 0 e 1 não têm uma
implementação completa da pilha de IP.
o Para tecnologias que se enquadram na definição de LLN, mas são capazes de
transportar IP (por exemplo, IEEE 802.15.4), as capacidades de fragmentação da
Camada 1 ou Camada 2 e / ou otimização de IP são importantes.
Exemplos:
o O tamanho do payload para IEEE 802.15.4 é de 127 bytes e requer um payload IPv6
com um MTU mínimo de 1280 bytes para ser fragmentado.
o Por outro lado, o IEEE 802.15.4g possibilita payloads de até 2.048 bytes, mais
adequado para transportar IPv6 MTU mínimo de 1280 bytes.
o A maioria das tecnologias LPWA oferece tamanhos de payload pequenos, para lidar
com a baixa taxa de dados e tempo no ar ou requisitos de duty cycle de nós e sensores
de IoT.
Por exemplo, as cargas úteis podem ter até 19 bytes usando a tecnologia
LoRaWAN ou até 250 bytes, dependendo da Adaptative Data Rate (ADR).
Embora isso não impeça o uso de um payload IPv6 / 6LoWPAN, como visto em
algumas implementações de endpoint, esses tipos de protocolos são mais
adequados para nós de Classe 0 e 1 (consulte RFC 7228).
6LoWPAN (IPv6 over Low power Wireless Personal Area Networks)
Conclusão:
o Os critérios de comunicação que acabamos de abordar são fundamentais para
compreender as tecnologias de acesso à IoT, suas caraterísticas e quando são mais
aplicáveis.
o Esses critérios incluem faixa, bandas de frequência, consumo de energia, topologia de
rede, presença de dispositivos e / ou redes restritas e taxa de transferência de dados.
o Do ponto de vista do engenheiro de rede, você deve garantir que uma arquitetura seja
desenvolvida com a abstração adequada para uma tecnologia de acesso específica.
IoT access technologies
Acabamos de encerrar a descrição dos critérios que ajudam na avaliação das
tecnologias de rede restritas de IoT para o projeto e as operações adequadas.
No livro de referência Hanes et al (2017), é possível encontrar uma visão geral de
algumas das principais tecnologias de acesso IoT:
o IEEE 802.15.4
o IEEE 802.15.4g e 802.15.4e
o IEEE 1901.2a
o IEEE 802.11ah
o LoRaWAN
o NB-IoT e outras variações LTE
As tecnologias listadas acima são aquelas que são vistas como tendo market share
e/ou mind share.
Para cada uma das tecnologias de acesso IoT listadas acima, um conjunto comum de
informações pode ser encontrado em Hanes et al (2017), e deve ser usado como referência:
79
Physical Layer
O padrão 802.15.4 oferece suporte a várias opções PHY:
o Frequências de 2,4 GHz a sub-GHz nas bandas ISM.
82
MAC Layer
o A camada MAC IEEE 802.15.4 gere o acesso ao canal PHY definindo como os
dispositivos na mesma área partilharão as frequências alocadas (CSMA / CA).
o A programação e o routing de frames de dados também são coordenados na camada
MAC.
o A camada 802.15.4 MAC executa as seguintes tarefas:
Sinalização de rede para dispositivos que atuam como coordenadores (novos
dispositivos usam beacons para ingressar numa rede 802.15.4)
Associação e desassociação de PAN por um dispositivo
Segurança do dispositivo
Comunicação de link confiável entre duas entidades MAC pares
MAC Layer (nonbeacon)
O modo sem beacon e o modo beacon são dois modos básicos de transmissão do IEEE
802.15.4 (Akbar 2016):
83
MAC Layer
Tipos de frames MAC:
o Data Frame: lida com todas as transferências de dados
o Beacon Frame: usado na transmissão de beacons de um coordenador PAN
o Acknowledgement Frame: confirma a receção bem-sucedida de um frame
o MAC Command Frame: Responsável pelo controlo de comunicação entre os
dispositivos. Cada um desses quatro tipos de frame 802.15.4 MAC segue o
formato de frame mostrado na figura
o O frame 802.15.4 MAC pode ser dividido no header MAC, MAC
o Payload e campo de rodapé MAC, conforme mostrado na figura seguinte
84
Depois que esse bit é definido, um campo chamado header de segurança auxiliar
é criado após o campo Endereço de origem, roubando alguns bytes do campo
Payload.
IoT access technologies: IEEE 802.15.4 – MAC Layer
A Figura mostra o formato de quadro IEEE 802.15.4 em alto nível, com o bit Security
Enabled definido e o campo Auxiliary Security Header presente.
o As camadas PHY e MAC permitem que o LoRaWAN cubra distâncias mais longas
com uma taxa de dados que pode mudar dependendo de vários fatores. A arquitetura
LoRaWAN depende de gateways para conectar terminais a servidores de rede.
o Do ponto de vista da segurança, o LoRaWAN oferece autenticação e criptografia
AES.
IoT access technologies: Brief overview – LoRaWAN and two competitors
IoT access technologies: Brief overview – NB-IoT and Other LTE Variations
o As tecnologias celulares existentes, como GPRS, Edge, 3G e 4G / LTE, não são
particularmente bem adaptadas para dispositivos alimentados por bateria e pequenos
objetos desenvolvidos especificamente para IoT.
o 3GPP e fornecedores associados trabalharam em tecnologias celulares para melhor
atender aos requisitos de IoT.
o Novas categorias de dispositivos LTE foram criadas para se alinhar aos requisitos
específicos de IoT, como baixo rendimento e baixo consumo de energia, e também
diminuir a complexidade e o custo dos dispositivos LTE. Isso resultou na definição
do item de trabalho LTE-M.
o Como a nova categoria de dispositivos LTE-M não estava suficientemente próxima
das capacidades LPWA, em 2015 o 3GPP aprovou uma proposta para padronizar
uma nova tecnologia de acesso de rádio de banda estreita chamada Narrowband IoT
(NB-IoT).
o O NB-IoT atende especificamente aos requisitos de um grande número de
dispositivos de baixo rendimento, baixo consumo de energia do dispositivo,
cobertura interna aprimorada e arquitetura de rede otimizada.
o NB-IoT representa o futuro da tecnologia LPWA para os provedores de serviços
móveis que possuem espetro de banda licenciada.
o As especificações relacionadas à IoT devem ser concluídas e publicadas pelo 3GPP
para permitir que fornecedores, provedores de serviços móveis e aplicações
endossem amplamente a tecnologia.
88
o Evolução para eSIMs, que ainda não são amplamente suportados. Um cartão eSIM é
compatível com várias operadoras e também é reconfigurável.
Conclusion
o Os critérios de comunicação e algumas tecnologias recentes de suporte ao deployment
de objetos inteligentes de IoT foram verificados.
Em primeiro lugar, foram apresentados os critérios para avaliar objetos
inteligentes e o que é necessário para sua conectividade: faixa de transmissão,
bandas de frequência, consumo de energia, topologia e dispositivos e redes
restritos.
É fundamental avaliar esses critérios ao lidar com deployments e redes IoT.
o Em segundo lugar, uma discussão detalhada de uma das principais tecnologias para
conectar sensores foi feita (IEEE.802.15.4) e uma breve visão geral de outra solução
foi apresentada.
o Essas tecnologias são novas e devem evoluir ao longo dos anos.
o O objetivo era sensibilizar e basear o conhecimento dessas tecnologias. A
compreensão dessas tecnologias fornecerá uma base para compreender as novas
tecnologias.
O fator de inovação
o A adoção da PI é um fator para o aumento da inovação.
o IP é o protocolo básico para aplicativos que vão desde transferência de arquivos e e-
mail até a World Wide Web, e-commerce, redes sociais, mobilidade e muito mais.
o A recente evolução da computação de PC para celular e de mainframes para serviços
em cloud são provas claras do terreno inovador habilitado pelo IP.
o As inovações em IoT também podem alavancar uma base de IP.
Summary
o A adoção de IP fornece uma base sólida para a Internet das Coisas, permitindo
recursos de comunicação de dados bidirecionais seguros e que possam ser geridos
entre todos os dispositivos numa rede.
91
Business Case for IP – Adoption or Adaption of IP: Fatores a serem considerados para
selecionar o modelo para conectividade de última milha
o Hoje, as duas versões de IP são executadas pela Internet, mas a maior parte do
tráfego ainda é baseada em IPv4.
o A Internet das Coisas deve oferecer suporte às versões IPv4 e IPv6
simultaneamente, porque o suporte IPv4 é frequentemente necessário.
o Técnicas como encapsulamento e tradução precisam ser empregues (em soluções
de IoT) para garantir a interoperabilidade entre IPv4 e IPv6.
o Vários fatores determinam se IPv4, IPv6 ou ambos podem ser usados numa
solução de IoT.
The need for optimization – IP versions: principais fatores aplicáveis ao suporte IPv4 e
IPv6 numa solução IoT
Protocolo de aplicação: os dispositivos IoT que implementam interfaces Ethernet ou Wi-
Fi podem se comunicar em IPv4 e IPv6, mas o protocolo de aplicação pode determinar a
escolha da versão IP.
o Os protocolos SCADA, como DNP3 / IP (IEEE 1815), Modbus TCP ou os padrões
IEC 60870-5-104, são especificados apenas para IPv4.
o Os dispositivos IoT com protocolos de aplicação definidos pelo IETF, como HTTP
/ HTTPS, CoAP, MQTT e XMPP, oferecem suporte a ambas as versões de IP.
A seleção da versão do IP depende apenas da implementação.
Provedor e tecnologia de celular: os dispositivos IoT com modems de celular dependem
da tecnologia de celular e dos serviços de dados oferecidos pelo provedor.
o Para GPRS, Edge e 3G, IPv4 é a versão do protocolo base.
o Se o IPv6 for usado com qualquer um dos itens acima, ele deve ser encapsulado em
IPv4.
o Hoje em dia, é necessário conectar a porta série do legacy device a uma porta série
próxima num equipamento de comunicação, normalmente um router.
o Este router local então encaminha o tráfego série sobre IP para o servidor central
para processamento. O encapsulamento de protocolos seriais sobre IP aproveita
mecanismos como socket bruto TCP ou UDP, disponíveis principalmente em IPv4.
Camada de adaptação IPv6: algumas camadas físicas e de link de dados para protocolos
IoT recentemente padronizados suportam apenas IPv6.
o As camadas físicas e de link de dados mais comuns (por exemplo, Ethernet e Wi-
Fi) definem camadas de adaptação para ambas as versões.
o As tecnologias mais recentes, como IEEE 802.15.4 (Wireless Personal Area
Network), IEEE 1901.2 e ITU G.9903 (Narrowband Power Line Communications)
têm apenas uma camada de adaptação IPv6 especificada.
o Qualquer dispositivo que implemente uma tecnologia que requeira uma camada de
adaptação IPv6 deve se comunicar em uma sub-rede somente IPv6.
o Isso é reforçado pelo protocolo de routing IETF para LLNs, RPL, que é apenas
IPv6.
Mecanismos de transição, como mapeamento de endereço e porta usando tradução
(MAP-T), permitem que o tráfego IPv4 seja encaminhado por uma rede IPv6. Para
obter mais informações, consulte IETF RFC 7599, em
https://tools.ietf.org/html/rfc7599.
o O grupo de trabalho 6LoWPAN na RFC 4944 define frame headers para os recursos
de compactação de header, fragmentação e endereçamento de mesh.
o Esses headers podem ser empilhados na camada de adaptação para manter esses
conceitos separados enquanto reforça um método estruturado para expressar cada
capacidade.
o Algumas pilhas de headers 6LoWPAN típicas:
o A unidade máxima de transmissão (MTU) para uma rede IPv6 deve ser de pelo menos
1280 bytes, enquanto para IEEE 802.15.4, 127 bytes é o MTU.
o Consequentemente, grandes pacotes IPv6 devem ser fragmentados em vários
frames802.15.4 na camada 2.
o O header do fragmento utilizado por 6LoWPAN é composto por três campos
primários:
Tamanho do Datagrama: tamanho total da carga não fragmentada
Tag de datagrama: identifica o conjunto de fragmentos para uma payload
Deslocamento do Datagrama: delinear o quão longe em uma payload ocorre um
fragmento específico (ausente no primeiro fragmento, porque seu valor é
conhecido como zero)
Lembre-se de que IEEE 802.15.4g-PHY tem payload de 2.047 bytes
Se o deslocamento/offset do datagrama for omitido, por que o tamanho do datagrama é
repetido em cada fragmento?
Optimizing IP for IoT – Mesh Addressing: mesh under versus mesh-over routing
o Duas opções para estabelecer acessibilidade e encaminhar pacotes:
mesh-under onde o routing de pacotes é tratado na camada de adaptação
6LoWPAN.
mesh-over ou route-over, que utiliza o routing IP para levar os pacotes ao seu
destino.
o Quando mesh-under é usado, o routing de pacotes é tratado na camada de adaptação
6LoWPAN. Ele usa o header da mesh e os endereços de origem e destino: não precisa
descompactar o frame IPv6.
o Os nós têm uma tabela de encaminhamento da Camada 2 que eles consultam para
rotear os pacotes para seu destino final dentro da malha. Um border gateway termina
o domínio mesh-under.
o Quando o mesh-over é usado, todo o roteamento e encaminhamento de pacotes são
executados na camada de rede - usando, por exemplo, o protocolo de roteamento IPv6
para redes de baixa potência e perdas (RPL).
o O routing IP Layer 3 é utilizado dentro ou fora do domínio mesh. Cada nó em pleno
funcionamento atua como um router IP, de modo que cada salto da camada de link é
um salto IP.
o A camada de adaptação 6LoWPAN processa os fragmentos recebidos em cada salto
para remontar o pacote de dados IPv6 original e, em seguida, fragmentar novamente,
antes de encaminhar para o próximo salto - isso aumenta a latência de ponta a ponta.
100
6TiSCH – 6top
o O grupo de trabalho 6TiSCH especificou 6top, uma subcamada que cola a camada
MAC e a camada de adaptação 6LoWPAN.
o 6top fornece comandos para protocolos das camadas superiores da rede, como RPL.
101
6TiSCH – Scheduling
o O padrão IEEE 802.15.4e define uma estrutura de intervalo de tempo, mas não exige
um algoritmo de escalonamento para como os intervalos de tempo são utilizados. Isso
é deixado para protocolos de nível superior como 6TiSCH.
o A programação é crítica porque pode afetar o rendimento, a latência e o consumo de
energia.
o Os programas em 6TiSCH são divididos em células.
o Os nós transmitem apenas quando a programação determina que a sua célula está
aberta para comunicação.
o A arquitetura 6TiSCH define quatro mecanismos de gestão de cronograma e três
modelos de encaminhamento (descritos a seguir).
o Espera-se que novas gerações de nós restritos que implementam uma pilha IP em
redes de acesso restrito executem uma pilha de protocolo IP otimizada.
o Em ambientes restritos protegidos por DTLS, o Constrained Application Protocol
(CoAP) pode ser usado para controlar recursos num dispositivo.
o O grupo de trabalho DTLS concentra-se no grupo de trabalho DTLS na
implementação do protocolo de segurança da camada de transporte DTLS nesses
ambientes. Tarefas:
para definir um perfil DTLS otimizado para nós restritos;
considere a aplicabilidade da camada de registo DTLS para proteger mensagens
multicast;
investigue como o handshake DTLS em ambientes restritos pode ser otimizado.
Profiles and Compliances
Deploying do pacote de protocolos da Internet para objetos inteligentes requer vários
protocolos e opções que devem ser coordenados com as camadas inferior e superior.
Portanto, as definições de perfil, certificações e promoção por alianças podem ajudar os
implementadores a desenvolver soluções que garantam a interoperabilidade e/ou
intercambialidade dos dispositivos.
A seguir, é apresentada uma lista de algumas das principais organizações do setor que
trabalham em definições e certificações de perfil para redes e nós restritos de IoT e os
seus objetivos são destacados.
Profiles and Compliances – Internet Protocol for Smart Objects (IPSO) Alliance
o Aliança do Protocolo da Internet para Objetos Inteligentes (IPSO) (2008–) A aliança
inicialmente focou na promoção do IP como a solução principal para comunicações
de objetos inteligentes. Atualmente, está mais focado em como usar o IP, com a IPSO
Alliance organizando testes de interoperabilidade entre os membros da aliança para
validar que o IP para objetos inteligentes pode funcionar em conjunto e implementar
adequadamente os padrões da indústria.
Como a IPSO Alliance deseja garantir que “os engenheiros e criadores de produtos
terão acesso às ferramentas necessárias para construir a IoT CERTA”.
Profiles and Compliances – Wi-SUN Alliance
o A Wi-SUN Alliance (com base na indústria) esforçou-se para definir um perfil de
comunicação que se aplica a protocolos específicos da camada física e de link.
o Atualmente, o Wi-SUN está focado no protocolo IEEE 802.15.4g e seu suporte para
multisserviços e comunicações IPv6 seguras com aplicações executadas na camada de
transporte UDP.
o O setor de serviços públicos é a principal área de foco da Wi-SUN Alliance. O perfil
de rede de área de campo (FAN) Wi-SUN permite que redes de serviços públicos
inteligentes forneçam conectividade resiliente, segura e económica com cobertura
extremamente boa numa variedade de ambientes topográficos, de bairros urbanos
densos a áreas rurais.
Profiles and Compliances – Thread Group
107
o O Thread Group (com base na indústria) definiu um perfil wireless baseado em IPv6
que fornece a melhor maneira de conectar mais de 250 dispositivos numa rede mesh
wireless de baixo consumo de energia.
o A tecnologia sem fio usada pelo Thread é IEEE 802.15.4, que é diferente do IEEE
802.15.4g do Wi-SUN.
Profiles and Compliances – IPv6 Ready Logo
o Inicialmente, o Fórum IPv6 garantiu a promoção do IPv6 em todo o mundo.
o Uma vez que as implementações IPv6 se tornaram amplamente disponíveis, a
necessidade de interoperabilidade e certificação levou à criação do programa IPv6
Ready Logo.
O programa IPv6 Ready Logo estabeleceu programas de teste de conformidade e
interoperabilidade com a intenção de aumentar a confiança do utilizador ao
implementar o IPv6. O IPv6 Core e os componentes IPv6 específicos, como
DHCP, IPsec e certificações de border router do cliente, foram produzidos.
Essas certificações são reconhecidas em todo o setor e muitos produtos já são
certificados.
Um esforço de certificação IPv6 específico para IoT está atualmente em definição
para o programa.
Summary
O conjunto de protocolos IP foi implantado em redes privadas e públicas nos últimos 30
anos, interconectando billion de dispositivos IP e utilizadores.
A arquitetura provou ser altamente flexível. Por exemplo, novos tipos de link foram
adaptados, novos protocolos de routing e transporte foram especificados e deployed e o
número de aplicações suportadas excedeu todas as expectativas.
A grande maioria dos protocolos e tecnologias IP podem ser reutilizados como estão
pelas soluções IoT.
Onde o IP pode falhar é em cenários onde os dispositivos IoT são nós restritos e/ou se
conectam a redes restritas.
o Para superar esses cenários, o IETF busca otimizar o IP para IoT e comunicações de
objetos inteligentes.
o Os grupos de trabalho da IETF tiveram que desenvolver novos protocolos (por
exemplo, RPL) ou camadas de adaptação (por exemplo, 6LoWPAN).
A base para a camada de rede nas implementações de IoT está firmemente estabelecida.
A IETF e outros órgãos de padronização continuam a trabalhar na definição de redes,
protocolos e casos de uso necessários para o avanço da Internet das Coisas.
Aula 7 – Protocolos de aplicação para IoT
108
destino. A confirmação do recebimento desta carta não acontece até que outra carta seja
enviada em resposta.
Métodos de transporte de aplicações IoT
Podemos categorizar os protocolos de aplicação IoT comuns como:
Protocolo da camada de aplicação não presente: neste caso, a payload de dados é
transportada diretamente no topo das camadas inferiores. Nenhum protocolo de camada
de aplicação é usado.
Controlo de supervisão e aquisição de dados (SCADA): o SCADA é um dos protocolos
industriais mais comuns no mundo, mas foi desenvolvido muito antes dos dias do IP e foi
adaptado para redes IP.
Protocolos genéricos baseados na web: protocolos projetados para a web usando
protocolos físicos comumente disponíveis, como Ethernet, Wi-Fi e 4G / LTE, são
encontrados em muitos dispositivos IoT de classe empresarial e de consumidor que se
comunicam em redes não restritas.
Protocolos da camada de aplicação IoT: os protocolos da camada de aplicação IoT são
concebidos para rodar em nós restritos com uma pequena footprint de computação e são
bem adaptados às restrições de largura de banda de rede em links de celular ou satélite ou
redes LPWAN restritas (6LoWPAN e LoRaWAN por exemplo). O Message Queuing
Telemetry Transport (MQTT) e Constrained Application Protocol (CoAP) são dois
exemplos bem conhecidos de protocolos de camada de aplicação IoT.
Definição : Protocolo
Protocolo: Um conjunto formal de regras que dita como a troca de informações, bem como a
interação entre os objetos (podem ser dispositivos, threads de execução, etc.) devem ocorrer.
As regras especificam:
O formato das mensagens trocadas;
Vários estados de protocolo diferentes e quais mensagens podem ser enviadas em cada
estado; esses estados determinam, entre outros, a ordem das mensagens.
Restrições de tempo e outras propriedades de qualidade, se houver.
Observação:
'mensagem' inclui chamada de função
pode-se especificar um protocolo sem ser explícito sobre o serviço geral que ele realiza
Exemplos: HTTP, TCP, UDP, SOAP, DNS
Algumas coisas têm acesso total à Internet. Essas coisas podem fornecer um servidor HTTP
rodando sobre TCP / IP e podem se conectar diretamente à Internet. Estes podem ser usados
para implementar um padrão de integração direta - REST nos dispositivos.
Caso de uso típico: a Thing não funciona com bateria e comunica-se com baixa latência
com um dispositivo local como um telefone.
Exemplo: use um telefone para se comunicar via WiFi (com router WiFi) para um
servidor HTTP em um dispositivo. Use sockets da web para publicar/subscrever, por
exemplo, escuta de telefone para eventos de campainha.
Padrão de integração de gateway
Algumas coisas podem não ter acesso total à Internet. Essas coisas podem suportar apenas
Zigbee ou Bluetooth ou outras especificações baseadas em IEEE 802.15.4. Suponha que não
possamos enviar pacotes IP para o dispositivo - ele é restrito. Este é o padrão de integração
do gateway.
An HTTP Request
Protocolo HTTP
HTTP é a abreviatura de Hypertext Transfer Protocol, que consiste num protocolo da camada
de transporte confiável para transferência de dados de host para host. O HTTP está localizado
na camada de aplicação do modelo OSI. Considerando os diferentes usos, o HTTP pode usar
o protocolo TCP para um transporte de dados confiável, bem como o UDP para um transporte
não confiável.
115
HTTP - História
HTTP / 0.9 foi o primeiro protocolo HTTP e era muito simples, com apenas um método:
GET. O método pode solicitar uma página do servidor e a resposta sempre é uma página
HTML.
HTTP / 1.0 funcionou como uma extensão de HTTP / 0.9. Este expandiu o protocolo
adicionando operações estendidas, negociação estendida, meta-informações mais ricas,
vinculadas a um protocolo de segurança. Este ficou mais eficiente ao adicionar métodos
adicionais e campos de header. Mas ainda usava uma conexão separada com o mesmo
servidor para cada transação de request-response.
O HTTP / 1.1 pode reutilizar uma conexão várias vezes, por exemplo, para fazer o
download de imagens ou documentos para uma página recém-entregue.
Consequentemente, as comunicações HTTP / 1.1 apresentam menos latência, pois o
estabelecimento de conexões TCP apresenta um overhead considerável.
HTTP/TCP Connection Overhead
116
HTTP Session
Normalmente, o HTTP funciona como um modelo de request-response, ou seja, um modelo
ClientServer.
Os clientes, normalmente Web Browsers, podem emitir um Request usando URLs (Uniform
Resources Locator) ou URIs (Uniform Resources Identifier) e enviá-lo ao Servidor, que
recebe o Pedido, descodifica-o e fornece os documentos / funções solicitadas.
URI = scheme:[//authority]path[?query][#fragment]
Existem vários tipos de recursos que o Server pode transportar, como documentos, imagens e
agora até vídeo e áudio, no padrão HTML5 mais recente.
URI
HTTP Request/Solicitação
Uma linha de request: método + URL + versão do protocolo (por exemplo: GET
www.fit.edu HTTP / 1.1)
Solicitar campo de header
Corpo do request
Request Headers
118
HTTP Response
Uma linha de resposta: versão do protocolo + código de status + significado do
código. (Por exemplo: HTTP / 1.1 200 OK)
Campo de header de resposta
Corpo de resposta
Código de status de resposta
Response Headers
REST
119
CoAP features
Protocolo de transferência da web incorporado (coap: //)
Modelo de transação assíncrona
Ligação UDP com confiabilidade e suporte multicast
Métodos GET, POST, PUT, DELETE
Suporte URI
122
Header de 4 bytes
Subconjunto de tipos MIME e códigos de resposta HTTP
Descoberta integrada
Observação opcional e transferência de bloco
COAP Messaging Basics
Transporte:
(principalmente) ligação UDP
Troca de mensagens entre endpoints:
Mensagens com header de 4 bytes (partilhado por request e responses) contendo um
ID de mensagem (16 bits)
Troca confiável através de mensagens confirmadas que devem ser reconhecidas
(através de ACK ou mensagens de reset).
Retransmissão Stop-and-Wait simples com backoff exponencial.
Troca não confiável através de mensagem não confirmada
Deteção de duplicados para mensagens confirmadas e não confirmadas (através do ID
de mensagem)
Option Format
CoAP é:
Um protocolo RESTful muito eficiente
Ideal para dispositivos e redes restritos
Especializado para aplicações M2M
Fácil de proxy de / para HTTP
CoAP não é:
Um substituto geral para HTTP
compressão HTTP
Restrito a redes isoladas de "automação"
MQTT
Introduzido pela IBM em 1999
Padronizado por OASIS (2013)
Usa mecanismo de Publish/Subscriber controlado por um Broker
Broker
o Componente de software
o Responsável por distribuir mensagens de Publishers para Subscribers
interessados
Versões MQTT
o MQTT-SN
o S-MQTT
MQTT
126
Os pacotes de controlo MQTT são executados num transporte TCP usando o porto 1883. O
TCP garante um fluxo ordenado e sem perdas de bytes entre o cliente MQTT e o servidor
MQTT.
Opcionalmente, MQTT pode ser protegido usando TLS no porto 8883 e WebSocket (definido
em RFC 6455) também pode ser usado.
MQTT é um protocolo leve porque cada pacote de controlo consiste num header fixo de 2
bytes com campos de header variáveis opcionais e payload opcional. De notar que um pacote
de controlo pode conter uma payload de até 256 MB.
Canais em MQTT
Um intermediário de mensagem usa uma sequência de tópicos ou nome de tópico para filtrar
mensagens para os seus subscribers.
Ao assinar um recurso, o subscriber indica um ou mais níveis de tópico que são usados para
estruturar o nome do tópico. A barra (/) num nome de tópico MQTT é usada para separar
cada nível na árvore de tópicos e fornecer uma estrutura hierárquica para os nomes de
tópicos.
Exemplo: adt/lora/adeunis sendo um nível de tópico e adt/lora/adeunis/0018B2000000023A
sendo um exemplo de um nome de tópico
Canais / tópicos em MQTT funcionam como caminhos de ficheiros
Ao subscrever num canal, tem que especificar todo o caminho, ou utilizar caracterer wild-
card + ou #
Canais em MQTT - Wildcards
Controlo de acesso
O que? Restrições para fazer cumprir as políticas
Efeito: Permissão / negação de acesso a um recurso específico
128
Arquitetura MQTT
MQTT - Summary
129
REST
Significa Representational State Transfer/Transferência de Estado Representacional
Tem as seguintes restrições:
Client-Server
Sem estado
Cacheable
Sistema em camadas
Código sob demanda
Interface Uniforme
REST na web
Cada tipo de recurso que deseja está num URI diferente
Interage com recursos usando os HTTP verbs
PUT (Create)
GET (Read)
POST (Update)
DELETE (Delete)
O servidor não controla o estado (exceto para autenticação)
O cliente gere a lógica da aplicação.
Exemplos REST
Node.js
Node.js é um ambiente de tempo de execução JavaScript de código aberto/open-source,
multiplataforma/cross-platform e back-end que corre no mecanismo V8 e executa o código
JavaScript fora de um navegador da web.
O que é Node.js?
JavaScript é uma linguagem glue para módulos C ++
131
Modelos de serviço
134
PaaS Advantages:
Não importa o tamanho de uma empresa, PaaS oferece inúmeras vantagens, incluindo:
o Desenvolvimento e deployment simples e económica de aplicações
o Escalável
o Altamente disponível
o Os desenvolvedores podem personalizar aplicações sem a dor de cabeça de manter o
software
o Redução significativa na quantidade de codificação necessária
o Automatização da política de negócios
o Fácil migração para o modelo híbrido
Caraterísticas de PaaS:
PaaS tem muitas caraterísticas que o definem como um serviço na cloud, incluindo:
o Baseia-se na tecnologia de virtualização, para que os recursos possam ser facilmente
aumentados ou reduzidos conforme a empresa muda
o Oferece uma variedade de serviços para auxiliar no desenvolvimento, teste e
deployment de aplicações
o Acessível a vários utilizadores através da mesma aplicação de desenvolvimento
o Integra serviços da web e bancos de dados
Vantagens IaaS:
IaaS oferece muitas vantagens, incluindo:
o O modelo de computação na cloud mais flexível
o Fácil de automatizar o deployment de armazenamento, rede, servidores e capacidade
de processamento
o As compras de hardware podem ser baseadas no consumo
o Os clientes mantêm controlo total da sua infraestrutura
o Os recursos podem ser adquiridos conforme necessário
o Altamente escalável
Caraterísticas IaaS:
As caraterísticas que definem IaaS incluem:
o Os recursos estão disponíveis como um serviço
o O custo varia dependendo do consumo
o Os serviços são altamente escaláveis
o Vários utilizadores numa única peça de hardware
o A organização retém o controlo total da infraestrutura
o Dinâmico e flexível
Modelos de serviço em Cloud
Cloud privada: A cloud é operada exclusivamente para uma organização. Pode ser
gerida pela organização ou por terceiros e pode existir no local ou fora do mesmo.
Cloud da comunidade: A infraestrutura na cloud é partilhada por várias organizações e
oferece suporte a uma comunidade específica que partilha preocupações. Pode ser
gerido pelas organizações ou por terceiros e pode existir no local ou fora do local.
Cloud pública: a infraestrutura da cloud é disponibilizada ao público em geral ou a um
grande grupo do setor e é propriedade de uma organização que vende serviços na cloud.
Cloud híbrida: a infraestrutura da clou é uma composição de dois ou mais modelos de
cloud (privada, comunidade ou pública).
Cloud – Summary
A computação na cloud é um termo abrangente usado para se referir ao
desenvolvimento e serviços baseados na Internet
Uma série de caraterísticas definem dados na cloud, serviços de aplicativos e
infraestrutura:
o Hospedado remotamente: serviços ou dados são hospedados em infraestrutura
remota.
o Ubíquo: serviços ou dados estão disponíveis em qualquer lugar.
o Commodified: O resultado é um modelo de utility computing semelhante ao
tradicional de utilitários tradicionais, como gás e eletricidade - você paga pelo
que deseja!
Arquitetura na Cloud
138
Máquinas virtuais
A tecnologia VM permite que várias máquinas virtuais sejam executadas numa única
máquina física.
140
Oportunidades e desafios
O uso da cloud oferece uma série de oportunidades:
Permite que os serviços sejam usados sem nenhuma compreensão de sua
infraestrutura.
A computação na cloud funciona usando economias de escala:
o Potencialmente reduz as despesas para empresas iniciantes, pois não
precisariam mais comprar os seus próprios softwares ou servidores.
o O custo seria por preço sob demanda.
o Os fornecedores e prestadores de serviços cobram os custos estabelecendo um
fluxo contínuo de receitas.
Os dados e serviços são armazenados remotamente, mas acessíveis de “qualquer
lugar”.
Paralelamente, houve reação contra a computação na cloud:
O uso da computação na cloud significa dependência de outras pessoas e isso pode
limitar a flexibilidade e a inovação:
o As outras provavelmente se tornarão as maiores empresas de Internet, como
Google e IBM, que podem monopolizar o mercado.
o Alguns argumentam que o uso de supercomputadores é um retorno à era da
computação de mainframe, contra a qual o PC era uma reação.
A segurança pode ser um grande problema:
o Ainda não está claro como os dados terceirizados são seguros e, ao usar esses
serviços, a propriedade dos dados nem sempre é clara.
Existem também questões relacionadas à política e ao acesso:
o Se os seus dados são armazenados no exterior, a qual política é seguida?
o O que acontece se o servidor remoto cair?
o Como se acedem aos arquivos?
o Já houve casos de utilizadores que perderam o acesso às contas e perderam o
acesso aos dados.
Vantagens da computação na cloud
Custos de computador mais baixos:
Não precisa de um computador de alta potência e alto preço para executar as
aplicações web-based da computação na cloud.
Uma vez que as aplicações são executadas na cloud, não no PC, o PC não precisa do
poder de processamento ou do espaço em disco exigido pelo software de desktop
tradicional.
Quando se está a utilizar aplicações web-based, o PC pode ser mais barato, com um
disco rígido menor, menos memória, processador mais eficiente ...
Na verdade, o PC neste cenário não precisa nem mesmo de uma unidade de CD ou
DVD, pois nenhum programa de software deve ser carregado e nenhum ficheiro de
documento precisa ser guardado.
142
Performance melhorada:
Com poucos programas grandes ocupando a memória do seu computador, é poss´viel
ver um melhor desempenho do PC.
Os computadores num sistema de computação na cloud inicializam e funcionam mais
rápido porque têm menos programas e processos carregados na memória ...
Custos de software reduzidos:
Em vez de comprar aplicações de software caros, pode-se obter a maior parte do que
precisa de graça (ou quase de graça)!
o a maioria das aplicações de computação na cloud hoje, como o pacote Google
Docs.
melhor do que pagar por software comercial semelhante
o o que por si só pode ser uma justificação para mudar para aplicações na nuvem.
Atualizações instantâneas de software:
Outra vantagem da computação na cloud é que não é preciso escolher entre software
obsoleto e altos custos de atualização.
Quando a aplicação é web-based, as atualizações acontecem automaticamente,
disponíveis na próxima vez que se fizer login na cloud.
Ao aceder uma aplicação web-based, obtém a versão mais recente sem precisar pagar
ou fazer download de uma atualização.
Compatibilidade de formato de documento aprimorada.
Não precisa se preocupar com os documentos que cria na própria máquina sendo
compatíveis com aplicações ou sistemas operativos de outros utilizadores.
Potencialmente, não há incompatibilidades de formato quando todos estão a partilhar
documentos e aplicações na cloud.
Capacidade de armazenamento ilimitada:
A computação na cloud oferece armazenamento virtualmente ilimitado.
O disco rígido de 1 TByte atual do seu computador é pequeno em comparação com as
centenas de PBytes disponíveis na cloud.
Maior confiabilidade dos dados:
Ao contrário da computação de desktop, em que se um disco rígido travar e destruir
todos os dados valiosos, um computador travando na cloud não deve afetar o
armazenamento dos dados.
o se o seu computador travar, todos os dados ainda estarão na cloud, acessíveis
Num mundo onde poucos utilizadores individuais de PC desktop fazem backup dos
seus dados regularmente, a computação na cloud é uma plataforma de computação
segura de dados!
Acesso universal a documentos:
143
AMI e Instância
Amazon Machine Image (AMI) é um modelo para configuração de software (sistema
operativo, servidor de aplicações e aplicações)
Instância é uma AMI em execução em servidores virtuais na nuvem
Cada tipo de instância oferece diferentes recursos de computação e memória
146
Região e Zonas
Amazon tem data centers em diferentes regiões do mundo
o 25 regiões lançadas, 80 zonas de disponibilidade, 245 países e territórios
atendidos
Uma instância pode ser iniciada em diferentes regiões, dependendo da necessidade.
o Mais perto de um cliente específico
o Para atender a requisitos legais ou outros
Cada região possui um conjunto de zonas
o As zonas são isoladas de falhas em outras zonas
o Conectividade económica e de baixa latência entre zonas na mesma região
Armazenamento
Amazon EC2 oferece três tipos de opção de armazenamento
Amazon EBS
Amazon S3
Armazenamento de Instância
147
Amazon S3
S3 = Serviço de armazenamento simples
SOA - Arquitetura Orientada a Serviços que fornece armazenamento online usando
serviços da web.
Permite a leitura, escrita e excluir permissões em objetos.
Usa protocolos REST e SOAP para mensagens.
Amazon SimpleDB
O Amazon SimpleDB é um armazenamento de dados não relacional altamente
disponível, flexível e escalonável que alivia o trabalho de administração de database.
Cria e gere várias réplicas distribuídas geograficamente dos seus dados automaticamente
para permitir alta disponibilidade e durabilidade de dados.
O serviço cobra apenas pelos recursos realmente consumidos no armazenamento dos
seus dados e no atendimento dos seus requests.
Rede e segurança
148
EC2 - O Básico
Carregar imagem no S3 e registe-a.
Inicializar a imagem a partir do serviço da web.
Abrir as portas necessárias para a imagem.
Conectar-se à imagem através de SSH.
Executar a aplicação…
A cada minuto, enviamos 204 milhões de e-mails, geramos 1,8 milhão de likes no
Facebook, enviamos 278 mil tweets e carregamos 200 mil fotos no Facebook. (BIG
DATA)
12 milhões de tags RFID (usadas para capturar dados e rastrear o movimento de objetos
no mundo físico) foram vendidas em 2011. Em 2021, estima-se que esse número
aumentará para 209 bilhões à medida que (IoT) takes off.
O boom de (IoT) significará que a quantidade de dispositivos que se conectam à Internet
aumentará de cerca de 13 bilhões hoje para 50 bilhões em 2020.
Espera-se que a indústria (BIG DATA) cresça de US $ 10,2 bilhões em 2013 para cerca
de US $ 54,3 bilhões em 2017.
Aplicações Cognitivas vs. Tradicionais - Os Diferenciadores
Aprendizagem: Nunca param de aprender. Como tecnologia, isso significa que o sistema
realmente se torna mais valioso com o tempo. Desenvolvem “expertise”. Pense no que
significa ser um especialista - não se trata de executar um modelo matemático. Não
consideramos os médicos especialistas nas suas áreas porque eles respondem a todas as
perguntas corretamente. Esperamos que sejam capazes de raciocinar e ser transparentes sobre
o seu raciocínio e expor os motivos pelos quais chegaram a uma conclusão.
Casos de uso de IoT: STLS, Connected Rail, monitorização de dutos são naturalmente
distribuídos.
Isso sugere adicionar uma 4ª dimensão: a distribuição geográfica.
Já o desafio é gerir o número de sensores (e atuadores) que são naturalmente distribuídos
como um todo coerente.
Chamada para “mover o processamento para os dados”
Uma plataforma distribuída inteligente no Edge (Fog computing) que gere recursos
distribuídos de computação, rede e armazenamento.
A interação Edge (Fog) e o núcleo (Fog): Muitos usos dos mesmos dados
Não sabemos como transformar a entrada em saída. O que pode ser considerado spam
muda com o tempo e de indivíduo para indivíduo.
O que nos falta em conhecimento, compensamos em dados. Podemos facilmente
compilar milhares de mensagens de exemplo.
Acreditamos que existe um processo que explica os dados que observamos. Embora não
saibamos os detalhes do processo subjacente à geração de dados, sabemos que não é
totalmente aleatório.
Podemos não ser capazes de identificar o processo completamente, mas acreditamos que
podemos construir uma aproximação boa e útil.
Acreditamos que ainda podemos detetar certos padrões ou regularidades. Esta é a função
de machine learning.
Machine learning é sobre a programação de computadores para otimizar um critério de
desempenho usando dados de exemplo ou experiências anteriores.
A aprendizagem é usada quando:
o A experiência humana não existe (navegando em Marte),
o Os humanos são incapazes de explicar seus conhecimentos (reconhecimento de fala)
o Mudanças de solução no tempo (routing numa rede de computadores)
o A solução precisa ser adaptada a casos particulares (biometria do utilizador)
Aplicações
Association
Supervised Learning
o Classification
o Regression
Unsupervised Learning
Reinforcement Learning
Classificação: Aplicações
Aka Reconhecimento de padrão
Reconhecimento facial: pose, iluminação, oclusão (óculos, barba), maquiagem, estilo de
cabelo
Reconhecimento de caracteres: Diferentes estilos de escrita à mão.
Reconhecimento de fala: dependência temporal.
Diagnóstico médico: dos sintomas às doenças
Biometria: Reconhecimento/autenticação usando características físicas e/ou
comportamentais: Face, íris, assinatura, etc
Aprendizagem supervisionada: usos
Previsão de casos futuros: use a regra para prever a saída para entradas futuras
Extração de conhecimento: a regra é fácil de entender
Compactação: a regra é mais simples do que os dados que explica
Deteção de outlier: exceções que não são cobertas pela regra, por exemplo, fraude
Aprendizagem Não Supervisionada
Aprendendo “o que normalmente acontece”
Sem saída
Clustering: agrupamento de instâncias semelhantes
Aplicações de exemplo:
o Segmentação de clientes em CRM
o Compressão de imagem: quantização de cor
o Bioinformática: motivos de aprendizagem
Reinforcement Learning
Aprendendo uma política: uma sequência de resultados
Sem saída supervisionada, mas recompensa atrasada
Problema de cessão de crédito
Jogando
Robô num labirinto
163
Interpretabilidade de algoritmos de ML
164
Aprendizagem Federada
A aprendizagem federada é um problema de treino de um modelo global partilhado de alta
qualidade com um servidor central de dados descentralizados espalhados entre um grande
número de clientes diferentes