Você está na página 1de 27

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/301298394

Internnet das Coisas: Middlewares e outras coisas

Chapter · April 2016

CITATIONS READS

0 3,343

1 author:

Alexandre Carissimi
Universidade Federal do Rio Grande do Sul
45 PUBLICATIONS 380 CITATIONS

SEE PROFILE

All content following this page was uploaded by Alexandre Carissimi on 15 April 2016.

The user has requested enhancement of the downloaded file.


2
Internet das Coisas, middlewares e outras coisas
Alexandre Carissimi - asc@inf.ufrgs.br1

Resumo:

A Internet das Coisas, ou IoT, acrônimo do inglês Internet of Things, é o ambi-


ente no qual objetos, e mesmo os seres vivos, tem a habilidade de interagir e colaborar
entre si, usando conectividade em rede, para agregar valor às informações que possuem.
As soluções IoT são caracterizadas por uma variedade de dispositivos com diferentes ca-
pacidades computacionais e de comunicação, ou seja, são heterogêneos. Além disso, a
necessidade de interação leva a outra questão: a interoperabilidade. A maneira tradicional
de tratar a heterogeneidade e a interoperabilidade é o emprego de padrões, protocolos e
middlewares. Com base nisso, uma série de protocolos foram criados, ou tem sido adap-
tados, para prover a interoperabilidade de objetos na IoT. Da mesma forma, plataformas
de middleware também têm sido propostas. Porém, ainda há uma falta de padronização,
o que faz com que essas soluções não tratem de forma adequada uma série de funcionali-
dades importantes no contexto da IoT, como nomeação, gerenciamento dos dispositivos,
segurança, modelos de programação, etc. Considerando a relevância atual da IoT, a im-
portância de, nesse contexto, ter middlewares e um modelo arquitetural de referência, o
objetivo deste capítulo é, inicialmente, esclarecer o que é a Internet das Coisas, apresen-
tar as áreas de aplicação, para, posteriormente, discutir os requisitos e as funcionalidades
necessárias aos middlewares para IoT. Conclui-se o capítulo discutindo alguns desafios
como segurança e privacidade e atividades de pesquisa relacionadas a essa área.

1
Alexandre da Silva Carissimi é Doutor em Informática pelo Institut National Polytechnique de Gre-
noble (INPG), França (1999), Mestre em Ciência da Computação pelo Programa de Pós-Graduação em
Computação da UFRGS (1989) e formado em Engenheira Elétrica pela UFRGS (1985). Atua como Pro-
fessor no Departamento de Informática Aplicada da UFRGS desde 1989, tendo sido, no decorrer desse
período, responsável por ministrar diversas disciplinas nas áreas de introdução à informática, arquitetura de
computadores, sistemas operacionais, sistemas distribuídos e redes de computadores. É instrutor da Escola
Superior de Redes (ESR), iniciativa da Rede Nacional de Pesquisa (RNP). É coautor de três livros publica-
dos pela Editora Bookman, dentro da Série Didática da UFRGS: Sistemas Operacionais (vol. 11), Sistemas
operacionais e Programação Concorrente (vol. 14) e Redes de computadores (vol. 20). Já apresentou di-
versos minicursos e palestras em congressos e escolas (ERAD, ERRC, SBRC, WSCAD, CLEI,...), além de
participações em semanas acadêmicas de várias universidades do Rio Grande do Sul. Com relação às áreas
de pesquisa, atua na área de processamento paralelo e distribuído, em especial, no estudo e desenvolvimento
de suportes de execução (runtimes), virtualização, computação em nuvem e middlewares.
2.1. Introdução

Ao longo dos anos, a rede mundial de computadores, a Internet, acabou sendo con-
fundida e virando sinônimo de uma de suas mais importantes aplicações: a World Wide
Web, ou simplesmente, a Web. Enquanto a Internet em si é uma infraestrutura que permite
a interconexão de centenas de milhares de computadores, a Web é um repositório fantás-
tico de informações e do conhecimento humano, que foi evoluindo com o passar dos anos.
Inicialmente, no que alguns autores denominam Web 1.0, o foco era a busca e entrega de
informações às pessoas, ou seja, informações eram disponibilizadas por poucas pessoas
e acessadas por um número significativamente maior de pessoas. Na Web 2.0, as pessoas
passam de consumidoras de informações para serem também fornecedoras de informa-
ções. O foco passou a ser a colaboração e o compartilhamento das informações, onde o
principal fenômeno é a criação e a dissiminação das mais diferentes redes sociais. Nessa
linha evolutiva, o passo seguinte é a Web 3.0, também denominada de Web semântica
[BER 2001], caracterizada, de forma simplificada, pela obtenção e pelo processamento
automático de informações.
Uma forma diferente de analisar essa evolução é através da própria Internet, que
passou de uma rede que interligava computadores, para ser vista como um repositório de
documentos e, na sequência, uma rede de interconexão de pessoas e, agora, mais recen-
temente de objetos (ou coisas). Assim, uma forma de compreender o que é a Internet
das Coisas é imaginar que agora são os mais diversos objetos da vida quotidiana que ge-
ram e consomem informações na Web e, através disso, interagem e oferecem serviços às
pessoas. No entanto, essa visão não é uma novidade. Já em 1991, Mark Weiser, pai da
computação ubíqua, preconizava a existência de objetos inteligentes. Da mesma forma,
o termo Internet of Things foi criado em 1999, por Kevin Ashton, como uma forma de
monitorar a existência de recursos físicos, minimizar desperdícios e, com isso, reduzir
perdas e custos, principalmente, no setor de logística.
A Internet das Coisas, ou IoT, acrônimo do inglês Internet of Things, não possui
uma definição única. A ITU Internet Reports, define a Internet das Coisas como “a capa-
cidade de conectividade a qualquer momento, de qualquer lugar, por qualquer um e por
qualquer coisa”. A Comissão Europeia, por sua vez, define como sendo “objetos de iden-
tidade única operando em espaços inteligentes para conectar e comunicar em contextos
sociais, ambientais e de usuários”. Por fim, a definição da Wikipedia diz “rede de objetos
fisicos com eletrônica, software e sensores embarcados, com capacidade de comunica-
ção que permite a esses objetos coletar e trocar dados... cada objeto é identificado de
forma única... e tem capacidade de operar com a infraestrutura da Internet existente”.
A origem dessas diferentes definições é a forma com se enxerga a Internet das Coisas e a
abstração utilizada: orientada as coisas, orientada a Internet e orientada a conhecimento
[ATZ 2010]. Na visão orientada a coisas, a abordagem é relacionada aos sensores usa-
dos para monitorar e rastrear condições através de objetos ditos de inteligentes. Na visão
orientada a Internet, o foco é a interconexão desses objetos inteligentes, sua integração
e gerenciamento através de middlewares. Por fim, a visão orientada a semântica, onde o
ponto principal é o conhecimento obtido através representação, armazenamento, busca,
organização e uso das informações. Neste capítulo, adota-se a seguinte definição para
Internet das Coisas: “ambiente no qual objetos, e mesmo os seres vivos, tem a habilidade
de interagir e colaborar entre si, usando conectividade em rede, para agregar valor às
informações que possuem”.
O atual crescimento da Internet das Coisas foi impulsionado por uma série de
inovações tecnológicas, do seu barateamento e facilidade de acesso. Por exemplo, os
atuais smartphones possuem vários sensores, onde se destaca o GPS (Global Positioning
System) que permite o desenvolvimento de uma série de aplicativos baseados em geolo-
calização. Apesar da popularização dos objetos inteligentes, ainda há muitos desafios a
serem superados para que a Internet das Coisas seja empregada de forma mais consis-
tente. Um dos mais importantes desafios diz respeito a heterogeneidade dos dispositivos
e dos ambientes IoT, que gera a demanda de que objetos com diferentes capacidades de
processamento, de hardware, de formas de comunicação e de sistemas operacionais (ou
runtimes) se integrem e interoperem nesses ambientes. A maneira tradicional de tratar
a heterogeneidade e a interoperabilidade é o emprego de padrões e protocolos abertos
e middlewares. Com base nisso, uma série de protocolos foram criados, ou adaptados,
para prover a interoperabilidade de objetos da IoT. Da mesma forma, plataformas de mid-
dleware também têm sido propostas. Porém, ainda há uma falta de padronização, o que
faz com que essas soluções não tratem de forma adequada várias funcionalidades impor-
tantes no contexto da IoT, como nomeação, gerenciamento dos dispositivos, segurança,
modelos de programação, etc. Assim, faz-se necessário a definição e adoção de arquitetu-
ras de referência que forneçam uma estrutura de blocos básicos e de suas funcionalidades
para serem empregadas na construção de middlewares IoT. Justamente em função dessa
necessidade, surgiu o projeto europeu IoT-A (Internet of Things Architecture), que ba-
sicamente, foi formado como um consórcio entre vários representantes da academia e
indústria, com o objetivo de definir uma arquitetura de referência para a IoT.
Um outro desafio importante na IoT é a escalabilidade. A consultoria Gartner es-
tima a existência de cerca de 26 bilhões de dispositivos IoT até 2020 [GAR 2013]. Assim,
as plataformas de middleware devem considerar a possibilidade de suportar uma quanti-
dade massiva de dispositivos e de dados. Como essa necessidade de processamento e
armazenamento é, ainda hoje, desconhecida, a computação em nuvem surge como uma
opção, já que os recursos computacionais podem ser alocados e liberados por demanda.
Surge, então, o conceito de Nuvem de Coisas (Cloud of Things) [SOL 2014]. Ainda, com
o aumento do volume de dados decorrente da quantidade potencial de dispositivos conec-
tados, alguns ambientes IoT, principalmente aqueles destinados a sistemas de logística e
marketing, já se preocupam com aspectos típicos de Big Data onde são necessários prover
mecanismos que facilitem a consulta, indexação e a análise desses dados.
Uma área de aplicação da IoT, que remonta aos seus primórdios, é a da com-
putação ubíqua. Aqui, a necessidade é que os dispositivos possam ser integrados a um
ambiente já existente e usufruir dos serviços que esse ambiente disponibiliza. Questões
como descoberta de recursos e de contexto, muito comuns em trabalhos sobre computa-
ção ubíqua nos anos 90 e 2000, ressurgem. Ainda, muitos dos dispositivos IoT coletam
dados privados de usuários como, por exemplo, sua localização, ou últimos locais visi-
tados, e armazenam, ou os transmitem, em meios não confiáveis. Assim, chega-se a um
outro grande desafio, que é a questão da privacidade e da segurança em dispositivos IoT.
Considerando esses aspectos iniciais, este capítulo tem por objetivo introduzir no-
ções básicas sobre a Internet das Coisas, apresentar os principais protocolos e middlewa-
res existentes, assim como introduzir uma discussão sobre os desafios atuais da IoT e
possíveis linhas de pesquisa. Para atingir esses objetivos, este capítulo está organizado
em 9 seções, com esta introdução. Inicialmente, na seção 2.2. são apresentadas algumas
áreas de aplicação da Internet das Coisas com o objetivo de mostrar o potencial dessa
tecnologia. A seção 2.3. descreve o que é um objeto inteligente, sob o ponto de vista da
Internet das Coisas, e quais são os seus principais componentes. A seção 2.4. discute ques-
tões de terminologia, onde aparecem conceitos como telemetria, M2M, Web das Coisas,
além, é claro, de Internet das Coisas. As soluções IoT possuem uma estrutura genérica
similar, a qual é apresentada na seção 2.5. Como dito anteriormente, o uso de protocolos
e de middlewares é a forma clássica de endereçar o problema da heterogeneidade e da in-
teroperabilidade em sistemas distribuídos em geral. Assim, as seções 2.6. e 2.7. abordam,
respectivamente, os principais protocolos e as arquiteturas de referência existentes para
IoT. Na seção 2.8. são discutidos os desafios e as oportunidades de pesquisa na área de
IoT, para, posteriormente, concluir este capítulo na seção 2.9.

