106
Saymon Castro de Souza Uma abordagem baseada em regras e computação em nuvem para desenvolvimento de aplicações em redes de sensores sem fio VITÓRIA 2013

Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

  • Upload
    lydung

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

Saymon Castro de Souza

Uma abordagem baseada em regras e computação em nuvem para

desenvolvimento de aplicações em redes de sensores sem fio

VITÓRIA

2013

Page 2: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de
Page 3: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

Saymon Castro de Souza

Uma abordagem baseada em regras e computação em nuvem para

desenvolvimento de aplicações em redes de sensores sem fio

Dissertação submetida ao Programa de Pós-

graduação em Informática da Universidade

Federal do Espírito Santo, como requisito

parcial para obtenção do título de Mestre em

Informática.

Orientador: Prof. Dr. José Gonçalves Pereira

Filho

VITÓRIA

2013

Page 4: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

Saymon Castro de Souza

Uma abordagem baseada em regras e computação em nuvem para

desenvolvimento de aplicações em redes de sensores sem fio

Dissertação submetida ao Programa de Pós-Graduação em Informática da Universidade

Federal do Espírito Santo como requisito parcial para a obtenção do grau de Mestre em

Informática.

Aprovada em 30 de Agosto de 2013.

COMISSÃO JULGADORA:

__________________________________ Prof. Dr. José Gonçalves Pereira Filho

Departamento de Informática - UFES Orientador

__________________________________ Prof. Dr. Magnos Martinello Departamento de Informática - UFES

__________________________________ Profa. Dra. Patricia Dockhorn Costa Departamento de Informática - UFES

__________________________________ Profa. Dra. Silvana Rossetto

Departamento de Ciência da Computação - UFRJ

Page 5: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

Dedico este trabalho a todos os professores

que tive, pois de alguma maneira,

contribuíram para minha formação.

Page 6: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

Agradecimentos

À minha família, que me forneceu a base para que eu conseguisse alcançar meus

objetivos. Também gostaria de agradecer aos meus amigos, seja pelo apoio, pelas

discussões e pelos momentos de descontração, durante o mestrado.

A todos do Centro de Educação a Distância (Cead), do Instituto Federal do

Espírito Santo (Ifes), que me deram apoio total, sempre incentivando durante essa

caminhada.

Ao Eugênio pela colaboração e dedicação a este projeto; e ao Diego Luchi e

Isaac Pereira pela disponibilidade para discutir aspectos importantes deste trabalho.

Aos professores do Departamento de Informática da UFES, pelos ensinamentos;

Ao meu orientador, José Gonçalves, pela grande experiência e enorme dedicação

que me serviram de exemplo profissional e pessoal.

Especialmente, à Jésica, que teve e tem papel muito importante em minha vida,

desde a graduação, estando junto a mim, compreendendo meus momentos de estresse.

Page 7: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

RESUMO

Este trabalho propõe uma infraestrutura para gerenciamento de aplicações de

redes de sensores sem fio em ambiente de nuvem computacional. O trabalho inclui o

projeto e a implementação de uma arquitetura conceitual que suporta o desenvolvimento

das aplicações e um sistema de gerenciamento que implementa um espaço para a

criação das regras, gestão das assinaturas das informações de sensoriamento e a

integração com serviços. O objetivo da infraestrutura proposta é simplificar a

construção de aplicações de RSSF e promover uma separação de responsabilidades

entre os usuários programador e o especialista de domínio envolvidos no processo de

desenvolvimento, ao mesmo tempo que permite ampliar o número de aplicações e os

potenciais domínios de uso dos dados coletados pelas redes.

Palavras-chave: redes de sensores sem fio, computação em nuvem, sistemas

baseado em regras

Page 8: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

ABSTRACT

This work proposes an infrastructure for managing wireless sensor networks

applications in cloud computing environment. The work includes the design and

implementation of a conceptual architecture that supports the development of

applications and a management system that implements a space for the creation of rules,

management of applications’ subscriptions and integration with services. The aim of

infrastructure is to simplify the construction of WSN applications and promote a

separation of concerns regarding the programmer and the user domain expert involved

in the development process, while increasing the number of potential applications and

areas of use for the data collected by the sensor networks.

Keywords: wireless sensor networks, cloud computing, rule-based systems.

Page 9: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

Lista de Figuras

Figura 1 - Nó sensor inteligente. ...................................................................................... 8

Figura 2 - Fonte de energia secundária. ............................................................................ 9

Figura 3 - Estabelecimento de uma RSSF não estruturada. Fonte: (LOUREIRO et al.,

2003) ............................................................................................................................... 10

Figura 4 - Áreas de aplicação de RSSF. Fonte: (FUJITSU, 2013) ................................. 11

Figura 5 - Arquitetura de sistemas baseados em regras. Fonte: (HILL, 2003)............... 14

Figura 6 - Computação em nuvem. Fonte: (ZHANG; CHENG; BOUTABA, 2010) .... 16

Figura 7 - Modelo básico publish/subcriber. Fonte: (EUGSTER et al., 2003) .............. 21

Figura 8 - Desacoplamento no espaço. Fonte: (EUGSTER et al., 2003) ....................... 22

Figura 9 - Desacoplamento no tempo. Fonte: (EUGSTER et al., 2003) ........................ 23

Figura 10 - Desacoplamento de sincronização. Fonte: (EUGSTER et al., 2003) .......... 24

Figura 11 - Modelo básico de fila. .................................................................................. 26

Figura 12- Sistema multicanal com fila única. ............................................................... 29

Figura 13 - Sistema multicanal com fila individual. ...................................................... 29

Figura 14 - Integrating Wireless Sensor Networks with Cloud Computing. Fonte:

(AHMED; GREGORY, 2011) ....................................................................................... 36

Figura 15 - Arquitetura conceitual. Fonte: (LE et al., 2010). ......................................... 37

Figura 16 – Provisão de serviços. Fonte: (YURIYAMA; KUSHIDA; ITAKURA, 2011).

........................................................................................................................................ 39

Figura 17 - Arquitetura Conceitual ................................................................................. 51

Figura 18 - Arquitetura da implementação ..................................................................... 53

Figura 19 - Serviço de gerenciamento da arquitetura proposta. ..................................... 57

Figura 20 - Interface com o usuário................................................................................ 60

Page 10: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

Figura 21 - Cadastro de usuários. ................................................................................... 61

Figura 22 - Edição e exclusão de usuários. .................................................................... 61

Figura 23 - Edição e exclusão de aplicações. ................................................................. 62

Figura 24 – Cenário Hospitalar. ..................................................................................... 65

Figura 25 - Regras do cenário......................................................................................... 68

Figura 26 - Interface com o especialista do domínio...................................................... 69

Figura 27 - Componente de configuração nesC. ............................................................ 71

Figura 28 - Componente de Implementação nesC.......................................................... 72

Figura 29 - Implementação da arquitetura. ..................................................................... 75

Figura 30 - Modelo básico de fila. .................................................................................. 77

Figura 31 - Modelo de filas da arquitetura proposta. ..................................................... 79

Figura 32 - Gráfico - Atraso Médio x Taxa de serviço. ................................................. 82

Figura 33 – Gráfico - Atraso médio pelo ρx. ................................................................... 83

Page 11: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

Lista de Tabelas

Tabela 1 - Notação de Fila – A/B/m/k/M (MOREIRA, 2007) ....................................... 30

Tabela 2 - Comparação dos trabalhos de infraestrutura Sensor-Cloud. ......................... 40

Tabela 3 - Comparação dos trabalhos que propõe abordagens baseadas em regras para

aplicações das RSSF. ...................................................................................................... 43

Tabela 4 - Informações de estabilidade da vacina contra Varicela. ............................... 66

Page 12: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

Lista de Siglas/Acrônimos

RSSF – Redes de Sensores Sem Fio.

IAM - Identity and Access Management.

AWS – Amazon Web Services.

SNS – Simple Notification Service.

SQS – Simple Queue Service.

RDS - Relational Database Service.

S3 – Simple Storage Service.

Page 13: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

Sumário

1. Introdução ............................................................................................................... 1

1.1 Motivação ........................................................................................................... 1

1.2 Objetivos ............................................................................................................. 4

1.3 Organização do Trabalho .................................................................................... 5

2. Referencial Teórico ................................................................................................. 7

2.1 Redes de Sensores Sem Fio ................................................................................ 7

2.2 Sistemas Baseados em Regras .......................................................................... 12

2.3 Computação em Nuvem .................................................................................... 15

2.3.1 Tipos de computação em nuvem ............................................................ 17

2.3.2 Características da computação em nuvem .............................................. 18

2.3.4 Computação em Nuvem e Redes de Sensores Sem Fio ......................... 19

2.4 Publish/subscribe .............................................................................................. 20

2.4.1 Publish/subscribe baseado em Tópicos .................................................. 24

2.4.2 Publish/subscribe baseado em Conteúdo ............................................... 24

2.4.3 Publish/subscribe baseado em Tipo .................................................. 25

2.5 Conceitos Básicos de Filas ................................................................................ 25

2.5.1 Notação de Kendall ................................................................................ 30

2.6 Considerações do Capítulo................................................................................ 31

Page 14: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

3. Trabalhos Relacionados ....................................................................................... 33

3.1 Infraestrutura Sensor-cloud ............................................................................... 33

3.1.1 Integrating Wireless Sensor Networks with Cloud Computing ............. 35

3.1.2 Secured WSN-integrated cloud computing for u-life care ..................... 37

3.1.3 A New model of accelerating service innovation with Sensor-Cloud

Infrastructure ................................................................................................... 38

3.1.4 Discussão ................................................................................................ 39

3.2 Abordagem de alto nível para definição de regras em aplicações de RSSF ..... 40

3.2.1 The Design and Implementation of a Declarative Sensor Network

System ............................................................................................................. 41

3.2.2 FACTS-A rule-based middleware architecture for wireless sensor

networks .......................................................................................................... 42

3.2.3 A model-Based Approach for Building Ubiquitos Application Based on

Wireless Sensor Network ................................................................................ 42

3.2.4 Discussão ................................................................................................ 43

3.3 Considerações do Capítulo................................................................................ 44

4. Arquitetura Proposta ............................................................................................ 47

4.1 Introdução ......................................................................................................... 47

4.2 Princípios e Requisitos ...................................................................................... 48

4.3 Arquitetura Conceitual ...................................................................................... 50

4.4 Arquitetura da implementação .......................................................................... 53

4.4.1 Serviço de gerenciamento da arquitetura ............................................... 56

Page 15: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

4.5 Considerações do capítulo ................................................................................ 62

5. Prova de Conceito ................................................................................................. 64

5.1 Cenário .............................................................................................................. 64

5.2 Visão do especialista de domínio ...................................................................... 66

5.2 Visão do desenvolvedor .................................................................................... 70

5.4 Considerações do capítulo ................................................................................ 73

6. Avaliação ................................................................................................................ 74

6.1 Introdução ......................................................................................................... 74

6.2 Análise teórica .................................................................................................. 75

6.3 Considerações do capítulo ................................................................................ 83

7. Conclusões ............................................................................................................. 84

8. Referências ............................................................................................................. 88

Page 16: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

1

Capítulo 1

1. Introdução

Este capítulo apresenta a motivação, os objetivos e a organização deste

trabalho. São introduzidas as áreas de pesquisa nas quais o trabalho se apóia

e descrito o problema central a ser investigado. As tecnologias usadas na

solução são brevemente apresentadas, as quais são detalhadas nos capítulos

que seguem.

1.1 Motivação

Redes de Sensores sem Fio (Wireless Sensor Networks) (AKYILDIZ et al.,

2002; YICK; MUKHERJEE; GHOSAL, 2008) têm se tornado ferramentas essenciais

no monitoramento de grandezas do mundo físico. Estruturas formadas por diminutos

nós com capacidade de processamento, armazenamento, comunicação e sensoriamento,

as Redes de Sensores sem Fio (RSSF) permitem aos seus usuários interagirem e

observarem, com grande nível de detalhe e precisão, os mais variados ambientes,

domínios e objetos de interesse. As suas características de baixo custo, pequena

dimensão, flexibilidade e facilidade de implantação dão a essas redes um potencial

enorme de aplicação em diversas áreas, permitindo que elas se apresentem como

componentes importantes de soluções de monitoramento e controle em vários cenários

de aplicação. Por exemplo, em um cenário de Cidades Inteligentes (SU; LI; FU, 2011),

as RSSF podem ser usadas na implantação de serviços de observação e controle de

aspectos do cotidiano das cidades, como vigilância de espaços públicos, prédios e outras

estruturas civis, monitoramento de rios, córregos e matas urbanas, monitoramento de

Page 17: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

2

áreas de desastre e risco, apoio à mobilidade urbana, rastreamento e localização de

cargas e objetos, entre outras.

No entanto, para se atingir plenamente o seu potencial de uso, o

desenvolvimento de aplicações para redes de sensores sem fio precisa ser facilitado e

tornar-se acessível para usuários de diferentes domínios e áreas de conhecimento

(RODRIGUES et al., 2012). É fato que, atualmente, construir aplicações reais para

redes de sensores sem fio ainda é uma atividade desafiadora, mesmo para

programadores experientes, por exigir do desenvolvedor de aplicações conhecimentos

de aspectos de programação de baixo nível, de especificidades das plataformas de

sensoriamento e das abstrações fornecidas pelo sistema operacional, simultaneamente às

questões relacionadas às regras do domínio em análise e aos requisitos de alto nível da

aplicação, tudo isso em um ambiente caracterizado por fortes restrições de recursos de

hardware. Em resumo, um modelo de programação fácil de utilizar e eficiente continua

sendo um grande desafio na comunidade de redes de sensores sem fio (CHU et al.,

2007).

Em geral, as aplicações de RSSF são concebidas para atender um determinado

domínio, sendo que os nós são programados para suprir aplicações específicas dentro do

domínio, com regras e eventos bem definidos. Normalmente, os desenvolvedores

providenciam o mapeamento dos requisitos de alto nível das aplicações do domínio em

programas e configurações de baixo nível da plataforma base dos nós sensores. Este fato

favorece a construção de aplicações com alto grau de acoplamento entre a lógica de

negócio e a plataforma de hardware da rede de sensores. Essa situação, indesejada,

resulta em baixa flexibilidade do produto final, sua dependência de plataforma e

dificuldade de manutenção.

O cenário acima traz à tona três questões importantes: (i) o desenvolvedor de

aplicações para RSSF tem de lidar com muitos aspectos no processo de

desenvolvimento, em diferentes níveis de abstração; (ii) a participação e a interatividade

do analista do domínio é relativamente baixa no processo, particularmente em função da

alta curva de aprendizagem das linguagens e sistemas operacionais usados em RSSF; e

(iii) existe uma limitação do uso da RSSF ao cenário ao qual foi projetado, isto é, os

dados coletados pela RSSF ficam restritos às poucas aplicações alvo do domínio, ao

Page 18: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

3

passo que eles poderiam ser consumidos, em tese, por quaisquer aplicações, de

diferentes domínios, interessadas nos dados coletados.

Em relação a (i) e (ii) uma das estratégias para abordar o problema é promover o

que na comunidade de engenharia de software é conhecido por “separação das

preocupações” (“separation of concerns”) (MITCHELL, 1990), considerando, no

presente caso, duas visões: uma primeira se refere ao entendimento dos detalhes de

programação e configurações de baixo nível, protocolos de comunicação e

sensoriamento do ambiente; a segunda diz respeito especificamente às regras e lógica da

aplicação e eventos do domínio. Essa separação de “concerns” contribui para

diferenciar claramente os papéis do usuário programador e do usuário analista do

domínio, o que poderia potencializar a participação e a melhoria da interatividade do

usuário do domínio na concepção final da aplicação. Nesta abordagem, programadores

experientes atuariam no tratamento dos aspectos de sensoriamento considerando as

especificidades da arquitetura de hardware do nó sensor e os protocolos de comunicação

inerentes às redes. A definição das regras e eventos do domínio de aplicação, por outro

lado, passaria a ser uma preocupação do usuário do domínio, que tem um conhecimento

muito mais especializado das regras de negócio. Evidentemente, é importante que as

regras possam ser facilmente descritas e compreendidas pelos analistas de domínio. Em

função disso, a linguagem usada para a descrição de regras deve possuir flexibilidade

para alteração e construção de novas regras e eventos, pois essas características do

domínio geralmente são dinâmicas.

Em relação à questão levantada em (iii), assumindo que os dados coletados por

uma mesma rede possam ser compartilhados por uma ampla gama de aplicações que

atendam a demandas de domínios potencialmente distintos, ampliar o universo das

aplicações alvo pode ser conseguido com o desacoplamento entre cliente/servidor a

partir da definição de alguma estratégia de comunicação assíncrona oferecida, por

exemplo, por mecanismos de publish-subscribe. Além disso, em um cenário de

demanda crescente por serviços baseados em redes de sensores, a implantação da visão

de computação em nuvem (cloud computing) pode preparar a arquitetura da solução

para problemas futuros de escalabilidade.

Percebe-se que ainda poucos são os trabalhos que exploram os aspectos acima

discutidos de maneira integrada, quais sejam: (i) a separação de “concerns” e o uso

linguagens declarativas para facilitar a descrição das regras da aplicação; (ii) o suporte à

Page 19: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

4

comunicação assíncrona, baseada no modelo publish-subscribe; e (iii) o uso de

conceitos de computação em nuvem para tratar aspectos de escalabilidade em cenários

caracterizado pela existência um número potencialmente grande de redes de sensores e

aplicações de diferentes domínios.

Este trabalho apresenta uma infraestrutura de apoio ao desenvolvimento de

aplicações de redes de sensores sem fio levando em consideração os aspectos acima

mencionados. O trabalho está centrado na proposta de uma arquitetura conceitual que

visa simplificar a construção de aplicações que consomem dados de redes de sensores

sem fio e promover uma separação de responsabilidades entre os usuários

programadores e analistas de domínio, envolvidos no processo de desenvolvimento, ao

mesmo tempo que permite ampliar o número de aplicações e os potenciais domínios de

uso dos dados coletados das redes.

A implementação da arquitetura utiliza a plataforma Drools (BALI, 2009) como

sistema de definição de regras. A Amazon foi adotada como infraestrutura de

computação em nuvem e a Amazon Web Services (AWS) (CLOUD, 2011) foi utilizada

para interação programática com a infraestrutura criada.

