Você está na página 1de 340

PLATAFORMA DE INGESTÃO E

ANÁLISE DE DADOS

Introdução à Computação em Nuvem


ROTEIRO

• História

• O que é Cloud Computing

• Modelos

• Carecterísticas Atuais

• Modelos
HISTÓRIA

Primeiros datacenters!
Companhias de
processamento de dados Clouds e datacenters
1940
1950 Clusters
1960
Grids
1970
1980

PCs 1990
2000
2012

Sistemas
(P2P) Peer to
O QUE É CLOUD COMPUTING

 É um cluster?

 É um supercomputador?

 É um storage de dados?

CLOUD = MUITO ARMAZENAMENTO + CICLOS DE


COMPUTAÇÃO
O QUE É CLOUD COMPUTING

UMA NUVEM DE SITE ÚNICO


(SINGLE-SIDE CLOUD)
Datacenter
• consiste em nós de computação (agrupados em racks)
• switches conectando os racks
• uma topologia de rede, por exemplo, hierárquica
• nós de armazenamento (backend) conectados à rede
• front-end para envio de jobs e recebimento de
solicitações de clientes
• serviços de software
O QUE É CLOUD COMPUTING

Uma nuvem geograficamente distribuída


consiste em:
• vários desses sites
• cada site talvez com uma estrutura e serviços
diferentes
O QUE É CLOUD COMPUTING

Exemplos de topologia
Switches

Racks

Servidores
CARACTERÍSTICAS ATUAIS

Acesso sob demanda:


Natureza intensiva em
Grande pagamento conforme o
dados: o que era MBs agora
escala uso, sem compromisso
se tornou TBs, PBs e Xbs.
inicial.
• Logs diários, análise
• Qualquer um pode
forense, dados da Web,
acessá-lo.
etc.

• MapReduce/Hadoop,
NoSQL/Cassandra/MongoDB e
Novos paradigmas de muitos outros.
programação em • Alta acessibilidade e facilidade
nuvem: de programação.
• Muito código aberto.
MODELOS

Serviços Implantação

IaaS, PaaS e SaaS Pública, Privada Híbrida


MODELOS

SERVIÇOS
IaaS: Infraestrutura como Serviço

Você obtém acesso a uma infraestrutura flexível de


computação e armazenamento. A virtualização é uma
maneira de conseguir isso (cgroups, kubernetes,
dockers, VMs…).

Exemplos: Amazon Web Services (AWS: EC2 e S3),


OpenStack, Eucalyptus, Rightscale, Microsoft Azure,
Google Cloud.
MODELOS

SERVIÇOS
PaaS: Plataforma como Serviço

Você obtém acesso a uma infraestrutura flexível de


computação e armazenamento, juntamente com uma
plataforma de software (geralmente fortemente
acoplada).

Exemplos: AppEngine do Google (Python, Java, Go).


MODELOS

SERVIÇOS
SaaS: Software como Serviço

Você obtém acesso a serviços de software, quando


precisar deles. Costuma-se dizer que inclui SOA
(Arquiteturas Orientadas a Serviços).

Exemplos: Documentos Google, MS Office 365 Online.


MODELOS

IMPLANTAÇÃO
PÚBLICA

Aquela em que a infraestrutura e os serviços de


computação sob demanda são gerenciados por um
provedor terceirizado e compartilhados entre várias
organizações usando a Internet pública.
MODELOS

IMPLANTAÇÃO
PRIVADA

Uma nuvem privada é um modelo de computação em


nuvem em que a infraestrutura é dedicada a uma única
organização do usuário.

• Pode ser hospedada no próprio data center de uma


organização.
MODELOS

IMPLANTAÇÃO
HÍBRIDA

É um modelo de computação em nuvem que usa uma


combinação de pelo menos uma nuvem privada e uma
nuvem pública.

• Cooperam juntas para oferecer um conjunto flexível


de serviços de computação em nuvem.
MODELOS
EXEMPLOS
REFERÊNCIA

1. https://tiinside.com.br/03/09/2017/hitachi-lanca-plataforma-unificada-que-simplifica-
implementacao-da-nuvem-hibrida/
2. https://www.vmware.com/br/topics/glossary/content/public-cloud.html
3. https://www.vmware.com/br/topics/glossary/content/private-cloud.html
4. https://www.vmware.com/br/topics/glossary/content/hybrid-cloud.html
5. https://www.lucidchart.com/blog/pt/computacao-em-nuvem
6. https://www.researchgate.net/publication/297670471_A_COMPUTACAO_EM_NUV
EM_E_A_INDUSTRIA_DE_TELECOMUNICACOES_CLOUD_COMPUTING_AND_
TELECOMMUNICATIONS
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Introdução à Computação em Nuvem


PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Introdução à Internet das Coisas


ROTEIRO

• História

• O que é IoT

• Características

• Dispositivos, Conectividade

• Processamento de dados e Interface com


usuário

• Exemplos

• Importância e Desafios
HISTÓRIA

• 1999 - O termo "Internet das Coisas" foi usado por Kevin


Ashton durante seu trabalho na P&G que se tornou
amplamente aceito.

• 2004 - O termo foi mencionado em publicações famosas


como The Guardian, Boston Globe e Scientific American.

• 2005 - UN's International Telecommunications Union


(ITU) publicou seu primeiro relatório sobre este tema.

• 2008 - Nasceu a Internet das Coisas.

• 2011 - Gartner, empresa de pesquisa de mercado, inclui a


tecnologia "A Internet das Coisas" em suas pesquisas.
O QUE É IoT

A Internet das Coisas (IoT)

É um sistema de dispositivos de computação inter-


relacionados, objetos, animais ou pessoas que são
fornecidos com identificadores exclusivos com
capacidade de transferir dados por meio de uma rede
sem a necessidade de interação humano/humano ou
humano/computador.
CARACTERÍSTICAS

 Sensores

 Conectividade

 Processamento de Dados

 Interface com o Usuário


DISPOSITIVOS

Dispositivos são componentes chave que


ajudam você a coletar dados ao vivo do
ambiente ao redor.
Todos esses dados podem ter vários níveis de
complexidade.
Pode ser um simples sensor de monitoramento de
temperatura ou pode na forma de feed de vídeo.
CONECTIVIDADE

 Todos os dados coletados podem ser enviados para uma


infraestrutura em nuvem.

 Os sensores devem ser conectados à nuvem usando vários


meios de comunicação.

 Esses meios de comunicação incluem redes móveis ou de


satélite, Bluetooth, WI-FI, WAN, etc.
CONECTIVIDADE
 LoRa: Alcance alto e baixa vazão na transmissão e baixo custo

 Wi-FI: Alcance médio e grande vazão na transmissão

 Satélite: Alcance alto e baixa vazão na transmissão e alto custo

 ZigBee: Redes de baixa potência que funcionam sob um


protocolo de malha

 Bluetooth: Alcance menor que LoRa e menor consumo de


bateria
PROCESSAMENTO DE DADOS

 Depois que esses dados são coletados e chegam à nuvem, o


software realiza o processamento dos dados coletados.

 Esse processo pode ser apenas verificar a temperatura, ler em


dispositivos como aquecedores, ventiladores, iluminação.

 No entanto, às vezes, também pode ser muito complexo, como


identificar objetos usando visão computacional em vídeo.
INTERFACE COM O USUÁRIO

As informações precisam estar disponíveis para o usuário final de


alguma forma, o que pode ser obtido acionando alarmes em seus
telefones ou enviando notificações por e-mail ou mensagem de
texto.

Às vezes, o usuário pode precisar de uma interface que verifique


ativamente seu sistema IoT.

Exemplo: o usuário tem uma câmera instalada


em sua casa. Ele quer acessar a gravação de
vídeo e todos os feeds com a ajuda de um
servidor web.
EXEMPLOS

Uma lâmpada que pode ser ligada usando um aplicativo de


smartphone.

Um sensor de movimento ou um termostato inteligente em seu


escritório ou um poste de luz conectado.

Alguns objetos maiores podem ser preenchidos com muitos


componentes menores de IoT, como um motor a jato cheio de
milhares de sensores coletando e transmitindo dados de volta
para garantir que esteja operando com eficiência.
IMPORTÂNCIA

Nos últimos anos, a IoT se tornou uma das tecnologias mais


importantes do século XXI.

Agora que podemos conectar objetos como eletrodomésticos,


carros, termostatos, babás eletrônicas à Internet, por meio de
dispositivos incorporados, é possível uma comunicação muito
adequada entre pessoas, processos e coisas.

Por meio da computação de baixo custo, nuvem, big data, análise


e tecnologias móveis, coisas físicas podem compartilhar e coletar
dados com o mínimo de intervenção humana.
DESAFIOS

 Teste e atualização insuficientes

 Preocupação com a segurança e privacidade dos dados

 Complexidade do software

 Volumes de dados e interpretação

 Integração com IA e automação

 Os dispositivos requerem uma fonte de alimentação constante


o que é difícil

 Interação e comunicação de curto alcance


REFERÊNCIA

1. https://en.wikipedia.org/wiki/Internet_of_things
2. https://exame.com/tecnologia/a-internet-das-coisas-vai-mudar-o-mundo-
cto-da-hitachi/
3. https://www.insiderintelligence.com/insights/internet-of-things-definition/
4. https://www.ge.com/news/reports/forget-consumer-internet-things-iiot-really
5. https://www.cisco.com/c/dam/en_us/about/ac79/docs/innov/IoT_IBSG_041
1FINAL.pdf
6. https://www.mokolora.com/pt/lora-and-wireless-technologies/
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Introdução à Internet das Coisas


04/10/2022 18:05 Conteúdo

Pergunta 1 2,5 em 2,5 pontos


Muitos são os dispositivos que podem ser utilizados em uma solução de IoT, mas um deles tem sido
amplamente difundido atualmente, em especial pelo baixo custo, facilidade de programação e com recursos
como Wi-Fi e Bluetooth embutidos. Esse dispositivo denomina-se: 

Resposta Selecionada:  ESP32.

Respostas: PI.
Arduíno.

 ESP32.

ZigBee.
LoRA.
Comentário LoRa e ZigBee são tecnologias usadas para transmitir dados de dispositivos IoT.
da PI, embora seja de baixo custo e com Bluetooth e Wi-Fi, ainda tem custo maior do que o
resposta: ESP32. Arduíno é similar ao ESP32, mas não tem Wi-Fi e Bluetooth embutidos. OESP32 é um
sistema em um chip (SOC) de baixo custo e baixo consumo de energia, ideal para
aplicações IoT. Possui recursos além do Wi-Fi e Bluetooth, como antena integrada RF
tipo balun, amplificador de potência, receptor de baixo ruído amplificado, filtros e módulos de
gerenciamento de energia. 

Pergunta 2 2,5 em 2,5 pontos


Dentre tecnologias de transmissão de dados em IoT, àquela que apresenta a possibilidade de enviar dados a
grandes distâncias com custo reduzido é denominada de: 

Resposta Selecionada:  LoRa.

Respostas: Bluetooth.

 LoRa.

ZigBee.
Wi-Fi.
Satélite.
Comentário LoRa é mais adequada para dispositivos IoT, especialmente na configuração industrial. Esses
da são dispositivos que podem enviar pacotes de dados muito pequenos a longas distâncias. 
resposta:

Pergunta 3 2,5 em 2,5 pontos


A computação em nuvem é atualmente uma forma de armazenar dados e permitir o processamento
computacional em larga escala, auxiliando empresas a executarem seus negócios de forma on-line.
Considerando e evolução do ambiente computacional desde a década de 40, é correto afirmar que as clouds
e datacenters se intensificaram a partir do/de: 

Resposta Selecionada:  ano 2000.

Respostas: ano 1980. 


meados de 1990.
ano 1960.
2012.

 ano 2000.

Comentário A evolução do ambiente de datacenters e a criação das primeiras nuvens públicas, como


da a Amazon, teve início em meados de 2000, intensificando-se a partir desse ano até os dias
resposta: atuais, com inúmeras organizações que fornecem computação e conectividade como serviço. 

Pergunta 4 2,5 em 2,5 pontos

https://ava.univesp.br/ultra/courses/_6979_1/cl/outline 1/2
04/10/2022 18:05 Conteúdo
A computação em nuvem é uma tecnologia que fundamenta muitas atividades econômicas e funcionamento
de diversas empresas que desejam vender produtos, fazer negócios, operar equipamentos etc.  Embora
seja, atualmente, uma tecnologia muito madura, alguns desafios ainda persistem, tais como aquele envolve
medição de tráfego, cujo nome é: 

Resposta Selecionada:  análise e gerência de tráfego.

Respostas: consolidação do tráfego.


análise de dados que chegam aos servidores da nuvem. 
padronização.
gerência de energia.

 análise e gerência de tráfego.

Comentário O conhecimento do tráfego de dados via rede, como a Internet, é fundamental para que
da decisões sobre o planejamento se realizado a contento. É um tipo de atividade que requer
resposta: monitoramento constante dos parâmetros de rede, como atraso, variação do atraso, taxa de
pacotes enviados e recebidos pelo datacenter, origem e destino do tráfego. Tudo isso impacta
na qualidade dos serviços de computação que é oferecido por uma nuvem computacional. 

https://ava.univesp.br/ultra/courses/_6979_1/cl/outline 2/2
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Armazenamento de Dados
ROTEIRO

• Introdução

• Armazenamento e Processamento

• Transações

• Escalabilidade

• Tolerância a Falhas

• Classificação
INTRODUÇÃO

• Computação em nuvem é baseado em soluções que


envolvem dados massivos

• Os SGBDs são implantados em nuvem


• Muito complexo para gerenciar em ambiente local
especialmente com muitos dados

• Escalabilidade é grande na nuvem e baixa localmente

• Facilidade de acesso

• Como consistência e segurança dos dados são


importantes para a computação em nuvem
INTRODUÇÃO

• A infraestrutura de banco de dados em nuvem possui


várias vantagens para os usuários:

• previsibilidade e custos mais baixos;

• complexidade técnica reduzida graças a


interfaces de acesso unificado;

• a elasticidade e escalabilidade proporcionando a


percepção de recursos quase infinitos.
CARACTERÍSTICAS

Muitas são as características a se considerar


para que os sistemas que gerenciam dados
funcionem corretamente na nuvem:
 Ambiente
 Operação para acesso ados dados
 Atualização
 Transações
 Replicação
 Controle Global
ARMAZENAMENTO E PROCESSAMENTO
Outras envolvem Abordagens também
também o envolvem utilizar colunas
Abordagens para
armazenamento e ou arrays
armazenar (persistir)
processamento com multidimensionais (dados
dados
estrutura chave-valor organizados em tabelas
em uma DHT que possuem diversas
• Sistemas de • Chave e valor são colunas)
arquivos armazenados de
modernos forma não
• GFS – Google normalizada
File System • Facilita a
• HDFS – distribuição de
Hadoop File dados entre os
System nós do sistema
• Facilita a
utilização de APIs
TRANSAÇÕES

 Fundamental em ambientes centralizados e


distribuídos pois:
• há dados replicados
• distribuição geográfica dos dados

 Transações distribuídas definem o controle do


processamento dos dados em todo o ambiente de
Cloud.
TRANSAÇÕES

CAP (Consistency, Consistência: cada cliente tem


Availability, sempre a mesma visão dos dados.
Partition
Tolerance) Disponibilidade: todos os
clientes podem sempre ler e
escrever.
Consistência,
Disponibilidade, Tolerância a Partições: o
Tolerância a sistema funciona corretamente
Partições em várias partições de rede
física.
TRANSAÇÕES

 Centenas de milhares de nós interconectados em


uma nuvem.

 Escalabilidade precisa ser transparente.


• Dados devem ser armazenados sem
sabermos a localização ou forma de
acesso.

 Horizontal x Vertical
ESCALABILIDADE

VERTICAL HORIZONTAL

Melhora-se a capacidade do
hardware, incrementando
individualmente os nós Adicionar mais máquinas
à solução atual de tal
existentes, por exemplo, por
modo que seja possível
meio da disponibilização de um distribuir as requisições
servidor com mais memória entre estas máquinas.
física ou da melhoria da largura
de banda que conecta dois nós
ESCALABILIDADE

Há complexidade quando
pensamos em escalar dados

Muitos bancos de dados utilizam arquiteturas compartilhadas

Isso dificulta a Dados podem estar relacionados em


distribuição dos dados servidores diferentes

Exige o transporte dos dados

Diminui o desempenho
TOLERÂNCIA A FALHAS

 Para tratar as falhas, as soluções em nuvem utilizam técnicas