2.2. Aplicações da Internet das Coisas

A Internet da Coisas pode ser vista como a integração de três grandes camadas:
tecnologia, software e aplicações [GUB 2013]. A camada da tecnologia fornece todos os
mecanismos básicos de hardware para executar sensoriamento, processamento e comuni-
cação com o meio exterior. A camada de software é toda a inteligência necessária para
receber as informações dos dispositivos IoT; completar o tratamento da informação, pois
os dispositivos IoT costumam ser limitados em capacidade de processamento; gerenciar
esses dispositivos e integrá-los em uma infraestrutura de rede - a Internet - e a serviços, ou
aplicações, de mais alto nível. Por fim, a camada de aplicação, que fornece, justamente,
um serviço de valor agregado aos usuários finais. Há uma infinidade de aplicações IoT
e, cada dia, surgem mais. Dessa forma, nesta seção, serão apresentadas algumas pos-
sibilidades de aplicações com a finalidade de ilustrar o potencial de utilização da IoT.
Essas aplicações estão divididas em grandes áreas como logística, transporte, ambiental,
residencial, saúde e cidades inteligentes (smart cities).
Uma das áreas em que a Internet das Coisas vem sendo aplicada, e trazendo mui-
tos benefícios, é a de Transporte e Logística. A tendência atual da indústria automotiva é
incluir em carros, ônibus e caminhões uma variedade de sensores e atuadores, assim como
usar processadores cada vez mais potentes. Mesmo motocicletas e bicicletas seguem essa
tendência. Um sensor particularmente interessante, nesse contexto, é o GPS (Global Po-
sitioning System). Também, em decorrência do uso de transportes rodoviários em geral,
as estradas e ruas, vem sendo equipadas com câmeras e sensores que auxiliam no con-
trole de tráfego com a temporização de semáforos em função do fluxo de carros e com a
determinação de rotas alternativas com menos engarrafamento. Uma outra realidade é o
uso de etiquetas RFID (Radio Frequency IDentification) e de tecnologia NFC (Near Field
Communication) para identificar e monitorar o transporte de bens de consumo em geral.
Tudo isso contribui para uma melhoria dos serviços de transporte e logística.
Na logística, com o uso de etiquetas RFID, é possível acompanhar em tempo real o
deslocamento de bens de consumo durante toda a cadeia produtiva até o destinatário final.
A identificação desses bens dos consumos, e dos insumos necessários para sua produção,
possibilita que os mesmos sejam estocados, encomendados e entregues de acordo com a
demanda. Essas informações são facilmente integradas em soluções ERP (Enterprise Re-
source Planning) para reduzir custos e desperdícios. Associando essas informações com
aquelas fornecidas por GPS , é possível acompanhar em tempo real onde uma mercadoria
se encontra e, em caso de problemas rodoviários, fazer rotas alternativas para garantir pra-
zos de entrega, ou mesmo, em caso de produtos perecíveis, garantir que os mesmos não
sejam prejudicados pelas condições de tráfego. Entre as várias possibilidades, há o que se
chama “cadeia do frio”, onde um produto deve ser transportando respeitando condições
de refrigeração. Nesse caso, sensores de temperatura vão registrando, durante o percurso,
a temperatura interna da embalagem de acondicionamento. No destino final é possível ver
se houve variações sensíveis, o tempo de transporte, e, com isso, determinar se o produto
se deteriorou. Isso é comum em transporte de vacinas e de hemoderivados.
Ainda, na parte de transporte em geral, há o que se chama de “direção assistida”.
Nesse caso, os sensores nos veículos trazem uma série de possibilidades como evitar co-
lisões, mantendo distâncias seguras de veículos próximos; fornecer condições de tráfego
de estradas e ruas; pilotos automáticos; etc. No transporte público, o monitoramento em
tempo real trás uma série de vantagens como, por exemplo, determinação de tempo médio
de espera em pontos de ônibus, indicação da próxima parada, manutenção preventiva, en-
tre outros. Todas essas ações ajudam a reduzir o consumo de combustível, reduzir emissão
de CO2 e prover melhoria na qualidade de vida em geral. Um exemplo bastante comum,
empregado, sem dúvida, por vários entre nós, é o Waze. Ainda na área de transporte, o
uso de passagens eletrônicas na tela do próprio celular, na forma de QR-Codes, é uma
realidade em passagens áreas, o que evita filas de enregistramento e a emissão de papel.
O mesmo já acontece, em algumas cidades do mundo, com passagens de ônibus urbanos.
Uma outra área que é um nicho de mercado importante, e que já encontra várias
soluções, é a telessaúde (healthcare). Novamente, há uma vasta gama de aplicações e um
potencial enorme para inovações. Inicialmente, nos hospitais, é possível com auxílio de
sensores e de mecanismos de identificação, acompanhar um paciente durante todo o seu
período de internação. Esse rastreamento pode, entre outras, auxiliar na preparação de
salas cirúrgicas em função do procedimento a ser feito, no encaminhamento para exames
reduzindo tempo em salas de espera, no controle de administração dos medicamentos
(corretos e horários), etc. A substituição de prontuários em papel, em pranchetas, por ver-
sões eletrônicas permite um melhor acompanhamento pelas equipes médicas, inclusive
com o encaminhamento desse para análise por especialistas em outros locais. O armaze-
namento desse prontuário possibilita, ainda, um acompanhamento da saúde de uma pes-
soa desde o seu nascimento. Dentro da área da saúde, uma outra inovação, e importante
mercado, é o de homecare. Aqui, dado o envelhecimento da população, é cada vez mais
comum o uso de sensores de movimento, de localização e de posição para verificar se pes-
soas idosas não estão passando por algum tipo de mal súbito ou queda em sua residência.
Some-se a isso todo o conjunto de pulseiras que monitoram qualidade do sono, fornecem
batimentos cardíacos, temperatura corporal, etc, e que podem enviar essas informações a
centrais de monitoramento de serviços de saúde.
Os chamados espaços inteligentes (smart spaces) também se tornam uma reali-
dade com o auxílio da IoT. Através de sensores e atuadores,distribuídos em residências e
escritórios, é possível tornar esses ambientes mais confortáveis e melhorar a qualidade de
vida em vários aspectos: controle de climatização em função de preferências pessoais e da
temperatura exterior; controle de intensidade de luz; prevenção de acidentes domésticos
como desligamento de tomadas e equipamentos elétricos deixados ligados por esqueci-
mento; alarmes contra instrusos; etc. Todas essas facilidades são disponibilizadas através
de aplicativos em smartphones ou em páginas Web. Além da automação residencial e
de escritórios, há outras aplicações nessa linha, em ambientes públicos, como museus e
academias de ginástica. No primeiro, é comum com o auxílio de QR-Codes, lidos direta-
mente por aplicativos de celulares, ou usando algum tipo de tecnologia RFID, ou NFC, se
obter descrições e informações sobre obras de artes e peças em exposição. Em academias
de ginástica, os esforços físicos feitos pelas pessoas podem ser monitorados e registrados
com a finalidade de acompanhar evolução física, aprimorar programas de treinamento e,
mesmo, verificar as condições físicas e de saúde durante um exercício. Ainda, a inte-
gração de automação de edifícios, com aplicações de transporte e logística e de outros
sistemas, contribuem para o desenvolvimento das cidades inteligentes (smart cities).
A indústria, já acostumada com um grau de automação através de controladores
lógico programáveis (CLPs) e de mecanismos como SCADA (Supervisory Control And
Data Acquisition) e DCS (Distributed Control management Systems) podem aumentar, e
melhorar seu grau de controle, através de novos sensores e integração dos dados obtidos
por eles em seus sistemas de prevenção de acidentes, manutenção, engenharia e outros
setores da sua linha de produção ou atuação. Um exemplo disso, são os sistemas de
distribuição de energia elétrica inteligentes (smart grids), onde linhas de transmissão são
monitoradas e caminhos alternativos podem ser feitos em decorrência do aumento de
consumo, rompimento de linha ou desligamentos programados para manutenção.
Além de todos esses domínios de aplicações, há ainda muitos outros relacionados
com atividades de lazer (brinquedos, programação de cinemas, jogos eletrônicos com
realidade virtual, etc) e redes sociais. Soma-se a isso, um sem número de aplicações
baseadas em drônes e VANTs (Veículos Aéreos Não Tripulados). Não é por nada que
organismos como Gartner e o IDC fazem previsões de que o mercado da IoT gerará um
movimento de cerca de 2 trilhões de doláres até 2020. Dessa forma, esta seção não esgota
as áreas de aplicações IoT, apenas tenta mostrar quão impactante pode ser seu uso.

2.3. Objetos inteligentes