1.2 Objetivos

O trabalho tem como objetivo geral definir uma infraestrutura de integração

“sensor-cloud” flexível no que se refere à possibilidade de alterações nas regras e

eventos do domínio e escalável em relação a capacidade de armazenamento de

processamento de dados de sensoriamento de inúmeras RSSF distintas, para apoio ao

desenvolvimento de aplicações de redes de sensores sem fio. A proposta tem como

base o conceito de “separation of concerns“, neste caso centrada na separação das

responsabilidades pela definição de aspectos de alto nível das aplicações dos requisitos

de baixo nível presentes nos motes (nós sensores).

Este objetivo geral pode ser refinado nos seguintes objetivos específicos:

Desenvolver uma arquitetura conceitual de integração entre redes de sensores e

uma plataforma de computação de nuvem computacional, como forma de prover

escalabilidade e compartilhamento de dados;

Implementar um protótipo da arquitetura proposta e demonstrar o seu potencial

de uso por meio de um cenário de aplicação;

Page 20: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

5

Definir um ambiente baseado no paradigma de programação declarativa para

descrição das regras de negócio e dos eventos de interesse das RSSF, bem como

pelo gerenciamento das aplicações e usuários do sistema.

Avaliar aspectos de desempenho da arquitetura proposta.

1.3 Organização do Trabalho

Além desta Introdução, o trabalho está organizado em mais seis capítulos, a

saber:

Capítulo 2: apresenta um breve referencial teórico abordando conceitos básicos

dos sistemas baseados em regras e da tecnologia de computação em nuvem. O

capítulo trata, também, do modelo de interação publish-subscribe e conceitos

básicos de teoria das filas.

Capítulo 3: discute os trabalhos relacionados.

Capítulo 4: descreve o projeto da arquitetura conceitual e detalhes da

implementação da arquitetura proposta.

Capítulo 5: apresenta um cenário de uso do protótipo desenvolvido.

Capítulo 6: realiza uma breve avaliação de desempenho da arquitetura proposta

sob a ótica da teoria de filas.

Capítulo 7: conclui a dissertação, apresentando as considerações finais e as

perspectivas de continuidade do trabalho.

Page 21: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

6

Page 22: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

7

Capítulo 2

2. Referencial Teórico

Este trabalho explora diversas áreas de pesquisa atuais, como redes de

sensores sem fio, computação em nuvem e sistemas baseados em regras.

Para um melhor entendimento das contribuições do trabalho, este capítulo

realiza uma revisão dos conceitos básicos dessas áreas de pesquisa. O

capítulo está organizado da seguinte forma: a Seção 2.1 introduz as redes de

sensores sem fio, apresentando as suas principais características, benefícios

e restrições; a Seção 2.2 discute conceitos relacionados aos sistemas

baseados em regras e o seu paradigma declarativo de programação; a Seção

2.3 descreve a área de computação em nuvem e a sua integração com as

redes de sensores sem fio; a Seção 2.4 introduz o paradigma de interação

publish/subscribe, usado no presente trabalho; e, finalmente, a Seção 2.5

traz as considerações finais do capítulo.

2.1 Redes de Sensores Sem Fio

A evolução das tecnologias de microeletrônica e micromecânica (MEMS -

Microelectromecanical Systems) tem permitido a construção de dispositivos inteligentes

de pequenas dimensões, com capacidade de sensoriamento, processamento,

armazenamento e comunicação sem fio, com custos de manufatura cada vez mais

reduzidos (HO; TAI, 1998). Esses dispositivos eletrônicos diminutos podem ser

organizados em uma estrutura topológica qualquer, formando uma infraestrutura de

Page 23: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

8

comunicação distribuída comumente referenciada de Rede de Sensores sem Fio (RSSF)

ou Wireless Sensor Networks (AKYILDIZ et al., 2002; LOUREIRO et al., 2003). Um

exemplo de nó sensor por ser visto na Figura 1. Geralmente, o termo nó sensor

inteligente é aplicado ao chip que contém um ou mais sensores com capacidade de

processamento de sinais e comunicação de dados.

Figura 1 - Nó sensor inteligente.

A função mais comum de um nó sensor é amostrar propriedades físicas de um

ambiente, comunicar as leituras e, eventualmente, exercer alguma atuação baseada em

uma ou mais entradas. Nesse sentido, as redes de sensores sem fio têm se tornado

ferramentas essenciais no monitoramento de grandezas do mundo físico, permitindo aos

seus usuários interagirem e observarem, com grande nível de detalhe e precisão, os mais

variados ambientes, domínios e objetos de interesse. Observa-se que um nó pode

possuir uma diversidade de sensores, tais como mecânicos, térmicos, fotoelétricos,

químicos, magnéticos, etc.

Os nós sensores podem ser implantados em locais de difícil acesso. Assim, a

comunicação sem fio é, convenientemente, adotada como forma de transmissão dos

dados coletados até uma estação base. A estação base geralmente é representada por

microcomputador que processa e armazena as informações oriundas das RSSF;

entretanto, a fim de possibilitar o intercâmbio de dados entre uma RSSF e uma rede

TCP/IP convencional, é necessário que haja um elemento que seja capaz de se

Page 24: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

9

comunicar com os protocolos de ambas as redes. Tal elemento é conhecido como

gateway.

Uma das características mais fundamentais de uma rede de sensores é que os nós

possuem uma fonte de energia com capacidade limitada e a substituição dessas fontes

torna-se inviável na maioria dos casos. Uma bateria é a principal fonte de energia em

um nó sensor; entretanto, alguns nós podem possuir uma fonte de alimentação

secundária, podendo obter energia a partir do ambiente, por exemplo, painéis solares,

térmicos, etc. (Figura 2).

Figura 2 - Fonte de energia secundária.

A capacidade de processamento e transmissão de cada nó está limitada pela

quantidade de energia disponível, observando-se que os nós consomem diferentes

quantidades de energia dependendo se estão usando o rádio, lendo os sensores,

executando cálculos locais ou em estado adormecido. Por exemplo, a transmissão e

recepção de dados consomem três ou mais vezes energia do que qualquer outra

operação. Isso tem impacto direto na arquitetura e na operação dos protocolos usados

em redes de sensores sem fio.

Uma RSSF geralmente tem pouca ou nenhuma infraestrutura e é constituída por

um certo número de nós sensores (algumas dezenas a milhares) que trabalham em

conjunto para monitorar uma região para obter dados sobre o meio ambiente. Segundo

(YICK; MUKHERJEE; GHOSAL, 2008) existem dois tipos de RSSF: estruturadas e

não estruturadas. Uma RSSF não estruturada (Figura 3) é aquela que contém um

conjunto denso de nós sensores que podem ser implantados de forma aleatória em uma

determinada área. Uma vez implantado, a rede é autônoma para realizar as funções de

monitoramento. Em uma RSSF não estruturada, realizar operações de manutenção da

rede, tais como o gerenciamento da conectividade e detecção de falhas, é uma tarefa

Page 25: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

10

complexa, devido a existência de um número expressivo de nós sensores. Em uma

RSSF estruturada, todos ou parte dos nós sensores são implantados em uma maneira

previamente planejada. A vantagem de uma rede estruturada é que devido à quantidade

reduzida de nós, aspectos de detecção de falhas são facilitados. Uma RSSF não

estruturada tem maior chance de fornecer uma cobertura incompleta do ambiente

monitorado, apesar de dispor de um número de nós muito superior a uma RSSF

estruturada.

Figura 3 - Estabelecimento de uma RSSF não estruturada. Fonte: (LOUREIRO et al., 2003)

As redes de sensores sem fio têm potencial de aplicação em diversos cenários.

Exemplos incluem o rastreamento de alvos militares e de vigilância (DURISIC et al.,

2012); (HUSSAIN; KHAN; SUP, 2009); (LEE et al., 2009), o monitoramento de

ambientes naturais (POLASTRE et al., 2004), o monitoramento da saúde de idosos

(FERGUS et al., 2009; LAWRENCE et al., 2009), a exploração de ambientes

industriais (EL KOUCHE et al., 2011), entre outros. Por exemplo, em um cenário de

Cidades Inteligentes (SU; LI; FU, 2011), as redes de sensores podem ser usadas na

implantação de serviços de observação e controle de aspectos do cotidiano das cidades,

como vigilância de espaços públicos, prédios e outras estruturas civis, monitoramento

da qualidade de matas e do nível de rios e córregos urbanos, monitoramento de áreas de

Page 26: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

11

desastre e risco, apoio à mobilidade urbana, rastreamento e localização de cargas e

objetos, entre outras. A Figura 4 ilustra possibilidades de aplicação de redes de

sensores em contextos distintos de uma cidade.

.

Figura 4 - Áreas de aplicação de RSSF. Fonte: (FUJITSU, 2013)

Ao contrário das redes tradicionais, uma RSSF tem o seu próprio projeto e

apresenta fortes restrições de recursos. As restrições de recursos incluem, como visto,

uma quantidade limitada de energia, comunicação de curto alcance, baixa largura de

banda, e capacidades de processamento e armazenamento limitados em cada nó. As

restrições de projeto, por outro lado, são dependentes da aplicação e são baseadas no

ambiente monitorado (YICK; MUKHERJEE; GHOSAL, 2008). Por exemplo, o

ambiente desempenha um papel fundamental na determinação do tamanho da rede, sua

topologia e protocolos de roteamento. Em ambientes fechados, um quantitativo inferior

de nós é necessário para formar uma rede em um espaço limitado; entretanto, ambientes

externos podem necessitar de mais nós sensores para cobrir uma área maior. A

implantação de uma RSSF não estruturada é preferível à implantação estruturada

quando o ambiente é inacessível por seres humanos ou quando a rede é composta por

centenas de milhares de nós. Obstruções no ambiente também pode limitar a

comunicação entre os nós, o que, por sua vez, afeta a conectividade de rede (ou

topologia).

Page 27: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

12

Pesquisas recentes (AHMED; GREGORY, 2011; ATIF ALAMRI, 2013;

EGGERT et al., 2013; LE et al., 2010; YURIYAMA; KUSHIDA; ITAKURA, 2011)

destacam o interesse no uso de redes de sensores sem fio em ambiente de nuvem

computacional, como forma de armazenar e compartilhar informações de sensoriamento

entre aplicações distintas, de domínios variados, de maneira escalável. Outro interesse

atual da área de RSSF se refere à construção de mecanismos, ambientes e estratégias

para facilitar a construção de aplicações baseadas em redes de sensores sem fio. Em

(MOTTOLA; PICCO, 2011) são descritas e analisadas diversas abordagens propostas

na literatura para esta finalidade. Uma abordagem que se destaca é o uso do paradigma

declarativo de programação, em que o desenvolvedor define o que deve ser feito pela

aplicação a ser executada nos nós de uma RSSF, em contraste com a abordagem

imperativa, onde o programador indica explicitamente como deve ser feito, por meio de

uma sequencia de passos definidos.

No contexto de abordagens declarativas para desenvolvimento de aplicações

para RSSF, as linguagens baseadas em regras surgem como abordagem que favorecem a

construção de aplicações de forma simplificada, abstraindo detalhes inerentes à

plataforma de hardware. A promessa das abordagens baseadas em regras é possibilitar

que um conjunto de regras seja definido utilizando uma linguagem declarativa de alto

nível e, por meio de mecanismos de transformação, ocorra a geração de um programa

específico para a plataforma do nó sensor. Para construir um programa equivalente em

uma abordagem imperativa, por exemplo, em nesC (GAY et al., 2003), é necessário um

maior esforço para especificar as regras e o comportamento dos nós sensores,

considerando plataformas de hardwares distintas.

2.2 Sistemas Baseados em Regras

Diferentemente dos sistemas que se apoiam na programação imperativa, em que

a resolução de um problema é feita com soluções algorítmicas, os sistemas baseados em

regras são sistemas computacionais que empregam o paradigma declarativo de

programação para a resolução de problemas (HAYES-ROTH, 1985). Neste paradigma,

o conhecimento relativo ao domínio do problema é representado através de regras

(instruções), descritas na forma condição → ação, as quais são usadas para derivar

Page 28: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

13

conclusões a partir de premissas (HILL, 2003). A solução do problema consiste em

descrever o que deve ser feito, omitindo-se grande parte do como fazer, cabendo ao

sistema decidir qual a melhor escolha para uma solicitação específica. Controle e

monitoramento, diagnóstico, previsão, classificação, reconhecimento de padrões e

sensibilidade ao contexto, são exemplos de aplicações que podem se beneficiar de uma

abordagem declarativa.

Em um sistema baseado em regras, todo o conhecimento que se tem do mundo

pode ser explicitado através das regras. Nas regras, estruturas do tipo if-then, a primeira

parte da estrutura (LHS - left hand side) contém as premissas (condições, predicados) a

serem satisfeitos, e a segunda parte (RHS – right hand side) contém as ações a serem

realizadas, ou seja, as conclusões da regra. Por exemplo, na ocorrência de uma

condição específica descrita no LHS, o RHS pode conter chamadas para serviços do

sistema, tais como o envio de um e-mail ou um SMS. O domínio de uma regra é

definido como o conjunto de todas as informações no qual a regra pode atuar. Os fatos

representam as informações sobre o mundo.

Num sistema baseado em regras existe uma separação explícita das regras de

negócio, descritas numa linguagem declarativa, do restante da aplicação. É

responsabilidade de um outro programa, a máquina de inferência ou de regras (rule

engine), determinar quando e quais regras de negócio serão executadas. Em geral, a

arquitetura de um sistema baseado em regras é composta dos seguintes sub-sistemas:

uma máquina de inferência (inference engine ou rule engine), uma base de regras (rule

base) e uma memória de trabalho (working memory). A máquina de inferência, por sua

vez, é sub-dividida em três componentes: pattern matcher, agenda e execution engine.

Page 29: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

14

Figura 5 - Arquitetura de sistemas baseados em regras. Fonte: (HILL, 2003)

A máquina de inferência, também chamada de interpretador de regras, controla

todo processo de aplicação das regras aos fatos contidos na working memory com

intuito de obter os resultados do sistema. Geralmente, funciona em ciclos discretos. A

cada ciclo de processamento, as regras são comparadas pelo pattern matcher com os

fatos existentes na memória de trabalho, gerando um conjunto de regras a serem

ativadas. Este conjunto é chamado de conjunto conflito (conflict set), que é ordenado

para formar uma agenda usando um processo de resolução de conflitos (conflict

resolution). A base de regras (rule base) contém as regras do sistema, normalmente

utilizando alguma estrutura de dados eficiente, por exemplo, rete network (FORGY,

1982).

Existem atualmente diversas implementações de máquina de regras. Duas

importantes implementações são as providas pelos ambientes JESS (HILL, 2003) e

Drools (BALI, 2009).

Alguns trabalhos advogam o uso de sistemas baseados em regras para a

descrição de regras e eventos em redes de sensores sem fio (CHU et al., 2007)

(TERFLOTH; WITTENBURG; SCHILLER, 2006). Uma das justificativas é que o

paradigma declarativo possibilita um maior nível de abstração que o imperativo,

tornando mais natural, simples e flexível para o desenvolvedor a construção de regras.

Além disso, toda alteração realizada na base de regras é aplicada imediatamente a

novos fatos. Entretanto, a máquina de regras pode demandar recursos elevados de

processamento e memória, o que pode comprometer o seu emprego em ambientes com

hardware limitado. Uma abordagem para este problema é hospedar o sistema de regras

Page 30: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

15

em um ambiente de nuvem computacional. Esta abordagem é particularmente útil em

cenários com um número expressivo de regras e uma grande quantidade de dados

compartilhados por uma ampla gama de aplicações de RSSF, de diferentes domínios.

Essas teriam acesso aos dados oriundos das redes de sensores como serviços escaláveis

e com alta disponibilidade, sem restrições quanto ao tamanho da base de regras e ao

número de dados coletados nas diversas redes envolvidas.

2.3 Computação em Nuvem

A computação em nuvem (cloud computing) é um paradigma computacional que

oferece recursos computacionais de hardware e software (processamento,

armazenamento, plataformas e aplicações) como unidades de serviços (ARMBRUST et

al., 2010).

Os três tipos mais comuns de serviços de computação em nuvem são:

infraestrutura como serviço (IaaS – Infrastructure as a Service), plataforma como

serviço (PaaS – Platform as a Service) e software como serviço (SaaS – Software as a

Service) (ZHANG; CHENG; BOUTABA, 2010). Segundo esses autores, a arquitetura

de computação em nuvem pode ser dividida em 4 camadas: (i) hardware, (ii)

infraestrutura, (iii) plataforma e (iv) aplicação, o que é ilustrado na Figura 6.

Page 31: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

16

Figura 6 - Computação em nuvem. Fonte: (ZHANG; CHENG; BOUTABA, 2010)

A camada de hardware é responsável por gerenciar os recursos físicos da

nuvem, incluindo os servidores físicos, roteadores, switches, sistema de força e

refrigeração. Na prática, a camada de hardware é tipicamente implementada nos data

centers. Um data center geralmente possui centenas de servidores que são organizados

em racks e interconectados através de switches, roteadores entre outros. Questões

típicas da camada de hardware inclui configuração de hardware, tolerância a falhas,

gerenciamento do tráfego, sistema de força, e gerenciamento dos recursos de

refrigeração.

A camada de infraestrutura, também conhecida como camada de virtualização,

é responsável por criar um conjunto de recursos de armazenamento e processamento,

dividindo os recursos físicos por meio de tecnologias de virtualização. A camada de

infraestrutura é um componente essencial para a computação em nuvem, uma vez que

muitas ferramentas fundamentas, tais como o dimensionamento dinâmico de recursos,

são disponibilizados apenas por meio de tecnologias de virtualização.

A camada de plataforma é construída sobre a camada de infraestrutura,

consistindo dos sistemas operacionais e frameworks de desenvolvimento. O objetivo

desta camada é minimizar o custo de implantação de aplicativos. Tipicamente,

Page 32: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

17

provedores de computação em nuvem que atuam na camada plataforma fornecem API´s

de desenvolvimento que possibilitam o uso de recursos de armazenamento e banco de

dados, entre outros.

A camada de aplicação, o mais alto nível da hierarquia, consiste nas atuais

aplicações em nuvem. Diferentemente de aplicações tradicionais, as aplicações em

nuvem podem aproveitar os recursos automáticos de escalabilidade para alcançar um

melhor desempenho, disponibilidade e menor custo operacional.