que auxiliam a distribuição dos dados, tais como DHT, que
facilita a fragmentação dos dados.

 Por meio da fragmentação dos dados é possível melhorar a


disponibilidade e distribuir a carga, tanto para operações de
escrita quanto de leitura.

 Em relação ao processo de replicação, pode-se criar e iniciar


novas réplicas rapidamente por meio de máquinas virtuais.

 O processo de replicação pode ser realizado de forma síncrona,


assíncrona ou uma combinação destas. Isso determina o nível
de consistência, confiabilidade e desempenho.
CLASSIFICAÇÃO

Podemos classificar os sistemas para


gerenciamento de dados na nuvem em:

MODELO RELACIONAL
• Utilizar o modelo relacional pelo
sistema.

MODELO NATIVO PARA NUVEM


• Processo de construção do sistema
(já concebido para antender as
necessidades da cloud computing).
CLASSIFICAÇÃO

MODELO NATIVO PARA


MODELO RELACIONAL
NUVEM

 SQL Azure: É um  Dynamo (Chave-Valor),


modelo relacional de Big Table (Coluna):
dados nativo para sistemas nativos para
nuvem nuvem que não usam o
modelo relacional
 Amazon RDS: SGBD  Neo4j, CouchDB,
tradicional que pode MongoDB: sistemas
ser utilizado na nuvem, não-nativos que não
embora não seja utilizam o modelo
concebido para a relacional
nuvem
CLASSIFICAÇÃO

NoSQL

Classe de bancos de dados não relacionais


projetados para gerenciar grandes quantidades de
dados

Oferecem consistência
Usam estruturas e
interfaces simples

Muito utilizados em redes sociais


REFERÊNCIA

1. https://sol.sbc.org.br/livros/index.php/sbc/catalog/download/18/81/167-
1?inline=1
2. https://azure.microsoft.com/pt-br/products/azure-sql/#product-overview
3. https://en.wikipedia.org/wiki/Bigtable
4. https://medium.com/@vinicius_roc/dynamodb-o-que-voc%C3%AA-precisa-
saber-antes-de-usar-1bcad8d31787
5. https://aws.amazon.com/pt/nosql/
6. https://neo4j.com/
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Armazenamento de Dados
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Ferramentas para Armazenamento e


Recuperação de Dados
ROTEIRO

NEO4J CouchDB Cassandra


O que é? O que é? O que é?
Características Características Características
Instalação Instalação Instalação
Neo4j

• Neo4j é um banco de dados NoSQL.

• É altamente escalável e livre de esquemas.

• É o sistema de gerenciamento de banco de dados


gráfico mais popular do mundo.

• Foi desenvolvido pela tecnologia Neo e chamado de


banco de dados transacional compatível com ACID
com armazenamento e processamento gráfico
nativo.
Neo4j

CARACTERÍSTICAS
ESQUEMA FLEXÍVEL PROPRIEDADE ACID ESCALABILIDADE
Segue um modelo de Suporta propriedades Facilita o
dados chamado modelo ACID completas dimensionamento
gráfico. O gráfico (Atomicidade, do banco de dados
contém nós e os nós Consistência, aumentando o
estão conectados uns Isolamento e número de
aos outros. Nós e Durabilidade). leituras/gravações
relacionamentos e o volume sem
armazenam dados em afetar a integridade
pares de valores-chave dos dados e a
conhecidos como velocidade do
propriedades. processamento de
consultas.
Neo4j

APLICATIVOS DA WEB Suporta a Instalação e


INTEGRADOS exportação de Configuração –
O Neo4j também dados de consulta Windows
fornece um aplicativo para o formato Tutorial →
da Web do navegador JSON e XLS. https://www.javatpoint.
Neo4j integrado que com/install-neo4j
pode ser usado para Fornece API REST
criar e recuperar seus para ser acessada
dados gráficos. por qualquer
linguagem de
programação
como Java, Spring,
Scala etc.
CouchDB
• O CouchDB é um banco de dados NoSQL de código
aberto desenvolvido pela Apache Software Foundation.
Está escrito na linguagem de programação Erlang.

• Os bancos de dados NoSQL são outro tipo de bancos


de dados que fornecem um mecanismo para armazenar
e recuperar dados além do formato tabular usado no
RDBMS.

• O principal  Simplicidade de projeto;


objetivo dos
 Escala horizontal;
bancos de
dados NoSQL  Controle mais preciso
são: sobre a disponibilidade.
CouchDB
• Possui uma API REST baseada em HTTP.

• Apresenta estrutura simples de recursos e métodos


HTTP (GET, PUT, DELETE) que são fáceis de
entender e usar.

• Dados são armazenados na estrutura flexível


baseada em documentos, portanto, não há
necessidade de se preocupar com a estrutura dos
dados.
• Facilita aos usuários com um poderoso
mapeamento de dados, que permite consultar,
combinar e filtrar as informações.
CouchDB

MODELO DE DADOS

Cada documento
Cada banco de
O banco de dados é é responsável por
dados é uma
a estrutura/contêiner manter seus
coleção de
de dados mais próprios dados e
documentos
externo no CouchDB. esquemas
independentes.
independentes.

Os metadados do documento contêm informações de


revisão, o que permite mesclar as diferenças ocorridas
enquanto os bancos de dados estavam desconectados.
CouchDB
Replica Databases Documentos

Doc
Couch DB Replica
HTTP Engine DataBase
Request Doc
#1

Doc
Replica
DataBase Doc
#1
Instalação e Configuração –
Windows Doc
Tutorial → Replica
https://www.javatpoint.com/ DataBase Doc
couchdb-installation #1
Cassandra

• Banco de dados NoSQL distribuído, altamente


escalável e de alto desempenho.

• Projetado para lidar com uma grande quantidade de


dados em muitos servidores comuns, fornecendo
alta disponibilidade sem um único ponto de falha.

• Possui uma arquitetura distribuída capaz de lidar


com muitos dados. Os dados são colocados em
máquinas diferentes com mais de um fator de
replicação para obter uma alta disponibilidade sem
um único ponto de falha.
Cassandra

CARACTERÍSTICAS
• É um banco de dados baseado em colunas.

• É escalável, consistente e tolerante a falhas.

• O design de distribuição do Cassandra é baseado no Dynamo da


Amazon e seu modelo de dados no Bigtable do Google.

• Segue um modelo de replicação no estilo Dynamo sem ponto único


de falha, mas adiciona um modelo de dados de "família de colunas"
mais poderoso.

• É usado por algumas das maiores empresas como Facebook,


Twitter, Cisco, Rackspace, ebay, Twitter, Netflix.
Cassandra

ARQUITETURA

• Cada nó é independente e ao mesmo tempo


interconectado a outros nós. Todos os nós em um
cluster desempenham a mesma função.

• Cada nó em um cluster pode aceitar solicitações de


leitura e gravação, independentemente de onde os
dados estejam realmente localizados no cluster.

• No caso de falha de um nó, solicitações de


leitura/gravação podem ser atendidas por outros nós da
rede.
Cassandra
Instalação e
COMPONENTES Configuração –
Windows
Nó: onde os dados são armazenados. Tutorial →
https://www.javatpoint
.com/cassandra-
Centro de dados: uma coleção de nós relacionados. setup-and-installation

Cluster: componente que contém um ou mais datacenter.


Log de confirmação: um mecanismo para recuperar falhas.
Mem-table: estrutura de dados residente em memória.
SSTable: arquivo em disco para qual, os dados são
liberados da tabela.
Filtro Blom: algoritmos rápidos e não determinísticos para
saber se um elemento é membro de conjunto.
REFERÊNCIA

1. https://cassandra.apache.org/_/index.html
2. https://couchdb.apache.org/
3. https://www.tutorialspoint.com/couchdb/index.htm
4. https://www.tutorialspoint.com/neo4j/index.htm
5. https://www.tutorialspoint.com/cassandra/index.htm
6. https://www.youtube.com/watch?v=5jlPSMPLHQ4
04/10/2022 18:06 Conteúdo

Pergunta 1 1,66 em 1,66 pontos


Acerca da classificação dos sistemas de gerenciamento de dados na nuvem, cada um deles com suas
características e propósitos específicos, é correto afirmar que o CouchDB é classificado como: 

Resposta Selecionada:  Não-relacional e não-nativo.

Respostas: Relacional e nativo.


Relacional e não-nativo.
Relacional e NoSQL.
Não-relacional e nativo.

 Não-relacional e não-nativo.

Comentário Relacional e nativo: SQL Azure 


da
resposta: Relacional e não nativo: Amazon RDS  

Não-Relacional e nativo: Big Table  

O CouchDB é não relacional porque é um banco criado para atender às demandas dinâmicas
dos dados no contexto de aplicações web e não nativo porque ele não foi criado inicialmente
para o ambiente de nuvem.  

Pergunta 2 1,66 em 1,66 pontos


Escrito na linguagem Erlang, este banco de dados é desenvolvido pela Apache Software Foundation e é um
tipo de banco NoSQL. Dentre suas características, destacam-se uma API REST,  o que facilita a consulta e
filtragem de dados dos usuários. Este banco de dados é o: 

Resposta Selecionada:  CouchDB

Respostas: Amazon RDS
Cassandra

 CouchDB

Neo4J
SQL Azure
Comentário Embora sejam bancos de dados NoSQL, o Neo4J e o Cassandra não são escritos na
da linguagem Erlang. O Amazon RDS e o Azurel SQL são bancos de dados relacionais gratuitos
resposta: disponibilizados pela Amazon e Microsoft respectivamente. 

Pergunta 3 1,66 em 1,66 pontos


Assinale a alternativa que indica uma abordagem utilizada atualmente no contexto de nuvens
computacionais para persistir (armazenar dados) utilizando chave-valor:

Resposta Selecionada:  DHT

Respostas: GFS – Google File System


HDFS – Hadoop Filesystem
MySQL

 DHT

MapReduce
Comentário DHT – Distributed Hash Table são uma classe de sistemas distribuídos descentralizados que
da provém um serviço de busca parecida com a de uma tabela de hash. Os pares (key,value) são
resposta: armazenados no DHT e qualquer nó pode recuperar o valor associado a cada chave. GFS e
HDFS são sistemas de arquivos. MySQL é um banco de dados relacional e MapReduce é um
modelo de programação desenhado para processar grandes volumes de dados em paralelo.

https://ava.univesp.br/ultra/courses/_6979_1/cl/outline 1/3
04/10/2022 18:06 Conteúdo

Pergunta 4 1,66 em 1,66 pontos


Muitos são as oportunidades trazidas pela cloud computing no que diz respeito ao armazenamento e
recuperação de dados de forma rápida, segura e escalável. Um desafio tem relação com permitir consultas
por apenas uma chave e não múltiplas delas ou consultas com junções. Este desafio tem relação com a: 

Resposta Selecionada:  consistência.

Respostas: autenticação.  
escalabilidade.
segurança.    

 consistência.

virtualização.   
Comentário As soluções em nuvem focam em escalabilidade, mas sacrificam a consistência. Estas
da soluções permitem apenas consultas por uma chave, não suportam múltiplas chaves ou
resposta: consultas com junções e oferecem consistência fraca de dados como por exemplo a
consistência eventual. Este tipo de consistência não permite a construção de uma aplicação
como serviços de pagamento e leilões online, que não podem lidar com dados inconsistentes. 

Pergunta 5 1,66 em 1,66 pontos


A escalabilidade deve ser transparente para os usuários, podendo estes armazenar seus dados na nuvem
sem a necessidade de saber a localização dos dados ou a forma de acesso. Do ponto de vista de uma
empresa, a escalabilidade permite a uma empresa contratante de recursos computacionais ampliar ou reduzir
os recursos utilizados de forma inteligente. Assim, os usuários podem modificar a quantidade de memória,
espaço de armazenamento ou capacidade de processamento do servidor sem a necessidade de uma nova
configuração. Este tipo de escalabilidade é chamada de: 

Resposta Selecionada:  Vertical.

Respostas: Pública.

Híbrida.
Horizontal. 

 Vertical.

PaaS.
Comentário Na escalabilidade vertical melhora-se a capacidade do hardware, incrementando
da individualmente os nós existentes, como por exemplo, por meio da disponibilização de um
resposta: servidor com mais memória física ou da melhoria da largura de banda que conecta dois ou
mais nós. Pública e Híbrida  é são modelos de implantação em nuvem. PaaS é um modelo de
serviço. 

Pergunta 6 1,7 em 1,7 pontos


Analise as afirmações abaixo e relacione-as com as características presentes em alguns tipos de bancos de
dados que frequentemente são utilizados em nuvens computacionais para armazenar dados de diversas
aplicações, incluindo as de IoT, por exemplo. Na sequência, escolha a alternativa correta:. 

I. Apresenta um modelo de consulta que consiste nos conceitos de visões, as quais são construídas utilizando
funções MapReduce e de uma API de consultas via HTTP. 

II. Funciona bem em banco de dados orientado a colunas e utiliza o GFS. 

III. Tem como fortes características o balanceamento de carga e suporte a heterogeneidade.  

IV. Fornece gerenciamento automático de falhas com particionamento de dados realizado de forma manual. 

Resposta Selecionada:  CouchDB, BigTable, Dynamo, SQL Azure

Respostas: BigTable, Dynamo, SQL Azure, CouchDB


CouchDB, SQL Azure, CouchDB, Dynamo
https://ava.univesp.br/ultra/courses/_6979_1/cl/outline 2/3
04/10/2022 18:06 Conteúdo

 CouchDB, BigTable, Dynamo, SQL Azure

SQL Azure, CouchDB, Dynamo, BigTable
Dynamo, SQL Azure, CouchDB, BigTable
Comentário A sequência correta está de acordo com as características descritas de cada banco de dados,
da as quais podem ser vistas no texto-base Gerenciamento de dados em nuvem: conceitos,
resposta: sistemas e desafios que fundamenta a questão. 

https://ava.univesp.br/ultra/courses/_6979_1/cl/outline 3/3
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Introdução ao Docker – Parte 1


ROTEIRO

• O que é docker?

• História do docker

• O que é container?

• Imagens docker

• Imagens x containers

• Vocabulário docker
O QUE É DOCKER?

O Docker é uma
plataforma de software
que permite criar, testar
e implantar aplicativos
rapidamente,
empacotando software
em unidades
padronizadas
chamadas contêineres.
HISTÓRIA DO DOCKER

• 2013-03: Lançado como código aberto.

• 2013-09: Colaboração Red Hat (Fedora, RHEL,


OpenShift).

• 2014-03: 34º projeto GitHub mais discutido.

• 2014-05: Tecnologia aberta mais inovadora.


O QUE É CONTAINER?

• Container = VM
• Isolado
• SO Compartilhado e libs
CONTAINERS

• Embalagem padronizada para


software e dependências.

• Isolamento de aplicativos uns


dos outros.

• Compartilha o mesmo kernel do


sistema operacional.

• Funciona para todas as


principais distribuições Linux e
também no Windows.
PAPEL DAS IMAGENS E CONTAINERS

Docker Docker
Image Container

EXEMPLO: Criado usando


Ubuntu com uma imagem.
Node.js e Código de Execute seu
Aplicação. aplicativo.
VOCABULÁRIO DOCKER
REVISÃO