A Internet das Coisas, como seu próprio nome diz, é formada por “coisas” e,
um primeiro ponto que vem em mente, é justamente a questão “o que são as coisas que
formam a Internet das coisas”? Genericamente, uma “coisa” é um objeto físico composto
por um identificador único, por um transdutor, por mecanismos de comunicação e por
um processador, que pode variar do mais simples ao mais complexo. Uma característica
fundamental da Internet, tal qual como conhecemos, é que cada elemento que a compõem
possui um endereço IP. O endereço IP nada mais é que um nome que identifica, de forma
única, um elemento na Internet e, como tal, pertence a um sistema de nomes. Um sistema
de nomes é uma maneira de referenciar simbolicamente, de forma inequívoca, objetos
obedecendo a uma determinada sintaxe e semântica. O conjunto de nomes válidos é
denominado de espaço de nomes. São exemplos cotidianos de espaço de nomes, entre
outros, as placas de nossos automóveis, compostas por três letras, seguidas de quatro
dígitos decimais (0-9); os endereços IPv4, ou IPv6; ou, ainda, os nomes de arquivos em
um sistema de arquivos em computadores de uso pessoal.
Um nome identifica um objeto de forma única em um contexto. Esse contexto
pode ser local, como o nome de uma rua em uma cidade (nada impede que outra cidade
tenha uma rua com o mesmo nome), ou global, como os endereços IP na Internet. As
principais características de um nome são unicidade, persistência e longevidade, ou seja,
um nome deve identificar um objeto de forma inequívoca e durar – pelo menos - o mesmo
tempo de vida desse objeto. Na Internet das coisas é comum que os objetos sejam identi-
ficados por etiquetas RFID (Radio Frequency IDentification), por endereços IP ou através
de URIs (Uniform Resource Identifiers).
Uma etiqueta RFID é um microchip com uma antena acoplada que responde a uma
requisição externa fornecendo sua identificação, via sinal de rádio. A fonte de energia em-
pregada pelas etiquetas RFID podem ser externa ou interna a ela e, em função disso, elas
são classificadas como passiva, semi-passiva ou ativa. Uma etiqueta RFID passiva não
possui fonte de energia, o sinal eletromagnético da própria requisição gera uma corrente
elétrica que fornece a energia necessária para o envio da identificação. Por sua vez, as
etiquetas semi-passivas e ativas possuem uma fonte interna (bateria). No primeiro caso,
semi-passiva, a bateria é suficiente apenas para a etiqueta receber o sinal de requisição, a
resposta, como no caso anterior, é enviada com a energia do campo elétrico decorrente da
própria requisição. Já as etiquetas ativas, a bateria possui energia suficiente para receber
o sinal de requisição e para transmitir a identificação.
As etiquetas RFID armazenam um código de 96 bits, o Electronic Product Code
(EPC), que serve como identificador único da etiqueta e segue um padrão aberto (GID-
96). As etiquetas RFID são bastante difundidas, sendo usadas, inclusive, como meca-
nismo antifurto em lojas de departamento e em livrarias. Outros exemplos de códigos
usados para identificar objetos são QR-Codes e códigos de barra.
Normalmente, as etiquetas RFID identificam um objeto dentro de um contexto lo-
cal. Porém, no momento em que se deseja uma identificação em contexto global, torna-se
necessário o uso de algum outro mecanismo. Nesse ponto entram as tecnologias Internet,
como os endereços IP. Um endereço IP, na sua versão 4, é um número de 32 bits que,
teoricamente, fornece até 232 nomes diferentes. No entanto, na prática, essa capacidade é
menor devido a semântica dada a um endereço IPv4 em possuir dois campos, o prefixo e o
sufixo, que servem, respectivamente, para identificar uma rede na Internet e uma interface
de rede dentro dessa. Além disso, o IPv4 já enfrenta há anos o problema de esgotamento
de endereços, o que fez surgir o IPv6. Um endereço IPv6 é um número de 128 bits, ou
seja, fornece cerca de 340 undecilhões de nomes (2128 endereços). Assim como o IPv4,
essa é capacidade bruta, já que também há uma divisão de campos em prefixo e sufixo,
64 bits cada, e que são usados conforme as regras de atribuição de endereços IPv6.
Uma outra forma de identificar objetos é através de URI (Uniform Resource Iden-
tifier). Um URI é um string empregado para identificar o nome de um recurso. Na prá-
tica, um URI fornece informações sobre a localização de um objeto e seu nome em um
sistema distribuído. A sintaxe de um URI é definida no Internet Standard 66 e na RFC
3986 sendo composta, basicamente, por um esquema (scheme), uma parte hierárquica e,
opcionalmente, por uma requisição (query) e um fragmento (fragment). As formas mais
comuns de URI são o Uniform Resource Locator (URL) e o Uniform Resource Name
(URN). Assim, quando o scheme usado for o http, estamos na presença de um URL que é
empregado para localizar e acessar um recurso na Internet, ou seja, o URL informa onde
encontrar um recurso. Se o scheme for urn, estamos identificando um objeto dentro de um
espaço de nome específico. Tipicamente, um URN fornece um identificador de espaço de
nome (Namespace IDentifier – NID ) e um nome válido dentro desse espaço de nome
(Namespace Specific String – NSS) como, por exemplo, urn:isbn:978-85-8143-677-7.
O próximo elemento que compõe um objeto inteligente é um transdutor. Um trans-
dutor é um dispositivo que converte uma forma de energia em outra, como os sensores e
os atuadores. Os sensores são capazes de converter uma fonte de energia como mecânica,
térmica, acústica, ou eletromagnética (inclui luz), entre outras, em corrente ou tensão elé-
trica. Há uma variedade enorme de sensores que são capazes de “sentir” características
de um meio físico, e transformar essa característica em valores de tensão, ou corrente,
que podem ser lidos e convertidos em valores binários através de conversores analógico-
digitais. Um atuador, por sua vez, transforma energia elétrica em movimento para, por
exemplo, acionar o fechamento de válvulas.
Uma das funcionalidades básicas dos objetos inteligentes é a sua capacidade de in-
teração, ou seja, modificar alguma situação no mundo físico ou reportar um estado desse
mundo físico para que ele seja monitorado. Como os objetos que compõem a Internet das
coisas, por questões de praticidade, de custo, e mesmo de projeto, tem capacidades reduzi-
das de processamento e de autonomia (duração de sua bateria), os mesmos se restringem a
observar o meio e enviar as informações para sistemas de maior capacidade para avaliação
dessas informações e tomada de decisões. Surge então a necessidade de conectividade,
ou seja, os objetos devem ter capacidade de comunicação que variam desde barramentos
específicos, interligando os objetos a sistemas de maior capacidade, até as tecnologias de
comunição via rede celular (GSM, LTE,...), de redes locais (WiFi e Ethernet) e de redes
pessoais (Bluetooth, ZigBee, infravermelho, 6LowPAN, RFID, etc).
Por fim, por mais simples que possa ser, os objetos inteligmentes possuem a ne-
cessidade de realizar algum tipo de processamento. Esse processamento, dependendo da
complexidade do objeto e de seu custo, pode variar desde uma lógica de máquina de es-
tados, ou de programas simples executados por um processador dedicado de baixo custo,
como aqueles que atendem a indústria de linha branca (eletrodomésticos); até processa-
dores de maior capacidade como ARM e Intel. Justamente em função de questões relaci-
onadas com consumo de energia, os processadores de baixo consumo tem se tornado uma
opção bastante interessante e são cada vez mais empregados em placas e kits de desenvol-
vimento como Arduíno, Raspberry, Cubieboards, entre outras. Esses kits também contam
com várias interfaces, como portas seriais, paralelas, conversores A/D, de uma gama de
sensores e atuadores e conectividade de rede (WiFi, Ethernet, Bluetooth, ZigBee, infra-
vermelho, etc), se tornando uma plataforma interessante para comporem os elementos
básicos da Internet das Coisas, assim como os nossos smartphones.

2.4. A Internet das coisas e outras coisas


As pessoas que gostam de Fórmula-1 já estão acostumadas com o termo teleme-
tria que permite monitorar as condições de corrida de um carro de F1. Nesse contexto, é
possível imaginar o carro de F1 como uma “coisa”, mas não se deve confundir telemetria
com a Internet das Coisas. Da mesma forma, há outros termos, como o M2M (Machine-
to-Machine) e WoT (Web of Things) que contribuem para dificultar a compreensão do que
é a Internet das Coisas (IoT) . Cabe ressaltar, ainda, que essas definições são consequên-
cias, por vezes, da criatividade do marketing, da área de conhecimento que se é originário
(engenharia ou computação) e do nível de abstração que o problema é abordado. Esses
conceitos possuem semelhanças, mas tem seus nuances próprios. É comum o uso, de
forma intercambiável, de M2M e IoT, sendo empregado IoT para referenciar uma solução
M2M, só porque IoT é um termo da moda e, porque, nos dias atuais, os componentes de
uma solução M2M usam protocolos Internet para comunicarem entre si. Esta seção busca
salientar os principais aspectos desses conceitos para tentar distinguir um termo do outro
e explicar a sua origem.

Telemetria: A telemetria, do grego tele (remoto) e metron (medida), é o processo auto-


mático de coleta dados de sistemas, de locais remotos, ou inacessíveis, através de sen-
sores, e seu posterior envio para um ponto central para análise e tomada de decisão. A
telemetria é usada, tradicionalmente, para monitoramento, rastreamento e medição de
grandezas de um sistema. As aplicações da telemetria são várias, nas mais diversas áreas
como, por exemplo, no rastreamento de animais; no monitoramento de temperatura, umi-
dade e pressão; no controle de níveis de reservatórios e vazão; na agropecuária; na indús-
tria automotiva e aeronáutica; etc. Em todos esses casos, é comum a situação em que um
sensor captura uma condição, ou valor de estado, do meio em que está inserido, e envia
esse valor a um ponto central por comunicação via rádio. É comum, ainda, serem usadas
tecnologias de sistemas de telefonia como GPRS, EDGE e 1xRTT, para enviar os valores
dos sensores às centrais. É nesse contexto que se inserem as chamadas Wireless Sensor
Networks (WSN) [AKY 2002].
Como os dados são enviados via rádio, eles estão sujeitos a problemas de alcance
e de interferências que provocam erros de transmissão, além de questões de segurança
(autenticidade, integridade e privacidade). Isso introduz alguns limites, como a necessi-
dade de se definir alcance máximo; que se traduz por potências de transmissão; de criar
unidades de transmissão de dados (quadros) com códigos de correção e/ou detecção de
erros; de se identificar origem e destino dos dados e do emprego de cifragem. Visando a
interoperabilidade de sistemas, e a não dependência tecnológica de fornecedores, alguns
protocolos e padrões para telemetria foram definidos. Entre esses, é possível citar os pa-
drões de modulação e de bandas de frequências a serem usadas. Apesar disso, a telemetria
é usada em um contexto de aplicação bem específico, como na área de instrumentação, e
os principais padrões estão mais relacionados com os aspectos físicos da transmissão e de
interconexão dos equipamentos e dos dispositivos (barramentos e interfaces).

Machine to Machine (M2M): A Machine to Machine (M2M) é a tecnologia que per-