2.3.1 Tipos de computação em nuvem

Existem muitas questões a serem consideradas quando há intenção de adotar uma

plataforma em nuvem, por exemplo, redução de custo de operação, aumento da

confiabilidade e segurança, entre outros. Em (ZHANG; CHENG; BOUTABA, 2010)

são discutidas as questões supracitadas em relação aos tipos de nuvens, abaixo segue a

descrição de cada tipo:

Nuvem pública: uma nuvem no qual os provedores de serviço oferecem seus

recursos como serviços para um público geral. As nuvens públicas oferecem

diversos benefícios, tais como: não há necessidade de um capital inicial para

investimento em uma infraestrutura, os riscos são de responsabilidade do

provedor do ambiente de nuvem computacional. Contudo, as nuvens públicas

não têm um controle refinado sobre os dados, no que se refere a aspectos de

segurança; o que dificulta sua eficácia em alguns contextos.

Nuvem privada: também conhecida como nuvem interna, são projetadas para

uso exclusivo de uma determinada organização, sendo que a nuvem privada

pode ser implantada e gerenciada pela própria organização. A nuvem privada

fornece um alto grau de controle sobre o desempenho, confiabilidade e

segurança.

Nuvem hibrida: trata-se da combinação entre os modelos de nuvens públicas e

privadas, cujo objetivo é minimizar as limitações de cada abordagem. Em uma

nuvem hibrida, parte do serviço de infraestrutura é provido por uma nuvem

privada, enquanto a outra parte é disponibilizada por uma nuvem pública.

Page 33: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

18

Devido essa abordagem, a nuvem híbrida se torna mais flexível que as nuvens

públicas e privadas, pois é possível ter um controle mais rigoroso da segurança

sobre as informações contidas nas aplicações, se comparado com nuvem pública

e possuir a facilidade de redimensionar a capacidade dos serviços. O projeto de

uma nuvem híbrida requer um cuidado no que se refere a melhor divisão entre os

componentes que são providos pelas nuvens pública e privada.

Nuvem virtual privada: trata-se basicamente de uma plataforma privada que é

executada sobre uma nuvem pública, sendo que a principal diferença é que essa

abordagem possibilita uma forma de acesso segura à infraestrutura com intuito

de permitir configurações mais detalhadas visando segurança, como por

exemplo, regras de firewall.

2.3.2 Características da computação em nuvem

A computação em nuvem provê diversas características que diferem de um

serviço de computação tradicional, dentre as quais, destacamos a seguir, conforme

(ZHANG; CHENG; BOUTABA, 2010):

Multi-tenancy: em um ambiente de nuvem, os serviços de diversos fornecedores

estão localizados em um único data center. Os problemas de desempenho e

gerenciamento desses serviços são compartilhados entre os fornecedores de

serviço e o provedor da plataforma em nuvem. A arquitetura em camadas

(Figura 6) apresenta uma divisão natural das responsabilidades: o fornecedor de

serviços de uma determinada camada somente é responsável pelos objetivos

específicos associados a esta camada. Entretanto, essa abordagem apresenta

dificuldades em relação ao gerenciamento da interação entre os vários

fornecedores de serviço.

Compartilhamento de recursos: o provedor de infraestrutura oferece um

conjunto de recursos computacionais que pode ser disponibilizados de forma

dinâmica a diversos clientes. Essa característica possibilita uma maior

flexibilidade no gerenciamento do uso dos recursos disponíveis no data center.

Geralmente, adota-se uma infraestrutura de servidores altamente consolidada,

Page 34: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

19

que contribui para minimizar os custos, tais como: consumo de energia e

refrigeração.

Distribuição geográfica e acesso ubíquo à infraestrutura: Nuvens são

geralmente acessíveis por meio da Internet e a utiliza como forma de entrega de

serviços. Por isso, qualquer dispositivo com acesso à Internet deve conseguir

acessar serviços em nuvem. Além disso, para alcançar um alto desempenho,

diversos ambientes em nuvem possuem data centers localizados em várias

regiões em todo mundo.

Orientado à serviços: a computação em nuvem adota um modelo de operação

orientado a serviço. Os serviços em um ambiente de nuvem computacional

(IaaS, PaaS e SaaS) são providos conforme um acordo de nível de serviço

negociado com os clientes.

Provisionamento dinâmico de recursos: uma das principais características da

computação em nuvem é que os recursos computacionais podem ser alocados e

disponibilizados de forma instantânea (on the fly).

Auto-organização: como os recursos podem ser alocados ou desalocados

conforme a demanda, os provedores tem a capacidade de gerenciar o consumo

de recursos conforme a necessidade do cliente. O gerenciamento automatizado

de recursos gera grande agilidade, o que possibilita os provedores de serviços

responder rapidamente às mudanças na demanda.

Preço baseado na utilização: provedores de computação em nuvem utilizam o

modelo de precificação - pague pelo que utilizar. O esquema de preço exato

pode variar de serviço para serviço. Por exemplo, um provedor IaaS pode cobrar

pela quantidade de horas que uma máquina virtual ficou em execução, já um

provedor SaaS pode cobrar pela quantidade de usuários que utilizam o software.

2.3.4 Computação em Nuvem e Redes de Sensores Sem Fio

Como visto, a computação em nuvem tem como características principais o

compartilhamento de dados e o fornecimento de serviços escaláveis. Em um cenário de

aumento da demanda por serviços baseados em redes de sensores e de ampliação do

universo e domínio das aplicações, esta característica pode ser extremamente

Page 35: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

20

interessante para os desenvolvedores de aplicações de RSSF. Ao usar a nuvem como

parte da arquitetura de solução, os desenvolvedores podem se concentrar na essência do

problema a ser resolvido, diminuindo as preocupações com problemas de escalabilidade

no processamento e armazenamento de dados de sensoriamento, compartilhamento dos

dados dos sensores entre aplicações distintas, ao aumento da quantidade de redes e de

dados coletados, ao aumento expressivo do número de regras de negócio, etc.

É evidente que problemas de escalabilidade das RSSF não são resolvidos com a

integração entre as redes de sensores sem fio e uma infraestrutura de nuvem

computacional, principalmente relacionados a composição da infraestrutura interna de

uma RSSF, tais como, aspectos de roteamento e comunicação.

Neste ambiente de integração entre redes de sensores e computação em nuvem,

que vem sendo denominado de “Sensor Cloud”, usuários podem, usando recursos

computacionais armazenados na nuvem, acessar, processar, armazenar, compartilhar e

visualizar dados de sensores de várias aplicações, reduzindo o desperdício de uso hoje

observado nos dados de sensoriamento (ATIF ALAMRI, 2013). Em resumo, quando

RSSF são integradas aos ambientes de nuvem computacional, as deficiências das redes

em termos de capacidade de armazenamento de dados coletados dos sensores e

processamento conjunto desses dados é minimizado. Além disso, no caso de soluções

baseadas em regras, o aumento de consumo de memória, causado pelo crescimento da

base de regras, tem pouco impacto em uma infraestrutura em nuvem, devido sua

capacidade de escalabilidade.

2.4 Publish/subscribe

O paradigma publish/subscribe oferece aos assinantes (Subcribers) a capacidade

de manifestar seu interesse em um evento ou um padrão de eventos (Subcribe), a fim de

ser notificado posteriormente de qualquer evento gerado por um publicador (Publisher),

que corresponde ao seu registro de interesse. Em outras palavras, os publicadores

publicam (Publish) informações em um barramento de software (gestor de eventos) e os

consumidores assinam as informações que desejam receber do barramento. Esta

informação é tipicamente denominada evento, e o ato de entregá-lo é conhecido como

notificação (notify). Uma vez tendo manifestado interesse, um assinante é notificado

Page 36: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

21

sempre que for gerado um evento por quaisquer publicadores que casem (Matching)

com seu interesse.

O modelo básico do sistema de interação publish/subscribe, conforme definido

em (EUGSTER et al., 2003) e representado pela Figura 7, conta com três macro

elementos: os publicadores, os assinantes e o serviço de eventos (event service). O

serviço de eventos representa um elemento mediador entre os publicadores (produtores

de eventos) e os assinantes (consumidores de eventos). Ele possui um conjunto de

funcionalidades internas: (i) notificação de eventos; (ii) armazenamento e gestão de

assinaturas; e (iii) entrega eficiente de eventos.

Figura 7 - Modelo básico publish/subcriber. Fonte: (EUGSTER et al., 2003)

Os assinantes registram seu interesse em eventos acionando a operação

Subcribe() presente no serviço de eventos, sem conhecer as verdadeiras fontes desses

eventos. Esta informação de assinatura permanece armazenada no serviço de eventos. Já

a operação Unsubscribe(), realiza o processo de cancelamento de uma assinatura

existente, sendo assim, o assinante deixa de receber eventos que casariam com a

assinatura cancelada.

Em um processo de geração de um evento, um publicador geralmente aciona a

operação publish(). O serviço de eventos propaga o evento para todos os assinantes que

Page 37: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

22

possuem interesse neste evento em particular. Assim, todos os assinantes serão

notificados de todos os eventos em conformidade com os seus interesses.

O desacoplamento (decoupling) que o serviço de eventos provê entre o publicador e o

assinante pode ser decomposto em três dimensões, descritas a seguir:

Desacoplamento no espaço: neste paradigma, o publicador não necessita saber

da existência dos assinantes interessados nos eventos publicados, o mesmo se

aplica a situação contrária.

Figura 8 - Desacoplamento no espaço. Fonte: (EUGSTER et al., 2003)

Desacoplamento no tempo: esta característica indica que o publicador tem a

capacidade de publicar eventos indepedente da disponibilidade do assinante. A

situação inversa também se aplica, em que o assinante pode receber notificações

que foram publicadas por um publisher que não está mais conectado. No

paradigma Publish/Subscribe a ordem de publicação e subscrição de eventos não

importa. Entretanto, existem mecanismos para que o Publicador indique um

tempo limite para que o evento prescreva.

Page 38: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

23

Figura 9 - Desacoplamento no tempo. Fonte: (EUGSTER et al., 2003)

Desacoplamento de sincronização: ilustrado pela Figura 10, indica que tanto a

publicação quanto o recebimento de notificação acontecem de forma assíncrona,

ou seja, tanto o publicador quanto o assinante não precisam interromper o seu

fluxo principal de execução para atender as solicitações. O desacoplamento de

sincronização é importante para permitir que dispositivos enviem mensagens ao

serviço de eventos e continuem suas atividades, não precisando bloquear seus

processos. A notificação ocorre após um casamento entre os eventos publicados

e as assinaturas existentes, ou seja, o serviço de eventos avalia a compatibilidade

entre eventos publicados e subscritos. Para avaliar compatibilidade entre eventos

é necessário que o evento de interesse seja um subconjunto do evento publicado.

Desta forma, o serviço de eventos notifica o assinante da ocorrência do

casamento e encaminha os eventos compatíveis. Assim, o assinante recebe

apenas um subconjunto dos eventos publicados. O processo de casamento, ou

seja, seleção das mensagens compatíveis é, geralmente, chamado de filtro.

Page 39: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

24

Figura 10 - Desacoplamento de sincronização. Fonte: (EUGSTER et al., 2003)

Particularmente em relação à filtragem de mensagem, três tipos principais

podem ser identificados: Topic Based, Content Based, Type Based. Uma breve

descrição desses tipos é feita a seguir.

2.4.1 Publish/subscribe baseado em Tópicos

No publish/subscribe baseado em tópicos (Topic Based), os eventos são

classificados por assuntos (tópicos) de interesse. No processo de publicação do evento,

o publicador define o assunto no qual o evento publicado pertence. Na subscrição, o

assinante indica por quais assuntos ele está interessado. Desta forma, o serviço de

eventos faz o casamento entre os eventos publicados e as assinaturas, em seguida,

procede com a notificação aos assinantes correspondentes.

2.4.2 Publish/subscribe baseado em Conteúdo

No publish/subscribe baseado em conteúdo (Content Based), os eventos são

classificados de acordo com seu conteúdo. O serviço de eventos verifica o conteúdo da

mensagem enviada pelo publicador e avalia se esta é compatível com o conteúdo que o

assinante está interessado. No processo de filtragem baseada em conteúdo o serviço de

eventos pode ficar sobrecarregado com o processamento, uma vez que, para fazer o

casamento, é necessário processar a estrutura interna de cada evento

Page 40: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

25

publicado/notificado. A sobrecarga de processamento tem um impacto direto no tempo

de respostas aos dispositivos finais.

2.4.3 Publish/subscribe baseado em Tipo

No publish/subscribe baseado em tipos (Type Based), os eventos são

classificados de acordo com o tipo de conteúdo. No processo de publicação, o publisher

define o tipo do seu conteúdo, por exemplo, uma cadeia de caracteres (string) ou um

inteiro. De forma análoga, o assinante subscreve um interesse por meio do tipo em que

está interessado. O servidor de serviços analisa o conteúdo do evento para verificar se

existe algum tipo conhecido e, caso haja, procede com a notificação ao assinante

interessado naquele tipo de mensagem.

2.5 Conceitos Básicos de Filas

No contexto das sensor clouds, os dados são coletadas do ambiente pelas RSSFs

e transmitidos até uma infraestrutura de computação em nuvem, a fim de serem

armazenados e processados pelas aplicações que se subscreveram a esses dados. A

natureza da operação deste tipo de sistema pode resultar na formação de filas: filas

ocorrem quando a procura pelo serviço é maior do que a capacidade de atender às

demandas das aplicações. Portanto, é importante compreender conceitos básicos de

Teoria das Filas com o objetivo de avaliar o comportamento teórico da interação entre

as diversas redes de sensores e a plataforma de nuvem computacional.

Os sistemas de filas podem ser definidos por um processo de chegada de clientes

a um sistema de atendimento para receber um ou mais serviços, executados por um

determinado quantitativo de servidores. O termo cliente e servidor são utilizados de

forma genérica, ou seja, em cada cenário de aplicação determinados papéis assumem as

funções de clientes e servidores.

A teoria das filas foi desenvolvida para prover modelos matemáticos que

retratem previamente o comportamento de sistemas que fornecem serviços que possuem

demandas que aumentam aleatoriamente. As filas possuem dois elementos básicos: o

cliente, elemento que chega e requer atendimento, e o servidor, processo ou pessoa que

realiza o atendimento ao cliente. A Figura 11 mostra uma representação de um processo

Page 41: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

26

de filas típico, onde a taxa média de chegada de clientes está representada por meio da

variável λ, e o servidor representado por uma taxa média de atendimento µ.

Figura 11 - Modelo básico de fila.

O comportamento estatístico dos clientes que acessam o sistema de filas pode

ser descrito por uma distribuição de probabilidades empírica, que pode ser representada

por um modelo analítico conhecido de probabilidade. O modelo de Poisson

(KLEINROCK, 1975) é comumente usado para descrever a forma como os clientes

chegam ao sistema de filas e, para definir essa distribuição, é necessário ter apenas a

taxa média de chegadas.

Em geral, um modelo de filas pode ser definido pelas seguintes características

(COSTA, 2013):

Processo de chegada de clientes e seu comportamento

Geralmente, assume-se que os tempos entre chegadas são independentes e tem

uma distribuição em comum. Em mais detalhes, nos processos de filas comuns,

os processos de chegadas são estocásticos, ou seja, desenvolvem-se no tempo e

no espaço conforme leis de probabilidade. Assim, é necessário conhecer a

distribuição de probabilidade descrevendo os tempos entre as sucessivas

chegadas dos clientes. Também é necessário saber se os clientes podem chegar

simultaneamente (rajada).

O comportamento do cliente no sistema de filas pode seguir três padrões:

(i) paciente – indica que o cliente decide esperar o atendimento, independente do

tamanho da fila; (ii) decepcionado – cliente que após a chegada, ao analisar o

tamanho da fila, decide não entrar; e por último, (iii) impaciente – define os

clientes em duas situações: os que entram na fila, mas após um determinado

tempo, decidem sair; e em cenários onde há múltiplas filas e o pode cliente

mudar de fila.

Page 42: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

27

Um fator final que pode ser considerado apesar do padrão de chegada é a

maneira no qual o padrão muda com o tempo. Um padrão de chegada que não

muda com o tempo (ou seja, que a distribuição de probabilidade descrevendo o

processo de chegada é independente do tempo) é chamado padrão de chegada

estacionário. Um padrão que não é independente do tempo é chamado não-

estacionário.

Padrões de Serviço

As características apresentadas no item anterior, processo de chegada de

clientes, se aplica para discussão dos padrões de serviço. A mais importante é

que uma distribuição de probabilidade é necessária para descrever a sequência

de tempos de atendimento aos clientes.

Os serviços também podem ser simples ou em lote. O processo de

serviço pode depender do número de clientes em espera. Caso o serviço tenha

essa dependência, ele é considerado dependente de estado.

Serviços, de forma análoga as chegadas, podem ser estacionários ou não

estacionários em relação ao tempo. Por exemplo, o aprendizado pode ser

considerado um fator de produtividade, de forma que, o serviço pode se tornar

mais eficiente quando experiência é obtida, ou seja, não importa o número de

clientes na fila (dependência do estado) e sim o período de tempo em atividade

(dependência do tempo).

Disciplina das Filas

A disciplina de filas refere-se a maneira como os clientes são escolhidos

para entrar em serviço após uma fila ser formada. Segundo (COSTA, 2013),

existem quatro tipos principais de disciplina: (i) FCFS (First-Come-First-

Served), ou seja, o primeiro a chegar é o primeiro a ser servido; (ii) LCFS (Last-

Come-First-Served), o último a chegar é o primeiro a ser servido; (iii) disciplinas

baseadas em esquemas de prioridade; e (iv) seleção de clientes de forma

aleatória.

Existem duas situações gerais em disciplinas de prioridade. No primeiro

caso, que é chamado de preemptivo, o cliente com a mais alta prioridade é

permitido entrar em serviço independentemente de outro cliente com menor

prioridade estar sendo servido, de forma que, o cliente com menor prioridade é

Page 43: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

28

interrompido e tem seu trabalho reiniciado mais tarde. Quando reiniciado, ele

pode iniciar do ponto onde parou ou reiniciar todo o processo. Na segunda

situação de prioridade, chamado caso não preemptivo, os clientes com mais alta

prioridade vão para o início da fila, mas só entram em serviço quando o cliente

