Escolar Documentos
Profissional Documentos
Cultura Documentos
PROFISSIONAL EM SEMANA 1
COMPUTAÇÃO
entender o que envolve o pensamento computacional e suas áreas até a área de
formação em computação;
conhecer o perfil e as atividades dos profissionais da computação;
compreender como as habilidades que refletem diretamente no aprendizado do
indivíduo estão relacionadas com o perfil do profissional do futuro.
Avaliação Conclusiva
Conclusão
Na análise indutiva, as premissas ou, ainda, os fatos conduzem a uma “lei de formação”, pela repetição de
algum padrão de comportamento.
No método dedutivo, as premissas são avaliadas e ordenadas em uma sequência de causa e efeito, de
modo que a conclusão obtida seja resultante da sequência completa, emergindo como fato novo extraído
ou, ainda, deduzido a partir das premissas constituintes.
Linguagens de Programação
São constituídas de comandos, que quando usados corretamente, executam uma ação
visando a comunicação com o computador.
Critérios de Avaliação Legibilidade, Facilidade de Escrita, Confiabilidade, Custo e Arquitetura
dos Computadores
Categorias(Paradigmas) Imperativas, funcionais, lógicas e orientadas a objetos.
Trade-off
Projeto:
"Um projeto é um esforço temporário que tem como finalidade um resultado único e possui
recursos delimitados”
É temporário Criar novo produto ou serviço ou aprimorar um existente Deve ter escopo e estimar custos no início
Tempo indeterminado
Trabalho Repetitivo
PR CESSO DE SOFTWARE
É um conjunto de atividades para especificação, projeto, implementação e teste de software.
Uma metodologia de processo genérica para engenharia de software estabelece cinco atividades
metodológicas: comunicação, planejamento, modelagem, construção e entrega.
Comunicação: Compreende os objetivos dos envolvidos e define o escopo e os recursos do projeto.
Planejamento: Define um mapa que guia a equipe do projeto, descrevendo tarefas, riscos e recursos.
Modelagem: Esboça e prototipa, para que todos os envolvidos no projeto entendam melhor as necessidades do software a
ser desenvolvido.
Construção: Engloba os testes que são realizados pela equipe do projeto antes de apresentar para o cliente.
Entrega: É avaliada pelo cliente que analisa o que foi apresentado em relação ao escopo definido e acertado entre os
envolvidos, sendo que após essa análise, o cliente deve retornar o aceite ou não.
MODELO DE PROCESSOS
Cascata: atividades na forma de processos em fases distintas.
Desenvolvimento Incremental: atividades intercaladas apresentando uma série de versões. O mais aplicado
Integração e configuração: baseado na disponibilidade de componentes ou sistemas reusáveis.
Conhecer detalhes históricos sobre a criação de importantes padrões da internet;
Compreender o conceito de bibliotecas e frameworks;
SEMANA 4
Identificar vantagens e desvantagens no uso destas bibliotecas e frameworks;
Conhecer algumas áreas de atuação do profissional de Computação;
Identificar frameworks de desenvolvimento para facilitar a implementação de
aplicativos e sistemas Web.
HISTÓRICO DA INTERNET
2002
Rich Internet Application (RIA): Denomina aplicações web com características e funcionalidades de
softwares para desktop. Transfere o processamento das interfaces para os navegadores no lado do cliente
e mantém o conteúdo no servidor.
Protocolo: surgem para informar aos desenvolvedores as melhores práticas na criação de sites e sistemas,
garantindo aos usuários acessibilidade e compatibilidade.
LINGUAGENS E BIBLIOTECAS
Uma linguagem é um método padronizado para se comunicar com o com-putador. É importante distinguir entre
linguagem de marcação (tipo HTML), na qual definimos (marcamos) elementos, e linguagem de programação
(tipo JavaScript), utilizada para definir programas. Uma biblioteca é uma coleção de códigos já implementados,
empregada para simplificar a escrita do código
SEGURANÇA WEB
Quase todos os ataques são bem sucedidos quando a aplicação web confia nos dados do navegador.
Sempre verifique e "desinfete" todos os dados recebidos. Sempre assuma o pior.
CSRF - Cross site request forgery: permitem que um usuário malicioso execute ações usando as
credenciais de outro usuário sem o conhecimento ou consentimento desse usuário.
A forma como a proteção é habilitada é incluindo a tag de template {% csrf_token %} em sua
definição de formulário.
SQL: As vulnerabilidades de injeção de SQL (SQL injection) permitem usuários mal-intencionados
executarem código SQL arbitrário em um banco de dados, permitindo que dados sejam acessados,
modificados ou apagados independentemente das permissões do usuário.
Em quase todos os casos você acessará o banco de dados usando querysets/models do Django,
de mdo que o SQL resultante será devidamente escapado pelo driver de banco de dados
subjacente.
CLICKJACKING: m usuário malicioso sequestra clicks destinados a um site de visível no nível superior e
os encaminha para uma página oculta abaixo. Essa técnica pode ser usada, por exemplo, para exibir um
site de banco legítimo, mas capturar as credenciais de login em um <iframe> invisível, controlado pelo
atacante.
Na forma do X-Frame-Options middleware que, em um navegador de suporte, pode impedir que
um site seja renderizado dentro de um frame.
XSS - Cross site scripting: é um termo utilizado para descrever uma classe de ataques que permitem um
invasor injetar scripts no lado cliente, através do website, no navegador de outros usuários. Issi
geralmente é conseguido armazenando scripts maliciosos no banco de dados onde eles podem ser
recuperado e exibidos para outros usuários, ou fazendo com que usuários cliquem em um link que fará
com que o JavaScript do invasor seja executado pelo navegador do usuário.
O sistema de templates do Django protege você da maioria dos ataques XSS escapando de
caracteres específicos que são "perigosos" em HTML.
Aplicação de SSL/HTTPS: pode ser habilitado no servidor web para criptografar todo o tráfego entre o
site e o navegador, incluindo credenciais de autenticação que seriam enviadas em texto simples (habilitar
HTTPS é altamente recomendado). Se HTTPS estiver habilitado o Django fornece uma série de outras
proteções que você pode utilizar:
SECURE_PROXY_SSL_HEADER pode ser utilizado para verificar se o conteúdo é seguro, mesmo se
for recebido de um proxy não HTTP.
SECURE_SSL_REDIRECT é usado para redirecionar todas as requisições HTTP para HTTPS.
HTTP Strict Transport Security (HSTS). Este é um cabeçalho HTTP que informa ao navegador que
todas as conexões futuras com um determinado site devem sempre utilizar HTTP
SESSION_COOKIE_SECURE e CSRF_COOKIE_SECURE como True. Isso garantirá que os cookies
sejam enviados apenas por HTTPS.
Solução para a integração entre sistemas e aplicações. tendo como base o fornecimento de um
ponto de acesso entre a aplicação e o cliente, seja um usuário ou outra aplicação.
As APIs dizem respeito a um conjunto de rotinas e padrões estabelecidos e documentados por
um sistema, para que outras aplicações consigam utilizar funcionalidades desse sistema sem
que haja a necessidade de conhecimento em detalhes da implementação dos serviços
utilizados. Dessa forma, as APIs permitem a interoperabilidade entre aplicações diferentes e,
com isso, a comunicação entre as aplicações e os usuários.
PROTOCOLO JSON
Considerado um padrão internacional formal de processamento de dados. Diferença com o
JSON não ser uma linguagem de marcação e não possuir tags de abertura e fechamento. Com o
JSON, a informação é representada de forma mais compacta do que no XML. Outra diferença é
que, com o JSON, não é possível executar instruções. O JSON costuma ser utilizado para a troca de
informações, ao passo que o XML possui outras aplicações. Por ser mais enxuto e leve, o JSON tem
sido mais utilizado pelas grandes empresas nas APIs REST do que o XML.
Arquitetura do DJANGO: MTV - O usuário faz uma requisição pelo browser, utilizando uma rota, e é
executado um método das Views, que utiliza os Models para acessar o banco de dados e retornar as
informações. Essas informações são renderizadas pela camada de Template e, finalmente, são
renderizadas para o usuário pelo navegador.
Django suporta (principalmente) quatro bancos de dados (PostgreSQL, MySQL, Oracle, e SQLite
), contudo, existem bibliotecas community que fornecem níveis variados de suporte para outros
populares bancos de dados SQL e NoSQL.
Entender os conceitos de IoT;
Conhecer a arquitetura, o funcionamento e tecnologias envolvidas em
aplicações de IoT; SEMANA 6
Conhecer algumas aplicações de IoT;
Conhecer os conceitos básicos das tecnologias MQTT e REST para
desenvolver soluções IoT por meio de mensagens e WebServices.
A ênfase está mudando de forma e passou a conectar tudo (todas as coisas) à Internet.
Definições:
Coisa: é um objeto comum colocado em nosso ambiente diário
Dispositivo: um sensor, atuador ou tag
Geralmente, o dispositivo é parte de uma coisa
Arquitetura: Sensores captam dados, a fim de que os gateways concentrem e agreguem dados de
diversos dispositivos. Isso acontece para que os dados sejam armazenados e analisados por um servidor
em nuvem, que entrega os dados já convertidos em informações amigáveis. Assim, o usuário poderá
visualizar o arquivo de qualquer lugar com seu smartphone conectado à Internet.
Message Queuing Telemetry Transport é um protocolo de mensagens leve para sensores e pequenos
dispositivos móveis otimizado para redes TCP/IP.O esquema de troca de mensagens é fundamentado no
modelo Publicador-Subscritor, extremamente simples e leve. s princípios arquitetônicos são minimizar o
uso de banda de rede e uso de recursos dos equipamentos enquanto garantindo confiabilidade e algum
nível de garantia de entrega. Estes princípios tornam esse protocolo ideal para as comunicações
emergentes (M2M) “machine-to-machine” e para as aplicações “Internet of Things” (Internet das coisas)
um mundo de equipamentos conectados, além das aplicações mobile onde banda e potência da bateria
são relevantes.
O MQTT possui uma estrutura de pacotes
de controle própria, que basicamente é
constituída de três partes:
QoS Quality of Service: 0 não tem a confirmação de entrega da mensagem e quem envia não a
armazena para retransmissões
Outros protocolos:
1 que tem a confirmação de entrega com reconhecimento realizado
6LoWPAN
ZigBee que garante a entrega da mensagem exatamente uma vez, com envio
•Advanced Message Queuing 2 de confirmação de recebimento
Protocol (AMQP)
Constrained Application Protocol
(CoAP)
Emuladores:
APLICAÇÕES
Uma empresa investe no
gerenciamento e na análise de
dados com o intuito de obter
oportunidades para geração
de receitar e para redução de
cusotos em seus processos
visando o lucro finaceiro.
ATIVIDADES AVALIATIVAS
A sequência geral de análise descritiva do problema, que é contemplada por cinco etapas:
1. Enunciar o problema. 2 Descrever as partes do problema. 3. Ordenar logicamente as premissas.
4. Avaliar as premissas, aplicando o método dedutivo ou indutivo. 5. Concluir formalmente a resolução.
Pensamento computacional é a capacidade de sistematizar, desenhar processos complexos, analisar
e resolver problemas. Os quatro pilares do pensamento computacional são:
Decomposição: identificação dos elementos existentes em um problema, decompondo-se em variáveis
e elementos.
Identificação de padrões: classificação de elementos dentro de categorias ou classes.
Abstração: foco naquilo que realmente importa, no que é primordial, desconsiderando características
menos relevantes.
Algoritmo: conjunto finito de instruções precisas para executar uma ação ou tarefa, comumente
utilizado para a resolução de problemas.
Segundo Booch (1987), a partir da década de 1970, foi desenvolvido o conceito denominado “ciclo de
vida de software”, em que a codificação foi destinada a um papel menor e a manutenção foi
reconhecida como parte importante do ciclo de desenvolvimento. Anteriormente a 1970, as
linguagens de programação e os programadores eram orientados às máquinas. A partir da relevância
dada ao ciclo de vida do software e sua manutenção, tanto programadores quanto linguagens
começaram a ser orientados às pessoas.
Linguagens de programação que utilizam a implementação baseada em compilação traduzem suas
instruções para a linguagem de máquina, e, por isso, tem como principal vantagem a velocidade de
execução dos programas para os usuários.
Já na interpretação pura, os programas são interpretados por um programa “interpretador” que trata
as sentenças de programa em alto nível, em vez de instruções de máquina. Por consequência, o
principal benefício é permitir uma fácil implementação de muitas operações de depuração em
código-fonte, pois todas as mensagens de erro em tempo de execução podem referenciar unidades
de código-fonte.
Por meio da implementação híbrida, é possível obter de forma mais clara uma linguagem mais
próxima da coloquial do ser humano, visto que esse processo compila a informação e traz de
maneira rápida a interpretação, tornando o processo menos complexo.
Python é uma linguagem de programação de alto nível e multiparadigma, criada por Guido van
Rossum em 1989, que permite o desenvolvimento de algoritmos para resolução de problemas por
meio de programas computacionais. É uma linguagem interpretada, imperativa, orientada a objetos,
funcional e de tipagem dinâmica e forte.
O Google Collaboratory corresponde a um serviço de armazenamento em nuvem, com o objetivo de
criar e executar códigos em Python diretamente em um navegador (browser) de Internet. Um dos
principais benefícios desse serviço é permitir o desenvolvimento de aplicações sem a necessidade da
instalação de softwares na máquina, bastando ter uma conta de usuário Google para acessar o
ambiente on-line. Além de não precisar de instalações e configurações, o Google Collaboratory
apresenta interface amigável, facilita o compartilhamento de recursos e o trabalho cooperativo, bem
como fornece acesso gratuito a GPUs e tem bibliotecas pré-instaladas. Esses benefícios são
responsáveis por tornar o Colab um ambiente extremamente amigável de desenvolvimento.
Projetos de desenvolvimento de software têm especificidades inerentes à área da programação e
outras tecnologias envolvidas, assim como projetos de engenharia para a construção de prédios ou
projetos para a criação de um novo produto cosmético também apresentam suas características
particulares inerentes ao produto ou serviço a ser desenvolvido.Normalmente, um gerente de projetos
tem formação acadêmica nas áreas da computação, embora existam diversos profissionais bem
capacitados com formação em outras áreas. Portanto, para esse contexto, ser graduado tanto em
análise e desenvolvimento de sistema quanto em engenharia agronômica são requisitos igualmente
válidos. Já as soft skills desejadas para um gerente de projeto de software são: capacidade de liderança
e de desenvolver equipes, eficiência na comunicação, visão de longo prazo, persistência.
O processo de engenharia de software é a liga que mantém as camadas de ferramentas e métodos
coesas e possibilita o desenvolvimento de software de forma racional e dentro do prazo. Por isso, a
primeira asserção é verdadeira. Todas as abordagens de engenharia devem fundamentar-se em um
comprometimento organizacional com a qualidade, não sendo diferente para a engenharia de software.
Portanto, a segunda asserção é verdadeira, uma vez que a pedra fundamental que sustenta as outras
três camadas é o foco na qualidade de software. Entretanto, o foco em qualidade não é explicação ou
justificativa para os processos serem a base de execução, pois tal justificativa significa conectar as
camadas de métodos e ferramentas.
As cinco atividades sequenciadas que uma metodologia do processo de engenharia de software precisa
ter são:
A comunicação entende os objetivos dos envolvidos para o projeto e alinha entre as partes os
requisitos para a definição dos recursos e das funções do software a ser desenvolvido.
O planejamento cria um “mapa” que ajuda a guiar a equipe na complicada jornada do projeto de
desenvolvimento de um software, definindo cronograma de tarefas, riscos, recursos e produtos
resultantes.
A modelagem cria um “esboço” para que se possa ter uma ideia do todo, criando modelos para
entender melhor as necessidades do software.
A construção combina programação e testes necessários para revelar erros na codificação.
A entrega do software, como uma entidade completa ou como um incremento parcialmente concluído,
é feita ao cliente, que avalia o produto entregue e fornece feedback baseado na avaliação.
Para o desenvolvimento de software, é aconselhável tratá-lo como projeto, no qual, comumente, as
etapas são divididas em: início, organização, execução e fim. Ciclos de vida preditivos têm escopo, prazo
e custo definidos de forma rígida, por isso, são recomendados para projetos em que o escopo do
produto ou serviço a ser entregue está bem definido. Já os ciclos iterativos são recomendados para
projetos com objetivos pouco definidos, ou com alta complexibilidade e pouco conhecimento de como
construir a solução, pois sua natureza incremental permite à equipe se retroalimentar de
conhecimentos e incrementar a experiência durante a execução do projeto. Por fim, os ciclos de vida
adaptativos, também conhecidos como métodos ágeis, são indicados para a participação contínua e
ordenada dos interessados do projeto, com iterações bem estruturadas e que tem por objetivo, ao final
de cada iteração, garantir que o produto esteja pronto para a revisão do cliente.
Um projeto é, obrigatoriamente, temporário, pois deve ter datas de início e fim definidas, mas não
precisa ter datas de pausa estabelecidas. A intenção de um projeto pode ser criar algo novo, ou
aprimorar um produto ou serviço já existente. É imprescindível que exista ao menos um escopo mínimo
de projeto, porém as datas de início e fim podem sofrer alterações – e faz parte do gerenciamento de
projetos administrar tais mudanças. Por fim, é necessário estipular custos e recursos ao iniciar o
projeto e realizar seu acompanhamento durante a execução.
No livro clássico “How to solve it”, George Polya descreveu em linhas gerais a essência da solução de
problemas e, consequentemente, a essência da prática da engenharia de software:
De acordo com o segundo princípio KISS, um projeto de software deve ser simples e descomplicado, pois
isso contribui para um sistema mais fácil de compreender, de manter e menos propenso a erros.
Entretanto, simplificar não torna, necessariamente, um projeto mais ágil ou diminui as iterações, porque
muitas vezes são necessárias várias reflexões para simplificar. O quarto princípio determina que “o que
um produz outros consomem” e recomenda especificar, projetar e implementar estando ciente de que
mais alguém terá de entender o que você está fazendo. Portanto, especifique tendo como objetivo os
usuários, projete tendo em mente os implementadores e codifique se preocupando com aqueles que
deverão manter e ampliar o sistema. O sétimo princípio determina: “pense”. Pensar bem e de forma clara
antes de agir quase sempre produz melhores resultados. Quando se analisa alguma coisa,
provavelmente, ela sairá correta. Ganha-se também conhecimento de como fazer correto novamente. O
sexto princípio orienta: “planeje com antecedência, visando à reutilização”. A reutilização economiza
tempo e esforço, reduzindo custos de manutenção e aumentando valor tanto dos componentes
reutilizáveis quanto dos sistemas em que foram implementados.
Componentes podem ser utilizados por linguagens e frameworks de programação, mas não fazem parte,
obrigatoriamente, da composição de um software. Da mesma forma, bancos de dados podem ser
utilizados para armazenamento de acordo com a estrutura de dados definida, mas não são obrigatórios
para a construção de um software.
Linguagem é uma forma de se comunicar com o computador por meio de codificação estruturada,
podendo ser de alto nível (mais próximo da linguagem humana) ou de baixo nível (mais próximo da
linguagem de máquina). É importante distinguir entre linguagem de marcação (tipo HTML), na qual
definimos elementos, e linguagem de programação (tipo JavaScript), utilizada para definir programas.
Já biblioteca é uma coleção de códigos implementados, que é utilizada para facilitar e tornar mais
produtiva e padronizada a escrita do código. Por fim, framework é uma plataforma de
desenvolvimento que fornece modelos com diferentes funcionalidades já implementadas, que podem
ser utilizadas ou não pelo desenvolvedor, com o intuito de tornar a programação mais fácil e
padronizada.
React abrange apenas as camadas da interface do usuário e é um framework fácil para a criação de
aplicações web dinâmicas, além de apresentar componentes reutilizáveis e de ter boa performance.
jQuery apresenta pouca proteção ao código fonte, mas tem vasta quantidade de plugins disponíveis e
ocupa pouco espaço em disco.
A biblioteca jQuery tem sido amplamente utilizada por empresas de todos os portes, inclusive
gigantes como Google, Nokia, Microsoft e Netflix. Isso se deve ao fato de jQuery reduzir o código
JavaScript em poucas linhas para a maioria de tarefas comuns em uma página web, solucionar
problemas de incompatibilidade de navegadores, simplificar o uso de AJAX, dentre outras
funcionalidades. Por fim, as versões slim do jQuery não apresentam os recursos de AJAX nem efeitos
gráficos, com o intuito de poupar espaço de armazenamento.
CSS (Cascading Style Sheets ou Folhas de Estilo em Cascata) é uma linguagem usada para descrever a
apresentação tanto de documentos escritos em HTML quanto em XML, e não para descrever links,
como apresentado na segunda afirmativa. Todas as demais sentenças estão corretas quanto às
características dos padrões clássicos da web.
JSON (Notação de Objetos JavaScript) é um formato de dados permutável, e não concomitante, sendo
capaz de representar números, booleanos, textos, vazios, listas (sequência ordenada de valores) e
objetos (mapeamento de valores de texto), composto por esses valores (ou por outras listas e objetos)
de forma simples, sem necessidade de declarações, classes, bibliotecas ou outros objetos acessórios.
Tim Berners-Lee é considerado o pai da World Wide Web, pois foi o contribuinte mais notável para os
padrões desenvolvidos, especialmente, na década de 1990. A ordem cronológica dos eventos da
questão é:
1989: ele apresenta ao CERN a proposta de seu sistema MESH, com suporte a uma
arquitetura cliente-servidor que deveria prover uma interface (cliente) consistente, que
permitia o acesso à informação, independentemente do ambiente computacional
(servidor) no qual ela estivesse armazenada, além de suportar diversos tipos de
documentos por meio de diferentes tipos de protocolos, e também um sistema de
endereçamento universal que permitiria a qualquer usuário o acesso à informação.
1990: apresenta o protótipo de um servidor que implementou sua proposta, que passou a
ser denominada World Wide Web.
1994: fundou o W3C, formado por universidades, centros de pesquisa e indústrias, com o
objetivo de promover um direcionamento estável para a web.
Para poder capturar um evento, é preciso estabelecer um “observador”
(listener), que fica esperando o evento ocorrer, além de indicar o que fazer
$('#box87').on('click', fx) quando o evento ocorre. Para isso, utiliza-se o método “on”, que aponta o
function fx(event){ evento observado e a função para gerenciá-lo (linha 1). Dentro do código
$('#box87').css('width', 400) exemplificado, a função “fx” recebe automaticamente como parâmetro o
} evento que gerou a chamada (linha 2). Por fim, a função seleciona novamente
o elemento “box87” e modifica a largura para 400 com o método CSS (linha 3)
e encerra o código (linha 4).
Muitas das ameaças mais comuns da web são tratadas pelo framework Django. Sobre as sentenças,
apenas a primeira está incorreta, pois se o HTTPS (e não IPv6) estiver habilitado, o Django fornece
várias proteções, como SECURE_PROXY_SSL_HEADER (verifica se o conteúdo é seguro) e
SECURE_SSL_REDIRECT (redireciona todas as requisições HTTP para HTTPS). As demais afirmativas
estão corretas quanto aos mecanismos de segurança disponibilizados pela plataforma de
desenvolvimento.
O framework Django cuida de grande parte do trabalho do desenvolvimento web, para que o
desenvolvedor possa se concentrar em escrever sua aplicação sem precisar reinventar a roda. Além
disso, é gratuito e de código aberto, o que garante constante evolução. É muito fácil de começar a
desenvolver, permitindo levar os aplicativos do conceito à conclusão o mais rápido possível. É
extremamente escalável, podendo ser utilizado para projetos de médio e grande portes, ou seja, pode
ser utilizado para sites de grande movimentação. Apresenta uma variedade de bibliotecas,
mecanismos de autenticação, administração de conteúdo, mapas do site e vários recursos nativos.
Quanto à segurança, a plataforma de desenvolvimento auxilia os desenvolvedores a prevenir muitos
equívocos recorrentes de segurança, como injeção de SQL, script entre sites, falsificação de
solicitações entre sites e clickjacking. Portanto, apenas a sentença “II” está incorreta.
Para buscar especificamente um recurso (tarefa), deve-se indicar o {id} junto a URL sentenciada pelo
método utilizado. Além disso, não existem os métodos REMOVE, INPUT ou CREATE na arquitetura
REST.
Toda a infraestrutura de IoT pode ser virtualizada, criando acesso onipresente a todos os dispositivos
por meio de uma única interface.
No contexto de IoT, interoperalidade é a chave do sucesso para a PaaS (Platform as a Service), pois
essas reformas precisam estar aptas a ambientes heterogêneos.
A análise de dados como serviço (AaaS) é fundamental para a evolução da IoT, pois com a enorme
quantidade de dados armazenados, analisa-los é uma atividade que demanda muitos recursos de
processamento e disponibilidade 24/7, e a melhor forma de garantir esses requisitos é por
intermédio da computação em nuvem.
No contexto do IoT, qualquer objeto comum pode ser considerado uma coisa.
Na arquitetura de IoT, sensores captam dados, a fim de que os gateways concentrem e agreguem
dados de diversos dispositivos. Isso acontece para que os dados sejam armazenados e analisados por
um servidor em nuvem, que entrega os dados já convertidos em informações amigáveis. Assim, o
usuário poderá visualizar o arquivo de qualquer lugar com seu celular conectado à internet.
Broker é um servidor que atua como um intermediário entre subscribers e publishers.
Quando um dispositivo é um publish, ele publica informações pré-estabelecidas, para que dispositivos
subscribed recebam esses dados que estão sendo publicados.
RFID é uma forma barata e escalável de aplicar sensores inteligentes aos objetos de trânsito.