mite dispositivos com capacidades de transmissão sem fio (wireless), ou com fio (wired),
comunicarem entre si, independente da rede de interconexão e dos sistemas computaci-
onais empregados. É composta por dispositivos (sensores e atuadores); por objetos com
identificação única com capacidades de comunicação; por uma rede de comunicação e
por aplicações que dão sentido as informações recebidas [HOL 2014].
O objetivo principal de uma solução M2M é agregar valor a dispositivos embar-
cados (objetos) fazendo com que os dados que manipulam sejam integrados aos mais
diversos sistemas de informação de uma empresa. Essa integração permite a criação de
novos serviços e de modelos econômicos para um nicho de mercado. Assim, é possível
ver o M2M como uma solução que possui dispositivos remotos monitorando condições
e estados; realizando diagnósticos e efetuando ações em um determinado sistema. O co-
nhecimento para a interpretação e diagnóstico dos dados, e sua consequente análise para a
tomada de decisões e para as ações a serem executadas fazem parte das regras do negócio.
As soluções M2M são serviços concebidos de forma ad-hoc, voltados a um setor
ou domínio específico (saúde, energia, transporte) e, normalmente, esse serviços são in-
compatíveis entre si, apresentando um baixo acoplamento, isso é, não permitem uma fácil
integração. Nesse sentido, as aplicações M2M costumam serem proprietárias (fechadas),
mas a infraestrutura de base para a comunicação, até para permitir a interoperabilidade
dos dispositivos, seguem padrões de protocolos abertos. Por exemplo, é possível imaginar
uma solução M2M para um controle residencial onde os sensores de presença são de um
fabricante, os sensores de luminosidade de outro e os acionadores elétricos das persianas
de um terceiro. Todos esses dispositivos devem interagir para a tomada de decisão de
quando, e se devem, abrir as persianas. Os protocolos mais comuns para comunicação
entre dispositivos M2M são o MQTT (Message Queue Telemetry Transport) e o CoAP
(Constrained Application Protocol). Apesar de usarem um mesmo protocolo, a inteligên-
cia, isso é, o software de aplicação para correlacionar os estados do sensores e tomar uma
decisão fazem parte uma solução proprietária que dificilmente interagirá com a de outro
fabricante.

Internet das Coisas e Web das Coisas: O surgimento dos termos Internet das Coisas
e Web das Coisas nasceram em analogia ao que já acontece com a Web no tratamento
de seus recursos. A Internet pode ser vista, de forma lógica, como uma rede virtual em
que todos os dispositivos a ela conectada comunicam entre si usando as mesmas regras
(protocolos) e se conhecem através de seus endereços IP. Essa abstração de rede virtual,
e de endereço IP, faz com que cada elemento da Internet possa interagir com outro inde-
pendentemente de seu hardware, da tecnologia de comunicação que emprega para enviar
e receber sinais eletromagnéticos (WiFi, Ethernet, ADSL, etc), e de seu sistema opera-
cional, ou seja, permite que equipamentos heterogêneos interajam entre si. Ainda, os
protocolos Internet são padrões abertos, assim, com sua adoção não há dependência tec-
nológica a um determinado fabricante ou sua solução. Dessa forma, o termo Internet das
Coisas quer ressaltar dois atributos básicos da Internet. Primeiro, que os objetos inteli-
gentes (coisas) são identificados de forma única por seus endereços IP, e, segundo, que
ele se comunicam empregando protocolos abertos. Entretanto, essa abordagem ainda não
fornece um grau de abstração adequado, pois tratar com endereços IP diretamente não é
prático, ainda mais agora com o advento do IPv6. Além disso, os protocolos da camada de
transporte (TCP e UDP) oferecem apenas a noção de uma comunicação fim-a-fim, sendo
necessário definir o que é carregado por eles, ou seja, qual o protocolo da aplicação e o
serviço a ser executado. Nesse ponto é que aparece a analogia com a Web.
Basicamente, a Web é um local onde as pessoas publicam e consultam informações
dos mais variados tipos. Independente do tipo de informação (documento), o acesso e o
tratamento são uniformes. Novamente, são usados abstrações e protocolos para isso. Só
que agora, nesse contexto, os objetos são identificados de forma única através de URLs,
que, além de fornecer nomes simbólicos aos objetos, isso é, não numéricos como endere-
ços IP, auxiliam na sua localização na Web. Os protocolos usados no acesso a documen-
tos Web em geral, tal como o HTTP, ou os protocolos utilizados no desenvolvimento de
Web services como RESTfull, XML, HTML5, entre outros, passam a ser empregados na
identificação, localização e comunicação entre os objetos. Surge então o termo Web das
Coisas.
Pragmaticamente, a Internet das Coisas faz referência a objetos que são identifica-
dos de forma única através de endereços IP e que se comunicam através da infraestrutura
existente da Internet. Já a Web das coisas transforma os objetos em recursos, localizados
por URLs, e tratados com a tecnologia existente para desenvolvimento de aplicações Web.

2.5. Anatomia das soluções IoT e WoT


De uma forma genérica, uma solução IoT, como mostrado na parte superior da
figura 2.1, integra um ambiente físico a um sistema de análise e decisão. Assim, objetos
físicos podem ser identificados, ou grandezas de um meio físico, são transformadas em
informações digitais e enviadas a uma infraestrutura de TI (Tecnologia da Informação)
para seu armazenamento, distribuição e integração com outros sistemas. Os sistemas
empresarias como ERP, MES, WMS, entre outros, recuperam essa informação e a tratam
de forma apropriada. Como consequência desse tratamento, obtém-se as mais diferentes
análises (mercadológicas, controle de qualidade, etc), integração com outros sistemas
(manufatura, compra,...), publicação (monitoramento), ou ainda, atuação no meio físico
através de uma ação a ser realizada no ambiente físico.

Figura 2.1: Anatomia de uma solução IoT.

Uma solução IoT pode ser organizada e analisada a partir de um modelo de quatro
camadas (Figura 2.2): sensor e rede; gateway e rede; middleware; e aplicação. A camada
de sensor e rede é responsável por “sentir” alguma grandeza do meio físico, ou obter
uma informação de um objeto real, e enviá-la para um dispostivo externo para posterior
tratamento. Assim, essa camada obtém informações do meio físico através de leituras
de etiquetas RFID, QR-codes, códigos de barra, ou dos mais variados tipos de sensores
e envia essas informações para outro sistema usando tecnologias de redes locais (WiFi e
Ethernet) ou de redes pessoais (ZigBee, bluetooth, infravermelho, etc). Por consequência,
os dispositivos ou sensores, devem estar conectados através de redes cabeadas ou sem
fio. É possível, ainda, que um sensor esteja ligado a um dispositivo por barramentos
específicos ou por portas paralelas e seriais.
Como visto anteriormente, um dispositivo IoT pode ser extremamente simples
devido ao seu custo, ou por restrições como consumo de energia. Dessa forma sua capa-
cidade de processamento e comunicação é limitada a apenas “sentir” o meio e enviar a
informação para um sistema externo. Esse sistema externo é o que se denomina de ga-
teway. Portanto, o gateway é responsável por receber informações dos dispositivos IoT e
integrá-las a uma infraestrutura maior, seja de rede de interconexão, ou de processamento.
Um gateway, normalmente, é o que se chama de sistema embarcado. É comum alguns
sistemas oferecerem suporte a sensores, o que acaba fusionando a camada de sensores e
rede com a camada gateway e rede. Assim, a função de um gateway é repassar as infor-
mações obtidas do mundo real para o mundo virtual. As tecnologias empregadas para a
comunicação física variam desde aquelas usadas na telefonia celular (GSM, UMTS, LTE,
LTE-A) até às empregadas na Internet (WiFi, Ethernet, banda larga, etc...).
A próxima camada é a de middleware responsável pela configuração e gerencia-
mento dos dispositivos; pelo armazenamento dos dados (persistência); por gerenciar ques-
Figura 2.2: Camadas funcionais de uma solução IoT.

tões de segurança como confidencialidade, autenticidade, integridade e disponibilidade;


por fornecer informações de contexto; entre outras. Nós retornaremos a essas funcionali-
dades na seção 2.7. Por fim, a camada de aplicação, que acessa os dados armazenados no
middleware IoT e realiza a análise, a interpretação, publicação e as tomadas de decisão
com base em uma lógica de negócio e apresentação.
As limitações da IoT começam a surgir quando há necessidade de integrar dispo-
sitivos e soluções de diferentes fabricantes em uma única aplicação ou sistema. A Web
das Coisas busca quebrar o paradigma “um dispositivo, um protocolo, uma aplicação”,
inserindo nos objetos (coisas) tecnologias que seguem padrões Web. A finalidade é co-
nectar e integrar objetos quotidianos com tecnologia embarcada para permitir que objetos
do mundo físico façam parte da Web. Essa abordagem possibilita reaproveitar tudo o que
já existe relacionado a identificação, escalabilidade e segurança, existente na Web, para
essa integração. De certa forma, enquanto a IoT aborda problemas de rede (camada 3
MR-OSI), a WoT foca em protocolos em nível de aplicação (camada 7 MR-OSI). Ma-
pear qualquer objeto com um enfoque Web torna a Web das Coisas agnóstica quanto aos
protocolos da camada física, de rede e de transporte. Atualmente, graças a uma série
de avanços é possível implantar servidores Web em sistemas embarcados com recursos
limitados. Isso possibilita o desenvolvimento de aplicações Web que interagem com dis-
positivos embarcados (objetos) da mesma forma que já era feita com outros servidores
Web, em particular, usando a arquitetura RESTful.
O REST é um estilo de aquitetura para o desenvolvimento de aplicações distribuí-
das e é a base de como a Web está atualmente organizada. Basicamente, REST permite
a criação de serviços fracamente acoplados, que podem ser facilmente reusados, usando
tecnologias como URIs, HTTP e padrões de tipos de dados. Na prática, isso significa que
é possível interagir com objetos via navegadores Web da mesma forma que se surfa na
Web. Assim, por exemplo, dados podem ser coletados de sensores localizados em qual-
quer lugar do mundo, através de seus URLs, processados e visualizados em navegadores
Web usando HTML, CSS e JavaScript.
De acordo com [GUI 2011], a arquitetura de uma solução WoT pode ser vista em
quatro camadas: acessibilidade, descoberta, compartilhamento e composição. As apli-
cações WoT podem ser desenvolvidas diretamente sobre cada uma dessas camadas, mas
quanto mais alto for seu nível de abstração, maior a sua capacidade de reutilização. Ini-
cialmente, a camada de acessibilidade, que se preocupa em prover uma forma consistente
e uniforme para acessar os recursos (objetos ou coisas) a partir de duas abordagens. A
primeira é através de um modelo clássico request-reply baseado em arquitetura RESTful,
a segunda, empregando um modelo publish-subscriber com o auxílio de um broker e de
websockets para acessá-lo. A segunda camada, descoberta, é responsável por encontrar
as “coisas” na Web e determinar que tipo de serviços elas oferecem de forma a integrá-las
em uma aplicação. Aqui são empregadas uma série de tecnologias como linguagens de
descrição de serviços, motores de pesquisa e indexação, serviços de diretório, etc. A ca-
mada de compartilhamento, como seu próprio nome indica, tem por objetivo permitir que
os dados dos objetos (coisas) possam ser acessados por outras pessoas e serviços. A idéia
é empregar tecnologias de redes sociais para realizar esse compartilhamento já que elas
endereçam uma série de requisitos como a facilidade de uso; segurança; ser um modelo
já consagrado; e interoperabilidade. Por fim, a camada de composição, que visa fornecer
aos desenvolvedores a capacidade de criar aplicações usando toda uma gama de objetos
existentes. Isso pode ser feito a partir do uso de mashups e com a integração de dados a
sistemas de análise de bigdata. Ainda, [GUI 2011] ressalta a possibilidade de usar todo o
conjunto de especificações WS* (Padrão W3C) como alternativa para o desenvolvimento
de soluções WoT, mas menciona sua curva de aprendizado como uma desvantagem.