sendo atendido deixa o sistema, mesmo que ele tenha uma prioridade baixa.

Capacidade do Sistema

Em alguns processos de filas existe uma limitação física da quantidade de

espaço na fila, de modo que, se as filas alcançarem um certo comprimento,

nenhum novo cliente poderá entrar no sistema até que o espaço disponível seja

obtido com o atendimento de um cliente e a consequente diminuição do tamanho

da fila. Estas situações são denominadas como sistemas de filas finitos, ou seja,

existe um limite finito do tamanho máximo do sistema.

Número de canais de serviço

Quando o número de canais de serviço são definidos, tipicamente estão

sendo determinados o número de servidores de serviços paralelos que podem

servir os clientes simultaneamente.

A Figura 12 ilustra um sistema multicanal com fila única, ou seja,

existem diversos servidores que executam os mesmos serviços, onde todos os

clientes obtém acesso ao serviço por meio de uma única fila. Esta abordagem é

interessante, pois mesmo com a indisponibilidade de um servidor, o sistema

continua operante.

Page 44: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

29

Figura 12- Sistema multicanal com fila única.

A Figura 13 mostra um sistema multicanal com fila individual. Nesta

abordagem, cada servidor possui sua própria fila, se comparado com a abordagem

anterior, esta possui desvantagem em termos de desempenho, já que a indisponibilidade

de um servidor, afeta diretamente todos os clientes presentes na sua respectiva fila.

Figura 13 - Sistema multicanal com fila individual.

Page 45: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

30

2.5.1 Notação de Kendall

A notação de processos de filas proposta por (KENDALL, 1953) é descrita por

uma sequência de símbolos, separados por “/”. A representação geral de uma fila pode

ser vista como A/B/m/k/M, onde A indica a distribuição de interchegada dos clientes, B o

padrão de serviço de acordo com uma distribuição de probabilidade para o tempo de

serviço, m o número de canais de serviços paralelos (servidores), k a capacidade do

sistema e M a disciplina de filas. Alguns símbolos padrões para estas características são

mostradas na Tabela 1.

Características Símbolo Significado

Distribuição de Tempo entre chegadas

(A) e Distribuição de Tempo de Serviço

(B)

M Markoviano

D Determinístico

E Tipo k-Erlang(k = 1,2,...)

H Mistura de k exponenciais

PH Tipo fase

G Geral

Número Paralelo de Servidores (m) 1, 2, ..., ∞

Restrição na capacidade do sistema (k) 1, 2, ..., ∞

Disciplina da fila (M) FCFS First Come First Served

LCFS Last Come First Served

RSS Seleção aleatória por serviço

PR Prioridade

GD Disciplina Geral

Tabela 1 - Notação de Fila – A/B/m/k/M (MOREIRA, 2007)

Page 46: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

31

Em muitas situações só os três primeiros símbolos são utilizados, ou seja, os

itens subsequentes são omitidos em contexto onde assume-se que o sistema tem

capacidade ilimitada e possui uma disciplina FCFS.

2.6 Considerações do Capítulo

Este capítulo apresentou conceitos básicos relacionados a áreas distintas (redes

de sensores sem fio, computação em nuvem, sistemas baseados em regras, modelo de

interação publish-subscribe) que apresentam grande potencial de integração no cenário

atual da computação ubíqua. Nesta dissertação, defende-se a ideia de que a

convergência dessas áreas é bastante oportuna aos propósitos da universalização das

aplicações de RSSF, podendo essas tecnologias serem convenientemente combinadas de

modo a se criar infraestruturas que potencializem a construção de aplicações que

consomem dados provenientes de redes de sensores sem fio.

Iniciativas que propõem essa integração, porém, ainda são incipientes. O

próximo capítulo realiza uma breve descrição de alguns trabalhos que tratam desta

tentativa de integração. A proposta de integração desenvolvida nesta dissertação é

apresentada na sequência, no Capítulo 4.

Page 47: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

32

Page 48: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

33

Capítulo 3

3. Trabalhos Relacionados

Este capítulo apresenta exemplos de trabalhos correlatos, que tratam de

questões de pesquisa relacionadas aos temas centrais desta dissertação. São

descritas abordagens que propõem algum tipo de infraestrutura em nuvem

para facilitar o desenvolvimento de aplicações de redes de sensores sem fio

e apresentadas algumas propostas de sistemas baseados em regras para

apoio à criação de serviços e aplicações de redes de sensores sem fio. O

capítulo está estruturado como segue. A Seção 3.1 apresenta exemplos de

infraestruturas de integração entre computação em nuvem e as redes de

sensores, a Seção 3.2 descreve algumas infraestruturas voltadas para

ambientes de redes de sensores que se apoiam em sistemas de regras e a

Seção 3.3 traz as considerações finais do capítulo.

3.1 Infraestrutura Sensor-cloud

Nos últimos anos, temos presenciado um aumento no número de pesquisas e um

grande interesse na implantação de infraestruturas de apoio à integração de redes de

sensores e tecnologias de computação em nuvem – o que vem sendo denominado de

infraestruturas sensor-cloud. O interesse é justificado pela promessa dessas

infraestruturas de oferecerem aos desenvolvedores um ambiente aberto, flexível e

escalável para a criação de aplicações de controle e monitoramento.

Page 49: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

34

Em (ALAMRI et al, 2013) é apresentada uma visão geral da área de sensor-

cloud. O trabalho destaca os benefícios e os desafios da integração entre essas duas sub-

áreas de pesquisa, tendo como foco a apresentação de arquiteturas e modelos de ciclos

de vida de serviços voltados para a criação de infraestrutura de serviços e aplicações

baseadas em sensor-clouds.

Em (EGGERT et al., 2013), são apresentados três grandes desafios no processo

de integração entre infraestruturas de computação em nuvem e redes de sensores sem

fio, a saber:

(i) Suporte de ferramentas para facilitar o desenvolvimento de

aplicações. É enfatizado a necessidade de aumentar o nível de

abstração do processo de desenvolvimento, em que são citados como

exemplo o desenvolvimento orientado a modelo (Model Driven

Developer), linguagens específicas de domínio (Domain Specific

Language) e arquitetura orientada a serviço (Service-oriented

Architecture);

(ii) Mecanismos de segurança e privacidade. As RSSF coletam

informações sensíveis, onde o interesse é realizar o compartilhamento

desses dados com serviços confiáveis, garantindo que somente

usuários com autorização tenham acesso às informações. Também é

enfatizado que a segurança não está restrita ao ambiente de nuvem,

inclui a própria RSSF e suas limitações quanto ao excesso de

overhead causado por mecanismos de segurança.

(iii) Dimensões sociais de infraestruturas Sensor-Cloud e o impacto na

vida privada. Neste contexto, o autor compreende que as informações

de sensoriamento podem ser disponibilizadas de quaisquer

dispositivos que possuam sensores e acesso à Internet. A questão

levantada é que existem poucos trabalhos que discutem as questões

sociais e os impactos desta abordagem.

Na literatura da área, existem vários trabalhos que descrevem arquiteturas para

integração entre RSSF e infraestruturas de computação em nuvem. Exemplos

representativos são os trabalhos descritos em (AHMED; GREGORY, 2011), (LE et al.,

Page 50: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

35

2010) e (YURIYAMA; KUSHIDA; ITAKURA, 2011), os quais são brevemente

discutidos a seguir. Para efeitos de avaliação, formam o escopo da discussão os

seguintes requisitos:

Compartilhamento de informações coletadas pelas RSSF entre aplicações.

Como visto, a motivação para o uso de uma infraestrutura tecnológica sob o

paradigma de nuvem computacional integrada a uma rede de sensores é

possibilitar o uso da enorme massa de dados coletada por aplicações distintas,

mesmo de diferentes domínios;

Aspectos de segurança da informação. Quando informações oriundas de redes

de sensores estão disponíveis em um ambiente de nuvem computacional,

questões de segurança da informação são trazidas à tona e devem ser tratadas.

Oferta de Serviços. É interessante que a infraestrutura tenha capacidade de

prover serviços aos seus usuários (ex: Email, SMS, etc.), a fim de aumentar o

nível de abstração das ações a serem realizadas a partir dos dados coletados;

Suporte ao desenvolvimento de aplicações. Conforme destacado em (EGGERT

et al., 2013), este é um desafio atual da pesquisa em RSSF. É importante

oferecer ao usuário final uma forma facilitada de desenvolvimento de aplicações

(“universalização”).

3.1.1 Integrating Wireless Sensor Networks with Cloud Computing

Em (AHMED; GREGORY, 2011) é proposto um framework de integração entre

redes de sensores sem fio e computação em nuvem, onde organizações, pesquisadores e

administradores acessam os dados em um repositório de dados coletados da rede

utilizando métodos de autenticação e políticas de acesso em uma plataforma de

computação em nuvem. O protótipo descrito implementa o mecanismo de autenticação

entre o cliente/provedor e política de controle de acesso aos recursos da nuvem.

Page 51: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

36

Figura 14 - Integrating Wireless Sensor Networks with Cloud Computing. Fonte: (AHMED; GREGORY, 2011)

Conforme pode ser visto na Figura 14, os usuários – administrador, pesquisador

e empresas realizam acesso a plataforma em nuvem por meio de uma unidade de

autenticação. Os dados coletados da RSSF são enviados pelo gateway até a unidade de

processamento de dados, que procede com a formatação dos dados e em seguida o

armazenamento no repositório de dados. Os usuários recebem os dados da RSSF por

meio de assinatura, adotando uma estrutura publish/subscribe. O foco deste trabalho

está relacionado ao mecanismo de autenticação/autorização de usuário para acesso às

informações contidas no repositório de dados.

Em relação aos aspectos de segurança, o trabalho introduz um mecanismo de

autenticação/autorização dos usuários no ambiente de nuvem para acesso às

Page 52: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

37

informações contidas no repositório de dados; porém, a arquitetura não contempla a

segurança na transmissão dos dados da origem (a RSSF) até o destino (o ambiente de

nuvem computacional). Além disso, o trabalho não abrange questões relacionadas ao

desenvolvimento e provisão de serviços e nem provê suporte ao desenvolvimento de

aplicações para o usuário no ambiente de nuvem computacional.

3.1.2 Secured WSN-integrated cloud computing for u-life care

Em (LE et al., 2010) é descrita uma abordagem para integração sensor-cloud,

incluindo aspectos de segurança em redes de sensores sem fio. O propósito da

infraestrutura criada é o de monitorar a saúde dos pacientes e compartilhar os dados

coletados com médicos, enfermeiros e farmácias, entre outros interessados. A segurança

na rede de sensores é obtida por meio de um componente especializado, chamado

gestor de confiança, presente nos motes.

Figura 15 - Arquitetura conceitual. Fonte: (LE et al., 2010).

Como mostrado na Figura 15, para acessar dados na nuvem, os usuários

(médicos e enfermeiros) devem autenticar e possuir permissões de acesso. Os dados do

corpo e das atividades de um paciente são capturados por meio de sensores e câmeras, e

Page 53: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

38

transmitidos para a nuvem. Tais informações são enviadas para o Activity Recongnition

Engine, que tem a capacidade de inferir o estado do paciente. As informações do

paciente podem ser acessadas globalmente e compartilhadas entre grupos de hospitais.

Observa-se que por se tratar de informações especialmente sensíveis, a

segurança dos dados é levada em consideração desde a obtenção até o consumo dos

mesmos. O compartilhamento também é possível, entretanto, não foi mencionada a

disponibilização de ferramentas para apoio de novas aplicações a partir dos dados

coletados. A segurança é uma questão amplamente abordada neste trabalho, onde é

possível distinguir dois focos de preocupações: a rede de sensores e a plataforma de

nuvem computacional. Em geral, o trabalho demonstra uma grande preocupação –

refletida nos elementos de sua arquitetura – de que as informações coletadas estejam

disponíveis apenas para usuários devidamente autorizados. A arquitetura fornece um

serviço de inferência a partir dos dados coletados; porém, não é mencionada uma

estrutura para desenvolvimento de novos serviços. E, finalmente, não existe um suporte

explícito ao desenvolvimento de aplicações pelo usuário final.

3.1.3 A New model of accelerating service innovation with Sensor-Cloud

Infrastructure

Em (YURIYAMA; KUSHIDA; ITAKURA, 2011) é descrita uma infraestrutura

de sensor-cloud que promove a virtualização de sensores físicos com vistas ao seu

compartilhamento entre usuários finais, não especialistas. Por meio do conceito de

sensores virtuais (virtual sensors) os usuários tem livre acesso para controlar os seus

sensores sem preocupações, por exemplo, com detalhes internos e/ou localização física.

Grupos de sensores virtuais podem ser criados e o aprovisionamento dinâmico de

sensores é garantido pela infraestrutura.

Page 54: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

39

Figura 16 – Provisão de serviços. Fonte: (YURIYAMA; KUSHIDA; ITAKURA, 2011).

A Figura 16 apresenta a fase de provisão de serviços, onde o usuário escolhe um

ou mais serviços a serem utilizados a partir do catálogo de serviços e o ambiente cria

uma instância do serviço solicitado, de maneira automatizada, e retorna uma

confirmação ao usuário. O foco deste trabalho está em dois atores: o usuário que

desenvolve serviços e os disponibiliza por meio de um catálogo de serviços, e o usuário

que usa os serviços previamente disponíveis no catálogo. Essa abordagem visa criar um

modelo de pagamento pelo serviço de provisão da infraestrutura e aumentar o nível de

abstração no que se refere à infraestrutura tecnológica. Desta maneira, o

compartilhamento de dados é realizado por meio de instâncias virtuais dos sensores.

O trabalho de (YURIYAMA; KUSHIDA; ITAKURA, 2011) permite o

compartilhamento de informações coletadas das RSSF por meio de instâncias virtuais

do sensores, bem como o desenvolvimento de serviços que são disponibilizados em um

catálogo para uso. No que se refere à segurança, o ambiente somente menciona

mecanismos de autenticação no ambiente de nuvem computacional, ou seja, a

arquitetura não contempla aspectos de segurança no processo de coleta e na transmissão

de dados das redes de sensores até o ambiente em nuvem. Além disso, não há suporte

explícito de desenvolvimento de aplicações na plataforma em nuvem.

3.1.4 Discussão

A Tabela 1 apresenta uma comparação dos trabalhos analisados. Na tabela, o

símbolo “+” significa que o trabalho atende completamente ao requisito avaliado, o “–“

indica que o trabalho atende apenas parcialmente, enquanto que o símbolo “•”

representa o não atendimento ao requisito. Os requisitos estão assim identificados:

compartilhamento de informações coletadas pelas RSSF entre aplicações (R1); aspectos

Page 55: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

40

de segurança da informação (R2); serviços (R3); e suporte ao desenvolvimento de

aplicações (R4).

Escopo

Trabalhos I II III IV

(AHMED; GREGORY, 2011) + - • •

(LE et al., 2010) + + - •

(YURIYAMA; KUSHIDA; ITAKURA, 2011) + - + -

Tabela 2 - Comparação dos trabalhos de infraestrutura Sensor-Cloud.

Conforme mostrado na Tabela 2, a maioria dos trabalhos analisados não atende

ao requisito R4. ratificando as conclusões de (EGGERT et al., 2013) de que existe uma

carência de suporte qualificado para o desenvolvimento de aplicações em ambiente de

nuvem computacional usando dados provenientes das redes de sensores sem fio, sendo

esse um dos grandes desafios a ser enfrentado pela comunidade de pesquisa em sensor-

cloud nos próximos anos.

3.2 Abordagem de alto nível para definição de regras em aplicações de

RSSF

Os últimos anos também viram crescer o número de trabalhos que exploram

abordagens de alto nível para a definição de aplicações para RSSF, onde se destacam o

uso de linguagens declarativas e abordagens baseadas em regras em redes de sensores

sem fio. O interesse se justifica em função da constatação de que o alto acoplamento

existente entre a lógica da aplicação e a plataforma de sensores das abordagens

tradicionais que empregam o paradigma imperativo, invariavelmente resulta em códigos

dependentes de plataforma, com baixo grau de reuso, difícil de manter e com um nível

de abstração que dificulta e afasta a participação do especialista de domínio. Novas

linguagens declarativas específicas de domínio, sistemas de middleware baseados em

regras e metodologias de desenvolvimento apoiados em modelos (MDD - Model

Driven Development) surgiram para tratar esses problemas.

Page 56: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

41

Na literatura estudada, vários são os trabalhos que investigam esses aspectos, sendo

alguns deles: (CHU et al., 2007), (TERFLOTH; WITTENBURG; SCHILLER, 2006) e

(RODRIGUES et al., 2012), os quais são apresentados a seguir. Para efeitos de

comparação, formam o escopo da discussão os seguintes requisitos:

Atualização das regras e eventos da aplicação. As regras e eventos podem ser

dinâmicas, dependendo do domínio de aplicação, portanto, é relevante analisar

as possibilidades de atualização e suas limitações.

Limitação quanto ao quantitativo de regras e eventos da aplicação. Em alguns

domínios de aplicação as redes de sensores sem fio, o quantitativo de regras e

eventos pode ser extenso e é relevante que a abordagem proposta suporte tal

demanda.

Separação das preocupações. O uso de uma abordagem baseada em regras tem

como uma das suas principais motivações a possibilidade de elevação do nível

de abstração no processo de construção de aplicações para RSSF o que, como já

frisado, favorece a aproximação do especialista do domínio na definição das

regras e eventos do domínio da aplicação.

3.2.1 The Design and Implementation of a Declarative Sensor Network System

Especificamente em relação ao uso de linguagens declarativas em RSSF, (CHU

et al., 2007) propõe uma linguagem denominada Snlog e um compilador que realiza a

transformação das regras definidas nessa linguagem em uma linguagem específica para

nós sensores. Como estudo de caso, o artigo apresenta a transformação para a

linguagem nesC (GAY et al., 2003), nativa do sistema operacional TinyOS (LEVIS et

al., 2005). É produzido um código binário da aplicação, o qual é distribuído nos nós

sensores que compõe a rede. Como resultado, é gerada uma aplicação nativa para o

hardware com um conjunto inicial de regras. Caso seja necessário realizar modificações

nas regras, é preciso gerar um novo binário e realizar o processo de gravação no mote.

Page 57: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

42

3.2.2 FACTS-A rule-based middleware architecture for wireless sensor

networks

Como exemplo de iniciativa de construção de sistemas de middleware para