Imagem do Contêiner Motor Serviço de Registro (Docker Hub


Docker Docker Docker (Público) ou Registro Confiável do
Docker (Privado)

A base de um A unidade Cria, envia e Serviço de


contêiner padrão na executa contêineres armazenamento
Docker. qual o serviço Docker e distribuição
representa um de aplicativo implantáveis ​em um baseado em
aplicativo reside e é host físico ou nuvem ou
completo executado virtual, localmente, servidor para
em um datacenter
suas imagens
ou provedor de
serviços em nuvem
VOCABULÁRIO DOCKER

Crie imagens automaticamente


usando um script de
compilação: «Dockerfile»

Pode ser versionado em um


Dockerfile
sistema de controle de versão
Revisão
como Git, junto com todas as
dependências

O Docker Hub pode criar


imagens automaticamente com
base em dockerfiles no Github
REFERÊNCIA

1.https://pointful.github.io/docker-intro/#/
2.https://docs.docker.com/get-started/overview/
3.https://medium.com/digitalproductsdev/um-guia-b%C3%A1sico-de-
docker-para-desenvolvedores-8b74c2e327e6
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Introdução ao Docker – Parte 1


PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Docker no Windows 10
ROTEIRO

• Docker em ambiente Windows

• Pré-Requisitos

• Download do Docker

• Primeiro Comando

• Validação da Instalação
DOCKER EM AMBIENTE WINDOWS

O propósito é ensinar a instalar o Docker em


ambiente Windows (64 bits). Com o Docker
devidamente instalado e configurado vamos nas
próximas aulas portar um framework de IoT para
este ambiente.
DOCKER EM AMBIENTE WINDOWS

O primeiro passo é ter em mente que o seu hardware


(desktop ou notebook) precisa ter suporte à virtualização.
E que este suporte esteja devidamente habilitado no BIOS
do seu dispositivo. Por isso, antes de prosseguir,
HABILITE o suporte à virtualização no seu dispositivo,
caso ele seja um hardware que tenha este suporte.
PRÉ-REQUISITOS

O próximo passo é ter certeza de que o Hyper-V está


habilitado em seu computador. Prossiga conforme
indicado na figura a seguir.
PRÉ-REQUISITOS
 Clique em programas conforme indicado
PRÉ-REQUISITOS
 Clique em Ativar/Desativar
PRÉ-REQUISITOS
 Na imagem a seguir você deve habilitar o Hyper-V
PRÉ-REQUISITOS

 Após clicar em OK, será pedido para reiniciar o


computador. Prossiga com a reinicialização. Após a
reinicialização, faça uma busca no Google com a seguinte
string: install docker for windows. Clique no primeiro link,
que aparece na busca:
https://docs.docker.com/desktop/windows/install/
 Prossiga com o download do docker
conforme a figura a seguir.
DONWLOAD DO DOCKER
INSTALAÇÃO DO DOCKER
 Após o download, você deve executar como administrador o
.exe baixado, como mostrado abaixo. Quando perguntado na
próxima tela, clique em SIM.
INSTALAÇÃO DO DOCKER
 O processo de instalação deve prosseguir sem nenhum problema e
o resultado será a tela apresentada na figura abaixo. O próximo
passo é observar a imagem a seguir. Matenha os checkbox
preenchidos, conforme já indicado na instalação e dê OK.
INSTALAÇÃO DO DOCKER

 Após clicar em OK, o processo de instalação inicia conforme a


figura abaixo. Todo o processo pode demorar um pouco. Aguarde
um instante até que ele finalize.
INSTALAÇÃO DO DOCKER
 Após clicar em Close, para fechar a tela de instalação, procure pelo
ícone do Docker em sua Área de Trabalho e dê um duplo click neste
ícone para iniciar o docker.
INSTALAÇÃO DO DOCKER
 A próxima tela vai indicar que falta o WSL Linux Kernel. Você pode
clicar em Cancel, pois neste caso ao invés de termos um ambiente
com o kernel linux dentro do Windows, vamos utilizar o ambiente já
ajustado e habilitado com o Hyper-V.
INSTALAÇÃO DO DOCKER
 O próximo passo é acessarmos as configurações do ambiente
Docker para desabilitarmos o WSL e mantermos apenas a integração
com o Hyper-v. Prossiga conforme indicado na tela abaixo.
INSTALAÇÃO DO DOCKER
 Verifique que a engine WSL 2
(subsistema do Windows para
Linux) está habilitada. Ela não
pode ficar habilitada como a
figura a seguir.
INSTALAÇÃO DO DOCKER

 O processo é finalizado
com as imagens a seguir:
VALIDAÇÃO DA INSTALAÇÃO
 Vamos fazer um teste pelo PowerShell do Windows e verificar
que o Docker responde a alguns simples comandos.
Abra o PowerShell conforme indicado a seguir.
REFERÊNCIA

1. https://docs.docker.com/
2. https://www.edureka.co/blog/docker-commands/
3. https://towardsdatascience.com/15-docker-commands-you-should-know-
970ea5203421
4. https://buddy.works/tutorials/docker-commands-cheat-sheet
5. https://docs.microsoft.com/pt-br/windows/wsl/about
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Introdução ao Docker – Parte 2


ROTEIRO

• Blocos Principais

• Primeiros Passos

• Revisão
BLOCOS PRINCIPAIS

• Docker Engine
 Daemon que auxilia na construção, no envio e
na execução dos containers

• Docker Client
 Responsável por receber entradas do usuários
e enviá-las para o docker engine
BLOCOS PRINCIPAIS

• Docker Registry
 Amazenar imagens – pode ser usado
localmente ou remotamente

• Docker file
 Arquivo usado para criar uma imagem.
 Instruções que são aplicadas em uma imagem
PRIMEIROS PASSOS

• Ambiente
 Docker for Windows
• É preciso ter o docker para Windows
devidamente instalado
PRIMEIROS PASSOS

• Comandos
 docker run hello-world
 Saída:
 Hello from Docker!
 This message shows that your installation
appears to be working correctly.
PRIMEIROS PASSOS

• Abrir um terminal de um container genérico baseado na


imagem do ubuntu.

 Nome do container: aula06.


 Hostname: cria um usuário com o nome teste,
interno ao container.
 docker run -it --name aula06 --hostname teste
ubuntu.
PRIMEIROS PASSOS

• Vamos aprender um pouco sobre o dockerfile.


• O dockerfile define uma imagem e é sempre baseado em uma
imagem pai.

• Saia do container com o comando exit.


 root@aula06:/# exit.
• A execução do comando exit sem salvar a
imagem (commit) não mantém as alterações da
imagem.
PRIMEIROS PASSOS

• Crie uma pasta figura fora do container, usando o gerenciador


de arquivos de sua preferência no Windows ou Linux.

• Escreveremos um script em que vamos passar como


parâmetro o que o toilet vai escrever na tela.
PRIMEIROS PASSOS

• Dentro da pasta figura crie um script com o nome entrada.sh


com o conteúdo abaixo:

• #! /bin/bash
if [ $# -eq 0 ]; then
toilet
else
figlet "$@"
fi
PRIMEIROS PASSOS

• Criar um arquivo chamado dockerfile com o conteúdo abaixo:

FROM ubuntu:latest
RUN apt-get update && apt-get install -y toilet
COPY entrada.sh /
ENTRYPOINT ["sh”,“/entrada.sh"]
PRIMEIROS PASSOS

• FROM – informa qual a imagem pai usada para criar a nova

• RUN – instala tudo o que desejamos na imagem

• COPY – copia o arquivo entrada.sh para o


sistema de arquivo do container (na pasta raiz)

• ENTRYPOINT – indica à imagem qual comando


tem que ser executado quando um container
baseado nesta imagem for inicializado
PRIMEIROS PASSOS

• Resultado:
 Uma imagem baseada na imagem do ubuntu com a tag
latest e o programa toilet instalado

• Construção da imagem
 Dentro da pasta figura, execute o comando:
 docker build -t=figura .
PRIMEIROS PASSOS

• Verificar a imagem
 docker images
• Para utilizar a nossa imagem, digite:
 docker run it –rm figura Aula06
REFERÊNCIA

1.https://training.play-with-docker.com/ops-s1-images/
2.https://www.docker.com/resources/what-container
3.https://medium.com/trainingcenter/docker-o-que-%C3%A9-docker-
e-como-come%C3%A7ar-58e04bdcb043
4.https://www.jlcp.com.br/introducao-a-cli-do-docker/
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Aplicações IoT
em Containers Docker
ROTEIRO
• IoT e Tecnologias de Containers

• Ciclo de desenvolvimento de aplicação em


contêineres
• Por que usar contêineres com dispositivos IoT?

• Contêineres e Microsserviços

• Otimizar contêineres IoT para aplicações

• Principais problemas
IOT E TECNOLOGIAS DE CONTAINERS

 Os contêineres oferecem suporte nativo a todos os


recursos necessários para executar um aplicativo em
dispositivos IoT com recursos limitados;

 Eles são portáteis e eficientes, permitem a


implantação rápida de aplicativos e o
dimensionamento rápido de aplicativos;

 Facilidades para:
 Implantar

 Executar

 Atualizar
CICLO DE DESENVOLVIMENTO - APP
CONTAINER
IoT E TECNOLOGIAS DE CONTAINERS
• Com os Docker Containers você não precisa se preocupar em definir o
ambiente base no sistema operacional com as dependências do
aplicativo;
 Os contêineres envolvem o software em um sistema de arquivos
completo que contém tudo o que é necessário para executar: código,
tempo de execução, ferramentas do sistema, bibliotecas do sistema;
 Caracaterísticas:
 Portabilidade

 Leveza das imagens e contêineres (tamanho

pequeno)
 Fácil atualização

 Controle de versão do software e reutilização de

componentes
 Compartilhamento
POR QUE USAR CONTAINERS COM DISPOSITIVOS IoT?

 Porque fornecem uma excelente plataforma


para microsserviços. Quando se trata de IoT,
a arquitetura orientada a microsserviços faz
mais sentido do que pilhas de aplicativos
monolíticos.
CONTAINERS E MICROSSERVIÇOS
 Vantagens de usar microsserviços de IoT em containers docker
 Escalabilidade: suporta o dimensionamento da infraestrutura
horizontal e vertical (quando implantado);
 Independe de linguagem de programação.
 Fácil de resolver o problema: se houver falhas do
microsserviço, é fácil de isolar e solucionar se
comparado com um aplicativo monolítico.

 Modularidade: permite modular a lógica do seu


aplicativo IoT. Exemplo: projetar diferentes
microsserviços para comunicação (Wifi, ZigBee,
LoRa), módulos de autenticação.
OTIMIZAR CONTAINERS IoT PARA APLICAÇÕES
 O número de dispositivos IoT aumenta a cada ano, assim
como os diversos serviços que consomem seus dados;

 É preciso coordenar e implantar software de maneira


escalável;
 Docker ajuda nesta questão, pois o código em

container pode ser orquestrado e facilita a


ampliação de projetos;
 Contêineres também fornecem uma abstração de

hardware, o que faz com que eles sejam executados


nos diversos sistemas de IoT.
OTIMIZAR CONTAINERS IoT PARA APLICAÇÕES

 Projetistas e desenvolvedores de soluções IoT devem:


 Revisar opções de contêineres de IoT com o

desenvolvimento em mente (isso afeta as práticas de


integração contínua/entrega contínua);
 Decidir se os contêineres IoT serão executados

em servidores de uso geral ou na nuvem;


 A etapa mais importante no processo de

otimização é desenvolver imagens de contêineres


em várias arquiteturas.
PRINCIPAIS PROBLEMAS

• Segurança

 É preciso pensar em:

 Bibliotecas e ferramentas: Contêiner só deve ter


libs que a aplicação precisa – reduz acessos e
ataques;

 Serviços de verificação de segurança oferecidos


por exemplos pelo Docker Cloud e Docker Hub;
 Eles podem verificar se os contêineres que

você produz apresenta vulnerabilidades de


segurança.
PRINCIPAIS PROBLEMAS

• Segurança

 Implantar milhares de dispositivos requer pensar no “day after”.


Como estará o comportamento deles daqui 1, 2, 5 anos?

 É preciso pensar em:


 Rodar SO com pacotes mínimos, o que diminui

as ameaças;
 Manter os dispositivos atrás de uma infra segura

com firewall, DMZs etc.


REFERÊNCIA

1. https://ieeexplore.ieee.org/document/7501691
2. https://www.crn.com/news/applications-os/300083112/containers-and-iot-a-
match-made-in-the-cloud.htm
3. https://containerjournal.com/topics/container-ecosystems/arm-sees-
containers-driving-iot-applications/
4. https://www.itbusinessedge.com/cloud/containers-strengthening-iot-
infrastructures/
5. https://aurimrv.gitbook.io/pratica-devops-com-docker/1-introducao/1-2-
devops-e-docker
04/10/2022 18:07 Conteúdo

Pergunta 1 1,25 em 1,25 pontos


Uma das características dos containers é que eles são ambientes isolados e descartáveis. O que acontece
quando você instala uma aplicação e depois fecha o container? 

Resposta Selecionada:  A instalação não persiste se você não salvar a imagem. 

Respostas: A imagem é salva automaticamente. 


A instalação persiste por um tempo. 
A imagem é destruída.
A instalação persiste por padrão.

 A instalação não persiste se você não salvar a imagem. 

Comentário Depois de qualquer alteração na imagem, ela deve ser salva para que as modificações
da resposta: persistam. Caso contrário, todas as alterações feitas são perdidas. 

Pergunta 2 1,25 em 1,25 pontos


Analise as afirmativas a seguir sobre diversos comandos utilizados para lidar com containers, depois escolha
a alternativa correta. 

I.O comando docker container stats lista processos em execução no container. 

II. O comando docker container rm <id_container> remove uma imagem. 

III.O comando docker container logs -f [container id] mostra logs de forma dinâmica. 

IV. O comando docker create -ti ubuntu cria um container e o executa imediatamente.  

Resposta Selecionada:  Apenas III está correta.

Respostas: Apenas I e II estão corretas. 


Apenas II e IV estão corretas.
Apenas II e III estão corretas. 

 Apenas III está correta.

Apenas II está correta. 


Comentário O comando container stats lista algumas estatísticas de uso do container. O comado docker
da container rm <id_container> remove apenas um container e mantém a imagem. O comando
resposta: docker container create -ti ubuntu cria um container, mas não o executa imediatamente. 

Pergunta 3 1,25 em 1,25 pontos


Diversos são os benefícios da integração de aplicações IoT em containers, como a portabilidade e a
atualização das aplicações. Um aspecto fundamental que deve ser observado no uso de
containers com IoT que pode facilmente degradar uma solução é: 

Resposta Selecionada:  a segurança. 

Respostas: o tamanho da imagem.

 a segurança. 

o desempenho.
o monitoramento.
a conectividade.
Comentário A segurança é um ponto fundamental para qualquer aplicação. No caso de aplicações IoT,
da deve-se observar o uso necessário de libs em SOCs (System on Chips) e verificar serviços de
resposta: segurança oferecidos, por exemplo, pelo DockerHub. 

https://ava.univesp.br/ultra/courses/_6979_1/cl/outline 1/3
04/10/2022 18:07 Conteúdo

Pergunta 4 1,25 em 1,25 pontos


Quando instalamos aplicações em uma imagem docker em execução, realizamos alterações em arquivos,
inicializamos serviços etc., e depois executamos o comando exit para sair da imagem, o resultado será: 

Resposta Selecionada:  ter uma imagem com as alterações que não são efetivadas, ou seja, perdidas. 

Respostas: ter uma imagem em que as alterações são gravadas automaticamente.

 ter uma imagem com as alterações que não são efetivadas, ou seja, perdidas. 

ter um container em que as alterações são gravadas automaticamente.


ter um container com as alterações efetivadas.
ter uma imagem com as alterações efetivadas. 
Comentário da Containers e imagens são distintos. Se não fazer um commit na imagem modificada, tudo
resposta: será perdido depois de executar o comando exit. 

Pergunta 5 1,25 em 1,25 pontos


Para o funcionamento do docker no ambiente Windows 64bits, apresentado na videoaula da semana, é
necessário durante a finalização do processo de instalação desabilitar um serviço, o qual é chamado de: 

Resposta Selecionada:  WSL. 

Respostas: Xen.
VirtualBox.

 WSL. 

HyperV.
VMWAre.
Comentário Xen, VMWare e VirtualBox são virtualizadores, assim como o HyperV. WSL é um subsistema
da do Windows para Linux que permite que os desenvolvedores executem um ambiente
resposta: GNU/Linux no Windows. 

Pergunta 6 1,25 em 1,25 pontos


No universo docker temos vários nomes e definições. Analise as afirmações abaixo e escolha a alternativa
correta. 

I. O comando run cria um container dada determinada imagem. 

II. A imagem é responsável por executar o que foi definido no container. 

III. O comando usado para expor uma porta de rede para ele receber algum tipo de tráfego é o expose. 

IV. Docker composer é Docker. 

Resposta Selecionada:  Apenas I e II estão corretas.

Respostas: Apenas II e III estão corretas. 


Apenas I, II e III estão corretas.
Apenas II e IV estão corretas.

 Apenas I e II estão corretas.

Apenas I e III estão corretas.


Comentário da Docker compose é uma ferramenta de administração de containers. O container é o
resposta: responsável por executar o que foi definido na imagem. 

Pergunta 7 1,25 em 1,25 pontos


O comando docker container ls -a gera como saída: 

https://ava.univesp.br/ultra/courses/_6979_1/cl/outline 2/3
04/10/2022 18:07 Conteúdo

Resposta Selecionada:  os containers em execução, os containers parados ou que foram finalizados.

Respostas: apenas os containers parados. 

 os containers em execução, os containers parados ou que foram finalizados.

apenas os containers em execução.


os containers parados e os finalizados. 
os containers finalizados e os containers em execução. 
Comentário da Ao utilizar o comando ls conseguimos visualizar os containers em execução. A opção -a lista
resposta: os que estão em execução, os parados e os finalizados. 

Pergunta 8 1,25 em 1,25 pontos


O que diferencia uma imagem docker do dockerfile é que: 

Resposta  a imagem é a base de um container, representando uma aplicação completa. 


Selecionada:
Respostas: a imagem é o mesmo que um dockerfile.
a imagem é um repositório.
a imagem é a unidade padrão na qual o serviço de aplicativo reside e é executado. 

 a imagem é a base de um container, representando uma aplicação completa. 

a imagem é o serviço de armazenamento e distribuição baseado em nuvem ou servidor


para suas imagens.
Comentário Container é a unidade padrão em que um serviço de aplicativo reside e é executado. O serviço
da de armazenamento de imagens docker é chamado de repositório/hub. O dockerfile é um
resposta: arquivo que possui comandos para construir novas imagens a partir de uma imagem base. 

https://ava.univesp.br/ultra/courses/_6979_1/cl/outline 3/3
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Coleta de Dados em IoT


ROTEIRO

• O que é a coleta de dados?

• A importância da coleta dos dados

• Fatores que influenciam na coleta de dados

• Representação dos dados coletados

• Propagação dos dados coletados

• Estratégias para coleta dos dados


O QUE É A COLETA DE DADOS?
 Coleta é uma checagem recorrente que reúne
algum tipo de conteúdo para posterior análise.
 Tal conteúdo é transformado em informação
estratégica.
A IMPORTÂNCIA DA COLETA DOS DADOS

 A coleta visa captar o conteúdo importante gerado


por dispositivos com sensores acoplados

 É um processo voltado à captação de conteúdo


estratégico

 Dados atuais são considerados ativos muito valiosos


em um mercado competitivo

 Dados estão por toda parte e são provenientes de


muitas fontes. Os dados de múltiplas fontes podem
ser correlacionados
A IMPORTÂNCIA DA COLETA DOS DADOS
 Os dados se tornam relevantes quando a coleta de dados é vista como uma
atividade rotineira.

 Com os dados coletados podemos otimizar processos, melhorar a


localização do sensor (para ele capturar de forma correta, mais rápida, etc).
 Ter acesso contínuo aos dados é fundamental para qualquer
projeto de tecnologia, e não seria diferente para ambientes
computacionais na nuvem, em um ecossistema de dispositivos,
sensores, ambientes.
FATORES QUE INFLUENCIAM NA COLETA DE
DADOS

No contexto computacional os fatores são:

 O local em que o sensor é implantado


 Interno ou externo

 A posição geográfica
 A distância entre sensores
 O tamanho dos dados obtidos
a cada coleta
 A frequência da coleta
 A capacidade computacional do dispositivo
que tem o sensor acoplado
FATORES QUE INFLUENCIAM NA COLETA DE
DADOS
Localização do sensor
 A coleta pode ser afetada por conta da interferência de diversas

fontes;
 Também pode ser afetada pelo clima (locais com muita intensidade

solar podem afetar o sensor), o mesmo ocorre com


áreas molhadas.

Posicionamento geográfico
 A depender do posicionamento do sensor, não será

possível realizar a coleta de forma adequada. Sensores


são acoplados a dispositivos que transmitem informação
via rede de dados (sem fio) → Wifi, Bluetooth, LoRA,
Zigbeet, 2G, 3G, 4G, 5G (Visada é fundamental).
FATORES QUE INFLUENCIAM NA COLETA DE
DADOS
Distanciamento entre sensores
 Importante porque um único sensor não é capaz de representar

um único ambiente/local;
 Sensores compostos dão mais representatividade ao ambiente a

partir dos dados coletados;


 A distância impacta no mapeamento da área e implica

inclusive na transmissão dos dados coletados.

Frequência da coleta
 Pode ser feita de forma contínua no tempo;

 Pode ser feita em intervalos regulares (comum

quando não se tem uma fonte contínua de energia);


 Pode ser feita baseada na ocorrência de eventos.
FATORES QUE INFLUENCIAM NA COLETA DE
DADOS

Capacidade computacional do dispositivo


 Dispositivos IoT em geral têm capacidade computacional limitada;

 Em geral, os dispositivos coletam dados de acordo com

determinada frequência e os propagam para um gateway


local ou remoto, para que este processe um volume
maior de dados.
REPRESENTAÇÃO DOS DADOS COLETADOS
 Em geral, em aplicações computacionais mais
“antigas”, era comum a utilização de bases de dados
relacionais, estruturadas em tabelas;

 Para as características de aplicações de IoT e Cloud,


o desempenho de base de dados relacionais deixa a
desejar, especialmente pela dinamicidade e escala de
dados;

 Dados semi-estruturados tornam uma aplicação mais


robusta;

 Base de dados não estruturadas resolve problemas


com a sua velocidade e flexibilidade → (isso se
adequa bem às aplicações de IoT);
REPRESENTAÇÃO DOS DADOS COLETADOS

 Desta forma, a representação dos dados pode ser feita


sem depender de uma estrutura rígida de
relacionamento dos dados coletados;
 Isso é feito de forma dinâmica e quando necessário.

 Em geral, os dados não estruturados são armazenados


em NoSQL Databases e são categorizados como:
 Key Values

 Wide-Column

 Document

 Graph
REPRESENTAÇÃO DOS DADOS COLETADOS
Key Value: os dados são gerenciados e representados como
pares (chave, valor) armazenados em estruturas de pesquisa
eficientes, altamente escaláveis e baseadas em chaves,
como tabelas de hash estruturadas com log.

Wide-Column: armazena seus dados na forma de colunas.

Document: esses são armazenamentos de key-value


estendidos, nos quais o valor é representado como um
documento codificado em formatos semiestruturados por
defeito, como XML, JSON ou BSON (Binary JSON).

Graph: as bases de dados de grafos são bases de dados que


usam estruturas de dados de grafos, juntamente com nós,
arestas e determinadas propriedades.
PROPAGAÇÃO DOS DADOS COLETADOS

A IoT utiliza hardwares e softwares com o objetivo de coletar


e processar dados. Vejamos as principais maneiras de se
transmitir dados via internet:

 Bluetooth: Distância curta


 Wifi: Distâncias maiores
 Fibra Ótica: Grande vazão de dados
 3G: Inicialmente para celular e posteriormente para
computadores (modens usb)
 4G: Boa taxa de transmissão de dados
 5G: Altíssimas taxas de transmissão e recepção
ESTRATÉGIAS PARA COLETA DOS DADOS

 O primeiro passo é definir qual o objetivo do projeto


em desenvolvimento.
 Não podemos fazer coletas genéricas sem um

objetivo específico.
 O objetivo bem definido ajuda a estruturar melhor

os dados coletados.
 O segundo passo é planejar um conjunto de perguntas
que vão ser respondidas.
 Exemplo: Por que os dados são importantes?

Por quanto tempo? Qual a frequência da coleta?


 O terceiro passo é acompanhar (registrar) os dados
coletados.
REFERÊNCIA

1.https://repositorio.utfpr.edu.br/jspui/bitstream/1/26465/1/plataformaanalisevisualizacaod
ados.pdf
2.https://www.lume.ufrgs.br/bitstream/handle/10183/231878/001133496.pdf?sequence=1
3.http://www2.decom.ufop.br/imobilis/iot-coletando-dados/
4.https://www.fm2s.com.br/pdca-pdsa/
5.https://eletronjun.com.br/2020/11/14/principais-maneiras-de-se-transmitir-dados-em-iot/
6.https://www.topgadget.com.br/howto/sites-e-web/os-cinco-principais-beneficios-da-
coleta-de-dados-da-web.htm
7.https://www.templatemonster.com/pt-br/illustrations/245344.html
8.https://www.nucleodoconhecimento.com.br/blog/materiais-academicos/coleta-de-dados
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Análise de Dados em IoT


ROTEIRO

• O que é análise de dados?

• A importância da análise de dados

• Fatores que influenciam na análise de dados

• O que considerar na análise de dados?

• Passo a passo para a análise de dados

• Ferramentas usadas na análise de dados


O QUE É A ANÁLISE DE DADOS?
 A análise de dados é um processo de inspeção,
limpeza, transformação e modelagem de dados com
o objetivo de descobrir informações úteis, informar
conclusões e apoiar a tomada de decisões (Fonte: 1)
A IMPORTÂNCIA DA ANÁLISE DOS DADOS

 A coleta de dados que discutimos anteriormente é


uma das etapas para o sucesso no uso de dados,
pois ela é uma etapa estratégica.

 Não devemos apenas nos preocupar com a captação


dos dados.

 É fundamental saber onde buscá-los, como


estruturá-los para uma análise e, por fim, como essa
informação será utilizada.
A IMPORTÂNCIA DA ANÁLISE DOS DADOS

 A análise de dados é impactada por uma boa


estratégia de coleta.

 Embora haja ferramentas capazes de coletar e


manipular dados, elas não possuem valor algum se
não forem devidamente observadas por quem tem
qualificação para isso.

 Porque a análise é decisiva?


 Porque somente isso é capaz de transformar os

dados em informação.
FATORES QUE INFLUENCIAM NA ANÁLISE
DE DADOS

A análise dos dados é influenciada diretamente:

 Por uma boa definição das metas


 Pela padronização dos dados
 Pela criação e filtragem de registros
 Pela integração de sistemas e dispositivos
 Pelo tipo de análise que mais se alinhe aos
objetivos propostos
FATORES QUE INFLUENCIAM NA ANÁLISE
DE DADOS

 Definição das metas: deve haver um objetivo claro


com a análise, já que isso direciona decisões.

 Padronização dos dados: evita erros, simplifica a


criação de insights. A ferramenta de análise vai gastar
menos tempo classificando registros.

 Criação e filtragem de registros: eliminar o que não é


necessário. Registros são definidos com base no
objetivo da análise.
FATORES QUE INFLUENCIAM NA ANÁLISE
DE DADOS
 Integração de sistemas e dispositivos: com o apoio de
APIs podemos definir práticas de compartilhamento
entre informações de fontes de dado distribuídas.

 Tipo de análise: para extrair o máximo possível da


análise, o método precisa estar
alinhado ao objetivo da análise.
 Exemplos:

 Análise descritiva
 Análise preditiva
 Análise de streaming
 Análise de séries temporais
 Análise espacial
O QUE CONSIDERAR NA ANÁLISE DE DADOS?

 Eliminar redundâncias da coleta


 Extrair informações alinhadas ao objetivo da análise
 Agrupamento
 Criar indicadores que fazem sentido para o negócio
ou solução
 Utilizar ferramentas de apoio
PASSO A PASSO DA ANÁLISE DOS DADOS

1. Estabelecer um objetivo para a análise


2. Definir se é análise qualitativa ou quantitativa
3. Escolher ferramentas para a análise
4. Brainstorm da análise
5. Criar planos de ações com base nos dados
PASSO A PASSO DA ANÁLISE DOS DADOS

 Estabelecer um objetivo para a análise: ao coletar os


dados é importante ter um objetivo para análise dos
dados que responda a um questionamento sobre o
ponto analisado.

 Definir o tipo de análise: como base no objetivo da


análise, defina se os resultados serão baseados em
números (quantitativo) ou em avaliações (qualitativo).
PASSO A PASSO DA ANÁLISE DOS DADOS
 Escolha de ferramentas: decida por ferramentas de
apoio que ajudem a organizar os dados, pois estas
auxiliam na interpretação.

 Brainstorm da análise: reúna a equipe de especialistas


no assunto (IoT por exemplo) e realize uma discussão
acerca dos dados. Jamais decida com base na opinião
de apenas uma pessoa.

 Criar planos de ações: ao validar os dados da análise,


utilize indicadores para traçar planos de ações.
 Exemplo: aumentar o número de sensores no

ambiente, mudar sensores de lugar, implantar um novo


gateway IoT, migrar o broker IoT para a nuvem, etc.
FERRAMENTAS PARA ANÁLISE DE DADOS
Muitas são as ferramentas para analisar dados tanto no contexto
geral, quanto também para IoT.
Algumas ferramentas usadas de forma geral:
Diagrama/Análise de Pareto: trata-se de um esquema que
agrupa e ordena a frequência de determinadas ocorrências.
Tudo é feito com base em uma ideia bem simples: de que
80% das consequências advêm de 20% das causas.

 Vantagens: facilidade para identificar a verdadeira


relação entre problemas e causas e suas
consequências para os resultados do projeto ou
aplicação.
 favorece o desenvolvimento de soluções e contribui
com o processo global de tomada de decisões.
FERRAMENTAS PARA ANÁLISE DE DADOS

Ferramentas usadas de forma geral:


Diagrama de Ishikawa: o objetivo principal é a
organização do estudo sobre as possíveis causas de
um problema central, analisando todo o seu processo e
os efeitos decorrentes.
 6 pontos são analisados: mão de obra, matéria-

prima, máquinas, medidas, meio ambiente e


método.
FERRAMENTAS PARA ANÁLISE DE DADOS
Ferramentas específicas/apoio permitem que as
empresas analisem e visualizem dados de sensores de
dispositivos conectados à Internet.

As ferramentas de análise de IoT são utilizadas para


entender o fluxo contínuo de dados estruturados ou
não estruturados e de séries temporais produzidos por
dispositivos.

Exemplos:
 AWS IoT Analytics

 SAS Analytics

 ThingSpeak

 Átomo
REFERÊNCIA
1. https://www.agiledgesolutions.com/
2. https://aws.amazon.com/iot-analytics/
3. https://www.sas.com/en_us/software/analytics-iot.html
4. https://thingspeak.com/
5. https://www.cisco.com/c/en/us/solutions/internet-of-things/edge-intelligence.html
6. https://www.gov.br/infraestrutura/pt-br/assuntos/portal-da-estrategia/artigos-gestao-estrategica/analises-de-pareto-o-que-e-
e-para-que-
serve#:~:text=O%20que%20s%C3%A3o%20as%20An%C3%A1lises,origem%20em%2020%25%20das%20causas
7. https://www.siteware.com.br/metodologias/analise-de-pareto/
8. https://www.lume.ufrgs.br/bitstream/handle/10183/231878/001133496.pdf?sequence=1
9. https://repositorio.utfpr.edu.br/jspui/bitstream/1/26465/1/plataformaanalisevisualizacaodados.pdf
10. https://caetreinamentos.com.br/blog/gestao-empresarial/analise-dados-metodologia/
11. https://blog.academiain1.com.br/big-data-voce-conhece-os-4-tipos-de-analise-de-dados/
12. https://www.questionpro.com/blog/pt-br/analise-de-dados-qualitativos-como-fazer-e-quais-as-vantagens/
13. https://es.123rf.com/imagenes-de-archivo/datos.html?sti=mktfnkifkqq895vpjh|
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Análise de Dados em IoT


PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Pusblish/Subscribe
ROTEIRO

• O que é?

• Como funciona?

• Por que é importante?

• Relação do padrão Pub/Sub com plataformas

• Vantagens em relação a outros padrões

• Ferramentas que utilizam o padrão Pub/Sub

• Exemplos
O QUE É?

 Em arquitetura de software é um padrão de troca de


mensagens de forma desacoplada.

 O Publish/Subscribe (Pub/Sub) permite que os


serviços se comuniquem de maneira assíncrona.
COMO FUNCIONA?

Este padrão possui 3 componentes principais:


 Publicador (Publish)

 Tópico/Evento (Topic)

 Assinante (Subscribe)
COMO FUNCIONA?

 Tópico: o tópico é um rótulo para a mensagem. A


mensagem não fica em uma fila, mas em um tópico.

 Publicador: cria uma mensagem e posta a mesma


em um determinado tópico.

 Assinante: se registra a um ou mais tópicos e lê


uma ou mais mensagens que chegam em um ou
mais tópicos de que é assinante.
POR QUE É IMPORTANTE?

Eles interagem entre si sem o conhecimento um do outro,


bastando que ambos conheçam o tópico/evento.

É independente do tipo de aplicação


 Principalmente em razão da heterogeneidade dos

elementos, tanto no publish quanto no subscribe


que é muito grande.
 Há muitas plataformas, linguagens de programação,

protocolos de comunicação e tecnologias para um


software poder atingir um número massivo de
clientes em IoT.
RELAÇÃO DO PADRÃO P/S COM PLATAFORMAS

Em plataformas como OpenHab, OpenRemote, por


exemplo, o padrão é usado em conjunto com um broker

Subscriber

Message Output
Publisher Input channel Subscriber
Broker channel

Subscriber
RELAÇÃO DO PADRÃO P/S COM PLATAFORMAS

 O Apahe Kafka é outra ferramenta altamente escalável


baseado em publicação e assinatura
 Ocorre o envio de mensagens entre processos,

aplicações, servidores, dispositivos/sensores.

 O Kafka introduz o conceito de partições


 Essas partições possuem registros em uma

sequência imutável.
RELAÇÃO DO PADRÃO P/S COM PLATAFORMAS

APACHE KAFKA
VANTAGENS EM RELAÇÃO A OUTROS PADRÕES

 O publicador que pode criar mensagens e enviá-las para um


tópico que uma assinante poderá ler
 Muito parecido com o modelo ponto-a-ponto, com a diferença
que reside no tópico
 Suporta vários assinantes
 Uma mensagem enviada por um publicador pode ser
lida por múltiplos assinantes

 Importante: o assinante deve estar em execução continuamente


para receber a mensagem, pois quando
a mensagem chega a um tópico, chega com uma
assinatura criada pelo publicador
VANTAGENS EM RELAÇÃO A OUTROS PADRÕES

 Os publicadores se comunicam com os assinantes de forma


assíncrona transmitindo eventos, em vez de realizar chamadas
de procedimento remoto (RPCs – Remote Procedure Call)
síncronas
 Em sistemas que se comunicam por meio de RPCs, os
publicadores precisam esperar que os assinantes
recebam os dados
 A integração assíncrona no Pub/Sub aumenta a
flexibilidade e a robustez da solução geral
 No contexto de IoT, ter protocolos que já lidam com
o padrão, como é o caso do MQTT
FERRAMENTAS QUE UTILIZAM O PADRÃO P/S

 Apache Kafka
 Broker Mosquito
 Middlewares
 Kaa

 OpenRemote

 OpenHab

 Home Assistant

 DoJot

 Dispositivos como o SONOFF


EXEMPLOS

 Análise de streaming e em pipelines de integração


 Para processar e distribuir dados

 Transmissão de dados de dispositivos de IoT


 Exemplo: um sensor acoplado a um dispositivo (esp32,

PI) pode publicar um evento de mudança de umidade,


temperatura, movimentação em tempo real
 Processamento e fluxos de trabalho paralelos:
Distribuição de tarefas entre vários workers
 Exemplos: a compactação de arquivos de texto,

o envio de notificações por e-mail, etc


REFERÊNCIA

1. https://www.cloudkarafka.com/blog/part1-kafka-for-beginners-what-is-apache-
kafka.html
2. https://docs.microsoft.com/pt-br/azure/architecture/patterns/publisher-subscriber
3. https://gabrielschade.github.io/2018/03/12/publish-subscribe.html
4. https://docs.microsoft.com/pt-br/azure/architecture/patterns/publisher-subscriber
04/10/2022 18:07 Conteúdo

Pergunta 1 1,25 em 1,25 pontos


Trata-se de uma plataforma/ferramenta que permite o processamento de fluxo de dados em tempo real e que
utiliza o padrão publish-subscribe para a troca de dados entre produtores e consumidores.  

A definição refere-se ao: 

Resposta Selecionada:  Kafka.

Respostas: ThingSpeak.
Kaa.
OpenHab.

 Kafka.

Mosquitto.
Comentário O Apache Kafka é uma plataforma de streaming de eventos distribuídos de código aberto
da usada por milhares de empresas para pipelines de dados de alto desempenho, análise de
resposta: streaming, integração de dados e aplicativos de missão crítica. Essa plataforma utiliza o
padrão publish-subscribe para a troca de mensagens entre publicadores e assinantes. 

Pergunta 2 1,25 em 1,25 pontos


É uma característica fundamental do padrão publish-subscribe: 

Resposta  o fraco acoplamento dos participantes do padrão.


Selecionada:
Respostas:  o fraco acoplamento dos participantes do padrão.

o forte acoplamento dos participantes do padrão.


utilizar o protocolo TCP.
utilizar o protocolo HTTP.
não utilizar canais de replicação de mensagens com o broker mosquitto para os
inscritos no tópico. 
Comentário O fraco acoplamento entre publicadores, assinantes e brokers faz com que o padrão publish-
da subscribe seja um dos mais usados na troca de dados entre dispositivos IoT e aplicações em
resposta: ambientes locais ou nuvens computacionais. 

Pergunta 3 1,25 em 1,25 pontos


Alguns dispositivos coletam dados com alguma frequência e os propagam para um gateway local ou remoto
para processamento de dados em maior volume. Esse é um fator importante da coleta de dados, conhecido
como: 

Resposta Selecionada:  capacidade de computar do dispositivo. 

Respostas: localização do sensor.


distanciamento entre sensores.

 capacidade de computar do dispositivo. 

posicionamento geográfico.
frequência da coleta.
Comentário No contexto de IoT, muitas são as fontes de dados, em geral, com sensores associados a
da dispositivos que têm baixa potência computacional. Por essa razão, brokers/gateways recebem
resposta: os dados de forma intermediária e os repassam para outros componentes, por exemplo um
data center com maior capacidade de armazenamento e de processamento. 

Pergunta 4 1,25 em 1,25 pontos

https://ava.univesp.br/ultra/courses/_6979_1/cl/outline 1/3
04/10/2022 18:07 Conteúdo
Atualmente há uma diversificação de dados no processo de coleta em qualquer domínio de aplicação. Para
análises em tempo real, é muito complexo tecnologias isoladas manterem um tempo de resposta aceitável
para o usuário. Nesse contexto, analise as afirmações a seguir: 

I. É fundamental considerar velocidade, variedade e volume dos dados.  

II. A velocidade de processamento dos dados afeta diretamente o tempo de resposta para o usuário. 

III. As bases de dados relacionais são melhores do que as não estruturadas para problemas com grandes
volumes e variedades de dados. 

IV. Métodos de análises tradicionais são os únicos para lidar com o constante aumento e as variedades de
dados. 

Resposta Selecionada:  Apenas I e II estão corretas.

Respostas:  Apenas I e II estão corretas.

Apenas I, III e IV estão corretas.


Apenas I e III estão corretas.
Apenas I e IV estão corretas.
Apenas II e IV estão corretas.
Comentário Bancos de dados relacionais, por conta das fortes relações entre as tabelas que armazenam os
da dados, não conseguem por si só lidar com a escala e com a variedade dos dados. Métodos de
resposta: análises, além dos tradicionais, são constantemente objetos de estudo para analisar de forma
eficiente o grande volume de dados e sinalizar para insights que auxiliem na tomada de
decisões. 

Pergunta 5 1,25 em 1,25 pontos


Um dos fatores que influenciam na análise de dados simplificando a criação de insights contribuindo para
gastar menos tempo na classificação de registro denomina-se: 

Resposta Selecionada:  padronização dos dados

Respostas: definição de metas 


filtragem de registros 

 padronização dos dados

tipo de análise
integração de sistemas
Comentário Embora importantes e com influência na análise, a definição de metas, filtragem, tipo de
da resposta: análise e integração de sistemas não condiz com enunciado da questão. 

Pergunta 6 1,25 em 1,25 pontos


A forma de representar dados coletados de aplicações distribuídas atuais, como as de IoT, impactam
posteriormente na análise dos dados. Em aplicações IoT, a forma mais adequada é utilizar formatos
______, como o ______, em que os dados são representados como pares key/value.  

Assinale a alternativa que completa as lacunas corretamente. 

Resposta Selecionada:  não estruturados, key value

Respostas: estruturados, key value
estruturados, document 

 não estruturados, key value

não estruturados, graph
estruturados, tabela 
Comentário da

https://ava.univesp.br/ultra/courses/_6979_1/cl/outline 2/3
04/10/2022 18:07 Conteúdo
resposta: Em geral, os dados não estruturados são armazenados em NoSQL Databases e são
categorizados como: chave/valor, grafo, documento, coluna. 

Pergunta 7 1,25 em 1,25 pontos


Um dos desafios relacionados à análise de dados é lidar com dados em tempo real. Sobre as características
dos sistemas em tempo real, assinale a alternativa correta. 

Resposta  
Selecionada: O comportamento do sistema depende dos resultados lógicos e do instante físico em
que os resultados são produzidos.
Respostas: Os sistemas podem suportar atrasos.
A latência de comunicação não afeta o desempenho do sistema e não precisa ser
considerado no desenho da solução.
Os sistemas de controle não interagem com o ambiente.
 
O comportamento do sistema depende dos resultados lógicos e do instante físico em
que os resultados são produzidos.
O comportamento do sistema depende apenas dos resultados lógicos. 
Comentário Um sistema de tempo real é destinado à execução de múltiplas tarefas em que o tempo de
da resposta a um evento é pré-definido. A latência da comunicação afeta o desempenho e precisa
resposta: ser considerado no desenho da solução. Sistemas de controle de tempo real muitas vezes
precisam interagir com o ambiente, por exemplo um sistema que controla os semáforos em
uma avenida, porque os semáforos precisam estar sincronizados no tempo. 

Pergunta 8 1,25 em 1,25 pontos


Acerca do modelo de integração para análise e coleta de dados, julgue as afirmativas abaixo e assinale a
alternativa correta. 

I. A implementação do experimento busca a estruturação de um modelo de integração de dados de baixo


custo. 

II. O domínio IoT refere-se às características de um ambiente baseado nos conceitos de Internet das Coisas. 

III. O relacionamento de comunicação entre o sistema colaborativo e os domínios distribuídos está baseado
no uso de protocolos de comunicação de IoT e Intranet. 

IV. Um modelo de integração envolve o planejamento, a característica sobre o domínio da aplicação e a


modelagem da aplicação. 

Resposta Selecionada:  Apenas I e II estão corretas. 

Respostas: Apenas I, II e III estão corretas.


Apenas II e III estão corretas.
Apenas I, III e IV estão corretas. 
Apenas I e IV estão corretas. 

 Apenas I e II estão corretas. 

Comentário O relacionamento de comunicação entre o sistema colaborativo e os domínios locais está


da resposta: baseado no uso de protocolos de comunicação de IoT e a Internet. 

https://ava.univesp.br/ultra/courses/_6979_1/cl/outline 3/3
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Middlewares para IoT


ROTEIRO

• Introdução

• Motivação

• Exemplos

• Desafios
INTRODUÇÃO

O que é um middleware?
 Camada entre SO e aplicações distribuídas
 Esconde a complexidade e a heterogeneidade do
sistema distribuído
 Faz a ponte entre as comunicações de baixo nível
do SO e as abstrações da linguagem de
programação
 Fornece abstração e infraestrutura de programação
comum para aplicações distribuídas
INTRODUÇÃO

O que é um middleware?

Aplicações Distribuídas
 chamadas remotas,
Middleware invocação de objetos

Comunicação com o SO  sockets, IP, TCP, UDP, …


Rede  bits…
INTRODUÇÃO

Middleware é importante para construir aplicações

 Tipos

 Orientado a mensagens
 Chamadas remotas de procedimentos

 Orientado a objetos

 Baseado em eventos
MOTIVAÇÃO
 Contexto de quem produz dados
 Dispositivos de diversas marcas, tamanhos,
capacidades de processamento e de
armazenamento.
 Heterogeneidade, dinamicidade
 Ambiente fracamente acoplado
 Contexto de que consome os dados
 Dispositivos de posse do usuário final, como:
 Celulares, tablets, desktops, notebooks, smart tvs.
MOTIVAÇÃO

 O ambiente também influencia na construção de um


middleware / framework
 Esses ambientes podem ser:
 Museus
 Empresas (pequeno, médio e grande porte)
 Cidades
 Shoppings
 A sua casa
MOTIVAÇÃO

 Utilização de um middleware:
 Integração
 Interfaces
 Transmissão de dados
 Automação
 Desenvolver novas aplicações
 Otimizar aplicações
EXEMPLOS

• Um usuário pode estar em um shopping conectado à


rede sem fio do local;
• O ambiente detecta o usuário por meio de alguns
mecanismos de autenticação e disponibiliza
informações sobre comida, vestuário, etc.
• No mesmo shopping, um sistema de reconhecimento
facial pode indicar que aquele usuário é foragido da
justiça e um alerta pode ser gerado para a segurança
do local que acionará a polícia;
EXEMPLOS

 Nos exemplos anteriores, precisamos de:


 Ampla conectividade

 Ciência do contexto

 Equipamentos para sensoriar o ambiente

(câmeras e sensores de movimento)


 Software para processar dados oriundos dos

sensores e também para armazenar esses dados


 Problema:

 há centenas de tipos de sensores, centenas de

câmeras. Como padronizar a captura, o


processamento e o armazenamento? → Middleware
DESAFIOS

 Multiescala
 Gerenciamento de contexto distribuído em várias infraestruturas
de rede expondo várias escalas.

 Qualidade do contexto
 Escolha de metadados do contexto.
DESAFIOS

 Privacidade
 Respeita a privacidade dos proprietários do
contexto e não revela mais informações do que o
necessário;
 Em particular neste tópico o impacto da aceitação
da IoT envolve o usuário;
 Ele deve pode controlar o que, porque, quando,
onde e como suas informações serão
compartilhadas.
DESAFIOS
 Embora o middleware facilite
 Desenvolve novas soluções;
 Oculta diversas complexidades (em especial as de comunicação
e protocolos);
 Apresenta APIs.

 É preciso que
 A construção do mesmo seja focada considerando
o ambiente, pois há particularidades do local;
 É preciso considerar que o ambiente em si pode ser
naturalmente suscetível a ser escalável na
quantidade de sensores instalados e na intensa
troca de dados processados localmente ou
encaminhados a uma nuvem computacional.
REFERÊNCIA

1. https://web.cs.dal.ca/~jamie/course/CS/4173/Materials/Lecture/WS-1-
Middleware.ppt
2. https://www.redhat.com/pt-br/topics/middleware/what-is-middleware
3. https://azure.microsoft.com/pt-br/overview/what-is-middleware/
4. https://www.mdpi.com/2078-2489/12/2/87/pdf?version=1614255980
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Middlewares para IoT


PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

OpenHab
ROTEIRO

• Introdução

• Arquitetura

• Estrutura

• Persistência de dados
INTRODUÇÃO

OpenHAB – Home Automation and IoT Gateway framework


http://openhab.org

 Por que o OpenHab?


 Suporta + de 200 diferentes tecnologias e milhares

de dispositivos;
 Possui uma engine para escrever regras, baseada

no tempo, em eventos, scripts, ações, notificações


e controle de voz;
 Roda em servidores locais, nuvem, com Linux,

Windows, Docker;
 O acesso pode ser feito via aplicativos de celular

com iOS, Android e também pelo desktop;


INTRODUÇÃO

 Escrito em Java;
 É agnóstico a hardware e protocolos, pois como
destacamos, pode ser acoplado a muitos devices e
usar diversos tipos de protocolos como COAP,
MQTT, AMQP, etc;
 É desenvolvido baseado em uma arquitetura de
componentes.
ARQUITETURA
ARQUITETURA
ARQUITETURA
ARQUITETURA
ESTRUTURA
 O OpenHab funciona de forma compartimentalizada
em relação às funções e ações.
 Suas ações envolvem:
 Se comunicar com os dispositivos;
 Executar ações definidas pelo usuário;
 Fornecer páginas web com informações definidas
pelo usuário;
 Fornecer ferramentas para os usuários interagir
com os dispositivos.
ESTRUTURA

 Conceitos importante do OpenHAB:

 Bindings: componentes OpenHAB que fornecem


interface para interagir eletronicamente com os
dispositivos;
 Coisas: primeira representação gerada pelo software
OpenHAB de seus dispositivos;
 Canais: conexão do software com as coisas e itens;
 Itens: representação gerada pelo OpenHAB de
informações dos dispositivos;
 Regras: executam ações automáticas (if, then, else);
 SiteMAP: interface do usuário gerada pelo OpenHAB
que apresenta informações e permite interações.
PERSISTÊNCIA DE DADOS

 É importante em qualquer processo de automação manter


e recuperar os históricos de usos dos dispositivos;
 A persistência salva o estado de um item.

 Com a persistência de dados podemos:


 Fazer um gráfico de leitura de um sensor de

temperatura no tempo;
 Restaurar um item para estado anterior antes de

reiniciar o OpenHAB;
 Para a persistência devemos usar um banco de dados

local ou remotamente.
PERSISTÊNCIA DE DADOS

 Os estados de um item podem ser salvos quando:


 Quando um item muda;

 Quando um item é atualizado;

 Quando um item recebe um comando;

 A cada minuto se recebeu ou não um evento.

 O OpenHAB utiliza o RRD4J, cujo serviço de persistência


é baseado em um banco de dados round-robin;
 O RRD4J armazena apenas dados numéricos;
PERSISTÊNCIA DE DADOS

 O RRD4J é um sistema de registro de dados e gráficos


de alto desempenho para dados de séries temporais;
 Implementa as funcionalidades do RRDtool, que é um

padrão aberto da indústria;


 Suporta operações como: CREATE, UPDATE, FETCH,

LAST, DUMP, EXPORT, GRAPH.


PERSISTÊNCIA DE DADOS

 A estratégia de persistência padrão é:


 everyChange

 everyMinute

 restoreOnStartup

 Com o rrd4j o banco de dados nunca cresce além de um


determinado tamanho;
 Ele substitui X leituras pela média das X leituras à

medida que os dados armazenados envelhecem.


PERSISTÊNCIA DE DADOS

 Por que se preocupar com a persistência de dados?


 A interface com os usuários ficará mais rica com

informações;
 Cada usuário tem uma interface que será criada

automaticamente na interface principal do OpenHAB


com base no seu perfil;
 Gráficos podem ser gerados automaticamente após

ajustes de configurações.
REFERÊNCIA

1. https://commons.wikimedia.org/wiki/File:OpenHAB_Architecture.png
2. https://www.researchgate.net/publication/266202005_Keeping_Eyes_on_your_Home_Open-
source_Network_Monitoring_Center_for_Mobile_Devices
3. https://community.openhab.org/t/diagram-for-the-introduction-doc-page/110790
4. https://www.researchgate.net/publication/357073943_A_Comparison_of_Open-
Source_Home_Automation_Systems
5. https://www.openhab.org/addons/persistence/rrd4j/
6. https://github.com/rrd4j/rrd4j
7. https://oss.oetiker.ch/rrdtool/
8. https://staceyoniot.com/can-you-run-an-openhab-or-home-assistant-smart-home-in-the-cloud/
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

OpenHab
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

OpenRemote
ROTEIRO

• Introdução

• Arquitetura

• Estrutura

• Persistência de dados
INTRODUÇÃO

O OpenRemote é uma plataforma IoT 100% de código


aberto adequada para DIYs (Do It Yourself).

 Auxilia no de gerenciamento de ativos como:


 Rastreamento de frotas de veículos;

 Sistemas de energia ou multidões;

 Construir cidades inteligentes, edifícios

inteligentes, aeroportos inteligentes e muito mais.


INTRODUÇÃO

 Enquanto algumas plataformas de IoT em nuvem


dependem de ferramentas open source, em geral o
código que fica no provedor de serviços é fechado;
 No entanto, com o OpenRemote é diferente, o
desenvolvimento de códigos está sob a licença
AGPLv3.
ARQUITETURA
ARQUITETURA
ARQUITETURA
 Composto por 3 blocos principais:

 Frontend: é composto por consoles (aplicativos iOS e


Android nativos), componentes Web e Templates, além de
uma interface de Administração do Sistema usada para
criar dashboards e painéis de controle;

 Manager: aplicativo Java headless para capturar os


estados atuais de ativos e inclui Gerenciamento de ativos,
dados de estado e históricos, Processamento de eventos
e mecanismo de regras e Mensagens;

 Agentes: são a interface para APIs e protocolos de serviço


de terceiros, como JAX-RS Restful HTTP API, Websockets
ou MQTT.
ESTRUTURA

 Coisas conectadas são traduzidas em um modelo de


ativos e atributos. Passo inicial para integração;

 Com uma interface amigável permite que usuários não


técnicos analisem dados e crie regras;

 Engenheiros podem usar o Gerenciador para conectar,


configurar e manter ativos;

 Pode ser hospedado em um servidor local.


ESTRUTURA

 Módulos:
 Gestão de ativos: detalhes sobre todos os

gateways, dispositivos e fontes de dados;


 Automatizador de ações: com regras, podemos

manipular e processar dados;


 Visualização de dados: qualquer ativo ou fonte de

dados pode ser comparado no tempo;


 Serviços de localização: visão geográfica dos seus

ativos;
 Múltiplos inquilinos: suporte de múltiplos usuários

controlado por mecanismos de acesso;


 Aplicativo Mobile: os ativos podem ser acessados

via APP OpenRemote.


PERSISTÊNCIA DE DADOS

 Onde os dados são armazenados?


 No OpenRemote. Os dados são armazenados em um

banco de dados PostgreSQL;


 Este banco de dados é armazenado em um volume

docker chamado de openremote_postgresql-data;


 Isso é interessante, pois se desejar criar um backup de

instalação basta fazer uma cópia deste volume;


 Só é possível, porque o armazenamento é feito de

forma durável independente de contêineres em


execução.
PERSISTÊNCIA DE DADOS

 Uma vez que os dados são armazenados em um volume


docker, os comandos para acesso aos dados, backup também
são utilizados;
 Dados de ativos podem ser exportados para arquivos CSV;

 Dados de ativos podem ser excluídos;

 Dados de ativos podem ser incluídos;

 Dados de ativos podem ser consultados.


REFERÊNCIA

1. https://openremote.io/product/
2. https://github.com/openremote/openremote
3. https://openremote.io/demo/
4. https://github.com/openremote/openremote/wiki/Developer-Guide:-Useful-commands-and-queries
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Home Assistant e DoJot


ROTEIRO

• Introdução

• Arquitetura

• Estrutura

• Persistência de dados
INTRODUÇÃO
 O Home Assistant é uma plataforma para automação
residencial de código aberto que coloca o controle
local e a privacidade em primeiro lugar.

 O Home Assistant atua como um hub central de


controle doméstico inteligente, combinando
diferentes dispositivos e serviços em um único local
e integrando-os como entidades.

 O projeto foi iniciado como um aplicativo Python por


Paulus Schoutsen em setembro de 2013, e publicado
pela primeira vez no GitHub em novembro de 2013.
INTRODUÇÃO

 Pode ser instalado em várias plataformas. Isso inclui


computadores de placa única (como Hardkernel
ODROID, Raspberry Pi, Asus Tinkerboard, Intel NUC),
sistemas operacionais como Windows, macOS,
Linux, bem como máquinas virtuais e sistemas NAS.
ARQUITETURA

 Sua arquitetura oferece integração, configuração e


atualizações que são feitas por meio de uma interface
fácil e intuitiva.

 A arquitetura geral é comporta por:


 Sistema Operacional

 Supervisor

 Core
ARQUITETURA

 Sistema Operacional fornece o ambiente Linux


adequado para executar o Supervisor e Core;
 O supervisor gerencia o SO.
 O Core interage com o usuário, supervisor,
dispositivos e serviços de IoT.
ESTRUTURA

 Cada um dos componentes anteriores também


apresentam suas divisões:
 Sistema Operacional Home Assistant (HAOS)

 Bootloader

 SO Linux

 Sistema de Arquivos: ZRAM e SquashFS

 Plataforma de container: Docker Engine

 Atualizações

 Segurança: AppArmor, sistema de segurança de

aplicação Linux
ESTRUTURA

Supervisor
 Permite ao usuário gerenciar a instalação

 Executa o núcleo do HA

 Atualiza o núcleo do HA

 Faz e restaura backups

 Atualiza o HAOS
ESTRUTURA

Core
 Consiste em 4

partes principais:
 Event Bus

 State Machine

 Service Registry

 Timer
ESTRUTURA

Core
 Event Bus: facilita o disparo e a escuta de eventos - o

coração pulsante do Home Assistant.


 State Machine: mantém o controle dos estados das

coisas e dispara um state_changedevento quando um


estado é alterado.
 Service Registry: escuta eventos no barramento de

call_serviceeventos e permite que outro código


registre serviços.
 Timer: envia um time_changedevento a cada 1

segundo no barramento de eventos.


ESTRUTURA

 O core do Home Assistant é orientado a eventos. Tudo o


que acontece é representado como um evento:
 uma luz sendo acesa.

 um sensor de movimento sendo acionado ou uma

automação acionada.
 Cada evento tem um contexto anexado. O contexto

pode ser usado para identificar quais eventos foram


acionados como resposta a outros eventos, qual
usuário acionou o evento original.
PERSISTÊNCIA DE DADOS

 O Home Assistant usa banco de dados para


armazenar eventos e parâmetros para histórico e
rastreamento.
 O banco de dados padrão usado é SQLite.
 O arquivo do banco de dados é armazenado no
diretório de configuração padrão da instalação.
 Exemplo: /home-assistant//home-assistant_v2.db);

 Outros bancos de dados relacionais como o

PostgreSQL podem ser utilizados.


PERSISTÊNCIA DE DADOS

 É necessário uma instalação do sqlite3 para trabalhar


com o banco de dados SQLite a partir da linha de
comando.
 Também pode ser usado o DB Browser for SQLite,
pois ele fornece um visualizador para explorar os
dados do banco de dados e um editor para executar
comandos SQL.
PERSISTÊNCIA DE DADOS
 O Home Assistant adota uma abordagem diferente
dos dados coletados em ambiente doméstico, com a
seguinte premissa:
 Seus dados são seus.

 Você não precisa compartilhar seus dados para

aprender com eles.


 A plataforma oferece o que se chama de Data Prime,
de modo que você pode aprender a explorar os
dados gerados a partir dos seus dispositivos.

https://data.home-assistant.io/
DoJoT

 Características
 100% Brasileira e OpenSource
 Considera a escalabilidade
 Tem diversos protocolos e soluções de segurança
 Possui uma comunidade ativa de desenvolvedores
ARQUITETURA DO DoJoT
ARQUITETURA DO DoJoT

A arquitetura do DoJot é bem completa e apresenta cerca de 15


componentes. Destaque abaixo para os principais:
 Gerenciador de dispositivos
 Agente de IoT
 Serviço de Autorização de usuário
 Flowbroker
 Gerenciador de dados
 Cron
 Gerenciador de imagens
 Interface gráfica do usuário
 Kafka WS
 Etc
ARQUITETURA DO DoJoT

Em relação à infraestrutura, componentes extras


também são utilizados:

 PostgreSQL: para persistência dos dados de


componentes como o gerenciador de dispositivos;
 Redis: banco de dados em memória usado como
cache em alguns componentes;
 RabbitMQ: um broker de mensagens;
 MongoDB: base de dados geral;
 Zookeeper: mantém serviços replicados dentro de
um cluster controlado.
ARQUITETURA DO DoJoT
Comunicação
 Todos os componentes se comunicam entre si de
duas formas:
 Via HTTP Request: se um componente precisar
recuperar dados de outro, ele poderá enviar uma
solicitação HTTP para o componente apropriado;
 Via Mensagens Kafka: se um componente precisar
enviar novas informações sobre um recurso
controlado por ele (como novos dispositivos
criados no Gerenciador de dispositivos), o
componente poderá publicar esses dados por meio
do Kafka.
REFERÊNCIA

1.https://pt.wikipedia.org/wiki/SQLite
2.https://developers.home-assistant.io/docs/architecture_index
3.https://www.home-assistant.io/
4.https://www.home-assistant.io/docs/backend/database/
5.https://learn.sparkfun.com/tutorials/using-home-assistant-to-
expand-your-home-automations/all
6.https://www.awesome-ha.com/
7.https://dojotdocs.readthedocs.io/en/latest/architecture.html
8.http://www.dojot.com.br/
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Home Assistant e DoJot


04/10/2022 18:08 Conteúdo

Pergunta 1 1,25 em 1,25 pontos


No contexto do OpenRemote, as conexões com diversas fontes podem ser realizadas pelos(as) ______,
utilizando protocolos como HTTP, MQTT, UDP, TCP etc. Assinale a alternativa que completa a lacuna
corretamente. 

Resposta Selecionada:  agentes de protocolos

Respostas: bancos de dados


APIs
regras

 agentes de protocolos

gerentes 
Comentário Os agentes são um tipo especial de ativo que conecta serviços/dispositivos externos ao seu
da sistema OpenRemote por meio dos protocolos listados, que no caso são protocolos genéricos. 
resposta:

Pergunta 2 1,25 em 1,25 pontos


Uma alternativa ao OpenHAB é o OpenRemote, que também é utilizado em contextos como sistemas de
energia, construção de edifícios e cidades inteligentes. Um aspecto que os difere é que: 

Resposta  o OpenRemote utiliza um banco de dados relacional, como o PostgreSQL.


Selecionada:
Respostas: o OpenHAB utiliza agentes para lidar com sensores, serviços de dados e consoles. 
o OpenRemote usa o RDD4J para persistir os dados. 
o OpenRemote não é 100% open source.

 o OpenRemote utiliza um banco de dados relacional, como o PostgreSQL.

o OpenHAB usa o PostgreSQL para persistir os dados.


Comentário da Ambos os middlewares são de código aberto e podem ser utilizados e modificados. O
resposta: OpenHAB utiliza o RDD4J para persistir dados. 

Pergunta 3 1,25 em 1,25 pontos


Assim como o OpenRemote, OpenHAB e Home Assistant, a plataforma DoJot (100% brasileira) visa facilitar o
desenvolvimento de soluções IoT, fornecendo estruturas para conexão, gerenciamento de dispositivos, APIs
etc. Um ponto interessante é que, nativamente, a plataforma é desenvolvida sob uma arquitetura: 

Resposta Selecionada:  de microsserviços.

Respostas: P2P.
monolítica.
cliente-servidor.

 de microsserviços.

blockchain.
Comentário A arquitetura da plataforma é baseada em microsserviços, em que cada componente é
da implantado em seu próprio container. A arquitetura cliente-servidor pode ser utilizada também,
resposta: mas não é o foco da plataforma, bem como a P2P. A tecnologia de blockchain utiliza uma
arquitetura P2P. 

Pergunta 4 1,25 em 1,25 pontos


Um middleware fornece diversas funcionalidades que abstraem a complexidade na troca de informações entre
aplicações. Podemos considerar como desafio na concepção de um novo middleware: 

Resposta Selecionada:  a multiescala.

https://ava.univesp.br/ultra/courses/_6979_1/cl/outline 1/3
04/10/2022 18:08 Conteúdo

Respostas: a quantidade de dados a serem gerenciados. 


a integração.

 a multiescala.

a otimização.
a interface.
Comentário A otimização, a integração e o uso de interfaces com o usuário e dispositivos são motivações
da para a utilização de middlewares. Além da multiescala, que consiste em gerenciar contextos
resposta: distribuídos em várias infraestruturas de rede, temos como desafios a qualidade do contexto e
a privacidade dos dados dos usuários. 

Pergunta 5 1,25 em 1,25 pontos


Trata-se de um middleware que utiliza por padrão o SQLite para persistir dados e apresenta uma arquitetura
compartimentalizada dividida em core, supervisor e sistema operacional. Esse middleware denomina-se: 

Resposta Selecionada:  Home Assistant.

Respostas:  Home Assistant.

Kaa.
OpenRemote.
OpenHAB.
ThingsBoard. 
Comentário A estrutura com core, supervisor e sistema operacional é característica do Home Assistant. Kaa
da e ThingsBoard também são middlewares para IoT, mas que não apresentam as características
resposta: do Home Assistant. 

Pergunta 6 1,25 em 1,25 pontos


O OpenHAB é baseado em uma arquitetura altamente modular que permite que o usuário adicione ou remova
diversas funcionalidades durante sua execução, sem a necessidade de parar o serviço. Analise as afirmações
a seguir e escolha a alternativa correta. 

I. A arquitetura é chamada de OGSI. 

II. A arquitetura do OpenHAB é a mesma do OpenRemote. 

III. OpenHAB e DoJot usam a arquitetura de microsserviços. 

IV. SOA é a arquitetura do OpenRemote. 

Resposta Selecionada:  Apenas I está correta.

Respostas:  Apenas I está correta.

Apenas IV está correta.


Apenas III está correta. 
Apenas III e IV estão corretas.
Apenas I e II estão corretas.
Comentário O OGSI é a base do ambiente de execução do OpenHAB, e é todo baseado em Java, razão
da pela qual o OpenHAB necessita de uma Java Virtual Machine para funcionar. As arquiteturas
resposta: monolíticas, de microsserviços e SOA não se enquadram no contexto da questão. A arquitetura
DoJot é baseada em microsserviços. 

https://ava.univesp.br/ultra/courses/_6979_1/cl/outline 2/3
04/10/2022 18:08 Conteúdo

Pergunta 7 1,25 em 1,25 pontos


O OpenHAB é desenvolvido sob uma arquitetura com diversos componentes que envolvem interação com o
usuário, com dispositivos e com o back-end. Esses componentes funcionam de forma integrada e
trocam informações por meio de: 

Resposta Selecionada:  um barramento de eventos.

Respostas: um banco de dados a documentos. 


um repositório de eventos.

 um barramento de eventos.

um arquivo de dados.
um banco de dados relacional.
Comentário O barramento de eventos (Event Bus) permite trocar mensagens por comando dos dispositivos
da e dados de telemetria, e ele interage com um repositório, dados de logs etc. O OpenHAB usa o
resposta: RDD4J, que é um sistema de registro de dados para séries temporais e difere de bancos de
dados baseados em relações. 

Pergunta 8 1,25 em 1,25 pontos


No contexto do OpenRemote, é correto afirmar que os termos fluxo, when-then e groovy são: 

Resposta Selecionada:  tipos de regras.

Respostas: containers.
gateways.
protocolos.
fontes de dados.

 tipos de regras.

Comentário As regras visam facilitar o uso e são acessíveis para que não desenvolvedores adicionem
da automação aos seus projetos. Os containers hospedam toda a estrutura de software do
resposta: OpenRemote. 

https://ava.univesp.br/ultra/courses/_6979_1/cl/outline 3/3
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

AWS IoT
ROTEIRO

• Introdução

• Visão Geral

• Serviços de IoT

• Recursos
INTRODUÇÃO

• O objetivo da IoT é conectar coisas à Internet

• Dispositivos podem ou não ser expostos na Internet

• Estimativa de 75 bilhões de dispositivos até 2025

• Muitos dados gerados que precisam ser enviados,


processados e armazenados

• IoT desempenha um papel importante na obtenção de


informações

• É por isso que é necessário modificar o que já foi construído


para gerar experiências do cliente que evoluem
VISÃO GERAL
SERVIÇOS DE IOT

SOFTWARE DE DISPOSITIVO
 A AWS possui uma versão customizada do
FreeRTOS, que é um sistema operacional de código
aberto em tempo real para microcontroladores.

 Um microcontrolador contém um processador


simples, com restrição de recursos, que pode ser
encontrado em vários dispositivos, como aparelhos,
sensores, rastreadores de condicionamento físico.
SERVIÇOS DE IOT

SERVIÇOS DE CONTROLE
AWS IoT Device
AWS IoT Core
Management
Permite conectar bilhões
Auxilia na inclusão,
de dispositivos de IoT e
registro,
rotear trilhões de
monitoramento e
mensagens para serviços
gerenciamento remoto
da AWS sem gerenciar a
de dispositivos de IoT
infraestrutura.
em escala.
SERVIÇOS DE IOT

SERVIÇOS DE ANÁLISE

Alguns benefícios:
O AWS IoT Analytics
é um serviço
• Operacionalizar fluxos de
totalmente
trabalho
gerenciado que
• Consultar dados com mais
facilita a execução e
facilidade
a operacionalização
• Escalabilidade automática
de análises
• Técnicas para facilitar a
sofisticadas em
preparação e o
volumes massivos
processamento de análise
de dados da IoT.
de dados para análise
RECURSOS

AWS IOT DEVICE MANAGEMENT

 Registrar dispositivos
 Organizar dispositivos conectados em grupo
 Indexar e pesquisar
 Registro em logo dos dispositivos
 Gerenciamento remoto dos dispositivos
RECURSOS

AWS IOT DEVICE


MANAGEMENT
RECURSOS

AWS IOT CORE


 Device Gateway
 Device Advisor
 Agente de mensagens
 Autenticação e Autorização
 Registro
 Mecanismo de regras
RECURSOS

AWS IOT CORE


RECURSOS

AWS IOT ANALYTICS


COLETA PROCESSAMENTO
• Dados de • Limpeza,
qualquer fonte transformação,
• Somente reprocessamento
dados que
deseja ARMAZENAMENTO
armazenar e • Data store de séries
processar temporais
RECURSOS

AWS IOT ANALYTICS


ANÁLISE
• Execução de consultas SQL
• Análise de séries temporais
• Automatização e execução de contêineres
• Captura incremental de dados

VISUALIZAÇÃO
REFERÊNCIA

1. https://aws.amazon.com/pt/iot-core/?nc=sn&loc=0
2. https://aws.amazon.com/pt/iot-device-management/
3. https://aws.amazon.com/pt/iot-analytics/?nc=sn&loc=2&dn=7
4. https://aws.amazon.com/pt/blogs/aws-brasil/aws-iot/
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Azure IoT
ROTEIRO

• Introdução

• O que é?

• Como funciona?

• Utilização
INTRODUÇÃO

A IOT TEM CRESCIDO BASTANTE NO DOMÍNIO


EMPRESARIAL

• manufatura, varejo/atacado, transporte, governo e


saúde

MUITAS IMPLEMENTAÇÕES DE IOT NÃO SAEM DO


ESCOPO DE PROVA DE CONCEITO (POC)

• O cliente às vezes não vê valor comercial e não entende


como ela pode ser dimensionada
• A Azure IoT tenta tornar mais evidente os benefícios
que a IoT pode trazer para diversos setores da
economia
INTRODUÇÃO

A Azure IoT ajuda a


repensar
processos com
base em 4
elementos:

 Clientes
 Operações
 Produtos/Ativos
 Funcionários
O QUE É?

Azure IoT é uma coleção de serviços de nuvem


gerenciados pela Microsoft que conectam,
monitoram e controlam até milhões de ativos de IoT.

Uma solução IoT é composta por um ou mais


dispositivos IoT e um ou mais serviços de back-end
executados na nuvem que se comunicam entre si.
O QUE É?

OS TRÊS COMPONENTES PRINCIPAIS SÃO:


Dispositivos: Comunicação: Serviços de
os dispositivos o dispositivo Back-end:
IoT são pode se os serviços de
compostos por comunicar back-end recebem
uma placa de com serviços dados de
circuito de back-end telemetria em
eletrônico com em ambas as escala dos
sensores ou direções.. dispositivos e
atuadores determinam como
conectados que processar e
se conectam à armazenar esses
Internet. dados.
COMO FUNCIONA?

Os serviços básicos de Cloud são divididos em 3 categorias


como já estudamos anteriormente:
 PaaS, SaaS e IaaS

COM O AZURE IOT PODEMOS:


Customizar soluções Criar soluções de SaaS
IoT em PaaS • Adequadas para cenários com
• Exemplo: poucos modelos de
monitoramento dispositivos
remoto, simulação • Azure Central é uma solução de
de dispositivos, SaaS gerenciada, que permite
manutenção iniciar na Azure com pouca
preditiva experiência
COMO FUNCIONA?

TECNOLOGIAS DE PAAS
Envolve:

 Suporte a dispositivos
 IoT

 Dados e análises

 Visualização e integração
COMO FUNCIONA?

O CONJUTO DE TECNOLOGIAS IOT DA AZURE


ENVOLVE:
Azure Time
Hub IoT: Azure Sphere:
Series Insight:
serviços que solução de ponta
permite
permitem a ponta para
armazenar,
comunicações proteger
visualizar e
bidirecionais dispositivos
consultar
entre os alimentados por
grandes volumes
dispositivos e unidade de
de dados de
um back-end microcontrolador
séries temporais
COMO FUNCIONA?

O CONJUTO DE TECNOLOGIAS IOT DA AZURE


ENVOLVE:
Azure Digital Mapas do Azure:
Azure IoT Edge:
Twins: é uma coleção de
permite que
cria modelos serviços
você mova
de um geoespaciais que
partes de sua
ambiente usa dados de
carga de
físico que mapeamento
trabalho para o
você está atualizados para
dispositivo de
interessado fornecer contexto
borda
em analisar geográfico
COMO FUNCIONA?

AZURE MACHINE VISUALIZAÇÃO E


LEARNING INTEGRAÇÃO
Ajuda a criar, treinar e Microsoft Flow, Azure
implantar modelos de Logic Apps, Azure
aprendizado de máquina Web App, Azure
no Azure. As soluções de Active Directory,
Microsoft Power BI,
dados e análises do Azure
Azure Monitor
representam um conjunto
de soluções para
armazenar e analisar
dados de IoT
UTILIZAÇÃO

A UTILIZAÇÃO DO AZURE IOT


É DETERMINADA POR:

O tipo de
solução que O conjunto de
Seus habilidades da
você deseja
requisitos de sua organização
desenvolver do em tecnologias
negócios
ponto de vista Azure IoT PaaS
da nuvem
UTILIZAÇÃO

PERGUNTAS IMPORTANTES ANTES DE


DECIDIR PELA AZURE IOT:
 A equipe conhece de nuvem?
 Há milhares de dispositivos para conectar?
 É preciso modelar espaços físicos usando sensores?
 Precisa gerenciar dispositivos com segurança?
 Precisa realinhar processos de negócios entre
clientes, ativos, operações e funcionários?
REFERÊNCIA

1. https://docs.microsoft.com/pt-br/azure/iot-hub/
2. https://docs.microsoft.com/pt-br/azure/iot-fundamentals/
3. https://docs.microsoft.com/pt-br/azure/iot-central/core/quick-deploy-iot-
central
4. https://docs.microsoft.com/pt-br/azure/iot-develop/
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Google Cloud IoT


ROTEIRO

• Introdução

• O que é?

• Funcionalidades
INTRODUÇÃO

A IoT pode ser caracterizada como o uso de


dispositivos conectados à rede, incorporados ao
ambiente físico, para melhorar algum processo
existente ou para permitir um novo cenário que não
era possível anteriormente.

Os projetos de IoT têm dimensões adicionais que


aumentam sua complexidade quando comparados a
outros aplicativos de tecnologia centrados em
nuvem, incluindo:
 Diversidade de hardware
 Diferentes softwares e sistemas operacionais
 Diferentes requisitos de gateway de rede
INTRODUÇÃO

Os componentes básicos na visão do Google são


divididos conforme a figura a seguir
INTRODUÇÃO

Em um ambiente dinâmico com é a IoT, uma visão


geral de seus componentes, envolve:

• Tipos de informações • Plataformas de


dispositivos
• Metadados dos
dispositivos • Interfaces de
hardware
• Informações de estado
 Comandos • Ambiente de
 Telemetria computação

• Informações • Processamento no
operacionais dispositivo

• Hardware do dispositivo
INTRODUÇÃO

Após a coleta de dados em sensores, em particular o


processamento no dispositivo:
• Converter dados para outro formato
• Empacotar dados de forma segura
• Validar dados para garantir que eles atendam a um
conjunto de regras
• Classificar dados
• Resumir dados para reduzir o volume e eliminar
detalhes desnecessários ou indesejados
• Combinar dados em valores agregados
INTRODUÇÃO
O QUE É?

O Google Cloud
IoT é uma
plataforma para
auxiliar no
gerenciamento,
acesso,
escalabilidade de
dispositivos e
informações
produzidas no
contexto de uma
solução IoT
O QUE É?
FUNCIONALIDADES

GERENCIAMENTO DE DISPOSITIVO ENVOLVE:


• Ingestão de dados (Pub/Sub)
• Envio de informações por um agente (MQTT)

PROCESSAMENTO DE PIPELINE
• Pipelines gerenciam dados depois que eles chegam ao
Google Cloud
• Transforma, agrega

ARMAZENAMENTO DE DADOS
• Dados se apresentam em vários tamanhos e formatos
• Dados do estado ou de telemetria podem ser armazenados
em banco de dados estruturados e sem schema, como o
Firebase Realtime Database e o Datastore
FUNCIONALIDADES

ANÁLISE
 Depois que os dados de streaming forem
analisados ​em um pipeline de processamento,
eles começarão a se acumular.

 Com o tempo, esses dados fornecem uma rica


fonte de informações para analisar tendências e
podem ser combinados com outros dados,
incluindo dados de fontes fora de seus
dispositivos IoT.

 Ferramentas para análise incluem o Bigquery e o


Datalab / Vertex AI Workbench.
REFERÊNCIA

1. https://cloud.google.com/architecture/iot-overview
2. https://developers.google.com/iot
https://www.cloudskillsboost.google/focuses/1771?locale=pt_BR&parent=
catalog
04/10/2022 18:08 Conteúdo

Pergunta 1 1,25 em 1,25 pontos


Dentre os SDKs do Azure IoT, o principal é o Azure Hub IoT, que permite inclusive a escolha de protocolos de
comunicação a serem utilizados na solução. O protocolo que deve ser utilizado em um gateway de IoT é o:

Resposta Selecionada:  AMQP

Respostas: MQTT

 AMQP

WebMQTT
HTTPS
HTTP
Comentário O MQTT deve ser utilizado em todos os dispositivos que não exigem conectar vários
da dispositivos (cada um com suas próprias credenciais por dispositivo) sobre a mesma conexão
resposta: TLS. O AMPQ por sua vez deve ser utilizado em gateways de campo e de nuvem para tirar
proveito da multiplexação de conexão entre dispositivos. HTTP e HTTPs são usados em
dispositivos que não dão suporte aos outros protocolos. Não há protocolo com o nome
WebMQTT.

Pergunta 2 1,25 em 1,25 pontos


Em relação aos kits de desenvolvimento de software (SDK) para IoT da Microsoft Azure, é correto afirmar
que:

Resposta  
Selecionada: o SDK de serviço de hub IoT permite criar aplicativos de back-end para gerenciar seu Hub
IoT.
Respostas: o SDK de Provisionamento de Dispositivos permite que você crie aplicativos que são
executados em seus dispositivos de IoT usando o cliente do dispositivo ou do módulo.
 
o SDK de serviço de hub IoT permite criar aplicativos de back-end para gerenciar seu Hub
IoT.
o SDK de Serviços de Provisionamento permite que você crie aplicativos que são executados
em seus dispositivos IoT para se comunicarem com o Serviço de Provisionamento de
Dispositivos.
o SDK de serviço do Hub IoT permite que você crie aplicativos de back-end para gerenciar
seus registros no Serviço de Provisionamento de Dispositivos.
o SDK do dispositivo Hub IoT permite que você crie aplicativos de back-end para gerenciar
seus registros no Serviço de Provisionamento de Dispositivos.
Comentário Os SDKs de Serviço do Hub IoT permitem criar aplicativos de back-end para gerenciar seu Hub
da IoT.
resposta:
Os SDKs do Dispositivo Hub IoT permitem que você crie aplicativos que são executados em
seus dispositivos de IoT usando o cliente do dispositivo ou do módulo. 

SDKs de Provisionamento de Dispositivos permitem que você crie aplicativos que são
executados em seus dispositivos IoT para se comunicarem com o Serviço de Provisionamento
de Dispositivos.

SDKs de Serviços de Provisionamento permitem que você crie aplicativos de back-end para
gerenciar seus registros no Serviço de Provisionamento de Dispositivos.

Pergunta 3 1,25 em 1,25 pontos


Assinale a alternativa que corresponde respectivamente às características a seguir:

I. São componentes fundamentais do Cloud IoT Core.


II. São o gerenciador de dispositivos e as pontes de protocolos.

Resposta Selecionada:  o gerenciador de dispositivos e a ponte de protocolos.

Respostas: o MQTT e o gerenciador de dispositivos.

https://ava.univesp.br/ultra/courses/_6979_1/cl/outline 1/3
04/10/2022 18:08 Conteúdo
a ponte de protocolos e o registro de dispositivos.
o MQTT e a ponte de protocolos.

 o gerenciador de dispositivos e a ponte de protocolos.

o MQTT e a telemetria.
Comentário Os componentes principais são: o gerenciador de dispositivos, que registra dispositivos no
da serviço para que você possa monitorá-los e configurá-los. E as duas pontes de protocolos
resposta: (MQTT e HTTP) que são utilizadas pelos dispositivos para a conexão com o Google Cloud
Platform.

Pergunta 4 1,25 em 1,25 pontos


São recursos de segurança do Cloud IoT core da Google:

Resposta Selecionada:  Autenticação de chave pública e privada utilizando JSON Web Tokens.

Respostas: DNS seguro.


Compatibilidade com algoritmos de chave privada.

 Autenticação de chave pública e privada utilizando JSON Web Tokens.

Autenticação de via QRCode.


Proteção contra ataques man-in-the-middleware.
Comentário São recursos de segurança, além da autenticação de chaves públicas/privas com JSON Web
da toolkit, também conexão TLS 1.2, controle de acesso feito pelo gerenciamento de identidade e
resposta: acesso (IAM).

Pergunta 5 1,25 em 1,25 pontos


Um serviço da AWS IoT é formado por vários componentes, dentre os quais um deles permite catalogar as
coisas e adicionar algumas informações extras sobre as coisas. Este componente é chamado de:

Resposta Selecionada:  device registry.

Respostas:  device registry.

device database.
device cloud.
device gateway.
device hub.
Comentário Device gateway é um componente que envia, recebe e mantém informações com os
da dispositivos. Na nomenclatura da AWS IoT não há a figura do device cloud, device data-base e
resposta: nem mesmo device hub.

Pergunta 6 1,25 em 1,25 pontos


Com o Google Cloud IoT, podemos gerenciar os dispositivos via nuvem independente de onde eles estão
fisicamente localizados. Considerando algumas funcionalidades apresentadas sobre a Cloud IoT do Google,
aquela que ajuda na transformação e agregação dos dados é:

Resposta Selecionada:  o processamento de pipeline.

Respostas: o broker.
o armazenamento de dados.
a análise.
o gateway.

 o processamento de pipeline.

Comentário

https://ava.univesp.br/ultra/courses/_6979_1/cl/outline 2/3
04/10/2022 18:08 Conteúdo
da resposta: Gerenciamento de dispositivos, armazenamento e análises são outras funcionalidades
importantes. Gateway e broker são componentes e não funcionalidades.

Pergunta 7 1,25 em 1,25 pontos


As plataformas de nuvem mais conhecidas e utilizados atualmente como AWS, Google e Azure possuem
toolkits para lidar com um ambiente de IoT que vai da coleta de dados dos dispositivos, armazenamento e
análise desses dados. Analise as afirmações a seguir e escolha a alternativa correta:

I. Considerando uma visão geral da AWS IoT Core, o que melhor ilustra um serviço de controle que lida com o
monitoramento dos dispositivos é chamado de AWS IoT device management. 

II. O AWS IoT Core é um serviço que facilita a detecção e a resposta a eventos.
III. O AWS IoT Monitoring serve para monitorar serviços.

IV. O AWS IoT Advisor valida dispositivos IoT durante o desenvolvimento de software de dispositivo.

Resposta Selecionada:  Apenas I e IV estão corretas.

Respostas:  Apenas I e IV estão corretas.

Apenas I e II estão corretas.


Apenas I, II e III estão corretas.
Apenas II e IV estão corretas.
Apenas I, III e IV estão corretas.
Comentário São serviços de controle focado no monitoramento e gerenciamento remoto o AWS IoT Device
da Management. O AWS IoT Events é um serviço que facilita a detecção e a resposta a eventos
resposta: de sensores e aplicativos de IoT. O AWS IoT advisor é utilizado para validar dispositivos IoT
durante o desenvolvimento de software do dispositivo. AWS IoT Monitoring não é um
serviço/produto válido da AWS.

Pergunta 8 1,25 em 1,25 pontos


Quando falamos de IoT é comum pensar apenas em dispositivos conectados. Na verdade, além dos
dispositivos há também as ações efetuadas por eles e os insights, como por exemplo em um serviço de back-
end que é fundamental para qualquer solução computacional que vai rodar na nuvem, transformando dados
em informações. Julgue as afirmações abaixo e assinale a alternativa correta:

I. Gerenciar firmware instalado nos dispositivos é uma funcionalidade dos serviços do back-end da Azure IoT.
II. Os insights determinam somente como processar os dados.

III. Insights são informações coletadas pelas coisas, que são analisadas e transformadas em conhecimentos,
os quais são acionadas por pessoas.

IV. IoT inclui sistemas operacionais, segurança dos dispositivos, back-end e análises dos dados produzidos.

Resposta Selecionada:  Apenas I, III e IV estão corretas.

Respostas: Apenas III e IV estão corretas.


Apenas I e III estão corretas.
Apenas II e IV estão corretas.

 Apenas I, III e IV estão corretas.

Apenas I e IV estão corretas.


Comentário A Azure IoT oferece serviços de telemetria, envio de comandos, da nuvem para os dispositivos,
da gerenciamento de firmware etc. A definição da arquitetura é feita pelo arquiteto de software. 
resposta: Ações são maneiras de como as pessoas respondem a esses insights e os conectam a seus
negócios, bem como os sistemas e as ferramentas que utilizam.

https://ava.univesp.br/ultra/courses/_6979_1/cl/outline 3/3
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Home Assistant e DoJot


ROTEIRO

• Introdução

• Arquitetura

• Estrutura

• Persistência de dados
INTRODUÇÃO
 O Home Assistant é uma plataforma para automação
residencial de código aberto que coloca o controle
local e a privacidade em primeiro lugar.

 O Home Assistant atua como um hub central de


controle doméstico inteligente, combinando
diferentes dispositivos e serviços em um único local
e integrando-os como entidades.

 O projeto foi iniciado como um aplicativo Python por


Paulus Schoutsen em setembro de 2013, e publicado
pela primeira vez no GitHub em novembro de 2013.
INTRODUÇÃO

 Pode ser instalado em várias plataformas. Isso inclui


computadores de placa única (como Hardkernel
ODROID, Raspberry Pi, Asus Tinkerboard, Intel NUC),
sistemas operacionais como Windows, macOS,
Linux, bem como máquinas virtuais e sistemas NAS.
ARQUITETURA

 Sua arquitetura oferece integração, configuração e


atualizações que são feitas por meio de uma interface
fácil e intuitiva.

 A arquitetura geral é comporta por:


 Sistema Operacional

 Supervisor

 Core
ARQUITETURA

 Sistema Operacional fornece o ambiente Linux


adequado para executar o Supervisor e Core;
 O supervisor gerencia o SO.
 O Core interage com o usuário, supervisor,
dispositivos e serviços de IoT.
ESTRUTURA

 Cada um dos componentes anteriores também


apresentam suas divisões:
 Sistema Operacional Home Assistant (HAOS)

 Bootloader

 SO Linux

 Sistema de Arquivos: ZRAM e SquashFS

 Plataforma de container: Docker Engine

 Atualizações

 Segurança: AppArmor, sistema de segurança de

aplicação Linux
ESTRUTURA

Supervisor
 Permite ao usuário gerenciar a instalação

 Executa o núcleo do HA

 Atualiza o núcleo do HA

 Faz e restaura backups

 Atualiza o HAOS
ESTRUTURA

Core
 Consiste em 4

partes principais:
 Event Bus

 State Machine

 Service Registry

 Timer
ESTRUTURA

Core
 Event Bus: facilita o disparo e a escuta de eventos - o

coração pulsante do Home Assistant.


 State Machine: mantém o controle dos estados das

coisas e dispara um state_changedevento quando um


estado é alterado.
 Service Registry: escuta eventos no barramento de

call_serviceeventos e permite que outro código


registre serviços.
 Timer: envia um time_changedevento a cada 1

segundo no barramento de eventos.


ESTRUTURA

 O core do Home Assistant é orientado a eventos. Tudo o


que acontece é representado como um evento:
 uma luz sendo acesa.

 um sensor de movimento sendo acionado ou uma

automação acionada.
 Cada evento tem um contexto anexado. O contexto

pode ser usado para identificar quais eventos foram


acionados como resposta a outros eventos, qual
usuário acionou o evento original.
PERSISTÊNCIA DE DADOS

 O Home Assistant usa banco de dados para


armazenar eventos e parâmetros para histórico e
rastreamento.
 O banco de dados padrão usado é SQLite.
 O arquivo do banco de dados é armazenado no
diretório de configuração padrão da instalação.
 Exemplo: /home-assistant//home-assistant_v2.db);

 Outros bancos de dados relacionais como o

PostgreSQL podem ser utilizados.


PERSISTÊNCIA DE DADOS

 É necessário uma instalação do sqlite3 para trabalhar


com o banco de dados SQLite a partir da linha de
comando.
 Também pode ser usado o DB Browser for SQLite,
pois ele fornece um visualizador para explorar os
dados do banco de dados e um editor para executar
comandos SQL.
PERSISTÊNCIA DE DADOS
 O Home Assistant adota uma abordagem diferente
dos dados coletados em ambiente doméstico, com a
seguinte premissa:
 Seus dados são seus.

 Você não precisa compartilhar seus dados para

aprender com eles.


 A plataforma oferece o que se chama de Data Prime,
de modo que você pode aprender a explorar os
dados gerados a partir dos seus dispositivos.

https://data.home-assistant.io/
DoJoT

 Características
 100% Brasileira e OpenSource
 Considera a escalabilidade
 Tem diversos protocolos e soluções de segurança
 Possui uma comunidade ativa de desenvolvedores
ARQUITETURA DO DoJoT
ARQUITETURA DO DoJoT

A arquitetura do DoJot é bem completa e apresenta cerca de 15


componentes. Destaque abaixo para os principais:
 Gerenciador de dispositivos
 Agente de IoT
 Serviço de Autorização de usuário
 Flowbroker
 Gerenciador de dados
 Cron
 Gerenciador de imagens
 Interface gráfica do usuário
 Kafka WS
 Etc
ARQUITETURA DO DoJoT

Em relação à infraestrutura, componentes extras


também são utilizados:

 PostgreSQL: para persistência dos dados de


componentes como o gerenciador de dispositivos;
 Redis: banco de dados em memória usado como
cache em alguns componentes;
 RabbitMQ: um broker de mensagens;
 MongoDB: base de dados geral;
 Zookeeper: mantém serviços replicados dentro de
um cluster controlado.
ARQUITETURA DO DoJoT
Comunicação
 Todos os componentes se comunicam entre si de
duas formas:
 Via HTTP Request: se um componente precisar
recuperar dados de outro, ele poderá enviar uma
solicitação HTTP para o componente apropriado;
 Via Mensagens Kafka: se um componente precisar
enviar novas informações sobre um recurso
controlado por ele (como novos dispositivos
criados no Gerenciador de dispositivos), o
componente poderá publicar esses dados por meio
do Kafka.
REFERÊNCIA

1.https://pt.wikipedia.org/wiki/SQLite
2.https://developers.home-assistant.io/docs/architecture_index
3.https://www.home-assistant.io/
4.https://www.home-assistant.io/docs/backend/database/
5.https://learn.sparkfun.com/tutorials/using-home-assistant-to-
expand-your-home-automations/all
6.https://www.awesome-ha.com/
7.https://dojotdocs.readthedocs.io/en/latest/architecture.html
8.http://www.dojot.com.br/
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Home Assistant e DoJot


PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Integração de dispositivos IoT –


Parte 2
ROTEIRO

• Instalação do Home Assistant Operating


System

• Configuração do Home Assistant


Operating System

• Integração de dispositivos
INSTALAÇÃO DO HOME ASSISTANT
OPERATING SYSTEM

• Como visto na aula anterior, há diversas formas de


instalar o Home Assistant

• Vamos abordar a instalação no Virtualbox com o


Sistema Operacional Home Assistant

• Você já deve ter o ambiente com o Oracle Vitualbox


instalado no Windows ou Linux

• Caso não tenha, acesse o link e proceda com a


instalação do VirtualBox

https://www.virtualbox.org/wiki/Downloads
INSTALAÇÃO DO HOME ASSISTANT
OPERATING SYSTEM

SOBRE A MÁQUINA VIRTUAL

• Faça o download no site oficial do Home Assistant


https://github.com/home-assistant/operating-
system/releases/download/8.2/haos_ova-8.2.vdi.zip
• Extraia a imagem com um descompactador como o
Winrar, Winzip, etc
• Atribuições mínimas recomendadas:
2 GB de RAM
Armazenamento de 32 GB
2vCPU
INSTALAÇÃO DO HOME ASSISTANT
OPERATING SYSTEM

CONFIGURAÇÃO ESPECÍFICA DO HYPERVISOR

1. Criar uma nova máquina virtual.

2. Selecione Tipo “Linux” e Versão “Linux 2.6 / 3.x /


4.x (64 bits)”.

3. Selecione “Usar um arquivo de disco rígido virtual


existente”, e o arquivo VDI descompactado acima.
INSTALAÇÃO DO HOME ASSISTANT
OPERATING SYSTEM

CONFIGURAÇÃO ESPECÍFICA DO HYPERVISOR

4. Edite as “Configurações” da VM e vá em
“Sistema”, depois “Placa-mãe” e selecione “Ativar
EFI”.

5. Em seguida, vá para “Rede” “Adaptador 1”


escolha “Adaptador em ponte” e selecione seu
adaptador de rede.

6. Em seguida, vá para “Áudio” e escolha “Intel HD


Audio” como controlador de áudio.
INSTALAÇÃO DO HOME ASSISTANT
OPERATING SYSTEM

INICIALIZAÇÃO

• Observe o processo de inicialização do sistema


operacional Home Assistant.

• Depois de concluído, você pode acessar pelo link:

http://localhost:8123
CONFIGURAÇÃO DO HOME ASSISTANT

• Ao acessar a URL, você terá uma tela de configuração como abaixo:


CONFIGURAÇÃO DO HOME ASSISTANT

1. Defina os campos de nome, nome de usuário e


senha.

2. Configure a sua localização. Use a ferramenta


'detectar' para obter automaticamente seu fuso-
horário.

3. Em seguida, você será solicitado a enviar dados de


usuários anônimos para o Home Assistant. Escolha
quantos desejar.

4. Um ponto interessante é que no passo seguinte o


Home Assistant detectará automaticamente
qualquer dispositivo inteligente que já esteja em
sua rede.
CONFIGURAÇÃO DO HOME ASSISTANT
INTEGRAÇÃO DE DISPOSITIVOS
INTEGRAÇÃO DE DISPOSITIVOS
INTEGRAÇÃO DE DISPOSITIVOS
INTEGRAÇÃO DE DISPOSITIVOS
REFERÊNCIA

1. https://www.home-assistant.io/installation/
2. https://www.home-assistant.io/integrations/analytics/
3. https://hub.docker.com/r/homeassistant/home-assistant
PLATAFORMA DE INGESTÃO E
ANÁLISE DE DADOS

Integração de dispositivos IoT –


Parte 1
ROTEIRO

• Instalação do Home Assistant no Docker

• Configuração do Home Assistant no


Docker

• Integração de dispositivos
INSTALAÇÃO DO HOME ASSISTANT NO
DOCKER
• Há diversas formas de instalar o Home Assistant
usando virtualizadores como:
 KVM
 Hyper-V
 Virtualbox

• Também podemos utilizar uma imagem docker


• O processo de instalação do Home Assistant será
feito via de linha de comando (CLI) com base em
uma imagem docker
• Você já deve ter o ambiente docker instalado para
que consiga ter o Home Assistant funcionando
INSTALAÇÃO DO HOME ASSISTANT NO
DOCKER
PASSOS DA INSTALAÇÃO

• Criar um volume
 docker volume create homeassistant_dat
• Configurar o container docker

docker run -d \
--name homeassistant \
--privileged \
• O comando --restart=unless-stopped \
anterior vai fazer -p 8123:8123 \
download da -e TZ="Europe/London" \
imagem docker -v homeassistant_config:/config \
e ajustar --network=host \
configurações ghcr.io/home-assistant/home-assistant:stable
CONFIGURAÇÃO DO HOME ASSISTANT

VAMOS COMEÇAR A CONFIGURAR O CONTÊINER


DO DOCKER DO HOME ASSISTANT.

• Acesse a URL do administrador em um browser de


sua preferência

http://localhost:8123
CONFIGURAÇÃO DO HOME ASSISTANT

• Ao acessar a URL você terá uma tela de configuração como abaixo


CONFIGURAÇÃO DO HOME ASSISTANT

1. Defina os campos de nome, nome de usuário e


senha.

2. Configure a sua localização. Use a ferramenta


'detectar' para obter automaticamente seu fuso-
horário.

3. Em seguida, você será solicitado a enviar dados de


usuários anônimos para o Home Assistant. Escolha
quantos desejar.

4. Um ponto interessante é que no passo seguinte o


Home Assistant detectará automaticamente
qualquer dispositivo inteligente que já esteja em
sua rede.
CONFIGURAÇÃO DO HOME ASSISTANT
INTEGRAÇÃO DE DISPOSITIVOS
INTEGRAÇÃO DE DISPOSITIVOS
INTEGRAÇÃO DE DISPOSITIVOS
INTEGRAÇÃO DE DISPOSITIVOS
REFERÊNCIA

1. https://www.home-assistant.io/installation/
2. https://www.home-assistant.io/integrations/analytics/
3. https://hub.docker.com/r/homeassistant/home-assistant

Você também pode gostar