2.6. Protocolos IoT

Um dos aspectos mais importantes para o desenvolvimento da Internet das Coi-


sas é a padronização da comunicação. Esse ponto tem sido discutido nos últimos anos,
trazendo consigo um conjunto de protocolos para atender os requisitos das aplicações da
melhor maneira possível. Os protocolos para IoT são categorizados em: dispositivo a
dispositivo (device to device -D2D), dispositivo a servidor (device to server - D2S) e ser-
vidor a servidor (server to server - S2S). Os protocolos D2D servem para interconectar
dispositivos diretamente entre si garantindo uma série de requisitos como tempo real, ga-
rantias de entrega, alto desempenho, etc. As áreas que se beneficiam dessas características
incluem sistemas militares, hospitais, indústria automotiva e aviônica, entre outras. Ge-
nericamente, esses sistemas são denominados de Data Distribution System (DDS) e são,
na verdade, mais associados a atividades de controle. Já os protocolos D2S são destina-
dos a coletar dados e enviar a sistemas externos (servidores). Por fim, os protocolos S2S,
que são empregados para gerenciamento e integração das informações entre servidores de
aplicação, ou seja, estão em um nível gerencial de controle.
Baseado na visão “Internet” do IoT, em que se espera uma integração entre os dis-
positivos IoT e a Internet que conhecemos, a escolha óbvia para endereçamento é o IP.
Entretanto, é necessário definir um protocolo de aplicação a ser empregado para permitir
que dispositivos IoT enviem seus dados, ou seja, para fazer a coleta de dados (D2S). Uma
opção inicial é empregar o HTTP para transportar mensagens e, através de seus verbos e
comandos, como GET e PUT, interagir com os dispositivos da IoT. Entretanto, essa opção
traz alguns inconvenientes, como o fato de não ter nenhuma qualidade de serviço, e que,
por ser um protocolo request-reply, necessita de polling explícito para consultar estados
dos dispositivos e, principalmente, por dificultar parsing, já que há muitas opções em seu
cabeçalho. A segurança também é um problema, pois, as questões de privacidade, auten-
ticidade e integridade devem ser resolvidas com o auxílio de SSL/TLS. Tudo isso implica
questões de processamento, tamanho de código, capacidade de memória e de conectivi-
dade que nem sempre os dispositivos IoT apresentam. Em função disso, novos protocolos
foram sugeridos para os ambientes IoT, muitos deles baseados em um modelo publish-
subscriber, justamente para evitar polling, demandar menor largura de banda e resolver
a questão de conectividade. A seguir são apresentados alguns protocolos normalmente
citados como solução para aplicações IoT, com especial atenção a dois deles, o MQTT e
o CoAP, por terem se tornado as principais opções.

Advanced Message Queuing Protocol (AMQP): O AMQP é originário de aplicações


do sistema bancário, e foi concebido para enviar mensagens entre servidores na forma
de transações confiáveis, isso é, sem perda. Portanto, o foco principal do AMQP é não
perder mensagens e manter a ordem de envio e recepção das mensagens. Para atingir esse
objetivo, ele emprega o protocolo TCP e executa um protocolo de confirmações de men-
sagens que garante a entrega das mesmas independentemente de falhas ou reinicializações
do sistema. O AMQP, como protocolo IoT, é enquadrado como servidor a servidor (S2S).

eXtensible Messaging and Presence Protocol (XMPP): O XMPP foi inicialmente de-
senvolvido como um protocolo para mensagem instantânea (IM) para conectar pessoas
através de mensagens de texto. Esse protocolo utiliza XML para suas mensagens e é exe-
cutado sobre o TCP. Um dos pontos chave do XMPP é a utilização de name@domain.com
como esquema de endereçamento, oferecendo um jeito fácil de endereçar um dispositivo
IoT na Internet através da infraestrutura existente de DNS.

Messaging Queue Telemetry Transport (MQTT): O MQTT é um protocolo de trans-


porte fim-a-fim, ou seja, permite a comunicação de entidades de um mesmo nível em
sistemas finais. O MQTT é baseado em um modelo publish-subscriber, onde clientes pu-
blicam (publish) informações que podem ser acessadas por outros clientes (subscribers).
Essas informações são enviadas em mensagens que são disponibilizadas em um endereço,
chamado de tópico, que tem um formato semelhante a uma estrutura de diretórios de um
sistema de arquivos como, por exemplo, casa/sala/temperatura.
O sistema é assíncrono, ou seja, tanto a produção de informações (publish) como
a leitura das mesmas pode ocorrer sem nenhum aviso prévio entre as partes. Para permitir
esse desacoplamento entre a divulgação e a leitura de informações, os sistemas publish-
subscriber precisam de um intermediário, o broker, que armazena as informações até a
sua leitura. Assim o broker é o responsável por distribuir mensagens para os clientes com
base no tópico da mensagem. Além dessa distribuição, o broker é responsável por validar,
transformar e encaminhar as mensagens. A figura 2.3 ilustra esse funcionamento.
O MQTT foi projetado para ser empregado em dispositivos de capacidade com-
putacional reduzida, com baixa largura de banda e conectividade não garantida. A PDU
(Protocol Data Unit) do protocolo MQTT é encapsulada pelo protocolo TCP, ou seja, o
cabeçalho e os dados do MQTT são enviados na área de dados do TCP. Há uma versão
do MQTT, denominada de MQTT-SN (MQTT Sensor Network), em que sua PDU é en-
capsulada pelo protocolo UDP, que, por sua vez, é encapsulada pelo IP ou pelo protocolo
6LowPAN. O MQTT prevê, ainda, diferentes garantias de entrega, denominado de QoS
Figura 2.3: Esquema de funcionamento do MQTT.

(Quality of Service), com as semânticas: no máximo uma vez, pelo menos uma vez e
exatamente uma vez.
Como visto, uma solução baseada em MQTT tem dois componentes: o broker
e os clientes, que publicam e assinam tópicos. Há várias implementações em software
livre para o broker (HiveMQ, ActiveMQ, RabbitMQ, CloudMQTT, Mosca...). Uma das
implementações mais populares de broker MQTT é o Mosquitto2 e, para clientes, o Paho3 .

Constrained Application Protocol (CoAP): O CoAP é um padrão IETF, descrito no


RFC7252, que adapta os conceitos do HTTP para dispositivos com restrições computaci-
onais e de largura de banda. Foi criado dentro de um grupo de trabalho do IETF denomi-
nado Constrained RESTful Environments (CoRE). O CoAP segue um modelo cliente/ser-
vidor, e é baseado no modelo arquitetural REST, no CoAP os servidores disponibilizam
recursos por meio de um URL e os clientes acessam esses recursos usando métodos pré-
definidos como GET, PUT, POST e DELETE. Como, tanto o HTTP, quanto o CoAP usam
o modelo REST, eles podem ser facilmente integrados usando proxies, de forma que, por
exemplo, uma aplicação cliente pode nem ficar sabendo que está acessando um sensor.
Assim como o HTTP, a área de dados do CoAP pode transportar dados codificados com
XML, JSON, CBOR, ou qualquer outro formato de dados definido pela aplicação.
Por ter sido projetado para dispositivos de baixo custo e poder computacional, o
CoAP emprega uma pilha de protocolos “enxuta”, baseada em UDP sobre IP, ou sobre
6LowPAN (padrão para conectividade IPv6 para dispositivos sem fio de baixo custo). O
cabeçalho CoAP possui um tamanho fixo de 4 bytes e suas mensagens causam nenhuma,
ou muito pouca, fragmentação na camada de enlace. Em relação aos aspectos de segu-
rança, o CoAP optou por usar DTLS (Datagram Transport Layer Security) que é equiva-
lente ao uso de chaves RSA de 3072 bits, o que lhe confere uma excelente segurança com
pouco consumo computacional (se comparado com outros métodos).
Assim como o MQTT, existem inúmeras opções em software que implementam o
CoAP e que estão a disposição para os desenvolvedores de aplicações IoT. Entre elas é
possível citar o Californium, Copper e o Erbium. Uma lista interessante de pacotes que
implementam o CoAP, em diversas linguagens de programação, é fornecida na Wikipe-
dia4 . Importante observar que existem dois tipos de implementação que participam de
uma solução IoT: o lado do dispositivo (constrained device) e o lado servidor.
2
http://mosquitto.org/download
3
http://www.eclipse.org/paho
4
https://en.wikipedia.org/wiki/Constrained_Application_Protocol
2.7. Arquitetura de Referência

A Internet das Coisas nada mais é que um sistema distribuído. De acordo com
Coulouris [COU 2011], as propriedades e os problemas do projeto de sistemas distribuí-
dos podem ser identificados e discutidos através de modelos descritivos, a saber: modelo
físico, modelo arquitetural e modelo fundamental. Cada modelo é destinado a fornecer
uma descrição abstrata, mas consistente, de aspectos relevantes de um sistema distribuído.
Em especial, o modelo arquitetural define a estruturação do sistema, em termos de compo-
nentes e suas interrelações, com o objetivo que a estrutura final atenda requisitos atuais,
futuras demandas, de forma confiável, gerenciável, adaptável e rentável. É importante,
ainda, distinguir a diferença entre um modelo e uma arquitetura de referência.

Um modelo de referência é um artefato abstrato com o objetivo de facilitar a iden-


tificação dos elementos que compõe um sistema em um domínio específico e seu inter-
relacionamento. Basicamente, um modelo de referência contém um conjunto de conceitos
básicos, de axiomas, de relações entre eles e é independente de padrões, tecnologias, im-
plementações e de qualquer outro detalhe concreto [MAC 2000]. Um emprego bastante
comum de um modelo de referência é para fins didáticos, para explicar padrões e o fun-
cionamento de sistemas para pessoas não especialistas. Por sua vez, uma arquitetura de
referência reúne as experiências, o conhecimento e as características fundamentais de uma
coleção de sistemas de um dado domínio de aplicação. Assim, o objetivo fundamental de
uma arquitetura de referência é fornecer um padrão de projeto indicando como compo-
nentes e mecanismos abstratos interagem entre si para atender um determinado conjunto
de requisitos. Uma, ou mais, arquiteturas de referência podem ser derivadas de um mesmo
modelo de referência para atingir diferentes necessidades ou objetivos de projeto.

Dessa forma, uma arquitetura de referência fornece, de maneira não ambígua,