RSSF, (TERFLOTH; WITTENBURG; SCHILLER, 2006) apresentam a arquitetura de

um middleware baseado em regras para redes de sensores sem fio, composto de um

conjunto de ferramentas para ajudar no processo de desenvolvimento. Foi criada uma

linguagem de definição de conjunto de regras, chamada RDL, que é compilada pelo

ambiente de execução FACTS – executado no computador – cujo produto é um

bytecode que é interpretado pelo nó sensor, permitindo, assim, a interoperabilidade da

aplicação. O bytecode pode ser otimizado de acordo com a plataforma na qual a

aplicação será implantada, e isso implica em otimização de memória e energia. Esta

arquitetura de middleware permite a alteração das regras por meio do processo de

compilação e substituição do bytecode no nó sensor.

3.2.3 A model-Based Approach for Building Ubiquitos Application Based on

Wireless Sensor Network

(RODRIGUES et al., 2012) apresenta um alinhamento de objetivos gerais com

a proposta aqui apresentada no sentido de que ambos os trabalhos usam a separação de

“concerns” como abordagem base para aumentar o nível de abstração e permitir uma

distribuição de responsabilidades mais equilibrada e uma maior participação do

especialista do domínio no processo de desenvolvimento da aplicação. O trabalho

desenvolve uma infraestrutura MDA – Model Driven Architecure para redes de sensores

sem fio, onde especialistas de domínio são responsáveis por gerarem um modelo

independente de plataforma (PIM – Platform Independent Model) que sofre

transformações semi-automáticas no sistema até chegar a um modelo dependente de

plataforma (PSM – Platform Specific Model) que representa a lógica da aplicação

mapeada na plataforma alvo.

Page 58: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

43

3.2.4 Discussão

Observa-se que os trabalhos supracitados apresentam abordagens nas quais as

regras estão presentes dentro dos nós sensores. Entretanto, em cenários em que existam

muitas regras e a necessidade de alteração das mesmas com frequência, as abordagens

mencionadas podem não ser adequadas. Esse fato reforça a importância de abordagens

que favoreçam a definição das regras da aplicação fora do nó sensor, em direção à

nuvem computacional. Essa mudança promove: (i) flexibilidade, no sentido que

permitir alteração das regras sem a necessidade de alteração da aplicação contida no nó

sensor; (ii) interoperabilidade, permitindo que sejam consumidos dados de

sensoriamento de arquiteturas de motes distintos; (iii) escalabilidade, característica que

é provida pelo ambiente de nuvem computacional.

A Tabela 3 faz uma comparação dos trabalhos analisados, adotando a mesma

representação anterior: o símbolo “+” indica que o trabalho atende completamente ao

requisito, o símbolo “–“ indica que o trabalho atende apenas parcialmente, e símbolo “•”

indica que o trabalho não atende ao requisito. Os requisitos estão assim identificados:

Atualização das regras e eventos da aplicação (R1); Limitação quanto ao quantitativo de

regras e eventos da aplicação (R2); e (R3) Separação das preocupações.

Escopo

Trabalhos I II III

(CHU et al., 2007) + • •

(TERFLOTH; WITTENBURG; SCHILLER, 2006) + • •

(RODRIGUES et al., 2012) + • +

Tabela 3 - Comparação dos trabalhos que propõe abordagens baseadas em regras para aplicações das RSSF.

Conforme pode ser visto na Tabela 3, todos os trabalhos analisados possuem

uma limitação em relação ao quantitativo de regras e eventos da aplicação, o que é

ocasionado pelas limitações de hardware dos nós sensores. Com a sua abordagem

MDA, apenas (RODRIGUES et al., 2012) trata explicitamente o requisito de separação

das preocupações. Os demais trabalhos (CHU et al., 2007) e (TERFLOTH;

Page 59: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

44

WITTENBURG; SCHILLER, 2006), elevam o nível de abstração no processo de

definição das regras e eventos utilizando linguagens declarativas baseadas em regras;

porém, ainda há uma sobreposição de preocupações, pois além das regras e eventos, o

desenvolvedor define aspectos inerentes ao gerenciamento de recursos de hardware do

nó sensor.

Todos os trabalhos, de alguma maneira, viabilizam a atualização de novas regras

nos nós sensores. Em (CHU et al., 2007), as novas regras são implementadas por meio

da distribuição do binário pela RSSF. Já em (TERFLOTH; WITTENBURG;

SCHILLER, 2006), as regras são distribuídas através do bytecode gerado a partir das

regras, sendo esse bytecode copiado para o middleware presente no nó sensor que

realiza o processo de interpretação do mesmo. Finalmente, em (RODRIGUES et al.,

2012), as novas modificações nas regras são atualizadas por meio da instalação do

binário no nó sensor, gerado por transformações sucessivas a partir de um modelo.

De maneira geral, observa-se nas abordagens supracitadas que o processo de

atualização das regras e eventos da aplicação pode não ser uma tarefa trivial, visto que

é necessário atualizar todos os nós da rede. Observa-se, ainda, que a limitação do

quantitativo de regras e eventos está vinculada à capacidade do nó sensor, o que, em

alguns domínios, pode ser um fator crítico.

3.3 Considerações do Capítulo

Neste capítulo foram apresentados trabalhos da literatura que propõem algum

tipo de infraestrutura em nuvem visando facilitar o desenvolvimento de aplicações que

consomem dados de Redes de Sensores sem Fio. Foram também descritos alguns

sistemas de middleware baseados em regras para apoio à criação de serviços e

aplicações nesse ambiente de rede.

No que se refere à provisão de infraestruturas de integração entre as redes de

sensores e a nuvem computacional, percebe-se, pela análise da literatura da área, uma

carência de ferramentas de apoio à construção de aplicações em ambiente sensor-cloud.

Do mesmo modo, ainda são poucos os trabalhos que exploram abordagens de alto nível

para definição de regras em aplicações de RSSF.

Page 60: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

45

A análise desta amostra de trabalhos permitiu reforçar a importância de

infraestruturas como a proposta nesta dissertação. Esta análise permitiu ainda avaliar

opções de tecnologias de computação em nuvem e sistemas baseados em regras,

algumas das quais foram empregadas na implementação da arquitetura conceitual e do

sistema de gerenciamento de aplicações de RSSF proposta neste trabalho, os quais são

apresentados em detalhes nos próximos capítulos.

Page 61: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

46

Page 62: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

47

Capítulo 4

4. Arquitetura Proposta

Este capítulo apresenta o projeto e a implementação da infraestrutura de

apoio à construção de aplicações de RSSF proposta neste trabalho. O

capítulo se inicia com um breve resumo dos problemas que motivaram a

proposição de infraestrutura (Seção 4.1) seguida de uma descrição dos

requisitos que nortearam a definição da arquitetura conceitual (Seção 4.2).

A Seção 4.3 apresenta os componentes da arquitetura conceitual proposta.

A Seção 4.4 descreve a implementação da arquitetura, ressaltando as

escolhas tecnológicas adotadas para a realização do protótipo da arquitetura.

A Seção 4.5 conclui o capítulo.

4.1 Introdução

Como descrito na introdução deste trabalho, o desenvolvimento de aplicações

para redes de sensores sem fio pode ser uma tarefa complexa, exigindo do

desenvolvedor conhecimentos de programação de baixo nível relacionados às

especificidades das plataformas de sensoriamento e sistemas operacionais, além de

conhecimentos do domínio do problema e dos requisitos das aplicações.

Uma das consequências deste cenário é que o programador recebe uma

sobrecarga de demandas de desenvolvimento, em função da baixa participação do

usuário especialista de domínio na definição direta das regras de negócio e na

Page 63: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

48

especificação dos requisitos de alto nível da aplicação. Este fato pode ser explicado, em

parte, devido à ausência de mecanismos que facilitem ou promovam a participação do

especialista de domínio no processo de definição das regras da aplicação. Isso, de certa

forma, dificulta o processo de universalização de sistemas computacionais baseados em

redes de sensores sem fio.

Outra questão já mencionada, também relevante – especialmente quando se

considera cenários otimistas que preveem o uso maciço de aplicações de RSSF e outros

objetos inteligentes (smart objects) (VASSEUR; DUNKELS, 2010) nos próximos anos

– é que hoje, via de regra, o desenvolvimento é voltado para suportar cenários em que

os dados dos sensores são usados por uma aplicação específica, visando a um propósito

particular, sem o apoio de infraestruturas que favoreçam o compartilhamento dos dados

coletados entre aplicações (ATIF ALAMRI, 2013). Esta abordagem está na contramão

de cenários futuros de uso das redes de sensores, por exemplo, em Cidades Inteligentes,

que demandam infraestruturas que favoreçam o aprovisionamento de serviços e o

desenvolvimento de aplicações com alto grau de compartilhamento de dados, escaláveis

e em diferentes domínios.

Com base nessas premissas, as próximas seções descrevem a infraestrutura

criada neste trabalho para apoiar o desenvolvimento de aplicações de RSSF. O projeto

da arquitetura conceitual proposta tem por base um conjunto de requisitos funcionais e

não funcionais, os quais são descritos a seguir.

4.2 Princípios e Requisitos

A arquitetura conceitual proposta está inserida numa abordagem de

desenvolvimento centrada nos seguintes princípios:

Uso de uma abordagem de alto nível para representação das regras e

eventos em um ambiente de nuvem computacional. A abordagem de alto

nível deve possibilitar ao especialista do domínio autorizado a definição de

regras e suas respectivas ações. As ações devem ser providas pela arquitetura, de

forma transparente ao usuário.

Page 64: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

49

Compartilhamento de informações coletadas por redes de sensores sem fio

entre aplicações. A arquitetura conceitual de integração entre as redes de

sensores sem fio e a plataforma de nuvem computacional deve prover

mecanismos que permitam o compartilhamento de informações de

sensoriamento de diversas redes de sensores sem fio, devidamente autorizadas

na arquitetura.

Além desses princípios, a arquitetura proposta deve atender aos seguintes

requisitos:

R1. Segurança da plataforma de nuvem computacional: O ambiente de

nuvem computacional deve suportar conexões seguras com a rede de

sensores, sendo desejável que exista algum mecanismo de autenticação.

R2. Gestão de regras e eventos do domínio: A construção de regras e

eventos deve ser realizada por meio de um paradigma de programação

flexível, que viabilize a sua descrição em alto nível de abstração. Deve ser

possível a definição de um repositório de regras e eventos do domínio. O

processamento das regras e eventos do domínio deve ser escalável e possuir

um mecanismo capaz de invocar serviços, por meio de interfaces

padronizadas. O ambiente deve, ainda, suportar uma forma de subscrição de

dados obtidos da RSSF, considerando aspectos relacionados a controle de

privacidade.

R3. Gestão de serviços: Deve ser possível ao especialista de domínio acionar

serviços como parte da definição das regras de negócio. Serviços são

funcionalidades disponíveis para o usuário do domínio com intuito de serem

utilizadas nas ações das regras, por exemplo, o envio de um SMS ou de um

email. Os serviços devem possui baixo acoplamento em relação ao ambiente

de definição de regras e eventos do domínio, ou seja, devem ser fornecidos

como uma caixa preta para esse ambiente. Para tanto, é necessário prover

uma interface de comunicação com os elementos externos, uma lista de

métodos e parâmetros. É desejável que haja um repositório onde os serviços

são cadastrados e disponibilizados ao especialista de domínio.

R4. Comunicação RSSF-Nuvem: Deve existir uma interface capaz de

estabelecer e manter conexões seguras com o ambiente de nuvem

Page 65: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

50

computacional. Esta interface deve, ainda, suportar os protocolos da rede à

qual está vinculada e ser capaz de formatar os dados recebidos das redes em

um formato que permita o intercâmbio de informações com a plataforma de

nuvem computacional. É desejável que seja realizado o tratamento dos

aspectos referentes à precisão dos dados recebidos das redes de sensores

(gerenciamento de QoC – Quality of Context).

R5. Serviço de gerenciamento da arquitetura: a infraestrutura deve prover

um ambiente que possibilite a definição de diferentes papéis aos seus

usuários: o administrador e o especialista do domínio. Deve ser possível

descrever facilmente as regras, definir ações e os dados necessários para o

gerenciamento de usuário e serviços na infraestrutura proposta. É importante

que a interface de gerência seja concebida considerando aspectos de

usabilidade e independência de plataforma.

R6. Privacidade. A preservação da privacidade é uma das premissas dos

sistemas de compartilhamento de informações. Assim, ao mesmo tempo em

que devem existir facilidades para que os usuários e aplicações

compartilhem dados, é tarefa do sistema prover garantias para que nenhuma

pessoa não autorizada tenha acesso a dados e informações para os quais não

tenha permissão.

4.3 Arquitetura Conceitual

A Figura 17 mostra a arquitetura conceitual da infraestrutura proposta. São

identificados os seus componentes, os quais estão distribuídos em duas camadas, e os

atores do processo, representados nos papéis do especialista de domínio e do

desenvolvedor de aplicações para RSSF.

Page 66: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

51

Figura 17 - Arquitetura Conceitual

A arquitetura conceitual é dividida em duas camadas: (i) uma Camada de Fonte

de Dados (Data Source Layer); e uma (ii) Camada de Nuvem (Cloud Layer). Esta

divisão visa à separação de responsabilidades entre o desenvolvedor que detém

conhecimentos do ambiente de rede de sensores e o analista de domínio, que detém

conhecimentos do domínio e das regras de negócio da aplicação. Esta abordagem

permite a cada um deles usar os seus conhecimentos específicos sem a necessidade de

lidar com exigências que não pertencem ao seu campo de especialização (RODRIGUES

et al., 2012).

A Camada de Fonte de Dados abstrai as funcionalidades providas pela rede de

sensores, encapsulando aspectos de programação e configuração de baixo nível, tais

como detalhes das plataformas de nós sensores, especificidades de protocolos, sistemas

operacionais e comunicação sem fio, além da interface com a Internet. Ela também

abstrai a origem e a localização dos dados capturados pela rede de sensores sem fio.

Cada instância da Camada de Fonte de Dados inclui a rede de sensores

propriamente dita, com seus nós e a estação base, e a conexão com o ambiente de

nuvem computacional, provida pelo gateway. Este elemento da arquitetura entende o

protocolo de comunicação da RSSF, sendo capaz de receber os dados capturados pelos

sensores e de repassá-los para uma plataforma em nuvem na Internet por meio de um

canal seguro.

Page 67: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

52

A Camada de Nuvem possui um conjunto de funções que facilita a interação do

especialista do domínio no processo de desenvolvimento da aplicação de RSSF. A

camada abstrai os detalhes da obtenção dos dados de sensoriamento da rede, no sentido

de facilitar o desenvolvimento de aplicações; e incorpora componentes e

funcionalidades essenciais para a definição das regras de negócio e da gerência de

aplicações e controle de usuários do sistema. Essa camada é constituída dos seguintes

elementos: Gestor de Autenticação (Autentication Manager), Gestor de Usuários (User

Manager), Gestor de Regras e Eventos do domínio (Rules and Events Manager),

Controle de Privacidade (Privacy Control) e um Gestor de Serviços (Service Manager).

A plataforma de nuvem computacional somente recebe dados de sensoriamento

das redes autorizadas. Para tanto, deve haver um elemento de comunicação RSSF-

nuvem, que possua permissão de publicação de dados coletados da RSSF no ambiente

de nuvem computacional. O Gestor de Autenticação é o responsável pela validação das

credenciais de acesso e pelo estabelecimento de um canal de comunicação seguro entre

esse elemento de comunicação e a RSSF.

O controle de acesso e definição de permissões na arquitetura é provida pelo

Gestor de Usuários. Este controle consiste na criação de usuários, definição de grupos e

suas permissões. Estas permissões estão associadas aos elementos presentes na

arquitetura, tais como o Gestor de Regras e Eventos, incluindo o controle de subscrição,

e o Gestor de Serviços, definindo qual grupo de usuário tem direito de cadastrar, editar

ou excluir serviços.

O Gestor de Regras e Eventos permite subscrever dados coletados das RSSF,

criar arquivos de regras no repositório, definir regras e eventos com alto nível de

abstração e flexibilidade, além de acionar serviços disponíveis no repositório de

serviços.

O Gestor de Serviços provê suporte ao cadastro, edição e exclusão de serviços,

que podem ser internos ou externos à plataforma. Como consequência, é disponibilizado

um repositório de serviços, que consiste de uma lista de serviços para o especialista de

domínio utilizar nas ações das regras.

Um Serviço de Gerenciamento da arquitetura (Service Management

Architecture) é fornecido para dar acesso aos elementos definidos na Camada de Nuvem

da arquitetura. Este serviço fornece uma interface que privilegia a flexibilidade e a

Page 68: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

53

portabilidade, sendo possível ser implantada em plataformas operacionais diversas,

como Windows, Linux e Macintosh.

Dos requisitos indicados na seção 4.1, apenas o requisito de privacidade (R6)

não está sendo contemplado nesta versão da arquitetura, devendo este ser objeto de

trabalho futuro.

4.4 Arquitetura da implementação

A arquitetura da implementação é mostrada na Figura 18, onde se pode destacar

a estrutura tecnológica utilizada para viabilizar e atender os requisitos da arquitetura

conceitual definida na seção anterior.

Figura 18 - Arquitetura da implementação

Segundo a abordagem de desenvolvimento usada neste trabalho, o especialista

de RSSF inicialmente constrói as aplicações que serão gravadas nos nós da rede de

sensores e no gateway, usando alguma linguagem de programação adequada à

plataforma de sensores e respectivo sistema operacional. O especialista do domínio, por

sua vez, abstrai os detalhes de implementação da rede e, por meio da interface do

usuário provida pelo Serviço de Gerenciamento da arquitetura, define as regras e os

Page 69: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

54

eventos de interesse da aplicação, bem como as redes das quais ele deseja obter dados.

Para a definição das regras e eventos ele faz uso da linguagem declarativa

disponibilizada pela infraestrutura.

Para que as redes desejadas possam começar a disponibilizar os dados para a

nuvem é necessário que ocorra a execução da aplicação contida no gateway. Tal

aplicação é responsável pelas seguintes funcionalidades: estabelecer e manter uma

conexão segura com a infraestrutura de nuvem computacional; e receber dados oriundos

da RSSF por meio da estação base, adequando-os em um formato apropriado para

transmissão até a nuvem computacional. Na primeira execução dessa aplicação, é

