Você está na página 1de 9

Machine Translated by Google

HOLOFOTE

Princípios para Engenharia


Sistemas de nuvem IoT

Hong-Linh Truong e Schahram Dustdar, Universidade de Tecnologia de Viena

Este artigo convidado explora como os sistemas de nuvem da Internet das


Coisas (IoT) podem fornecer uma camada de software coerente para implantação,
provisionamento e execução contínua de aplicativos para vários domínios.

Recentemente, vimos uma ampla adoção e Os elementos IoT (sensores, atuadores, gateways,
implantação de infraestruturas e sistemas de aplicativos leves e assim por diante) são desenvolvidos,
Internet das Coisas (IoT) para várias implantados e operados separadamente dos serviços em nuvem
aplicações cruciais,1 como logística, cidades (como armazenamento e processamento de dados). Devido à
inteligentes2 e saúde. Isso levou a altas complexidade dos ecossistemas de software, os provedores de
demandas de serviços de armazenamento, IoT são cada vez mais diferentes dos provedores de nuvem em
processamento e gerenciamento de dados em datacenters relação a protocolos de comunicação, camadas de software e
baseados em nuvem, gerando fortes necessidades de integração modelos de provisionamento, para citar apenas alguns. Além
entre IoT e serviços em nuvem. Os serviços em nuvem são disso, embora os serviços em nuvem, como balanceadores de
maduros e fornecem excelentes recursos de computação carga, middleware orientado a mensagens, armazenamento
elástica e gerenciamento de dados para IoT. Além disso, à NoSQL e estruturas de processamento de dados de streaming,
medida que os sistemas de IoT se tornam complexos, as sejam projetados para aceitar cargas de trabalho e dados da
técnicas de gerenciamento de nuvem são cada vez mais IoT, eles carecem de recursos para serem coordenados com as operações
empregadas para gerenciar componentes de IoT. Por exemplo, a maioria dos serviços em nuvem monitora de
Assim, os serviços em nuvem agora atuam como plataformas forma reativa a carga da IoT e ajusta seu comportamento de
computacionais e de processamento de dados, bem como desempenho, mas raramente se comunica de volta aos
plataformas de gerenciamento para IoT. De uma visão de alto elementos da IoT para direcionar a carga gerada pela IoT.
nível, a IoT parece estar bem integrada aos datacenters em Existem várias razões para esses problemas. Nuvem
nuvem para estabelecer uma infraestrutura uniforme para serviços e IoT são criados separadamente por provedores de
aplicativos de nuvem IoT. No entanto, as camadas de software nuvem e provedores de IoT. Além disso, a complexidade dos
sobre essas infraestruturas integradas ainda estão fragmentadas ecossistemas de IoT e nuvem impede que uma única parte
e, portanto, longe de uma camada de software uniforme para interessada ofereça software que funcione bem em sistemas
suportar um ambiente de execução coerente para aplicativos de nuvem IoT. Esses problemas nos impedem de desenvolver
complexos. e operar sistemas de nuvem IoT em um co

68 IEEE CLOUD COMPUTING PUBLICADO PELA IEEE COMPUTER SOCIETY 2325-6095/15/$31,00 © 2015 IEEE
Uso licenciado autorizado limitado a: Universidad Federal de Pernambuco. Baixado em 05 de novembro de 2020 às 18:54:09 UTC do IEEE Xplore. Restrições aplicadas.
Machine Translated by Google

SISTEMAS DE NUVEM IOT : ALGUMA ENGENHARIA


PRINCÍPIOS