regras de negócio, estilos e padrões arquiteturais de construção de sistemas, boas práti-
cas de desenvolvimento, elementos de hardware e de software necessários à definição de
um sistema real, a arquitetura concreta. Há três principais vantagens na adoção de uma
arquitetura de referência. Inicialmente, ganho de produtividade e qualidade do desen-
volvimento dos sistemas, pois, as principais decisões arquiteturais já foram pensadas e
definidas pelos criadores da arquitetura de referência. Segundo, facilita a interoperabi-
lidade entre sistemas heterogêneos, voltados a um mesmo domínio de aplicação, já que,
todos, ao serem criados, estão sujeitos ao mesmo conjunto de diretrizes em termos de
componentes fundamentais e sua interação. Por fim, permite que os sistemas possam evo-
luir de forma a atender novos requisitos, ou serem adaptados para prover melhorias em
serviços já oferecidos.

A Internet das Coisas (IoT), em parte, em função de conceitos que já existiam


anteriormente como a telemetria e M2M, começou a ser construída e definida agregando
padrões e arquiteturas de referências dessas áreas. É relativamente recente a preocupação
e a definição de arquiteturas de referências para IoT, onde se destacam a IoT Architectural
Reference Model (IoT-ARM), definida no contexto do Projeto Europeu conduzida pela
European Comission 7th Framework program (EU-FP7) Internet of Things Architecture
(IoT-A) e a Arquitetura de Referência proposta pela empresa WSO2. Essas arquiteturas
serão abordadas a seguir.
2.7.1. Arquitetura de referência IoT-A
O modelo de arquitetura de referência do projeto IoT-A é organizado em três pon-
tos de vista diferentes, denominados de visão, a saber: funcional, informação, operação e
implantação. A visão funcional, como o próprio nome diz, fornece as principais funcio-
nalidades a serem consideradas no projeto de um middleware IoT. Os objetos que formam
um ambiente IoT se comunicam entre si e com sistemas externos. Assim, a visão da in-
formação tem como foco a descrição, o tratamento e o ciclo de vida da informação, bem
como o fluxo dessas informações em todos os componentes do sistema. Para descrever
essas interações, a arquitetura IoT cria uma abstração fundamental: as Entidades Virtuais.
Por fim, a visão de operação e implantação, que tem por objetivo principal fazer com que
os objetos da IoT comuniquem e operem com o maior número possível de sistemas. Para
atingir esse objetivo, essa visão fornece formas de descrever uma aplicação específica a
um domínio, orienta a definição de grupos funcionais e sua comunicação, assim como as
hierarquias e sub-redes que compõe a solução. Ainda, sugere uma série de protocolos de
comunicação visando a interoperabilidade de dispositivos de diferentes tecnologias, mas
usando endereçamento IP como base comum. O foco desta sub-seção é a visão funcional,
maiores detalhes sobre as outras visões podem ser obtidos em [IOT 2013].
Como mencionado, a abstração de Entidade Virtual é um dos pontos essenciais da
arquitetura IoT e, por isso, antes de analisarmos os diversos elementos que a compõem, é
importante comentar alguns aspectos sobre as Entidades Virtuais. Uma Entidade Virtual
(EV) representa, ou modela, uma entidade física (objeto). Uma EV é composta por um
identificador, por um tipo e por uma série de atributos que a descrevem. É através dos
atributos que se obtém as funcionalidades de uma EV, inclusive, é pela modificação desses
atributos que se pode gerar estímulos, ou atuar, sobre o objeto físico que ela representa.
As EVs podem ser classificadas como ativa ou passiva. Uma EV ativa é aquela que
pode acessar recursos do ambiente sendo, tipicamente, composta por aplicações, agentes
ou serviços. Já as EVs passivas representam elementos que compõem os recursos do
sistema como, por exemplo, registros em um banco de dados. As EVs interagem com
serviços através de associações que indicam qual informação, ou ação, pode ser obtida
e/ou realizada sobre uma EV.
A figura 2.4 mostra os diferentes grupos funcionais (GFs) que formam a visão
funcional da arquitetura de referência IoT-A. Cada grupo funcional possui um ou mais
componentes funcionais (CFs), ilustrados por retângulos. As camadas de aplicação e de
dispositivos não fazem parte da proposta IoT-A.
Inicialmente, o GF Gerenciamento de Processos visa prover os principais concei-
tos e interfaces necessárias para adaptar os processos de gerenciamento convencionais
às particularidades dos ambientes IoT. Para isso, as principais tarefas estão divididas em
dois CFs: modelagem de processos e execução de processos. A modelagem de proces-
sos fornece um arcabouço de ferramentas que possibilita descrever e modelar os vários
processos gerenciais de um ambiente IoT. A ideia é que as interrelações desses processos
seja escrita em uma notação padrão, a ser desenvolvida como parte do projeto IoT-A, que
considere os novos conceitos e peculiaridades da IoT. Já o CF Execução de Processos, é
responsável por implantar os processos gerenciais modelados de forma que as tarefas a
serem executadas por um processo IoT sejam alocadas a ambientes de execução apropria-
dos. Para isso, o CF Execução de Processos interage com o GF Organização de Serviços.
O GF Organização de Serviços opera como um ponto central de comunicação dos
diferentes GFs realizando a composição, orquestração e coreografia de serviços. Para isso
Figura 2.4: Visão Funcional da Arquitetura de Referência IoT.

o GF Organização de Serviços recebe os requisitos necessários de tarefas IoT, localiza os


serviços IoT adequados a sua execução e os invoca. Essas funcionalidades são executadas
por três CFs. Primeiro, o CF Orquestração de Serviços, que é responsável por contro-
lar e coordenar os serviços IoT apropriados para atender as requisições provenientes de
outros CFs e dos usuários. Segundo, o CF Composição de Serviços, que cria serviços
mais elaborados a partir de serviços IoT básicos. Por fim, o CF Coreografia de Serviços,
cuja função é atuar como um broker para que os serviços IoT interajam entre si usando
um modelo publish-subscriber. Dessa forma, clientes IoT podem requisitar por algum
serviço e, se por um acaso, não houver serviços disponíveis imediatamente, a requisição
é memorizada e o cliente é notificado tão logo o serviço de torne disponível.
O próximo é o GF Entidade Virtual que contém as funções necessárias para que
Entidades Virtuais (EVs) interajam com o sistema IoT. Para isso, esse GF implanta meca-
nismos de busca e descoberta de serviços para fornecer informações sobre cada EV, sendo
composto por três CFs: resolução de EVs, serviço de monitoramento e serviço de enti-
dade virtual. O CF resolução de Evs fornece aos usuários as associações existentes entre
as EVs e os serviços IoT desejados. Por sua vez, o CF serviço de monitoramento visa en-
contrar automaticamente novas associações que são criadas pelos usuários e verificar se
as associações já criadas permanecem válidas. Por fim, o CF serviço de EVs, que oferece
uma interface para manipular os atributos de uma EV permitindo que os mesmos sejam
lidos e modificados de acordo com as permissões (read-only, write-only ou read-write).
O GF serviço IoT é composto pelos CFs serviço IoT e resolução de serviço IoT. O
CF serviço IoT é responsável por tornar um recurso disponível para o restante do sistema.
As suas principais funções são: (i) retornar informações mantidas por um recurso IoT me-
diante requisições síncronas; (2) receber informações a serem armazenadas em recursos
IoT, assim como enviar dados para agir sobre atuadores e para parametrizar a configu-
ração de recursos; (3) fornecer informações de forma assíncrona usando um modelo de
subscrição. Por sua vez, o CF resolução de serviços provê as funcionalidades necessárias
para localizar um serviço IoT e dizer como ele deve ser usado. Para isso, esse CF fornece
mecanismos para descrever serviços e para armazenar essas descrições em base de dados.
Como um serviço de resolução tradicional, esse CF provê meios para realizar descoberta,
lookup e resolução de nomes. Além dessas, esse CF, possui a funcionalidade para criar,
modificar e remover descrições de serviços.
O GF comunicação cria uma abstração para as diferentes tecnologias de comu-
nicação existentes a partir de três componentes funcionais (CFs): salto-a-salto, rede e
fim-a-fim. O CF salto-a-salto é o primeiro nível de abstração, e tem por função realizar
a comunicação entre os outros CFs independentemente da camada de enlace existente.
Assim, o CF salto-a-salto envia e recebe dados do CF rede e também envia e recebe da-
dos dos dispositivos físicos. O CF rede, de forma análoga à camada de rede do MR-OSI,
permite a comunicação entre redes distintas através de um esquema de endereçamento
(locators) e da resolução de identificadores que independem da tecnlogia da rede física.
Ainda, o CF de rede recebe e encaminha dados ao CF fim-a-fim. Por último, o CF fim-a-
fim, que provê a comunicação com o GF Serviço de IoT e oferece, através de argumentos,
uma série de características a conexão, tais como, confiabilidade, integridade e cifragem.
Além disso, o CF fim-a-fim possibilita a definição de gateways para a tradução entre
diferentes protocolos fim-a-fim como, por exemplo, HTTP/TCP e CoAP/UDP.
Um ponto importante dos sistemas distribuídos é a segurança. É nesse ponto que
entra o GF segurança cujo objetivo é fornecer privacidade e segurança para os ambientes
IoT. Para atingir esse objetivo, esse GF é organizado em cinco CFs: autorização, troca de
chaves e cifragem, um sistema de controle de confiança e reputação entre os recursos, ge-
renciamento de identidades e autenticação. As funcionalidades desses CFs são as mesmas
oferecidas nos sistemas operacionais e sistemas distribuídos em geral.
Por último, o GF de gerenciamento, também composto por cinco CFs. O CF de
configuração, responsável por realizar as funções de inicialização e configuração do sis-
tema. O CF de falha que visa identificar, corrigir e registrar as falhas que possam vir a
acontecer em um ambiente de IoT. A arquitetura IoT propõem ainda que os diferentes
recursos (GF, CF, EV, dispositivo físico, aplicação e usuário) sejam vistos como membros
de um grupo Ambiente IoT. Para isso, existe o CF membro que executa as funções de
gerenciamento de grupos como monitoramento, inclusão e remoção de membros, e defi-
nição de subgrupos. O ambiente IoT deve ser continuamente monitorado para verificar
se está operando de forma adequada e correta. Esse monitoramento, pode ser empregado
para prever capacidades futuras e mesmo auxiliar em questões de tarifação (billing). Isso
é a tarefa do CF Relatório cuja função básica é criar e recuperar relatórios de atividade
para os demais CFs de gerenciamento. Finalmente, o CF Estado que monitora e prevê
estados futuros do ambiente IoT. Seu objetivo é manter um histórico de estados passado,
presente e futuros (previsão) e, com base nesses, auxiliar na detecção e recuperação de
falhas como, por exemplo, levando o sistema após um evente de falha a um estado con-
sistente e conhecido.
2.7.2. Arquitetura de referência WSO2
A empresa WSO25 atua na área de Internet das Coisas desenvolvendo, em código
aberto, uma série soluções para IoT. Entre os trabalhos realizados está a proposta de uma
arquitetura de referência, independente de fornecedor (vendor neutral) e de tecnologia,
que é descrita em um whitepaper [FRE 2015]. Inicialmente, esse trabalho identifica uma
série de requisitos envolvidos em soluções IoT classificando-os em cinco grandes grupos:
(i) conectividade e comunicação; (ii) gerenciamento de dispositivos; (iii) obtenção de
dados e análise; (iv) escalabilidade; e (v) segurança. Além desses, menciona ainda alta
disponibilidade, predição e facilidade de integração.
A figura 2.5 ilustra a arquitetura de referência WSO2 e suas diferentes camadas,
sendo duas delas transversais as outras. A camada inferior é composta pelos objetos físi-
cos (devices), que para serem considerados dispositivos IoT, devem possuir comunicação
com a Internet de forma direta ou indireta. Na forma direta, o dispositivo IoT possui
em seu hardware uma interface comunicação, como WiFi ou Ethernet, que permite que
o dispositivo faça parte da Internet. Na forma indireta, o dispositivo IoT se comunica
com um dispositivo intermediário, e este é o responsável pela comunicação com a Inter-
net. Esse é o caso, por exemplo, das etiquetas RFID, de dispositivos ZigBee, Bluetooth e
6LowPAN. Ainda, cada dispositivo IoT deve ter um identificador único (local ou global).
É recomendado que cada dispositivo, além de seu identificador único, possua um token
OAuth2 Refresh/Bearer como identificador auxiliar. O Bearer token pode ser repassado a
qualquer servidor, ou serviço, que exija um processo de autenticação.