estabelecida uma conexão criptografada com a nuvem. Nesse processo, são enviadas as

credenciais de acesso e o Gestor de Autenticação realiza a validação das mesmas,

estabelecendo, então, um canal seguro para a transmissão dos dados coletados das

redes.

Na implementação realizada, cada rede transmite as informações coletadas até a

estação base (base station) utilizando uma estrutura de dados independente de

plataforma de sensoriamento, que recebe as informações via interface sem fio e as

encaminha para o gateway via alguma interface apropriada (ex: serial). O gateway, por

sua vez, extrai as informações e as encapsula em formato JSON (CROCKFORD, 2006),

transmitindo-as para o respectivo tópico (topic) definido no ambiente de nuvem

computacional. O formato JSON foi adotado como formato de intercâmbio de dados por

exigir menos recursos computacionais para seu processamento, se comparado com o

formato XML (NURSEITOV et al., 2009), estando alinhado com as limitações de

hardwares inerentes às RSSF.

A interface RSSF-nuvem, foi implementada por meio dos elementos base station

e gateway. A aplicação presente no Gateway gerou dois componentes no processo de

implementação: o Unit Format Data e o Manager Connection. O Unit Format Data

recebe as informações da interface serial, extrai os dados de sensoriamento contidos na

estrutura de dados independente de plataforma, e adequa tais dados ao formato JSON. O

Manager Connection estabelece um canal de comunicação via https com a plataforma

de nuvem computacional, e envia os dados para a estrutura publish/subscribe. A

implementação do Gateway e do Gestor de Autenticação atende ao requisito R4 da

Page 70: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

55

arquitetura conceitual de se estabelecer uma interface segura de comunicação RSSF-

nuvem computacional.

A Amazon foi adotada como plataforma de computação em nuvem e a Amazon

Web Services - AWS (CLOUD, 2011) foi utilizada para interação programática com a

sua infraestrutura. Desta forma, foi possível utilizar os serviços de conexão

criptografada com a nuvem, utilizando credenciais de autenticação. O compartilhamento

de dados foi viabilizado pelo Simple Notification Service em conjunto com o Simple

Queue Service (CLOUD, 2011), gerando uma arquitetura publish/subscribe. Neste caso,

o Simple Notification Service atua como publicador no ambiente de nuvem

computacional e o Simple Queue Service atua como assinante. Essas escolhas

tecnológicas atendem ao requisito R1 da arquitetura conceitual.

O Gestor de Subscrição, sub-componente do Gestor de Regras e Eventos do

domínio, viabiliza o recebimento de dados das RSSF. Ele foi implementado por meio de

uma estrutura publish/subscribe (EUGSTER et al., 2003). Os gateways das RSSF

assumem o papel de publicadores e, para isso, associado a cada rede, é instanciado um

tópico (topic) na nuvem.

O tópico é uma representação virtual dos dados de sensoriamento de uma

determinada RSSF, tecnologicamente representado pelo serviço Simple Notification

Service, sendo ele o elemento da implementação contido na nuvem que permite às

aplicações realizarem assinaturas de conteúdo das redes de sensores. As assinaturas

podem ser realizadas por meio de diversos protocolos, tais como e-mail, http, https ou

queues. O tópico recebe os dados serializados e dispara notificações (push) para os

assinantes do tópico. Essa notificação contém metadados e a mensagem que representa

os dados capturados pela RSSF.

Em alguns cenários, é possível que sejam capturados e transmitidos muitos

dados de sensoriamento; logo, é importante que haja um mecanismo para receber esses

dados e encaminhá-los para as aplicações que fizeram as devidas subscrições. Neste

trabalho, foi adotado o modelo de filas. As filas podem ser entendidas como assinantes

de tópicos dos quais se tem interesse em receber dados. Cada aplicação baseada em

regras possui uma fila. Lista de mensagens (notificações) surgem à medida que

acontecem as notificações dos tópicos que possuem os dados que chegam das fontes de

dados. Uma thread consome as mensagens à medida que elas chegam às filas. Esta

thread recebe as notificações em formato JSON e o transforma em um objeto JAVA.

Page 71: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

56

O ambiente Drools (BALI, 2009) foi adotado como plataforma de regras na

implementação realizada. A escolha de Drools atende ao requisito (ii) da arquitetura

conceitual. Drools oferece uma linguagem específica de domínio, denominada Drools

Rule Language (DRL), de alto nível de abstração, que proporciona flexibilidade e

agilidade para alterações das regras de negócio e dos eventos de interesse da aplicação.

Drools possui uma máquina de regras e uma memória de trabalho. A máquina de regras

recebe objetos JAVA da thread, os quais são inseridos como fatos na memória de

trabalho. A aplicação escrita pelo analista de domínio é representada por um arquivo de

regras, as quais são processadas por uma máquina virtual em um ambiente de nuvem

computacional. Para invocar serviços no right-hand side da regra, foi desenvolvido um

cliente de serviços.

Os serviços foram implementados utilizando a arquitetura Web Services RESTful

(RICHARDSON; RUBY, 2008), o que permitiu obter baixo acoplamento e possibilitou

o desenvolvimento de novos serviços a serem utilizados pelos usuários do domínio no

right hand side das regras.

4.4.1 Serviço de gerenciamento da arquitetura

Para realizar o gerenciamento da arquitetura, foi desenvolvida uma aplicação

web, detalhada em (FRAGA, 2013), que permite gerenciar o repositório de regras e

eventos do domínio, realizar o controle dos usuários, criar e manter serviços, e definir a

relação de subscrição entre as aplicações baseadas em regras e as fontes de dados.

Assim, as diversas aplicações do domínio podem consumir dados de sensoriamento

oriundos das fontes de dados nos quais tenham interesse. A Figura 19 apresenta o

serviço de gerenciamento da arquitetura proposta no presente trabalho.

Page 72: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

57

Figura 19 - Serviço de gerenciamento da arquitetura proposta.

A seguir são descritos os elementos do serviço supracitado, indicando as

tecnologias adotadas na implementação:

EC2 (Amazon Elastic Compute Cloud). O serviço EC2, da Amazon, foi

adotado como mecanismo de hospedagem do serviço de gerenciamento

da arquitetura. Trata-se de um serviço da web que fornece uma

capacidade de computação redimensionável na nuvem (CLOUD, 2011).

Para isso, foi instanciada uma máquina virtual, onde foram instalados os

aplicativos openjdk-7 e Tomcat7, necessários para executar aplicações

com JSP e Servlets. O Tomcat7 foi configurado para responder ao

protocolo HTTPS, com intuito de fornecer encriptação de dados e por

consequência, maior segurança. Essa instância é responsável por

processar toda a interação com o usuário, incluindo atividades como: (i)

gerência do banco de dados; (ii) controlar o acesso e permissão de

usuários; (iii) viabilizar o gerenciamento dos sistemas baseados em

regras; e (iv) gerenciar serviços. O EC2 também foi utilizado para

hospedar o servidor de serviços. Essa instância contém a implementação

Page 73: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

58

dos serviços, ou seja, é responsável pelo atendimento às requisições de

execução de serviços empregadas nas ações das regras. Outros serviços

podem ser implementados em outras máquinas virtuais na infraestrutura

da Amazon ou provido por qualquer outra infraestrutura. A arquitetura

suporta o cadastro de serviços, onde novos serviços podem ser

implementados por um desenvolvedor e incorporados a arquitetura,

desde que tal serviço esteja acessível na Internet. Serviços públicos

também pode ser adicionados à arquitetura, por exemplo, um serviço de

persistência dos dados de sensoriamento em uma planilha na

infraestrutura do Google Drive.

Jersey RESTful Web Services. Como dito, a implementação do servidor

de serviços tem por objetivo prover funcionalidades a serem usadas pelos

especialistas do domínio nas ações das regras. Ele foi dividido em duas

partes: um cliente de serviços e um servidor de serviços. O cliente de

serviços é uma classe JAVA responsável por realizar solicitações HTTP

ao servidor de serviços. A URI é gerada pelo cliente combinando o

endereço do servidor, o nome do serviço que se deseja chamar e os

parâmetros exigidos por ele. O servidor recebe as solicitações do cliente

e realiza o processamento conforme a solicitação recebida. Para o

funcionamento desta estrutura, os serviços devem ser previamente

cadastrados por meio da interface web, que armazena suas informações

no banco de dados. Tais informações incluem: nome do serviço,

endereço do servidor, parâmetros e informações de perfil (quando

houver). A implementação realizada adotou o estilo arquitetural RESTful

Web Services, utilizando a tecnologia Jersey. Como exemplo, foi

implementado um serviço de envio de e-mail (SendEmail). Uma

vantagem importante da adoção do estilo arquitetural RESTFul é que os

provedores de serviços e seus clientes podem interoperar mesmo que

escritos em diferentes linguagens de programação. A maioria das

linguagens de programação possuem suporte ao estilo arquitetural

RESTful. Com isso, pode-se desenvolver sistemas e disponibilizar

determinadas funcionalidades a fim de serem reaproveitados por outras

Page 74: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

59

aplicações, sem exigir a utilização da mesma plataforma em que o

serviço foi desenvolvido.

AWS IAM (Identity and Access Management). Provê o controle de

acesso dos diversos usuários do sistema aos recursos da Amazon. Foram

definidos dois tipos de perfis de usuário: administrador e desenvolvedor.

O perfil administrador tem permissão de gerenciar usuários, aplicações e

serviços. O perfil desenvolvedor possui permissão de edição de uma

aplicação na qual ele possui acesso previamente configurado. O

especialista do domínio (perfil desenvolvedor) tem a permissão de acesso

de leitura dos serviços SNS, SQS, IAM e RDS. Já para o serviço S3

(vide abaixo) lhe foi concedida permissão de leitura e escrita, pois este

serviço é responsável pelo armazenamento dos arquivos de regras das

aplicações. Já o perfil administrador tem acesso de leitura e escrita à

todos os serviços citados. Todo usuário, independentemente do perfil,

possui chaves de autenticação, que permitem o acesso ao serviço de

gerenciamento da arquitetura e aos serviços da Amazon. A interface web

provida pelo serviço de gerenciamento da arquitetura apresenta somente

os recursos que cada perfil de usuário tem acesso.

RDS (Relational Database Service). Trata-se de um serviço oferecido

pela Amazon de banco de dados relacional. No contexto desta

implementação, o banco de dados é utilizado para guardar informações

sobre aplicações baseadas em regras, usuário, gateways das RSSF e dos

serviços. A utilização deste serviço tem como benefícios a

escalabilidade, consistência e segurança. O RDS permite aumentar sua

capacidade a qualquer momento, fornecendo mecanismos automáticos de

backup e registro de log. Para ter acesso ao serviço, é necessário realizar

configurações de permissão de usuários e de quais endereços IPs terão

acesso ao banco.

S3 (Simple Storage Service). Em relação à arquitetura, o S3 tem a

função de repositório de arquivos onde estão armazenadas as regras das

aplicações. Nele foi criado um Bucket, nome dado a uma unidade de

armazenamento na Amazon, chamado GwAppBucket, que permite a

gravação de um número ilimitado de arquivos de 1 byte a 5 terabytes

Page 75: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

60

cada. As vantagens de sua utilização é prover um repositório de arquivos

altamente durável e escalável, pois permite acesso simultâneo à leitura e

gravação por diferentes usuários ou threads de aplicações. Além disso,

contém um mecanismo de redundância que garante mais segurança e

disponibilidade.

A Figura 20 apresenta um exemplo da interface de edição de aplicações,

desenvolvida a partir das tecnologias citadas. Nesta tela, o especialista do domínio

consegue visualizar o nome da aplicação, os usuários que tem permissão de edição deste

conjunto de regras, os serviços disponíveis e a edição das regras do domínio. Ao salvar

a regra, os dados de sensoriamento são incluídos como fatos na máquina de regras

Drools e, então, quando houver um casamento de fatos com o left hand side da regra, a

ação definida pelo especialista do domínio é executada.

Figura 20 - Interface com o usuário.

No exemplo de regra mostrado na Figura 20, caso o fato (dado coletado da

RSSF) inserido na máquina de regras tenha a luminosidade acima de 500, então o

ClientService invoca um serviço de envio de e-mail, passando os parâmetros listados.

O serviço de gerenciamento da arquitetura interage e provê acesso aos seguintes

elementos da arquitetura conceitual:

Gestor de Usuários – por meio da interface, é possível a criação, edição

e exclusão de usuários. Além disso, é possível definir os perfis de

Page 76: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

61

acesso. A Figura 21 e a Figura 22 representam as funcionalidades

implementadas do elemento da arquitetura Gestor de usuários, sendo que

a primeira ilustra o cadastro de usuários e a última apresenta a tela de

edição de usuários.

Figura 21 - Cadastro de usuários.

Figura 22 - Edição e exclusão de usuários.

Gestor de Regras e Eventos – foi construído no paradigma web com

intuito de facilitar a interação do usuário do domínio, tornando-o

independente de plataforma. O acesso ocorre por meio de autenticação e

o protocolo utilizado foi o https. A interface web, provida pelo serviço de

gerenciamento da arquitetura permite a criação, edição e exclusão de

arquivos de regras do repositório, além da definição dos usuários que

possuem acesso de desenvolvedor e de quais redes de sensores sem fio se

deseja consumir dado (Figura 23).

Page 77: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

62

Figura 23 - Edição e exclusão de aplicações.

Gestor de Serviços – pela interface web provida pelo serviço de

gerenciamento da arquitetura, é possível a criação, edição e exclusão dos

serviços disponíveis. No protótipo implementado, tais serviços podem

ser construídos em um servidor que adote uma arquitetura RESTful Web

Services.

Em resumo, a interface web possibilitou a criação das regras, gestão das

assinaturas das informações de sensoriamento e a integração com serviços - que adota a

arquitetura RESTful de maneira simples e transparente. Desta forma, foi atendido o

requisito R5 da arquitetura conceitual proposta neste trabalho.

4.5 Considerações do capítulo

Este capítulo apresentou uma proposta de infraestrutura para integração entre

RSSF e nuvem computacional com suporte de alto nível para definição de regras, cuja

arquitetura conceito promove o conceito de separação de “concerns” e permite uma

participação mais ativa do analista de domínio no desenvolvimento das aplicações.

A implementação da arquitetura disponibiliza os dados coletados de diferentes

redes de sensores distintas a fim de possibilitar o compartilhamento dos mesmos na

nuvem por diferentes aplicações. A plataforma Drools de sistema de regras e a

plataforma de nuvem da Amazon foram adotadas como base para a implementação do

protótipo da infraestrutura proposta.

O Capítulo 5 apresenta um exemplo de aplicação da estrutura proposta, em um

cenário na área de estabilidade de fármacos. Questões relacionadas à avaliação de

desempenho teórico da arquitetura são discutidas no Capítulo 6.

Page 78: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

63

Page 79: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

64

Capítulo 5

5. Prova de Conceito

Este capítulo ilustra um exemplo de uso do sistema proposto. Inicialmente,

na Seção 5.1, o cenário a ser usado é apresentado, do domínio hospitalar e

da área de conservação de medicamentos. A Seção 5.2 descreve a visão de

alto nível do especialista do domínio no contexto da aplicação escolhida,

demonstrado pela utilização de regras Drools. A Seção 5.3 trata da visão do

usuário desenvolvedor (programador), ressaltando as especificidades e as

preocupações de baixo nível de abstração envolvidas na aplicação.

5.1 Cenário

O cenário de uso se refere ao domínio da conservação de medicamentos, onde

existem estudos denominados estabilidades que, na área farmacêutica, determinam os

critérios e o tempo de validade dos produtos farmacêuticos. Segundo (SILVA et al.,

2009):

“A estabilidade é definida como o tempo durante o qual a especialidade

farmacêutica ou mesmo a matéria prima considerada isoladamente,

mantém dentro dos limites especificados e durante todo o período de

estocagem e uso, as mesmas condições e características que possuía

quando da época de sua fabricação”.

A estabilidade dos produtos farmacêuticos depende de fatores ambientais, tais

como temperatura, umidade e luz, e de outros fatores relacionados ao próprio produto,

Page 80: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

65

como propriedades físicas e químicas, de substâncias ativas e excipientes farmacêuticos,

forma farmacêutica e sua composição, processo de fabricação, tipo e propriedades dos

materiais de embalagens (RESOLUÇÃO, 2005).

Os hospitais são um cenário típico em que questões relacionadas à estabilidade

de produtos farmacêuticos são relevantes. Nestes locais, existem setores

especificamente responsáveis pelo armazenamento e conservação dos medicamentos.

Figura 24 – Cenário Hospitalar.

Geralmente, os profissionais que atuam na área farmacêutica dentro dos

hospitais, dentre as suas atividades, tem a incumbência de averiguar durante intervalos

de tempo pré-determinados as variáveis do ambiente onde e como estão acondicionados

os medicamentos. Existe uma atenção especial com os medicamentos mais sensíveis à

variação de temperatura, especialmente por conta do alto custo de alguns deles;

entretanto, em geral a medição e o controle das variáveis do ambiente são realizados de

forma manual. Esse procedimento, além de lento e custoso, é suscetível a erros.

Percebe-se, portanto, que o domínio hospitalar é um cenário promissor no que se refere

ao uso de tecnologias que suportem a coleta de informações do ambiente, facilitem a

Page 81: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

66

realização do processamento das regras de negócio e, eventualmente, executem ações

específicas conforme o especialista do domínio ache necessário.

Usando esse cenário como base, as próximas seções discutem as diferenças de

visões entre o analista de domínio e o programador da RSSF na construção de uma

aplicação de RSSF hipotética usando a infraestrutura proposta nesta dissertação.

5.2 Visão do especialista de domínio

Em (SAÚDE, 2001) é apresentado um conjunto extenso de regras de

estabilidade, onde foi possível constatar a diversidade e dinamicidade do domínio. O

levantamento realizado apresenta um fato interessante (Tabela 4): a vacina contra

varicela, dependendo do fabricante, possui características de conservação distintas. Este

exemplo demonstra a necessidade da participação do especialista do domínio na

construção e manutenção das regras do sistema, pois podem ser desenvolvidos novos

medicamentos e estes serem inseridos em um ambiente monitorado. Geralmente, deseja-

se que o sistema emita um alerta caso as variáveis do ambiente não satisfaçam às

características de estabilidade.

Vacina contra Varicela

Laboratório Temperatura

Smith Kline + 2 a +8ºC