aqui estão várias maneiras de integrar a Internet de Workshop Internacional Sem Fio e Tecnologias Móveis
Coisas (IoT) elementos (como sensores, atuadores, para Cidades Inteligentes (WiMobCity 14), 2014, pp. 61–66.
e gateways) e serviços em nuvem em datacenters,1 nos 2. PP Pereira et al., “Enabling Cloud Connectivity for Mobile
quais várias “coisas” são conectadas a esses serviços Internet of Things Applications,” Proc. IEEE 7th Int'l Symp.
usando software e protocolos em camadas.2,3 Diversas Eng. de Sistemas Orientados a Serviços. (SOSE 13), 2013,
plataformas de IoT, como o Pacifi cControls Galaxy (http://pacifi pp. 518–526.
ccontrols.net/ products/galaxy.html) e xively (https://xively.com), 3. F. Bonomi et al., “Fog Computing and Its Role in the Internet
também foram desenvolvidos.4 Nessas plataformas de IoT, of Things,” Proc. 1ª Edição do MCC Workshop sobre Mobile
sensores e atuadores são conectados e/ou acessíveis a partir Cloud Computing (MCC 12), 2012, pp. 13–16.
de datacenters por meio de gateways ou nós intermediários.
4. H.-L. Truong e S. Dustdar, “Dados de Sustentabilidade e
Ivana Podnar Zarko e seus colegas descrevem um Análise em Sistemas M2M Baseados em Nuvem,” Big Data
middleware para adicionar e remover dinamicamente sensores e Internet das Coisas: Um Roteiro para Ambientes
de e para uma plataforma IoT abrangendo redes móveis e Inteligentes, N. Bessis e C. Dobre, eds., Estudos em
infraestruturas de nuvem.5 Em geral, a maioria dos trabalhos Inteligência Computacional, vol. 546, Springer, 2014, pp.
suporta o desenvolvimento de elementos de IoT ou serviços de 343–365.
nuvem para IoT; sistemas uniformes de nuvem de IoT que 5. I. Zarko et al., “IoT Data Management Methods and
combinam serviços de IoT e nuvem para fornecer um ambiente Optimization Algorithms for Mobile Publish/Sub scribe
de execução coerente para aplicativos complexos ainda estão Services in Cloud Environments,” Proc. Conf. Eu ropeia.
longe de estarem maduros. Redes e Com. (EuCNC 14), 2014, pp. 1–5.
Embora vários princípios tenham sido estudados para
elasticidade de computação em nuvem,6 engenharia de 6. S. Dustdar et al., “Principles of Elastic Processes,”
software em nuvem7 e sistemas ciberfísicos,8 não vimos IEEE Internet Computing, vol. 15, não. 5, 2011, pp. 66–71.
tais princípios para camadas de software de engenharia sobre
sistemas de nuvem IoT que oferecem uma visão uniforme sobre 7. VD Cunsolo et al., “Applying Software Engineering Principles
desenvolvimento, implantação, provisionamento e operação de for Designing Cloud@Home,” Proc. 10ª IEEE/ ACM Int'l
aplicativos de nuvem IoT. Conf. Cluster, nuvem e computação em grade (CCGrid 10),
2010, pp. 618–624.
Referências 8. M. Broy e A. Schmidt, “Desafios na Engenharia de Sistemas
1. R. Petrolo, V. Loscrí e N. Mitton, “Rumo a uma cidade Ciber-Físicos,” Computer, vol. 47, nº. 2, 2014, pp. 70–72.
inteligente baseada na nuvem de coisas”, Proc. ACM

forma coerente sobre infra-estruturas que conjugam vários Uma forte integração entre IoT e serviços em nuvem permite
tipos de recursos. Portanto, é difícil controlar e gerenciar os a coordenação entre IoT e serviços em nuvem.
serviços IoT e de nuvem como uma camada de software Ou seja, um serviço de nuvem pode solicitar a um serviço de
uniforme (consulte a barra lateral “Sistemas de nuvem IoT: IoT, que inclui vários elementos de IoT, para reduzir a
alguns princípios de engenharia” para obter mais informações). quantidade de dados de detecção ou o serviço de IoT pode
No entanto, uma maior integração entre a IoT e os solicitar aos serviços de nuvem que preparem mais recursos
serviços de nuvem, bem como aplicativos complexos para futuros dados recebidos. Considere o exemplo de um
emergentes, exigem uma visão uniforme da camada de sensor de dados como um serviço que consiste em várias
software sobre esses elementos combinados de IoT e serviços decentenas
nuvem. de sensores monitorando refrigeradores prediais.3 Implantamos tal

MARÇO/ABRIL 2015 IEEE COMPUTAÇÃO EM NUVEM 6 9

Uso licenciado autorizado limitado a: Universidad Federal de Pernambuco. Baixado em 05 de novembro de 2020 às 18:54:09 UTC do IEEE Xplore. Restrições aplicadas.
Machine Translated by Google

HOLOFOTE

(Parcial) Aplicativos de nuvem IoT


Middleware de domínio

verticali
Aplicativo Middleware de domínio verticali

de domínio
Gerenciamento
vertical e middleware Gerenciamento
de execução Gerenciamento Gerenciamento de
Gerenciamento
de armazenamento
de conectividade em nuvem
de aplicativos de ponto de dados ponto de controle

Máquina virtual/
Contêiner de máquina virtual/SO contêiner do sistema operacional

Sistemas operacionais Ambiente definido por software para domínio Bloco de construção Bloco de construção Bloco de construção

de uso geral vertical comum do sistema operacional comum do sistema operacional comum do sistema operacional

Driver de dispositivo Driver de dispositivo Driver de dispositivo


driver de rede Driver de armazenamento
de campo de campo de campo

hardware
Rede e armazenamento

módulo de módulo de módulo de


Ethernet 3G … campo OEM campo OEM campo OEM

Sistemas Máquinas definidas por


em nuvem software Dispositivos de campo Dispositivos de campo Dispositivos de campo

Sensores/atuadores

FIGURA 1. Parte da máquina definida por software (SDM) para a Internet das Coisas (IoT), que inclui infraestruturas e elementos de IoT implantados próximos às “coisas” (na borda, mas não no

datacenter).

serviço na parte IoT, que inclui infraestruturas e elementos Elevando a pilha de software IoT para sistemas
IoT implantados próximos às “coisas” (na borda, mas não de nuvem IoT Até o momento, certas partes do
no datacenter), pré-configurando as taxas de leitura de sistema de nuvem IoT, como redes e serviços de nuvem,
dados dos sensores e ativando apenas um subconjunto de podem ser razoavelmente bem controladas, mas os
sensores. Os sensores ativados enviam dados de elementos de IoT não. Análoga aos serviços de nuvem em
monitoramento para os serviços de nuvem, que processam datacenters, que podemos facilmente selecionar, combinar
e implantar para fornecer uma plataforma adequada para um
os dados de streaming para verificar os comportamentos do chiller.
Essa análise de dados pode fornecer resultados determinado aplicativo ou domínio, a pilha de software para
adequados para sinalizar algum comportamento anormal. serviços de IoT deve oferecer suporte à virtualização e
Para obter análises de alta precisão, do lado da nuvem, composição. O princípio-chave que queremos apoiar aqui é
poderíamos ativar mais sensores e aumentar as taxas de engenharia e elasticidade contínuas de ponta a ponta. Para
leitura dos sensores em tempo real. Mas, se essa ação elevar a pilha de software IoT a uma abstração adequada,
não for coordenada com o controle dos serviços em nuvem, poderíamos construir uma máquina definida por software
esses serviços podem não reagir rapidamente para lidar (SDM) compondo diferentes unidades IoT. Nesse contexto,
com uma quantidade repentina e volumosa de dados um SDM é semelhante a uma pequena infraestrutura de
recebidos. Por exemplo, pode levar vários minutos para nuvem na qual implantamos diferentes unidades de IoT e
adquirir e instanciar novos recursos de computação para realizamos configuração dinâmica e controle dessas unidades
serviços em nuvem; em outras palavras, o suporte de em tempo de execução.
elasticidade em nuvens pode não atender às nossas Como mostra a Figura 1, o SDM para IoT tem três
necessidades.4 Nessa perspectiva, precisamos de uma camadas de software e hardware. Na parte inferior do SDM
maneira diferente de programar, controlar e gerenciar estão configurações flexíveis e ricas de hardware para
serviços de IoT e nuvem de maneira dinâmica e flexível. suportar rede (nuvem), permitindo

70 COMPUTAÇÃO EM NUVEM IEEE WWW.COMPUTER.ORG/CLOUDCOMPUTING

Uso licenciado autorizado limitado a: Universidad Federal de Pernambuco. Baixado em 05 de novembro de 2020 às 18:54:09 UTC do IEEE Xplore. Restrições aplicadas.
Machine Translated by Google

Serviços de IoT para alternar entre dispositivos de hardware de comunicação APIs. Os aplicativos explorarão todos os outros recursos do domínio
que suportam redes definidas por software (SDN) para diferentes cargas. O vertical.

armazenamento deve nos permitir conectar diferentes dispositivos de • O gerenciamento de datapoint permite que os aplicativos criem,
armazenamento. mesclem, leiam e gravem os fluxos de dados de que precisam.
Finalmente, os módulos de dispositivos de campo OEM nos permitem Os fluxos de dados são baseados em dados do dispositivo de campo

integrar facilmente diferentes dispositivos de campo (como sensores e motoristas. De uma perspectiva de programação, um ponto de dados
atuadores) que possuem diferentes interfaces de dispositivo e protocolos de é uma abstração com APIs definidas por software para suportar
comunicação. operações de fluxo de dados (como reduzir ou aumentar a taxa de
Na camada intermediária, os sistemas operacionais de uso geral com leitura de dados). • O gerenciamento do ponto de controle nos permite
recursos de virtualização incluem blocos de construção comuns para o explorar recursos definidos por software para controlar dispositivos de
sistema operacional e novos blocos de construção. campo e suas conexões com o SDM. Para

Os drivers de rede fazem interface com o hardware de rede e podem por exemplo, o aplicativo pode usar o gerenciamento de ponto de
ser usados para controlar e gerenciar a rede em nuvem em tempo de controle para desconectar um dispositivo de campo do SDM ou para
execução. Os drivers de rede junto com o hardware de rede em nuvem aumentar a taxa de leitura de um dispositivo de campo
em tempo de execução.
atuam como um roteador definido por software,5 que pode ser programado
para controlar protocolos de comunicação, interfaces e assim por diante. Os
dados roteados deste hardware podem ir para outro SDM ou para serviços A partir do middleware, vários domínios verticais podem ser implantados e

em nuvem. provisionados em um SDM usando um ambiente definido por software para


o vertical do

Os drivers de armazenamento e o armazenamento subjacente nos a Principal. Quando um SDM é realizado com recursos de virtualização e

permitiriam armazenar dados em um SDM localmente ou diretamente no composição, como serviços em nuvem, podemos nos concentrar em

armazenamento em nuvem. A questão importante aqui é que, ao armazenar questões de engenharia para sistemas de nuvem IoT coerentes.

dados no armazenamento SDM usando APIs definidas por software,


podemos configurar se desejamos armazenar os dados localmente ou
encaminhá-los para outro SDM ou serviço de nuvem. Perspectivas de engenharia para nuvem IoT coerente
Sistemas
O ambiente definido por software para um ambiente virtual Ao levantar a pilha de software de IoT (por exemplo, usando o conceito
domínio nos permite criar e lançar vertical do main middleware e seus SDM), poderíamos unir várias infraestruturas e software de IoT e nuvem

serviços e aplicações. para criar

Um middleware de domínio virtual incluiria um contêiner leve de máquina Sistemas de nuvem IoT. A Tabela 1 mostra possíveis hardwares, serviços

virtual/sistema operacional, além de muitos componentes personalizados de software e protocolos que poderíamos usar para construir um sistema de

para o domínio do aplicativo. nuvem IoT.


Embora os sistemas de nuvem IoT consistam em diferentes tipos de

Na camada superior, foco do nosso trabalho, o middleware de infraestruturas, os desenvolvedores de software e provedores de serviços
domínio vertical é um sistema de software que inclui diversos componentes esperariam ver técnicas de engenharia uniformes porque desenvolveriam e

executados em cima de uma máquina virtual ou contêiner de sistema operariam seu software em uma camada de software uniforme.

operacional. Ele consiste em cinco blocos de construção principais:


Um sistema de nuvem IoT que permite uma camada de software em
infraestruturas de nuvem e IoT para clientes

• O gerenciamento de conectividade em nuvem fornece APIs que o Os usuários devem suportar as seguintes funções.

aplicativo usa para explorar recursos de SDN na lógica do aplicativo.


Por exemplo, o aplicativo pode decidir mudar de banda larga para Engenharia e otimização de ponta a ponta. Os desenvolvedores devem
comunicação móvel dentro de sua lógica de aplicativo em tempo de ser capazes de desenvolver e otimizar o código em uma visão de ponta a
execução. • O gerenciamento de armazenamento permite que os ponta, e os provedores devem considerar as propriedades de ponta a ponta.
aplicativos armazenem dados local ou remotamente de maneira Por exemplo, ao compor componentes para projetar um aplicativo de nuvem
simples e unificada. IoT, devemos ser capazes de selecionar sensores, gateways, middleware
orientado a mensagens (MOM), balanceadores de carga e assim por diante.
A configuração de onde os dados são armazenados deve ser feita por Também precisamos criar topologias adequadas desses componentes e
meio de APIs definidas por software. implantá-los da mesma maneira, embora os componentes sejam executados
• O ambiente de execução de aplicativos executa e gerencia aplicativos em diferentes partes dos sistemas de nuvem IoT e precisemos de várias
específicos sobre um SDM. técnicas subjacentes para dar suporte
Os aplicativos podem ser implantados, executados, interrompidos e
assim por diante em tempo de execução com base em software definido

MARÇO/ABRIL 2015 IEEE COMPUTAÇÃO EM NUVEM 7 1

Uso licenciado autorizado limitado a: Universidad Federal de Pernambuco. Baixado em 05 de novembro de 2020 às 18:54:09 UTC do IEEE Xplore. Restrições aplicadas.
Machine Translated by Google

HOLOFOTE

Tabela 1. Amostra de infraestrutura, protocolos e plataformas de software para estabelecer um sistema de nuvem da Internet das Coisas
(IoT).
tipos IoT Nuvens Propósito
Máquinas de Gateways industriais e comuns (por exemplo, Máquinas virtuais e contêineres de sistema operacional Habilitar máquinas (virtuais) onde
infraestrutura Intel IoT Gateway) e contêineres de sistema o software
operacional (como componentes serão
estivadores) executados

Protocolos de Transporte de telemetria da fila de mensagens MQTT, enfileiramento de mensagens avançado Habilite a conectividade
conectividade (MQTT), Aplicação Restrita Protocolo (AMQP), HTTP e assim por diante entre os elementos IoT e
Protocolo (CoAP), HTTP, barramento de rede de entre a parte IoT e os serviços
área de controle (CAN) em nuvem

Software Serviços de dados leves (como NiagaraAX/ Balanceadores de carga (como HAProxy), Habilite os principais serviços
de plataforma Obix), processamento leve de eventos middleware orientado a mensagens (MOM) (como da plataforma para IoT e
Serviços complexos (CEP) e fusão de dados, descrição de ActiveMQ e Kafka), NoSQL, processamento de fluxo/ tarefas na nuvem

topologia e serviço de implantação (como lote (como Hadoop e Spark), repositórios/mercados de


componentes e serviços de implantação (como TOSCA,
TOSCA) e contêineres de aplicativos leves (como CALOR e Chef)
OSGI e Sedona)

isto. Mesmo que forneçamos esses componentes em locais • A fase de desenvolvimento inclui técnicas para selecionar,
diferentes, o operador de tais aplicativos se concentraria nos compor e integrar componentes no sistema de nuvem
objetivos de serviço de ponta a ponta, em vez de apenas nas IoT para especificar e desenvolver possíveis operações
propriedades locais de componentes específicos ou partes de governança e controle. • A fase de implantação e
dos aplicativos na nuvem ou na infraestrutura de IoT. provisionamento inclui técnicas para implantação de
vários tipos de componentes de software no sistema de
nuvem IoT em diferentes níveis de abstrações; e recursos
Simbiose de desenvolvimento e produção. Os sistemas de para configurar e conectar implantações e permitir o
nuvem IoT são complexos. Depois de implantar esses provisionamento contínuo.
sistemas, podemos alterar a configuração, mas uma
reconfiguração não deve interromper todos os componentes
em execução no sistema. Portanto, devemos desenvolver, • A fase de operação inclui recursos para monitorar métricas
implantar e operar sistemas de nuvem de IoT enquanto de ponta a ponta, executar processos de governança em
continuamos a adicionar e testar partes de IoT emuladas ou todos os sistemas e controlar processos de elasticidade
simuladas ou serviços de nuvem junto com os sistemas de coordenados.
nuvem de IoT em execução (produção). Para esse propósito,
as técnicas de engenharia devem oferecer suporte a Em seguida, descrevemos os sete princípios principais
possibilidades de implantação e conexão de partes emuladas para a engenharia de sistemas de nuvem IoT. A Tabela 2
resume como esses princípios suportam as fases do ciclo de
e simuladas de IoT e serviços em nuvem em um sistema em execução.
vida do sistema.
Coerência de elasticidade. Os recursos combinados em um
sistema de nuvem IoT e as demandas de tempo de execução Princípio 1: Habilitar virtualização e composição de
para o sistema de nuvem IoT são altamente dinâmicos. componentes de IoT como unidades. Este princípio está
Princípios de elasticidade serão aplicados em diferentes relacionado com a fase de desenvolvimento. Devido à
partes do sistema de nuvem IoT, mas a elasticidade deve ser diversidade e complexidade da IoT, precisamos de abstrações
coordenada entre IoT e serviços de nuvem para garantir a poderosas para simplificar a integração e configuração dos
coerência.1 Por exemplo, ao aumentar o número de sensores componentes IoT. Devemos permitir a seleção e composição
(elasticidade dos sensores como recursos de dados), nós de elementos de software para os serviços de IoT de vários
deve aumentar da mesma forma os recursos de computação provedores, da mesma forma que fazemos para serviços em
para serviços em nuvem, que processam e armazenam dados do nuvem.
sensor. Assim, aplicamos o conceito maduro de virtualização
e composição de serviços na nuvem às infraestruturas e
Princípios de engenharia para sistemas de nuvem IoT plataformas IoT, possibilitando a aplicabilidade de técnicas e
Os princípios de engenharia para sistemas de nuvem IoT ferramentas de virtualização e composição em todos os
devem suportar as funções que descrevemos ao longo das sistemas IoT cloud. Isso exige novos desenvolvimentos
diferentes fases do ciclo de vida do sistema de nuvem IoT:

72 COMPUTAÇÃO EM NUVEM IEEE WWW.COMPUTER.ORG/CLOUDCOMPUTING

Uso licenciado autorizado limitado a: Universidad Federal de Pernambuco. Baixado em 05 de novembro de 2020 às 18:54:09 UTC do IEEE Xplore. Restrições aplicadas.
Machine Translated by Google

Tabela 2. Resumo dos princípios destacados para engenharia de sistemas de nuvem IoT.

Princípio Fase de desenvolvimento Fase de Fase de De ponta a ponta Desenvolvimento coerência


operação engenharia e e simbiose de de elasticidade
implantação e otimização produção
provisionamento

1 + + + + + +
2 + + +
3 + + + +
4 + + + + + +
5 + + + +
6 + + +
7 + + +

Nota: Um “+” indica que o princípio suporta a perspectiva e a fase listadas.

desenvolvimento do conceito de unidades de serviço para IoT, provedores de infraestrutura, provedores de software e usuários
como unidades de IoT definidas por software.6 Precisamos dessas finais) desenvolverão, venderão e operarão unidades de IoT e
unidades para abstrair pontos de dados de sensores, pontos de nuvem. Equipados com ferramentas de virtualização e composição,
controle de atuadores, conectividade de rede em nuvem e essas partes interessadas podem desenvolver e vender diferentes
gateways de IoT. A virtualização de componentes de IoT também tipos de unidades, que podem ser facilmente oferecidas por meio
permite elasticidade e um modelo de pagamento por uso de de mercados e repositórios de dados/software maduros . maneira
diversos tipos de unidades de IoT para diferentes domínios verticais. uniforme para permitir pagamento por uso, verificações de