Figura 2.5: Arquitetura de Referência WSO2 [Fremantle 2015].

A camada seguinte é a de comunicação que tem por objetivo fornecer conectivi-


dade à Internet para os dispositivos IoT. A proposta indica o uso de três protocolos: (i)
HTTP/HTTPS, com possibilidade de usar a abordagem REST; (ii) MQTT 3.1/3.1.1, e
(iii) CoAP. Entretanto, a recomendação é pelo emprego do HTTP e MQTT. O protocolo
de aplicação HTTP é bastante difundido e existem muitas implementações disponíveis
na forma de bibliotecas. Além disso, como ele é um protocolo simples, baseado em
mensagens de requisições e resposta em texto (ASCII), mesmo dispositivos com baixa
5
http://wso2.com
capacidade de processamento e memória podem suportá-lo. A notar que a maioria das
vezes, apenas os métodos GET e PUT do HTTP são necessários a um dispositivo IoT. Já
a opção pelo MQTT é motivada pelo fato de que, como ele já era amplamente utilizado
em soluções de telemetria e M2M, ele já possui um tempo de adoção, uma quantidade de
bibliotecas disponíveis que o implementam, e uma facilidade para integração com siste-
mas já existentes de coleta de eventos. Como visto anteriormente, o MQTT executa sobre
o protocolo de transporte TCP, embora haja uma versão sobre o protocolo UDP (MQTT-
SN), e segue um modelo publish-subscriber. A desvantagem do MQTT fica por conta
da necessidade de haver um broker. Mas, mesmo a necessidade do broker pode ser vista
com uma vantagem, pois, tanto quem gera eventos (publishers), como os consumidores
desses eventos (subscriber), iniciam conexões TCP para o broker para realizar o envio ou
a leitura de dados. Essa característica evita o contato direto entre publishers e subscribers
contornando eventuais problemas relacionados a firewalls e emprego de NAT, pois o bro-
ker pode ficar em um local externo as redes dos dispositivos e dos clientes, atuando como
um servidor na nuvem, por exemplo.
Na arquitetura de referência WSO2, a camada de agregação/barramento assume
importância fundamental por três razões. Primeira, é ela quem deve implementar um
servidor HTTP, ou um broker MQTT, para permitir a comunicação com dispositivos.
Segundo, a capacidade de agregar e combinar informações de diferentes dispositivos e
encaminhá-los a um determinado equipamento. E, por fim, realizar, se necessário, o papel
de gateway convertendo mensagens MQTT para requisições HTTP, e vice-versa, servindo
como um meio de ligação entre dispositivos que executam diferentes protocolos. Além
dessas funções, cabe a camada de agregação atuar como um servidor OAuth2, validando
bearer tokens e realizando controle de acesso baseado em políticas (Policy Enforcement
Point - PEP). Nesse modelo, a camada de agregação/barramento faz requisições para a
camada de identidade e gerenciamento de controle de acesso para validar as requisições
de acesso aos dispositivos e seus recursos.
A camada de processamento de eventos e análise é responsável por recuperar in-
formações (eventos) da camada de agregação/barramento e tratá-las. Um dos pontos-
chave dessa camada é o armazenamento de informações em um banco de dados que pode
ser do tipo relacional, com acesso cliente-servidor, ou orientado a tecnologias Bigdata,
como o Hadoop ou, ainda, de sistemas de análise em tempo real como o Storm.
A camada superior, comunicação externa com cliente, é responsável por permitir
que o sistema seja acessado por equipamentos e serviços externos a solução, o que inclui
três abordagens principais. A primeira é por painéis de visualização e monitoramento
(dashboards) que oferecem, através de gráficos e técnicas de zoom, diferentes visões para
análise de eventos e tomada de decisões. A segunda maneira é com o emprego de inter-
faces de programação de bibliotecas de comunicação, como sockets e outras, permitindo
que se faça uma comunicação direta através da rede. Por fim, através da criação de por-
tais Web. A proposta recomenda o uso de portais Web devido a variedade de tecnologias
existentes para implemetá-los.
Por fim, as duas camadas transversais, gerenciamento de dispositivos e gerencia-
mento de identidade e de acesso. O objetivo da camada de gerenciamento de dispositivo é
prover mecanismos para permitir a configuração remota desses dispositivos, como a insta-
lação de imagens de sistemas e parametrização; que auxiliem na realização de inventários
(hardware e software); que monitorem o funcionamento do dispositivo; que forneçam
informações sobre sua disponibilidade e localização; que auxiliem na determinação de
controles de segurança e identidade, entre outros. Esses mecanismos são implantados
com o emprego de dois componentes, um servidor e um agente que executa no próprio
dispositivo. Já a camada de gerenciamento de identidade e de acesso é responsável por
prover mecanismos de autenticação e autorização para que os recursos sejam acessados
apenas por quem tiver esse direito. Para isso, a proposta WSO2 recomenda o emprego de
sistemas de diretório, o uso de sistemas como OpenID connect, SAML2, entre outros.

2.7.3. Exemplos de Middlewares para IoT e WoT


Os middlewares para IoT e WoT, além de endereçarem o problema de heteroge-
neidade, servem para auxiliar o desenvolvimento de aplicações resolvendo uma série de
problemas relacionados aos sistemas distribuídos. Atualmente, há uma boa quantidade
disponível de middlewares e frameworks para IoT, alguns desses integrados a produtos e
soluções proprietárias, outros seguindo uma filosofia de código aberto. Alguns middlewa-
res são criados para atender um nicho específico de mercado. Esta seção tem por objetivo
listar alguns dos ambientes mais conhecidos.
Inicialmente, há middlewares criados para tratar dados em tempo real como Jas-
per6 e Xively7 , que oferecem uma série de primitivas para tratar “coisas” que devem
interagir entre si. A Libelium8 , empregada em soluções que capturam dados dos mais
diferentes tipos e os integram em soluções de ambientes inteligentes, logística e trans-
porte, entre outras. A Carriots9 , que como as anteriores, utiliza serviço de nuvem para
gerenciar os dados fornecidos por dispositivos IoT, além de permitir que eles interajam
entre si e com outros sistemas. Atualmente, muitas companhias de grande porte e startups
oferecem soluções para plataformas (middlewares) IoT. Apesar de serem soluções propri-
etárias e, por isso, a exceção de Carriots, não haver muitas informações relacionadas a
usa organização interna, esses middlewares tem em comum o uso do protocolo MQTT e
da API REST.
Existem iniciativas que buscam colocar uma inteligência maior nos middlewares
de IoT como, por exemplo, o Watson10 , que combina técnicas de inteligência artificial,
aprendizado de máquinas, informações de contexto e processamento de linguagem natural
com a IoT tradicional. Outro middleware interessante de mencionar é o WSO2, que
pode ser considerada uma instanciação da arquitetura de referência vista anteriormente, e
que foi desenvolvida em Java, seguindo as especificações OGSI (Open Service Gateway
Initiative).
Há ainda middlewares que foram desenvolvidos em ambientes acadêmicos e que
seguem uma filosofia de código aberto. Um desses é o OpenIoT11 que reune conceitos de
computação em nuvem com aqueles da IoT fornecendo a ideia de Sensing-as-a-Service.
Outros exemplos são o RestThing [QIN 2011], criado com o objetivo de facilitar a in-
tegração de sensores a aplicações Web, e o WoTEnabler. Por fim, o projeto openHab12 ,
que fornece um framework para automação residencial integrando uma série de sensores
e objetos conectados (dispositivos IoT) independente de fabricante.

6
https://www.jasper.com/
7
https://xively.com/
8
http://www.libelium.com
9
http://www.cariots.com
10
http://www.ibm.com/internet-of-things
11
http://www.openiot.eu
12
http://www.openhab.eu
2.8. Desafios e oportunidades