Merck Sharp & Dohme - 15ºC

Biken 5 ºC ou inferior

Tabela 4 - Informações de estabilidade da vacina contra Varicela.

É importante que o especialista do domínio consiga definir regras de forma

dinâmica, utilizando uma abordagem de alto nível, conforme as características de

conservação dos medicamentos. Adicionalmente, deve ser possível para ele definir

ações a serem executadas caso as informações do ambiente casem com alguma regra

pré-determinada de não conformidade do domínio.

Page 82: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

67

A Figura 25 apresenta um exemplo de conjunto de regras que pode ser definido

pelo especialista do domínio utilizando a linguagem de alto nível do ambiente Drool.

Considera-se que no hospital existem dois locais são armazenados os medicamentos,

sendo que cada local possui uma RSSF e um gateway.

O exemplo da Figura 25 mostra seis regras que representam as restrições de

temperatura da vacina contra varicela, de três fabricantes distintos, conforme descrito na

Tabela 4. Neste exemplo, para cada fabricante de vacina, foi produzido um par de regras

com intuito de enviar um e-mail de alerta caso a temperatura monitorada esteja fora dos

padrões estabelecidos, a fim de manter a estabilidade dos fármacos. O objetivo da

utilização de duas regras para cada fabricante é evitar que sejam enviados múltiplos e-

mails em situações onde a temperatura coletada não atenda os critérios definidos. Para

cada par de regras, a primeira tem a função de disparar um e-mail de alerta quando a

informação coletada não atender as especificidades de estabilidade da vacina; a segunda

regra é utilizada é acionada sempre que a temperatura estiver em seus parâmetros

normais. Um flag é utilizado para evitar o flooding de e-mails quando houver alguma

não conformidade na temperatura.

A regra “Varicela – Smith Kline laboratory” define que caso a temperatura de

quaisquer sensores não esteja entre 2ºC e 8ºC, então o serviço SendEmail presente no

repositório de serviços é acionado, passando os seguintes parâmetros: perfil de e-mail

(conta de e-mail da origem, previamente configurada), e-mail de destino, assunto e

conteúdo. Este serviço é acionado por meio de uma requisição http, onde o

ClientService procede com a formação da url e seus parâmetros.

A regra seguinte indica que uma mensagem de e-mail é enviada (por meio do

serviço SendEmail), com os mesmos parâmetros citados anteriormente, caso a

temperatura seja coletada por meio do “gateway1” seja maior que -15ºC. E, finalmente,

a última regra define que se a informação enviada pelo “gateway2” até o ambiente de

nuvem computacional for superior a 5ºC, então o serviço SendEmail é acionado.

Vale mencionar que a Figura 25 ilustra um exemplo de utilização de regras em

um determinado domínio. O código abaixo utiliza variáveis (flags) que podem não ser

escaláveis conforme o aumento de fatos na memória de trabalho. Além disso, não está

sendo considerado aspectos temporais neste exemplo, apesar do Drools Fusion prover

este tipo de suporte.

Page 83: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

68

Figura 25 - Regras do cenário.

O especialista do domínio tem, portanto, uma função relevante no processo de

definição de regras de negócio e ações da aplicação. A Figura 26 mostra a interface que

o especialista tem acesso no sistema desenvolvido. Mediante autenticação, é possível

definir um conjunto de regras e ações para um determinado conjunto de dados de

sensoriamento. O especialista do domínio define um nome, os usuários que terão

acesso, as redes de sensores sem fio que se deseja obter dados (representado pelo termo

- gateway) e, por fim, as regras e ações a serem realizadas. As regras são definidas em

Page 84: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

69

Drools Rule Language e as ações podem ser compostas de serviços. Os dados são

inseridos como fatos na respectiva da memória de trabalho do Drools.

Figura 26 - Interface com o especialista do domínio.

Observa-se que o especialista do domínio não precisa compreender os detalhes

inerentes à RSSF, pois ele apenas indica qual a RSSF que deseja obter dados, sendo

transparente todo processo de captura e transmissão dos dados até a plataforma de

nuvem computacional. A utilização dos serviços também é transparente, pois basta

invocá-los e informar os parâmetros necessários. Sendo assim, o especialista do

domínio consegue se aproximar das definições das regras e eventos do domínio,

utilizando uma abordagem de alto nível, flexível e extensível. Este último justifica-se

pelo suporte que a arquitetura possui à inclusão de novos serviços ao repositório de

serviços.

Observa-se, ainda, que o cenário hospitalar apresentado pode ser estendido em

diversos contextos, tais como: adição de regras para novos medicamentos incluídos nos

locais monitorados pelas redes de sensores existentes; inclusão de novas redes em

outros setores ou mesmo em outros hospitais; monitoramento de toda cadeia logística,

desde o fabricante até o hospital, inclusive no transporte dos mesmos, entre outros.

Esse último contexto evidencia requisitos específicos de projeto de RSSF que

influenciam diretamente na construção das aplicações para as RSSF, tais como,

mobilidade dos nós sensores, gateways com acesso móvel à Internet, algoritmos de

roteamento específicos, adequação do hardware do nó sensor, etc. Além disso, o

Page 85: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

70

contexto citado remete à possibilidade de se ter diversos especialistas de domínios

distintos com a demanda de construir regras a partir dos dados coletados pelas diversas

RSSFs, situação essa contemplada pela arquitetura, onde usuários podem ser

cadastrados e associados às aplicações baseadas em regras. Além disso, novos serviços

podem ser incorporados à arquitetura por meio do cadastro no repositório de serviços.

Como exemplos de serviços é possível citar: envio de SMS; integração com outros

serviços de nuvem, tais como Google Apps; persistência das informações em banco de

dados; entre outros. Todas essas possibilidades de extensão do cenário apresentado e

suas especificidades fortalecem a ideia defendida neste trabalho em relação à separação

das preocupações e a adequação dos elementos que compõe a sua arquitetura.

5.2 Visão do desenvolvedor

O desenvolvedor de aplicações para RSSF (usuário “programador da RSSF”) é

responsável por analisar os ambientes do hospital onde a rede de sensores será instalada,

realizando o levantamento de todos os requisitos necessários para a efetiva construção

da rede física sob o ponto de vista do hardware a ser empregado (tipo de mote, gateway,

placas de sensoriamento, etc.) e da programação desses elementos.

A Figura 27 e a Figura 28 apresentam um exemplo típico de aplicação

construída para RSSF que usa o framework de programação TinyOS e a linguagem de

programação nesC. A Figura 27 representa um componente dito de configuração, cuja

função é estabelecer as ligações entre os diversos componentes da aplicação por meio

das suas interfaces. A Figura 28 exibe um exemplo de componente de implementação,

cujo objetivo é definir as funções e eventos a serem tratados pela rede.

Page 86: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

71

Figura 27 - Componente de configuração nesC.

Page 87: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

72

Figura 28 - Componente de Implementação nesC.

Page 88: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

73

Essas duas figuras compõe um exemplo de aplicação simples, cujo objetivo é

monitorar a luminosidade periodicamente e encaminhar as informações coletadas via

interface sem fio para todos os nós em sua zona de alcance. Essa aplicação ainda é

capaz de receber informações remotas para alteração do intervalo de tempo em que é

monitorado e transmitido os dados de luminosidade.

Como é possível perceber, mesmo nessa aplicação simples existe uma série de

conceitos necessários para a compreensão da aplicação, incluindo as características do

framework de programação, a linguagem, a plataforma de hardware, entre outros, o que

tende a uma longa curva de aprendizagem e conhecimento especializado, longe do

universo do analista de domínio.

No caso específico do cenário de uso, as redes de sensores usadas nos hospitais

podem eventualmente ser heterogêneas, apresentarem diferentes tipos de nós, placas de

sensoriamento diversas, sistemas operacionais diferentes e requisitos de comunicação

variáveis, tornando a tarefa de desenvolvimento e integração dessas redes muito mais

complexas do que o exemplo da Figura 28. Isso reforça a necessidade de se construir

ambientes com facilidades para comportar as diferentes visões dos profissionais

envolvidos no desenvolvimento das aplicações de RSSF.

5.4 Considerações do capítulo

Este capítulo apresentou um cenário de uso para a abordagem proposta neste

trabalho, focando na separação das preocupações (separation of concerns) entre os

usuários responsáveis pelo desenvolvimento de aplicações para RSSF.

O próximo capítulo apresenta uma avaliação teórica da infraestrutura no que se

refere à caracterização do modelo de filas do sistema, as quais atuam como assinantes

de informações oriundas das RSSF. São mostradas as equações que regem o

comportamento do sistema.

Page 89: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

74

Capítulo 6

6. Avaliação

Visando investigar o comportamento teórico da infraestrutura proposta, este

capítulo avalia a implementação da arquitetura do ponto de vista do seu

modelo de filas. O objetivo é fazer um estudo inicial acerca de questões de

escalabilidade e desempenho da implementação realizada. Para

detalhamento da análise teórica, são usados os conceitos básicos de Teoria

das Filas introduzidos no Capítulo 2

6.1 Introdução

Conforme descrito no Capítulo 4, as informações oriundas das redes de sensores

são enviadas para o ambiente de nuvem computacional com o intuito de serem

consumidas por aplicações baseadas em regras. Como visto, foi adotada a arquitetura

publish/subscribe para viabilizar a comunicação entre as redes e as aplicações que

possuem as regras e os eventos do domínio. Cada aplicação baseada em regras recebe as

informações das RSSF que tem interesse por meio de uma fila, sendo que cada

aplicação possui a sua própria fila.

Considerando este contexto, é importante que seja feita uma caracterização

teórica em relação ao tráfego gerado pelas RSSF e a capacidade de consumo dessas

informações pelas aplicações. Para tanto, a próxima seção revisita conceitos básicos de

teoria das filas com intuito de especificar o tipo com vistas a investigar as limitações

teóricas da arquitetura proposta.

Page 90: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

75

6.2 Análise teórica

A Figura 29 ilustra a implementação da arquitetura proposta no trabalho, onde

são destacadas algumas variáveis de interesse, consideradas relevantes para a avaliação

da arquitetura no que se refere às suas limitações teóricas de escalabilidade. Na figura, é

representado um sistema com n redes de sensores sem fio enviando os dados coletados

do ambiente para os seus respectivos tópicos, presentes no ambiente de nuvem

computacional, que publicam tais dados para os seus assinantes. É possível que existam

n máquinas virtuais com seus sistemas baseados em regras em execução e procedendo

com a coleta dos dados de suas respectivas filas.

Figura 29 - Implementação da arquitetura.

Page 91: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

76

Geralmente, cada ambiente onde se deseja implantar uma rede de sensores sem

fio possui características muito particulares. Isso impacta em toda a análise e definição

do projeto da rede, ou seja, o ambiente influencia fortemente na definição do hardware

dos nós sensores, dos protocolos de comunicação, e de quais variáveis devem ser

monitoradas, entre outros. As características distintas entre os projetos de redes de

sensores sem fio e os ambientes monitorados podem implicar em uma variação do

volume de informações coletadas e transmitidas para a nuvem computacional. Assim,

para representar a taxa média de mensagens transmitidas de uma RSSF, adota-se a

variável λ (lambda).

Os sistemas baseados em regras, representados na Figura 29 pelas máquinas

virtuais onde são executados, possuem uma base de regras que define um determinado

domínio, com regras e ações bem definidas, sendo as informações de sensoriamento

coletadas da sua respectiva fila. A variável µ representa o tempo de serviço, ou seja, a

soma dos tempos médios de coleta informações da fila, processamento (transformação

da mensagem em JSON em objeto JAVA), e da inclusão dos objetos como fatos na

memória de trabalho do Drools. Vale ressaltar que o tempo de serviço no contexto deste

trabalho não considera o tempo de processamento das regras e suas respectivas ações,

pois não existe dependência da inserção de um novo objeto e o processamento das

regras, em outras palavras, para inserir um objeto na memória de trabalho do Drools não

é necessário esperar o processamento dos fatos anteriores.

A definição das variáveis λ, como taxa média de mensagens oriundas das RSSFs

por unidade de tempo, e µ, como taxa média de coleta de informações da fila, são muito

importantes para que seja realizada uma análise de limitações teóricas da arquitetura. O

cenário representado neste trabalho, onde existe um tópico que publica informações em

uma fila a uma taxa média λ, e um sistema baseado em regras, que possui a

funcionalidade de coletar mensagens de uma fila com um tempo médio µ, remete a um

modelo clássico estudado em teoria das filas, como pode ser visto na Figura 30.

Como visto, uma fila possui dois elementos básicos: o cliente, elemento que

chega e requer atendimento, e o canal de atendimento, processo ou pessoa que realiza o

atendimento do cliente. No contexto deste trabalho, o cliente é representado pela

mensagem enviada pela RSSF e o canal de atendimento pela máquina virtual que

executa o sistema baseado em regras que consome dados da fila. Observa-se, neste caso,

que o atendimento se refere apenas à entrega da mensagem como fato na memória de

Page 92: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

77

trabalho, ou seja, o atendimento não inclui casamento do fato com as regras existentes e

a eventual execução das ações previstas. Essa premissa tem como fundamento a não

necessidade de esperar o processamento das regras para inserção de um novo fato na

memória de trabalho.

Figura 30 - Modelo básico de fila.

Segundo (ADAN; RESING, 2002), é possível definir seis componentes

principais de uma fila. Esses são listados abaixo, instanciado aos componentes da

infraestrutura proposta:

modelo de chegada dos clientes ao serviço: geralmente é especificado

pelo tempo entre chegadas dos clientes, podendo ser determinístico ou

ser uma variável aleatória seguindo uma distribuição de probabilidade.

Os clientes, no contexto deste trabalho, são as mensagens oriundas das

redes de sensores sem fio, que seguem as características de uma variável

aleatória discreta. Assume-se, como premissa, que o modelo de chegada

das mensagens provenientes das redes de sensores seguem uma

distribuição de Poisson (GARDINER; OTHERS, 1985), a uma taxa

média de chegada λ. Segundo (MOHAMMED; AGAMY, 2011), o

modelo de distribuição Poisson é um dos mais antigos e é amplamente

utilizado para representar modelos de tráfegos de redes, sendo aqui

também adotado;

modelo de serviço: normalmente especificado pelo tempo de serviço e de

forma análoga ao modelo de chegada dos clientes, o modelo de serviço

pode ser determinístico ou ser uma variável aleatória com uma

distribuição de probabilidade. Neste trabalho, assume-se como premissa

que o modelo de serviço é determinístico pois o atendimento ao cliente

Page 93: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

78

consiste na inserção das mensagens como fatos na memória de trabalho

da máquina de regras e a inserção de um novo fato não depende do

processamento do fato anterior;

Número de servidores: se refere ao número de servidores que atendem a

uma fila. No contexto deste trabalho, existe 1 (um) servidor por fila;

Capacidade do sistema: se refere ao número de clientes que o sistema é

capaz de atender. Neste trabalho, a fila é um serviço escalável, provido

pelo ambiente de nuvem computacional da Amazon e, portanto, é

possível considerar o valor como infinito;

Tamanho da população: número potencial de clientes que podem chegar.

Neste trabalho, o número de mensagens das redes de sensores que podem

ser enviadas para as filas é considerado infinito;

Disciplina da fila: é o modo como os clientes (mensagens) são atendidas.

Neste trabalho é adotada a disciplina FCFS (First Come, First Served).

Usando a notação de Kendal (KENDALL; ALAN, 1961), foi definido o modelo de fila

empregado na arquitetura implementada como sendo do tipo M/D/1. A Figura 31 exibe

uma representação em uma notação clássica de filas à luz da implementação realizada,

representada na Figura 29.

Page 94: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

79

Figura 31 - Modelo de filas da arquitetura proposta.

A rede WSN1 envia dados coletados para o seu respectivo tópico na nuvem a

uma taxa média λ1. A fila Q1, que é assinante do tópico que representa a WSN1, recebe

informações do mesmo a uma taxa média λ1. A máquina virtual, que executa o sistema

baseado em regras consome as mensagens da fila a uma taxa µ1.

A fila Q2 assina informações das redes WSN1 e WSN2; portanto, a taxa média

de chegada de mensagens, considerando que se trata de uma variável aleatória, tendo

como premissa que a mesma se comporta como uma distribuição Poisson, é a soma das

taxas médias λ1 e λ2. O consumo das mensagens da fila, assumindo o comportamento

discreto, como justificado anteriormente, é feito a uma taxa µ2.

Observa-se que na arquitetura proposta, pode ocorrer a chegada de informações

de diferentes redes (clientes) para uma mesma aplicação baseada em regras (servidor).

Como visto, assume-se como premissa que cada rede tem um comportamento de um

processo de Poisson independente; sendo assim, a propriedade de merging desta

distribuição indica a soma de duas variáveis de Poisson independentes, que é ainda uma

variável de Poisson com parâmetro igual à soma dos respectivos parâmetros.

Page 95: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

80

(1)

É importante analisar as situações teóricas de comportamento da arquitetura no

que se refere à saturação, ou seja, quando a quantidade de mensagens oriundas das

RSSFs for superior a capacidade da aplicação consumir tais informações da fila,

caracterizando uma situação onde a fila pode crescer indefinidamente. Isso pode ser

obtido por meio da razão entre a taxa de chegada e a capacidade de serviço, conforme

pode ser visto na equação abaixo:

(2)

Na equação (2) – carga de trabalho, o índice x representa, no contexto deste

trabalho, o servidor que executa a sua respectiva aplicação baseada em regras. Cada

aplicação possui sua própria fila. O índice n representa os tópicos. O termo ρx representa

as características de utilização da arquitetura, sendo que enquanto ρx for menor que 1 (ρx

< 1) o sistema possui a capacidade superior de consumir mensagens da fila em relação

a taxa de chegada de mensagens. Se o ρx for igual a 1 (ρx = 1) a capacidade de consumo

de mensagens da fila e a taxa e chegada são equivalentes. Caso o ρx seja maior que 1 (ρx

> 1) a taxa de chegada de mensagens é superior a capacidade de consumo. Neste último

caso, se a fila possuir capacidade limitada, o sistema tende a descartar novas

mensagens; entretanto, na implementação realizada, a fila possui capacidade infinita;

portanto, o comportamento do sistema neste contexto seria do aumento do atraso médio

total (delay) para consumo das mensagens contidas na fila.

A arquitetura proposta envolve o processamento de dados obtidos das redes de