compatibilidade e empacotamento de software dinâmico para os


Princípio 2: Habilitar peças de IoT emuladas/simuladas processos de provisionamento.8
trabalhando com serviços de nuvem de produção. Esse
princípio está relacionado tanto à fase de desenvolvimento quanto
à de operação. Embora possamos desenvolver e implantar serviços
em nuvem em sistemas de nuvem IoT inteiramente em Princípio 4: Forneça implantação e configuração de pilha de
infraestruturas de software em nuvem, não podemos fazer o software multinível. Esse princípio está relacionado às fases de
mesmo para partes de IoT em muitos casos. Durante a fase de implantação e provisionamento e operação. Com os recursos
desenvolvimento, é difícil implantar sensores, atuadores e gateways suportados pelos princípios 1 a 3, tanto o sistema de nuvem IoT
reais em um ambiente de larga escala para testar se funcionariam. quanto os aplicativos exigirão implantação sob demanda e
Portanto, as ferramentas de engenharia devem suportar sensores, configuração de diversos tipos de unidades de software.
atuadores e gateways emulados/simulados, promovendo o Obviamente, essas unidades variam de máquinas virtuais,
desenvolvimento simbiótico e ações de engenharia de operação. contêineres de sistema operacional, componentes de conectividade
Por um lado, precisamos desenvolver sensores, atuadores e de rede e sensores a aplicativos leves e serviços de nuvem
gateways emulados/simulados. Esses elementos emulados/ pesados. Qualquer ferramenta de implantação e configuração para
simulados são, em princípio, software real, mas são implantados o sistema de nuvem IoT deve lidar com diferentes camadas de
em ambientes emulados. Por exemplo, centenas de sensores pilha de software. As ferramentas contemporâneas de implantação
podem ser implantados em uma máquina virtual. e configuração, por outro lado, trabalham principalmente com uma
única pilha de software, como implantação estática no nível da
No entanto, esses sensores devem ser capazes de produzir dados máquina virtual ou implantação dinâmica no nível do contêiner do
de sensores realistas e serem controlados por serviços em nuvem. aplicativo.
O uso de dados realistas, sensores emulados de alto nível e
máquinas virtuais leves seria um bom ponto de partida. Esse princípio nos força a combinar diferentes técnicas de
implantação e configuração para fornecer uma pilha cruzada de
software e uma implantação cruzada de infraestrutura.
Princípio 3: Habilitar o provisionamento dinâmico de IoT e
unidades de serviços em nuvem por meio de mercados e Princípio 5: Forneça elasticidade definida por software e
repositórios uniformes para várias partes interessadas. Este funções primitivas de governança para todas as unidades de
princípio está relacionado a todas as fases dos sistemas de nuvem IoT e serviços em nuvem. Este princípio está relacionado ao
IoT em que diferentes partes interessadas (desenvolvedores, em desenvolvimento de sistemas de nuvem IoT e também é fortemente

MARÇO/ABRIL 2015 IEEE COMPUTAÇÃO EM NUVEM 7 3

Uso licenciado autorizado limitado a: Universidad Federal de Pernambuco. Baixado em 05 de novembro de 2020 às 18:54:09 UTC do IEEE Xplore. Restrições aplicadas.
Machine Translated by Google

HOLOFOTE

relacionados a outros princípios para a fase de operação. e os serviços em nuvem devem suportar ações primitivas para que
Elasticidade definida por software e funções primitivas de governança se possa executar ações de elasticidade em tempo de execução.
nos permitem controlar as unidades individualmente em tempo de Isso está altamente relacionado a questões de implantação,
execução. Ter essas funções nos permitiria desenvolver processos provisionamento e governança de tempo de execução.
complexos de governança e controle de elasticidade, compondo as
funções primitivas de diferentes unidades. Isso também nos permitirá Implementações de exemplo Os
oferecer suporte ao controle de elasticidade coordenado de ponta a princípios que descrevemos são baseados em nossa pesquisa e
ponta em todo o sistema de nuvem IoT. experiência no desenvolvimento de várias ferramentas para sistemas
de nuvem IoT. Duas implementações demonstram como podemos
aplicar esses princípios em estruturas de software.
Princípio 6: Forneça monitoramento e análise para uma visão
completa das propriedades de elasticidade e confiabilidade. Este
princípio está relacionado com as fases de operação e desenvolvimento. Máquinas Definidas por Software O
Claramente, várias ferramentas de monitoramento e análise existentes Princípio 1 (sobre virtualização e composição de componentes de
nos permitirão monitorar e entender diferentes comportamentos de IoT) é crucial para habilitar as três funções discutidas anteriormente.
unidades IoT, serviços em nuvem e redes. Mas o que é importante No entanto, o suporte à virtualização e composição na parte IoT é um
para o desenvolvedor e o operador é ter uma visão clara de ponta a desafio.
ponta do comportamento do software para que possam otimizar o Ao projetar conceitos e ferramentas de SDM,6,8,12 pretendemos
desenvolvimento e a operação. Para métricas de elasticidade de apoiar o princípio 1 e outros princípios relacionados para garantir que
ponta a ponta que caracterizam o comportamento dos sistemas de os componentes de IoT possam ser facilmente compostos, implantados
nuvem IoT,9 precisamos de métodos combináveis complexos para e controlados. A engenharia desses SDMs e outros componentes em
avaliá-los, aproveitando diferentes tipos de dados de monitoramento seus ecossistemas para sistemas de nuvem IoT coerentes é um
correlacionados vertical e horizontalmente em todo o sistema de desafio. Felizmente, várias partes do sistema podem ser aproveitadas
nuvem IoT. Assim, devemos nos concentrar em conectar diferentes utilizando serviços de nuvem para a parte do datacenter e para
tipos de sistemas de monitoramento e apresentar novas métricas que mercados de IoT. Nos últimos dois anos, nos concentramos em quatro
caracterizem o comportamento de ponta a ponta. aspectos dos SDMs: ferramentas para construir unidades IoT,
governança de unidades IoT, mercados e unidades de provisionamento
e dados dinâmicos e pontos de controle para sensores e atuadores.
No momento, protótipos de governança, provisionamento e mercados,
Princípio 7: Elasticidade coordenada para permitir uma dados dinâmicos e pontos de controle estão disponíveis sob licenças
execução elástica coerente em todo o sistema de nuvem IoT. de código aberto.
Este princípio está relacionado com a fase de operação. A elasticidade
será vista em diferentes partes do sistema de nuvem IoT. Poderíamos
ter elasticidade típica em relação a recursos e qualidade nos serviços
em nuvem. Mas também podemos realizar diferentes tipos de Conjunto de

elasticidade na parte de IoT, como provisionar e ativar muito mais ferramentas iCOMOT Conforme observado anteriormente, durante
sensores para aumentar a qualidade dos dados de detecção para o desenvolvimento e a operação da camada de software dos sistemas
análise de dados. No entanto, precisamos de um loop mais próximo de nuvem IoT, precisamos de diferentes ferramentas para permitir
entre as diferentes partes do sistema de nuvem IoT para otimizar a diferentes objetivos, como implantação, provisionamento, controle e monitorament
operação do sistema. Portanto, devemos oferecer suporte à Nosso protótipo, iCOMOT (http://tuwiendsg.github.io/ iCOMOT),
elasticidade em várias partes de maneira coerente – por exemplo, suporta os sete princípios e inclui as ferramentas mostradas na
uma estratégia de elasticidade na parte de IoT deve ser comunicada camada inferior da Figura 215:
à parte do serviço de nuvem para evitar comportamentos inesperados.
Uma possibilidade é examinar a relação entre coordenação e • Salsa (Setting and Launching Service Applications) permite a
elasticidade.10 Outra possibilidade é estender os algoritmos de implantação de pilha de software multinível em infraestruturas
controle de elasticidade atuais na nuvem para IoT11 combinando de IoT e nuvem.16 • GovOps (Governança e Operações)

processos de governança de IoT.12 Além disso, também podemos oferece suporte ao gerenciamento de governança em tempo de
aprender conceitos de elasticidade de recursos em nuvens execução para unidades e gateways de IoT. • Mela (Monitoring
federadas.13 ,14 No entanto, a maioria dessas técnicas deve ser Elasticity) permite monitoramento e análise de elasticidade em
retrabalhada para dar suporte às métricas de ponta a ponta. Do ponto sistemas de nuvem IoT.
de vista do sistema, as unidades IoT

• rSYBL (tempo de execução Simple Yet Beautiful Language)


oferece suporte a controles de elasticidade invocando diferentes

74 COMPUTAÇÃO EM NUVEM IEEE WWW.COMPUTER.ORG/CLOUDCOMPUTING

Uso licenciado autorizado limitado a: Universidad Federal de Pernambuco. Baixado em 05 de novembro de 2020 às 18:54:09 UTC do IEEE Xplore. Restrições aplicadas.
Machine Translated by Google

Aplicativos de nuvem IoT


Análise e controle leves Análise de
dados em larga escala

Sistemas de nuvem IoT: camada de software

Dados do
sensor Manipulação de eventos
Sensores Grandes
Entradas Balanceador de carga serviço de internet
dados NoSQL

Middleware orientado a Processamento de dados


Nuvem:
Edge: unidades de IoT mensagens
Serviços na nuvem quase em tempo real

Implantar, configurar, governar e controlar

governança de IoT Implantação e configuração Monitoramento e análise Métricas Controle de elasticidade


(GovOps) (Salsa) (Mela) (rSYBL)

Invocar

serviços e ferramentas iCOMOT

FIGURA 2. iCOMOT para sistemas de nuvem IoT.15 A camada superior representa aplicativos IoT típicos executados em IoT e nuvens. A camada
do meio representa a camada de software como um sistema de nuvem IoT construído sobre vários tipos de serviços de nuvem e elementos de IoT.
A camada inferior mostra diferentes ferramentas e serviços do iCOMOT que podem ser usados para monitorar, controlar e configurar a
camada de software.

estratégias de custo, desempenho e recursos de maneira vêm de diferentes provedores e são hospedados em diferentes
coordenada em IoT e nuvem mercados ou repositórios. Para implantar configurações tão
Serviços. diferentes, nosso software deve lidar com configuração e controle
de pilha de software multinível.
Com exceção do GovOps, que é projetado para unidades IoT,
muitos dos recursos do iCOMOT são baseados em recursos de Os usuários também podem observar e analisar as
elasticidade de serviço em nuvem estendidos para unidades IoT propriedades de elasticidade de alto nível em uma visão de ponta
e SDMs. a ponta: desde todo o sistema de nuvem IoT até topologias
Como exemplo, considere o caso de uma empresa de específicas de unidades de serviço, até unidades individuais. Por
manutenção preditiva interessada apenas em gerenciar sensores, exemplo, os custos da camada de software podem ser
atuadores e processamento e armazenamento de dados para dar determinados em tempo real a partir dos custos de vários
suporte à análise de manutenção. A análise inclui análise leve e gateways, serviços de dados, balanceadores de carga e assim
controle e análise de dados, conforme mostrado na camada por diante, com base em suas dependências complexas e taxas

superior da Figura 2. A empresa requer uma camada de software de dados do sensor. Tais custos e taxas de dados são alimentados
como um sistema de nuvem IoT construído sobre várias a um controlador de elasticidade que pode permitir estratégias de
infraestruturas alugadas de IoT e nuvem, mostradas na camada elasticidade flexíveis na parte de IoT ou serviços em nuvem. Por
intermediária de Figura 2. Usando ferramentas de implantação, o exemplo, ele pode parar de alterar a taxa de leitura do sensor
iCOMOT pode oferecer suporte ao desenvolvedor e ao provedor quando o custo de todo o sistema violar as expectativas do usuário.
na junção de diferentes configurações de um sistema de nuvem
IoT. Por exemplo, uma configuração de sensor de dados como
serviço pode incluir vários sensores a serem implantados e nosso trabalho atual se concentrou na realização dos sete

controlados em tempo de execução (ativar, desativar, alterar a princípios aqui descritos. Como mostram nossos resultados
taxa de leitura e assim por diante). Essa configuração pode ser iniciais, assim que pudermos fornecer essas ferramentas,
usada para implantar sensores emulados e controlar sensores liberaremos o desenvolvedor e o provedor de vários obstáculos
reais. Essa configuração pode ser conectada a uma configuração para permitir uma camada de software suave sobre serviços
de gateways e serviços de nuvem de produção real. Usando complexos, híbridos e combinados de IoT e nuvem.
iCOMOT, pode-se realizar alguns princípios sobre configuração e No entanto, não discutimos outros princípios importantes
controle de elasticidade dinâmica. Além disso, sensores e serviços relacionados à segurança, privacidade e conformidade em
sistemas de nuvem IoT. Pretendemos estudar tais princípios em
trabalhos futuros.

MARÇO/ABRIL 2015 IEEE COMPUTAÇÃO EM NUVEM 7 5

Uso licenciado autorizado limitado a: Universidad Federal de Pernambuco. Baixado em 05 de novembro de 2020 às 18:54:09 UTC do IEEE Xplore. Restrições aplicadas.
Machine Translated by Google

HOLOFOTE

Agradecimentos Por 12. S. Nastic et al., “rtGovOps: um trabalho de estrutura de


suas discussões frutíferas e contribuições para a tempo de execução para governança em sistemas de
realização de alguns dos princípios apresentados neste nuvem IoT definidos por software em larga escala”, Proc.
artigo, agradecemos aos nossos alunos de doutorado e 3ª IEEE Int'l Conf. Computação em nuvem móvel, serviços
colegas, especialmente Georgiana Copil, Alessio Gambi, e engenharia, 2015, pp. 24–33.
Christian Inzinger, Duc-Hung Le, Daniel Moldovan, Stefan 13. F. Paraiso, P. Merle e L. Seinturier, “Gerenciando
Nastic, Sanjin Sehic e Michael Vögler. Elasticidade em Vários Provedores de Nuvem,”
O trabalho mencionado neste artigo é parcialmente financiado Proc. Workshop internacional Aplicações multinuvem e
pela Comissão Europeia por meio do projeto CELAR FP7 (FP7- nuvens federadas (MultiCloud 13), 2013, pp. 53–60;
ICT-2011-8 #317790), do H2020 LEIT U-test e do Pacific doi:10.1145/2462326.2462338.
Controls Cloud Computing Lab (pc3l.infosys. tuwien.ac.at). 14. RN Calheiros et al., “A Coordinator for Scal ing
Elastic Applications through Multiple Clouds,”
Sistemas de computador de geração futura, vol. 28, não.
Referências 8, 2012, pp. 1350–1362.
1. A. Botta et al., “On the Integration of Cloud Computing and 15. H.-L. Truong et al., “iCOMOT: Toolset for Managing
Internet of Things,” Proc. Internacional Conf. Internet IoT Cloud Systems,” demonstração, 16ª IEEE Int'l
futura das coisas e nuvem (Fi Cloud 14), 2014, pp. 23–30. Conf. Gerenciamento de dados móveis, 2015.
16. D.-H. Le et al., “SALSA: A Framework for Dynamic
2. JM Hernández-Muñoz et al., “Smart Cities at the Forefront Configuration of Cloud Services,” Proc. 6ª Conferência
of the Future Internet,” The Fu ture Internet, J. Domingue Internacional Ciência e Tecnologia de Computação em
et al., eds., Springer, 2011, pp. 447–462. Nuvem, 2014, pp. 146–153.

3. H.-L. Truong e S. Dustdar, “Programming Elasticity in the HONG-LINH TRUONG é professor assistente no Grupo de
Cloud,” Computer, vol. 48, nº. 3, 2015, pp. 87–90. Sistemas Distribuídos da Universidade de Tecnologia de Viena.
Seu trabalho concentra-se na análise de engenharia de serviço
4. PC Brebner, “Sua nuvem é elástica o suficiente? — em particular, para computação em nuvem; arquiteturas e
Performance Modeling the Elasticity of Infrastructure as computação orientadas a serviços; computação distribuída e
a Service (IaaS) Cloud Applications,” Proc. 3ª ACM/ paralela; Internet das Coisas; sistemas distribuídos complexos
SPEC Int'l Conf. Desempenho Eng. (ICPE 12), 2012, pp. e elásticos; e computação sensível ao contexto. Truong tem
263–266. doutorado e habilitação em ciência da computação pela
5. K. Kirkpatrick, “Rede Definida por Software,” Universidade de Tecnologia de Viena. Entre em contato com
com. ACM, vol. 56, nº. 9, 2013, pp. 16–19. ele em truong@dsg. tuwien.ac.at.
6. S. Nastic et al., “Provisioning Software-Defined IoT Cloud
Systems,” Proc. 2ª Conferência Internacional Internet
futura das coisas e nuvem (FiCloud 14), 2014, pp. 288– SCHAHRAM DUSTDAR é professor titular de ciência da
295. computação (informática) e dirige o Grupo de Sistemas
7. O. Krieger, P. McGachey e A. Kanevsky, “Habilitando um Distribuídos da Universidade de Tecnologia de Viena. Seu
mercado de nuvens: VMware's vCloud Director,” Operating trabalho se concentra em tecnologias da Internet. Dust dar é
Systems Rev., vol. 44, nº. 4, 2010, pp. 103–114. membro da Academy Europeana, um ACM Distinguished
Scientist e ganhador do IBM Faculty Award 2012. Contate-o
8. M. Vögler et al., “LEONORE — Fornecimento em larga em dustdar@dsg. tuwien.ac.at.
escala de implementações de IoT com restrição de
recursos”, Proc. 9º IEEE Int'l Symp. Eng. de Sistemas
Orientados a Serviços. (SOSE 15), 2015, pp. 78–87.
9. D. Moldovan et al., “MELA: Análise de Elasticidade para
Serviços em Nuvem,” Int'l J. Big Data Intelligence, vol. 2,
não. 1, 2015, pp. 45–62.
10. S. Mariani et al., "Elasticidade sensível à coordenação",
Proc. 7ª IEEE/ ACM Int'l Conf. Utilitário e Computação em
Nuvem, 2014, pp. 465–472.
11. G. Copil et al., “On Controlling Cloud Services Elasticity in
Heterogeneous Clouds,” Proc. 7ª IEEE/ ACM Int'l Conf.
Artigos e colunas selecionados de CS também estão
Utility and Cloud Com puting, 2014, pp. 573–578.
disponíveis gratuitamente em http://ComputingNow.computer.org.

76 COMPUTAÇÃO EM NUVEM IEEE WWW.COMPUTER.ORG/CLOUDCOMPUTING

Uso licenciado autorizado limitado a: Universidad Federal de Pernambuco. Baixado em 05 de novembro de 2020 às 18:54:09 UTC do IEEE Xplore. Restrições aplicadas.

Você também pode gostar