A popularização da IoT traz consigo uma série de desafios que variam desde ques-
tões sociais a tecnológicas, passando por aspectos ambientais, e que devem ser tratados
adequadamente. Do ponto de vista social, as principais preocupações estão relacionadas
com a privacidade e a segurança. Por exemplo, aplicativos baseados em geolocalização
dizem muito a respeito de hábitos de consumo, de trajetos usuais, de locais visitados, etc.
Essas informações podem ser usadas para finalidades diversas da original, como envio de
propagandas não desejadas, até ações mais graves como chantagens e violações de segu-
rança física e patrimonial. A questão do armazenamento e sigilo dos dados é essencial.
Os dados da IoT trafegam em infraestruturas públicas de comunicação e, muitas vezes,
são armazenados por terceiros. Assim, quais são as garantias quanto ao acesso a essa
informação ou, ainda, que elas dizem respeito realmente a um determinado usuário? Ima-
gine a divulgação, ou troca, de dôssiers médicos? Muitas das preocupações nesse sentido
iniciam com aspectos de legislação legal que, ainda por cima, variam de país para país.
A proliferação de dispositivos IoT, principalmente devido a vários deles serem de
baixo custo, causa um problema ambiental relacionado ao descarte de lixo eletrônico.
Soma-se a isso, as baterias e pilhas usadas. Outro aspecto fundamental, é que se tornou
necessário manter as pessoas e dispositivos conectados, implicando em infraestruturas de
rede disponíveis todo tempo e com boa capacidade de banda passante. Essa necessidade
se traduz em investimento em backbones, em instalações físicas, em equipamentos, o que
reflete diretamente em consumo de energia e todos os problemas decorrentes do uso de
uma determinada matriz energética como as usinas nucleares, termodinâmicas e hidroelé-
tricas. Isso sem contar com o impacto ambiental provocado pelos sistemas de transmissão
de energia. Assim, há uma série de desafios relacionados com o uso de energia limpa e
com dispositivos de baixo consumo. Não que aspectos sociais e ambientais não sejam
importantes, muito antes pelo contrário, mas no contexto deste capítulo, os aspectos tec-
nológicos assumem um ponto relevante de discussão.
Inicialmente, para que os sistemas baseados em soluções IoT possam funcionar de
maneira eficiente é interessante imaginar novos protocolos de comunicação para a camada
mais inferior, ou seja, a dos dispositivos IoT. Muitos protocolos de controle de acesso ao
meio físico foram desenvolvidos até hoje, como TDMA, FDMA e CSMA, entre outros.
No entanto, nenhum deles é completamente aceito como uma solução definitiva, haja
visto, a quantidade de dispositivos IoT que podem existir. Questões como eficiência ener-
gética, para economia de bateria, encaminhamento e roteamento de dados, escalabilidade
e interferências, são diretamente afetadas em um cenário IoT. Além disso, em vários apli-
cações, os smartphones tem se tornam nodos IoT enviando dados para soluções baseadas
em computação em nuvem. Somente a identificação e endereçamento desses disposi-
tivos já é um problema. Soma-se a isso outros aspectos como definir proprietário dos
dados, privacidade, autenticidade e validade dos dados. Assim, mesmo com o advento do
IPv6, que poderia resolver o problema de identificação e endereçamento, muitos dessas
questões não foram devidamente trabalhadas, o que abre a possibilidade para pesquisas
acadêmicas e o desenvolvimento de novas tecnologias de comunicação.
Uma das aplicações mais promissoras da IoT é a criação de ambientes inteligentes,
mais especificamente, as cidades inteligentes. A implementação desse tipo de aplicação,
exige, tipicamente, a integração de serviços oferecidos por vários, e distintos, fornece-
dores; a capacidade de suportar uma grande quantidade de usuários; operar tanto com
dispositivos wireless como com equipamentos em redes cabeadas; e, ter uma grande dis-
ponibilidade, isso é, “estar no ar” o tempo todo. Uma forma para obter isso é com do uso
da computação em nuvem, pois facilita o atendimento desses requisitos através de seus
datacenters distribuídos e pela oferta de carga computacional por demanda. No entanto,
as soluções em nuvem necessitarão melhorar os tempos para a instanciação de recursos e
prover modelos de serviços (Service as a Service-SaaS) adequados aos dispositivos com
poderes computacionais distintos. Entre os desafios, estão o uso de algoritmos que aten-
dam requisitos de tempo real de algumas aplicações e mecanismos de tolerância a falhas.
A escalabilidade da IoT é outro desafio importante. Além da própria questão de
atender um grande número de clientes, há outra: “qual o padrão e o impacto de tráfego
que a IoT imporá na Internet atual?”. No passado, já assistimos a questões similares com
o surgimento das redes peer-to-peer e com a alteração de padrão de tráfego de e-mail para
HTTP, e, depois, para as redes sociais. O tráfego do IoT ainda tem suas particularidades
como gerar áreas de dados pequenas, ter desconexões em função das capacidades dos
dispositivos, áreas de sombra, etc. Ainda, com o crescimento exponencial dos dispositivos
IoT, há também um aumento no volume de dados gerado. Essa quantidade de informação
precisa ser gerenciada, e surgem vários pontos a serem considerados: Até quando um
dado será útil e deverá ser armazenado? Qual a garantia da veracidade dessa informação?
Que informação relevante pode ser obtida a partir desse volume de dados? Essas questões,
entre outras, podem ser respondidas com o auxílio da área de grande volume de dados
(Bigdata) e devem ser consideradas em soluções IoT.
Por fim, para concluir esta seção, a questão de segurança e privacidade. Aqui vem
todos os desafios já tradicionais relacionados com privacidade, autenticidade e integri-
dade dos dados, além da disponibilidade. No entanto, essas questões são ampliadas em
ambientes IoT. Inicialmente, simplesmente por uma questão de estatística, quanto mais
equipamentos houver na Internet maior a probabilidade que um deles tenha uma vulne-
rabilidade qualquer, seja pela não atualização adequada de seu sistema ou pela falta de
cuidado de um usuário. Além disso, os dispositivos IoT, por serem nós com baixa ca-
pacidade computacional, podem ter dificuldades para executar algoritmos de cifragem e
outros mecanismos de segurança desenvolvidos para sistemas de maior porte. Sabe-se
ainda que a segurança de um sistema como um todo é dado pela fragilidade de seu elo
mais fraco e isso, no mundo IoT, pode vir a ser um grande problema. A possibilidade
de cyber-ataques físicos, como aquele ocorrido com o Jeep Cherokee13 , na metade do
segundo semestre de 2015, expõe um perigo potencial do mundo IoT. Outro ponto, é a
questão de autenticação de usuários para acessar serviços. Isso, em grande parte das ve-
zes, implica na existência de senhas e essas, que foram criadas para dar mais segurança
a um serviço, acabam se tornando um ponto falho. É muito comum se encontrar senhas
fracas, anotadas em papel ou em arquivos em equipamentos não seguros.
Apesar do que foi apresentado neste capítulo a respeito de protocolos e de arqui-
teturas de referência, a padronização ainda resta como um desafio a ser enfrentado. Essas
iniciativas representam, de certa forma, esforços isolados de certas comunidades. Dada a
abrangência de aplicações IoT é necessário ainda que haja convergência entre os vários
padrões existentes para garantir a interoperabilidade dos dispositivos e aplicações. Falta,
ainda, por exemplo, padrões que auxiliem na governança dos dispositivos IoT, ainda mais
que, muito deles, são equipamentos de uso pessoal, como os smartphones. E isso também
traz impactos importantes no aspecto segurança da informação.

13
https://blog.kaspersky.com/blackhat-jeep-cherokee-hack-explained/9493/
2.9. Conclusão

A Internet das Coisas, ou IoT, interconecta pessoas, objetos do mundo real, a apli-
cações e dados, oferecendo uma variada gama de serviços que trazem conforto, qualidade
de vida e oportunidade de negócios. A IoT se tornou um mercado emergente com alto
potencial pois, pode-se imaginar uma série de aplicações, nas mais diversas áreas do co-
nhecimento humano e, principalmente, no quotidiano das pessoas.
O suporte para a implementação de soluções baseadas em IoT inicia pela exis-
tência de objetos inteligentes, pelo desenvolvimento e disponibilidade de uma gama de
sensores e, fundamentalmente, pela expansão e uso da Internet. A medida que se tem,
cada vez mais, objetos inteligentes interconectados há uma geração massiva de informa-
ções que precisa ser armazenada, processada e disponibilizada. As soluções atuais para
tratar essa necessidade apontam para o uso de computação de nuvem, onde os recursos
computacionais podem ser obtidos por demanda, e a disponibilidade dessas informações
é garantida pela infraestrutura redundante dos data centers dos grandes provedores de
solução de nuvem. A análise dos dados, retirando informações relevantes de um grande
volume de dados, nos orienta para o emprego de tecnologias da área de Bigdata.
A proliferação dos dispositivos IoT gera uma série de desafios tecnológicos, de
legislação e comportamentais. Os pontos fundamentais estão relacionados privacidade e
segurança das informações. Da mesma forma, apesar de das diferentes capacidades com-
putacionais dos vários tipos de dispositivos IoT existentes, é desejável que eles interajam
entre si. Surgem então os problemas de heterogeneidade e de disponibilidade que são
tratados com o desenvolvimento de padrões e adoção de middlewares que abstraem uma
série de características físicas. O crescimento exponencial de dispositivos IoT implica,
ainda, em problemas de escalabilidade como aumento do tráfego de dados, armazena-
mento da informação, e processamento de requisições que deêm uma boa experiência de
utilização por parte do usuário final. Muitos desses desafios ainda estão em aberto criando
oportunidades para geração de startups, mercados inovadores e pesquisas acadêmicas.

2.10. Bibliografia

[AKY 2002] AKYILDIZ, I. F. et al. Wireless sensor networks: a survey. Computer


Networks, v.38, p.393–422, 2002.

[ATZ 2010] ATZORI, L.; IERA, A.; MORABITO, G. The internet of things: a survey.
Computer networks, v.54, n.15, p.2787–2805, 2010.

[BER 2001] BERNERS-LEE, T.; HENDLER, J. The semantic web. a new form of
web content that is meaningful to computers will unleash a revolution of
new possibilities. Scientific American Magazine, p.34–43, May 2001.

[COU 2011] COULOURIS, G. et al. Distributed systems: concepts and design.


5th.ed. USA: Addison-Wesley Publishing Company, 2011.

[FRE 2015] FREMANTLE, P. A reference architecture for the internet of things.


WSO2, v.version 0.9.0, 2015.
[GAR 2013] GARTNER. Gartner says the internet of things ins-
talled base will grow to 26 billion units by 2020.
[http://www.gartner.com/newsroom/id/2636073 (acesso em fev. 2016)].

[GUB 2013] GUBBI, J. et al. Internet of things (iot): a vision, architectural elements,
and future directions. Future Generation Computer Systems, v.29, n.7,
p.1645–1660, 2013.

[GUI 2011] GUINARD, D. A web of things application architecture – integrating


the real-world into the web. 2011. Tese (Doutorado em Ciência da Com-
putação) — ETH Zurich, Zurich, Switzerland.

[HOL 2014] HOLLER, J. et al. From machine-to-machine to the internet of things:


introduction to a new age of intelligence. [S.l.]: Academic Press, 2014.

[IOT 2013] IOT-A. Internet of things architecture (iot-a): final architectural refe-
rence model for the iot v3.0. [http://www.iot-a.eu/public (acesso em fev.
2016)].

[MAC 2000] MACKENZIE, C. M. et al. Reference model for service oriented archi-
tecture 1.0. [http://docs.oasis-open.org/soa-rm/v1.0/soa-rm.pdf/ (acesso
em fev. 2016)].

[QIN 2011] QIN, W. et al. Restthing: A restful web service infrastructure for mash-
up physical and web resources. In: IEEE/IFIP 9TH INTERNATIONAL
CONFERENCE ON EMBEDDED AND UBIQUITOUS COMPUTING,
EUC 2011, MELBOURNE, AUSTRALIA, OCTOBER 24-26, 2011,
2011. Anais. . . [S.l.: s.n.], 2011. p.197–204.

[SOL 2014] SOLDATOS, J. et al. Design principles for utility-driven services and
cloud-based computing modelling for the internet of things. Int. J. Web
Grid Serv., Inderscience Publishers, Geneva, SWITZERLAND, v.10,
n.2/3, p.139–167, Apr. 2014.

View publication stats

Você também pode gostar