sensores; logo, em alguns cenários de aplicação, o delay pode ser um fator relevante.

Para guiar a análise do atraso médio total, é possível utilizar as propriedades de uma fila

M/D/1 em regime estacionário, dado pela seguinte equação:

(3)

Page 96: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

81

O atraso médio total ( ) se refere à soma do tempo de espera e o tempo de

serviço. Portanto, dois fatores influenciam no atraso médio, a taxa de serviço ( ) e a

taxa de utilização (ρx).

A versão atual da arquitetura define uma associação 1:1 entre uma fila e a sua

respectiva aplicação baseada em regras. Considerando os fatores que influenciam no

aumento do atraso médio total, deve-se medir a taxa média de mensagens de cada RSSF

na qual a aplicação possui interesse e avaliar a capacidade de serviço do servidor. Caso

seja necessário diminuir o delay, uma alternativa é ampliar a capacidade de

processamento do servidor a fim de aumentar o valor de e, por consequência,

diminuir o valor de ρx.

Baseado nas equações de comportamento levantadas para a arquitetura, a Figura

32 apresenta um gráfico da relação entre o atraso médio total e a taxa de serviço, onde

se pode perceber que quando a taxa de serviço tende a zero, o atraso total médio tende

ao infinito e que quando ela é aumentada, o atraso total médio diminui. Ou seja, caso a

capacidade dos servidores seja aumentada, diminuindo a taxa de serviço, existe uma

tendência de diminuir o atraso total médio de consumo das informações presentes na

fila de uma determinada aplicação baseada em regras.

Page 97: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

82

Figura 32 - Gráfico - Atraso Médio x Taxa de serviço.

A Figura 33 ilustra o comportamento da equação (3) para os valores de ρx entre

0 e 1. Observa-se que quando ρx tende a zero, o atraso médio total tende ao infinito.

Dois fatores influenciam no aumento do ρx, o primeiro é o somatório das taxas médias

de chegadas de mensagens das RSSF no qual uma aplicação baseada em regras tem

interesse; o segundo fator é a capacidade do servidor de consumir mensagens da fila.

Page 98: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

83

Figura 33 – Gráfico - Atraso médio pelo ρx.

6.3 Considerações do capítulo

Este capítulo apresentou uma breve avaliação teórica da implementação da

arquitetura em relação ao sistema de filas decorrente da sua arquitetura. Do estudo

realizado, conclui-se que as filas existentes no sistema tendem a um modelo M/D/1,

assumindo-se como premissa que o modelo de chegada de dados de uma RSSF tem

como característica estatística uma distribuição Poisson. As equações de taxa de serviço

e de atraso médio total do sistema apresentadas servem para orientar a identificação dos

fatores que podem influenciar no delay do consumo das mensagens da fila.

O próximo capítulo apresenta as considerações finais deste trabalho, destacando

as suas considerações finais e perspectivas de trabalhos futuros.

Page 99: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

84

Capítulo 7

7. Conclusões

Este trabalho apresentou uma arquitetura de suporte ao desenvolvimento de

aplicações de redes de sensores sem fio, baseada no uso de regras e nuvem

computacional, que promove a divisão de responsabilidades entre o programador da

rede e o especialista de domínio na construção das aplicações. Na arquitetura proposta,

a definição das regras de negócio e o tratamento dos eventos são retirados dos nós

sensores – o que consiste em um benefício adicional, considerando as restrições de

memória dos motes – e definidos e processados em uma plataforma de nuvem.

A implementação da arquitetura utilizou a plataforma Drools como sistema de

regras e a Amazon EC2 como plataforma de nuvem computacional. Por meio da adoção

da abordagem de regras, alterações puderam ser realizadas diretamente nas regras sem a

necessidade de nova compilação de código. Um web service RESTful foi implementado

para disponibilizar serviços a serem utilizados nas regras, propiciando o baixo

acoplamento desejado dos serviços em relação à definição das regras e permitindo o

desenvolvimento de novos serviços, independentemente de alterações na arquitetura. O

paradigma publish/subscribe foi usado como mecanismo básico para implementar o

compartilhamento dos dados provenientes das redes de sensores sem fio entre as

aplicações.

Foi desenvolvido um serviço web para gerenciar as aplicações, suas assinaturas

e o controle de acesso de usuários. Um estudo inicial sobre o comportamento teórico do

sistema de filas do ambiente proposto foi realizado com vistas à avaliar o seu

desempenho. Na implementação realizada, cada aplicação está associada a uma fila,

assinando o conteúdo de tópicos de interesse.

Page 100: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

85

A adoção da abordagem baseada em regras provido em um ambiente de nuvem

computacional favoreceu a participação do especialista do domínio na definição das

regras do domínio, provendo um suporte para o desenvolvimento de aplicações reativas

sem que o especialista do domínio tenha conhecimento dos detalhes técnicos do projeto

das RSSF das quais qual ele consome informações coletadas do ambiente.

Como visto ao longo do estudo, as redes de sensores sem fio são muito limitadas

em relação aos recursos de hardware, o que implica em fortes restrições no processo de

desenvolvimento de aplicações, em especial em domínios onde as regras de negócio

podem ser muito extensas. Uma dificuldade adicional para o desenvolvedor de

aplicações diz respeito à diversidade de hardware de sensoriamento, o que requer

conhecimentos cada vez mais especializados, de baixo nível de abstração.

Sendo assim, qualquer movimento no sentido de facilitar o uso dados de RSSF

por usuários menos especializados e em domínios de aplicação diferentes, contribui para

a sua maior adoção. Observa-se que a integração entre RSSF e nuvem computacional é

uma tendência atual, particularmente devido à alta capacidade de uma infraestrutura em

nuvem para lidar com o volume de dados de tais redes.

Tais preocupações nortearam o projeto da infraestrutura aqui apresentada.

Entretanto, algumas questões importantes não foram tratadas nesta versão da

arquitetura, constituindo, portanto, temas naturais de trabalhos futuros. Dentre elas

destacamos:

Implementação do módulo de controle de privacidade;

A abordagem proposta defende a integração de dados coletados do

ambiente em uma plataforma de computação em nuvem. Entretanto,

apesar de considerarmos um tema relevante, a privacidade ficou fora do

escopo deste trabalho. Não há nenhum mecanismo que limite o acesso

aos dados capturados, pois a partir do momento que a rede de sensor sem

fio está conectada ao ambiente de nuvem, todos os dados capturados são

transmitidos, podendo ser consumido por quaisquer aplicações baseadas

em regras, presentes na arquitetura, que tenham interesse naquela

informação.

Inclusão de um componente de gerência de QoC (Quality of Context);

Page 101: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

86

A arquitetura atual assume que os dados capturados pelas redes de

sensores sem fio e entregues na nuvem estão fieis a realidade do

ambiente monitorado. Entretanto, sabe-se que existem diversos fatores

que podem influenciar na precisão das informações coletadas, logo, um

trabalho futuro importante é incluir na arquitetura proposta um

componente de gerenciamento de qualidade de contexto, com a

finalidade de diagnosticar a precisão dos dados recebidos na nuvem,

assim, diminuindo a possibilidade de falso-positivos.

Realização de testes de capacidade (reais e simulados);

Neste trabalho foi descrito uma avaliação teórica da arquitetura de

implementação considerando algumas premissas. Logo, é importante a

realização de testes de capacidade em ambientes reais e simulados como

forma de avaliar

Disponibilização de novos serviços para uso nas regras;

Como forma de enriquecer as possibilidades de ações das aplicações

baseadas em regras, é importante o desenvolvimento de novos serviços,

explorando integração com outros serviços providos por plataformas de

nuvem computacional, redes sociais, integração com mecanismos

atuadores, entre outros.

Implementação da arquitetura proposta em um ambiente de nuvem

computacional de código aberto;

A plataforma de computação em nuvem da Amazon permite que

pesquisadores criem uma conta gratuita, para utilização limitada dos

serviços oferecidos pelo ambiente. A implementação da arquitetura

proposta em um ambiente de nuvem computacional de código aberto irá

proporcionar o desenvolvimento de testes de capacidade e desempenho,

além de permitir um maior controle dos serviços do ambiente.

Mecanismos de verificação e validação das regras;

Como forma de aprimorar a implementação da arquitetura proposta neste

trabalho, é importante desenvolver meios de verificar e validar as regras

escritas em Drools. Esses mecanismos geralmente estão presentes em

Page 102: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

87

IDEs Java, entretanto, na implementação da arquitetura deste trabalho, as

regras são descritas por meio de uma interface web que não realiza as

verificações e validações necessárias antes da sua efetiva utilização.

Padronização da forma de armazenamento dos dados de sensoriamento.

Uma questão importante, porém abordado de forma superficial neste

trabalho se refere à forma de representação dos dados coletados, levando

em consideração a semântica da informação e a heterogeneidade do

hardware dos nós sensores. Em relação à semântica, existe uma linha de

pesquisa conhecida como Semantic Sensor Network, que baseado em

conceitos da web semântica, promove uma adaptação para o cenário de

redes de sensores sem fio. No que se refere à heterogeneidade do

hardware dos nós sensores, existem trabalhos que abordam essa questão,

utilizando uma notação XML para representação das informações.

Page 103: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

88

8. Referências

ADAN, I.; RESING, J. Queueing theory. Eindhoven University of Technology

Eindhoven, , 2002.

AHMED, K.; GREGORY, M. Integrating Wireless Sensor Networks with Cloud

Computing. Mobile Ad-hoc and Sensor Networks (MSN), 2011 Seventh International

Conference on. Anais...2011

AKYILDIZ, I. F. et al. Wireless sensor networks: a survey. Computer networks, v. 38,

p. 393-422, 2002.

ARMBRUST, M. et al. A view of cloud computing. Communications of the ACM, v.

53, p. 50-58, 2010.

ATIF ALAMRI, M. A. H. WASAI SHADAB ANSARI MOHAMMAD MEHEDI

HASSAN M. SHAMIM HOSSAIN ABDULHAMEED ALELAIWI. A Survey on

Sensor-Cloud: Architecture, Applications, and Approaches. International Journal of

Distributed Sensor Networks, v. 2013, 2013.

BALI, M. Drools JBoss Rules 5.0 Developer’s Guide. [s.l.] Packt Publishing Ltd,

2009.

CHU, D. et al. The design and implementation of a declarative sensor network

system. Proceedings of the 5th international conference on Embedded networked sensor

systems. Anais...ACM, 2007

CLOUD, A. E. C. Amazon web services. Retrieved November, v. 9, p. 2011, 2011.

COSTA, L. C. Teoria das Filas, 2013. Disponível em:

<http://www.deinf.ufma.br/ mario/grad/filas/TeoriaFilas_Cajado.pdf>

CROCKFORD, D. JSON: The fat-free alternative to XML. Proc. of XML.

Anais...2006

DURISIC, M. P. et al. A survey of military applications of wireless sensor networks.

Embedded Computing (MECO), 2012 Mediterranean Conference on. Anais...2012

EGGERT, M. et al. SensorCloud: Towards the Interdisciplinary Development of a

Trustworthy Platform for Globally Interconnected Sensors and Actuators.

Wissenschaftliche Ergebnisse der Trusted Cloud Initiative, 2013., 2013.

EL KOUCHE, A. et al. WSN application in the harsh industrial environment of the

oil sands. Wireless Communications and Mobile Computing Conference (IWCMC),

2011 7th International. Anais...2011

EUGSTER, P. T. et al. The many faces of publish/subscribe. ACM Computing

Surveys (CSUR), v. 35, p. 114-131, 2003.

Page 104: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

89

FERGUS, P. et al. A framework for physical health improvement using Wireless

Sensor Networks and gaming. Pervasive Computing Technologies for Healthcare,

2009. PervasiveHealth 2009. 3rd International Conference on. Anais...2009

FORGY, C. L. Rete: A fast algorithm for the many pattern/many object pattern match

problem. Artificial intelligence, v. 19, p. 17-37, 1982.

FRAGA, E. Serviço para gerenciamento de aplicações em um ambiente de

computação em nuvem e rede de sensores sem fio. [s.l.] Brasil, Universidade Federal

do Espírito Santo, 2013.

FUJITSU. WisReed: a technology to enable sensor network of future, 2013.

Disponível em: <http://www.fujitsu.com/global/services/solutions/sensor-

network/future/>

GARDINER, C. W.; OTHERS. Handbook of stochastic methods. [s.l.] Springer

Berlin, 1985. v. 3

GAY, D. et al. The nesC language: A holistic approach to networked embedded

systems. Acm Sigplan Notices. Anais...ACM, 2003

HAYES-ROTH, F. Rule-based systems. Commun. ACM, v. 28, p. 921-932, set. 1985.

HILL, E. F. Jess in Action: Java Rule-Based Systems. Greenwich, CT, USA:

Manning Publications Co., 2003.

HO, C.-M.; TAI, Y.-C. Micro-electro-mechanical-systems (MEMS) and fluid flows.

Annual Review of Fluid Mechanics, v. 30, p. 579-612, 1998.

HUSSAIN, M. A.; KHAN, P.; SUP, K. KYUNG. WSN research activities for

military application. Advanced Communication Technology, 2009. ICACT 2009. 11th

International Conference on. Anais...2009

KENDALL, D. G. Stochastic processes occurring in the theory of queues and their

analysis by the method of the imbedded Markov chain. The Annals of Mathematical

Statistics, p. 338-354, 1953.

KENDALL, M. G.; ALAN, S. The advanced theory of statistics. Vols. II and III. 1961.

KLEINROCK, L. Queueing systems. volume 1: Theory. 1975.

LAWRENCE, E. et al. Data Collection, Correlation and Dissemination of Medical

Sensor Information in a WSN. Networking and Services, 2009. ICNS ’09. Fifth

International Conference on. Anais...2009

LE, X. H. et al. Secured WSN-integrated cloud computing for u-life care. Consumer

Communications and Networking Conference (CCNC), 2010 7th IEEE. Anais...IEEE,

2010

LEE, S. H. et al. Wireless sensor network design for tactical military applications :

Remote large-scale environments. Military Communications Conference, 2009.

MILCOM 2009. IEEE. Anais...2009

Page 105: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

90

LEVIS, P. et al. Tinyos: An operating system for sensor networks. In: Ambient

intelligence. [s.l.] Springer, 2005. p. 115-148.

LOUREIRO, A. A. et al. Redes de sensores sem fio. Simpósio Brasileiro de Redes de

Computadores (SBRC). Anais...2003

MITCHELL, R. J. Managing Complexity in Software Engineering. [s.l.] Peter

Peregrinus Ltd, 1990. v. 17

MOHAMMED, A. M.; AGAMY, A. F. A Survey on the Common Network Traffic

Sources Models. INTERNATIONAL JOURNAL OF COMPUTER NETWORKS

(IJCN), p. 103, 2011.

MOREIRA, D. A. Pesquisa Operacional: curso introdutório. [s.l.] Thomson

Learning, 2007.

MOTTOLA, L.; PICCO, G. P. Programming wireless sensor networks: Fundamental

concepts and state of the art. ACM Computing Surveys (CSUR), v. 43, p. 19, 2011.

NURSEITOV, N. et al. Comparison of JSON and XML Data Interchange Formats: A

Case Study. CAINE, v. 2009, p. 157-162, 2009.

PEREIRA, I. ; DOCKHORN COSTA, P. ; ALMEIDA, J. P. A. . A Rule Based

Platform for Situation Management. In: 2013 IEEE International Multi-Disciplinary

Conference on Cognitive Methods in Situation Awareness and Decision Support

(CogSIMA), 2013, SAN DIEGO. Cognitive Methods in Situation Awareness and

Decision Support (CogSIMA), 2013 IEEE Third International Multi-Disciplinary

Conference on, 2013.

POLASTRE, J. et al. Wireless sensor networks. In: RAGHAVENDRA, C. S.;

SIVALINGAM, K. M.; ZNATI, T. (Eds.). Norwell, MA, USA: Kluwer Academic

Publishers, 2004. p. 399-423.

RESOLUÇÃO, A. N. DE V. S. Guia para a realização de estudos de estabilidade.

[s.l.] Poder Executivo, Brasília, DF, Diário Oficial da União., 2005.

RICHARDSON, L.; RUBY, S. RESTful web services. [s.l.] O’Reilly, 2008.

RODRIGUES, T. et al. A Model-Based Approach for Building Ubiquitous Applications

Based on Wireless Sensor Network. In: Mobile and Ubiquitous Systems: Computing,

Networking, and Services. [s.l.] Springer, 2012. p. 350-352.

SAÚDE, M. DA. Manual dos Centros de Referência de Imunobiológicos Especiais.

[s.l.] Fundação Nacional de Saúde, 2001.

SILVA, K. et al. Modelos de avaliação da estabilidade de fármacos e medicamentos

para a indústria farmacêutica. Revista de Ciências Farmacêuticas Básica e Aplicada,

América do Norte, v. 30, p. 12, 2009.

SU, K.; LI, J.; FU, H. Smart city and the applications. Electronics, Communications

and Control (ICECC), 2011 International Conference on. Anais...IEEE, 2011

Page 106: Uma abordagem baseada em regras e computação em nuvem … · Este capítulo apresenta a motivação, os objetivos e a organização deste trabalho. São introduzidas as áreas de

91

TERFLOTH, K.; WITTENBURG, G.; SCHILLER, J. FACTS–A rule-based

middleware architecture for wireless sensor networks. Communication System

Software and Middleware, 2006. Comsware 2006. First International Conference on.

Anais...IEEE, 2006

VASSEUR, J.-P.; DUNKELS, A. Interconnecting smart objects with ip: The next

internet. [s.l.] Morgan Kaufmann, 2010.

YICK, J.; MUKHERJEE, B.; GHOSAL, D. Wireless sensor network survey. Computer

networks, v. 52, p. 2292-2330, 2008.

YURIYAMA, M.; KUSHIDA, T.; ITAKURA, M. A New Model of Accelerating

Service Innovation with Sensor-Cloud Infrastructure. Proceedings of the 2011

Annual SRII Global Conference. Anais...: SRII ’11.Washington, DC, USA: IEEE

Computer Society, 2011Disponível em: <http://dx.doi.org/10.1109/SRII.2011.42>

ZHANG, Q.; CHENG, L.; BOUTABA, R. Cloud computing: state-of-the-art and

research challenges. Journal of Internet Services and Applications, v. 1, p. 7-18,

2010.