UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade...

57
UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ESPECIALIZADA EM CIÊNCIAS AGRÁRIAS CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS Thiago Victor Lima Brasil APLICAÇÃO DE MIDDLEWARE PARA O MONITORAMENTO DE UNIDADE PRODUTIVA NA AQUICULTURA Macaíba / RN Novembro, 2017

Transcript of UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade...

Page 1: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE

UNIDADE ESPECIALIZADA EM CIÊNCIAS AGRÁRIAS

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE

SISTEMAS

Thiago Victor Lima Brasil

APLICAÇÃO DE MIDDLEWARE PARA O MONITORAMENTO DE UNIDADE

PRODUTIVA NA AQUICULTURA

Macaíba / RN

Novembro, 2017

Page 2: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

Thiago Victor Lima Brasil

APLICAÇÃO DE MIDDLEWARE PARA O MONITORAMENTO DE UNIDADE

PRODUTIVA NA AQUICULTURA

Trabalho de conclusão de curso de graduação

apresentado à Unidade Especializada em Ciências

Agrárias da Universidade Federal do Rio Grande do

Norte como requisito parcial para a obtenção do título

de Tecnólogo (a) em Análise e Desenvolvimento de

Sistemas.

Orientador: Prof. Dr. Taniro Chacon Rodrigues

Macaíba / RN

2017

Page 3: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

Universidade Federal do Rio Grande do Norte - UFRN

Sistema de Bibliotecas - SISBI

Catalogação de Publicação na Fonte. UFRN - Biblioteca Setorial Prof. Rodolfo Helinski - Escola Agrícola de Jundiaí –

EAJ

Brasil, Thiago Victor Lima.

Aplicação de middleware para o monitoramento de unidade

produtiva na aquicultura / Thiago Victor Lima Brasil. - 2017.

57f.: il.

Monografia (Tecnólogo) Universidade Federal do Rio Grande do

Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

Tecnologia em Análise e Desenvolvimento de Sistemas. Macaíba,

2017.

Orientador: Taniro Chacon Rodrigues.

1. Middleware - Monografia. 2. Fireware - Monografia. 3.

Orion - Monografia. 4. Sensor - Monografia. 5. IoT - Monografia.

6. Smartfarm - Monografia. I. Rodrigues, Taniro Chacon. II.

Título.

RN/UF/BSPRH CDU 004.41

Page 4: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

Thiago Victor Lima Brasil

Aplicação de Middleware Para O Monitoramento De Unidade Produtiva Na

Aquicultura

Trabalho de conclusão de curso de graduação apresentado à Unidade Especializada em Ciências

Agrárias da Universidade Federal do Rio Grande do Norte como requisito parcial para a obtenção

do título de Tecnólogo (a) em Análise e Desenvolvimento de Sistemas.

Aprovado em: ____ de _______ de _____.

BANCA EXAMINADORA

__________________________________________

Prof. Dr. Taniro Chacon Rodrigues - UFRN

__________________________________________

Prof. Dr. Josenalde Barbosa de Oliveira – EAJ/UFRN

__________________________________________

Profa. Dra. Fabiana Rodrigues de Arruda Câmara – EAJ/UFRN

Page 5: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

DEDICATÓRIA

Dedico este trabalho primeiramente а

Deus, por ser essencial em minha vida, autor de

meu destino, refúgio, fortaleza e socorro bem

presente na angústia, ao meu pai Hilton Brasil,

minha mãe Sônia Araújo, ao meu irmão Diogo

Brasil, a minha amada e companheira Fabyanne

Batista e a todos os meus amigos e professores

que me acompanharam nesta jornada de

aprendizado e desafios. Sem vocês, não teria

chegado até aqui.

Page 6: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

AGRADECIMENTOS

Gostaria de agradecer primeiramente a Deus, por ter sido meu refúgio bem presente na

angústia, meu conselheiro, meu consolador, meu maior motivador pois me mostrou, e ainda

mostra, em todos os pequenos detalhes, que tudo na vida tem seu propósito. Te agradeço.

Minha família, meus pais Hilton e Sonia por todo o carinho, dedicação, broncas, e

acima de tudo, amor concedidos a mim. Por terem me mostrado a importância dos valores das

palavras, respeito, compaixão, amor ao próximo. Por todos os momentos em que discutimos,

pois nestes momentos vemos o quanto somos importantes uns para os outros quando chega o

momento do perdão. Agradeço também ao meu irmão Diogo, pelas conversas, pelos

aprendizados, ora, duas pessoas com praticamente os mesmos hobbies, sempre têm conversas

‘nerds’ que duram noites até pegar no sono não é mesmo? Amo vocês, obrigado!

Agradeço também a minha companheira e amada Fabyanne, por toda motivação,

suporte, carinho, amor, atenção e tudo mais do que poderia pedir a Deus nestes momentos.

Sabemos que tudo na vida tem um propósito e as dificuldades estão para serem superadas, por

isso te agradeço, muitas bênçãos virão. Obrigado, te amo!

Agradeço aos meus professores que me acompanharam em toda de minha trajetória

nesta universidade, cada deles com suas particularidades marcantes, que construíram minha

vida acadêmica de forma espetacular, sem palavras. Obrigado. Dentre esses grandes

profissionais, destaco meu agradecimento ao meu orientador, professor e amigo Taniro. Um

profissional excepcional que mesmo em sua sobrecarga de responsabilidades aceitou me

orientar neste trabalho, me ensinou bastante e me inspirou em propor um trabalho voltado a

área de sistemas distribuídos. Muito obrigado!

Como não poderia deixar de fora, meus grandes amigos e em especial a todos que

estavam do meu lado fazendo esta graduação totalmente inesquecível. Saibam que todos os

momentos vividos até o momento estão guardados nas minhas memórias, até os extraclasses!

Como esquecer as viagens de campo, jogos virtuais e trabalhos em grupo na casa de Laércio,

nosso sábio mentor? Heriberto com sua inteligência de programação indiscutível, Felipe

Matheus com seus rages, a grande dupla Joel e Iaslan, inseparáveis e amigos formidáveis,

Filipe Bastos achando até hoje que sou empresário e o mais recente no grupo Arthur, que com

toda sua impaciência, se tornou marcante. A todos não citados até aqui, saibam que são tão

importantes quanto, pois todos detém o título de amigos. Obrigado!

Page 7: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

“Agir, eis a inteligência verdadeira. Serei o que

quiser. Mas tenho que querer o que for. O êxito

está em ter êxito, e não em ter condições de êxito.

Condições de palácio tem qualquer terra larga,

mas onde estará o palácio se não o fizerem ali?”

Fernando Pessoa

Page 8: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

RESUMO

Com base no crescimento populacional e tecnológico, as vertentes produtivas buscam

cada vez mais otimizar seus processos. Nesse contexto, a aquicultura se destaca como uma

atividade com grande potencial de aplicações de tecnologia para o aumento da produção. A

implantação de uma rede de sensores contribui para a análise de todos os aspectos que podem

influenciar para a qualidade da água. No entanto, a heterogeneidade dos dispositivos

existentes é um fator limitante que torna um desafio a transmissão e o envio de dados para

uma interface ou aplicação específica que ajude o produtor nas tomadas de decisões acerca da

sua unidade produtiva. O objetivo deste trabalho é desenvolver uma aplicação que utilize o

middleware: fiware orion context broker como ferramenta capaz de receber dados enviados

por sensores, independente do hardware utilizado, dando ao produtor informações do contexto

de sua unidade produtiva através de uma interface web. Este trabalho foi avaliado através de

uma prova de conceitos, analisando o comportamento da aplicação em uma sequência de

cenários que simularam prováveis situações reais em um ambiente produtivo, as quais a

aplicação correspondeu às expectativas propostas.

Palavras-chave: fiware, middleware, orion, sensor, IoT, smartfarm.

Page 9: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

ABSTRACT

Based on population and technological growth, the productive sectors are increasingly

seeking to optimize their processes. In this context, aquaculture stands out as an activity with

great potential for technology applications to increase production. The implementation of a

sensor network contributes to the analysis of all aspects that can influence water quality.

However, the heterogeneity of existing devices is a limiting factor that makes it difficult to

transmit and send data to a specific interface or application that helps the producer to make

decisions about his production unit. The objective of this work is to develop an application

that uses the middleware: fiware orion context broker as a tool capable of receiving data sent

by sensors, regardless of the hardware used, giving the producer context information of his

production unit through a web interface. This work was evaluated through a proof of

concepts, analyzing the behavior of the application in a sequence of scenarios that simulated

probable real situations in a productive environment, which the application corresponded to

the proposed expectations.

Keywords: fiware, middleware, orion, sensor, IoT, smartfarm.

Page 10: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

LISTA DE FIGURAS

Figura 1. Comunicação de Dispositivos com um Serviço Web. ........................................................... 15

Figura 2. Abordagem de acesso aos serviços. ....................................................................................... 16

Figura 3. Exemplo de Middleware em atuação. .................................................................................... 18

Figura 4 Arquitetura do OCB (FIWARE FORGE, 2016b) ................................................................... 23

Figura 5 Descrição do Elemento de Contexto (FIWARE FORGE, 2016b) .......................................... 25

Figura 6 Sensor DS18B20 de Temperatura (MAXIM, 2017) ............................................................... 26

Figura 7 Sensor SEN-11194 para Oxigênio Dissolvido na Água ......................................................... 27

Figura 8 Sensor de pressão atmosférica (HOBECO, 2017) .................................................................. 27

Figura 9 Sensor para Nitrito .................................................................................................................. 28

Figura 10 Arquitetura do Sistema ......................................................................................................... 29

Figura 11 Diagrama de Implantação do Trabalho ................................................................................. 31

Figura 12 Escolha da porta de comunicação do sensor ......................................................................... 31

Figura 13 Interface do Docker (Windows)............................................................................................ 32

Figura 14 Iniciando a virtualização do OCB ......................................................................................... 32

Figura 15 Sequência de comunicação ................................................................................................... 33

Figura 16 Criação de Unidade Produtora de Informação Contexto ...................................................... 34

Figura 17 Criação de PIC através do Arduino IDE ............................................................................... 35

Figura 18 Sequencia que segue a criação .............................................................................................. 35

Figura 19 Atualização da Informação de Contexto ............................................................................... 36

Figura 20 Consulta do cliente ao middleware ....................................................................................... 37

Figura 21 Resposta JSON a consulta .................................................................................................... 37

Figura 22 Resultado da consulta do Cliente .......................................................................................... 38

Figura 23 Interface Web no Primeiro Acesso ....................................................................................... 39

Figura 24 Cadastro de Novo Perfil ........................................................................................................ 40

Figura 25 Unidade Cadastrada .............................................................................................................. 41

Figura 26 Posição Geográfica de um Produtor Informação de Contexto .............................................. 41

Page 11: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

Figura 27 Adição de novo sensor a unidade produtiva via plataforma Arduino ................................... 42

Figura 28 Layout da Interface com Produtor de Contexto Criado ........................................................ 43

Figura 29 Adição de sensor de taxa de oxigênio via cliente REST....................................................... 43

Figura 30 Nova produtores de contexto adicionados ............................................................................ 44

Figura 31 Remoção de produtor de Contexto via cliente REST ........................................................... 44

Page 12: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

LISTA DE TABELAS

Tabela 1. Interface Uniforme RESTful ................................................................................................. 17

Tabela 2 Padrões básicos da ferramenta curl ........................................................................................ 34

Page 13: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

SUMÁRIO

1. INTRODUÇÃO .................................................................................................................... 9

1.1 JUSTIFICATIVA ............................................................................................................... 12

1.1 OBJETIVOS ....................................................................................................................... 12

1.1.1 OBJETIVO GERAL ..................................................................................................... 12

1.1.2 OBJETIVOS ESPECÍFICOS ....................................................................................... 13

2. CONCEITOS BÁSICOS .................................................................................................... 14

2.1 COMPUTAÇÃO ORIENTADA A SERVIÇOS ................................................................ 14

2.1.1 SERVIÇO WEB .............................................................................................................. 14

2.2 REST .................................................................................................................................. 15

2.3 PUBLISH/SUBSCRIBE ..................................................................................................... 17

2.4 MIDDLEWARE ................................................................................................................. 18

2.5 FIWARE ............................................................................................................................. 20

2.5.1 HABILITADORES GENÉRICOS .................................................................................. 20

2.6.2 ORION CONTEXT BROKER (OCB) ............................................................................ 21

2.5.3 INTERFACE OMA NGSI .............................................................................................. 23

2.5.4 ENTIDADES DE CONTEXTO ...................................................................................... 24

2.6 PARÂMETROS DA QUALIDADE DA ÁGUA ............................................................... 25

2.6.1 TEMPERATURA DA ÁGUA ........................................................................................ 25

2.6.2 OXIGÊNIO DISSOLVIDO EM ÁGUA ......................................................................... 26

2.6.3 PRESSÃO ATMOSFÉRICA .......................................................................................... 27

2.6.4 NITRITO ......................................................................................................................... 27

3. ARQUITETURA DO SISTEMA ...................................................................................... 29

3.1. IMPLANTAÇÃO .............................................................................................................. 31

3.2 IMPLEMENTAÇÃO ......................................................................................................... 33

3.2.1 ENVIO DE INFORMAÇÕES AO MIDDLEWARE ...................................................... 33

3.2.2 IMPLEMENTAÇÃO DE UM PRODUTOR DE INFORMAÇÃO CONTEXTO ......... 34

3.2.3 ATUALIZAÇÃO DA INFORMAÇÃO DE CONTEXTO ............................................. 36

3.2.4 CONSULTA DO CLIENTE AS INFORMAÇÕES COLETADAS ............................... 36

4. AVALIAÇÃO ..................................................................................................................... 39

4.1 INTERFACE WEB ............................................................................................................ 39

4.1.1 CRIANDO UM PERFIL DE USUÁRIO ........................................................................ 40

Page 14: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

4.1.2 LEITURA DAS INFORMAÇÕES DE CONTEXTO .................................................... 40

4.1.3 LEITURA DA POSIÇÃO GEOGRÁFICA .................................................................... 41

4.2 CRIAÇÃO DE UM NOVO PRODUTOR DE CONTEXTO ............................................ 42

4.2.1 NOVO PRODUTOR DE INFORMAÇÃO DE CONTEXTO (SENSOR) ..................... 42

4.2.3 REMOÇÃO DE UM PRODUTOR DE INFORMAÇÃO DE CONTEXTO .................. 44

4.3 ANALISE DE RESULTADOS .......................................................................................... 45

5. CONSIDERAÇÕES FINAIS ............................................................................................. 46

5.1 LIMITAÇÕES .................................................................................................................... 46

5.2 TRABALHOS FUTUROS ................................................................................................. 47

REFERÊNCIAS ..................................................................................................................... 48

Page 15: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

9

1. INTRODUÇÃO

A produção de alimentos é uma atividade que tende a crescer proporcionalmente com

a população. Segundo as Organizações das Nações Unidas (ONU), a população atual é

estimada em 7 bilhões de pessoas e está projetada para crescer cerca de 1 milhão nos

próximos 12 anos e alcançar cerca de 9,6 bilhões 2050 (UNRIC, 2015). Logo, uma demanda

maior de consumidores necessitará de uma oferta maior de alimentos. Para atender a atual e

futuras demandas, agricultores e empresas agrícolas têm voltado atenção para a otimização da

capacidade de produção de alimentos através da informatização.

A crescente inovação tecnológica que vem ocorrendo nos últimos anos corrobora para

que a informatização seja uma alternativa potencial para a melhoria da qualidade produtiva,

tornando assim, a tecnologia um forte aliado na maximização da produção. Devido à grande e

crescente competitividade, é exigido do produtor muito mais especialização e aplicação de

técnicas precisas para o aumento da capacidade produtiva e rentabilidade de suas produções

(AGROCAMPO, 2017). Nesse contexto, o uso da tecnologia a fim de transmitir ao produtor

um panorama, ou contexto, abrangente de todas as particularidades em sua produção pode

auxilia-lo em tomadas de decisões como relação a manutenção, gerenciamento e mercado.

Este tecnologia que auxilia na tomada de decisões incorpora o grupo denominado Decision

Support Systems (FEHRENBACHER; DJAMASBI, 2017).

A aquicultura, ou aquacultura, é a vertente da cultura produtiva voltada ao cultivo de

organismos aquáticos como: peixes, moluscos, crustáceos, repteis e plantas aquáticas. Esta

modalidade de cultura produtiva data de cerca de dois mil anos antes de Cristo (2000 a.C.) na

China, a princípio com o monocultivo da carpa, porém também, macroalgas marinhas como

fonte de alimento (VINATEA, 2012) . Esta vertente continua a crescer em uma taxa mais

elevada que todos os outros setores da produção animal mundial, em números, a produção

mundial de pescado é de 158 milhões de toneladas (número de 2012), movimentando US$

600 bilhões/ano – sendo US$ 136 bilhões/ano em exportações. Tais dados, apontam para uma

grandeza sete vezes maior do que os negócios de carne bovina e, além disso, um hectare de

terra pode gerar 0,12 toneladas/ano de carne, enquanto na mesma medida (um hectare) de

terra, podem ser produzidas de 100 a 320 toneladas/ano de peixe, dependendo do cultivo (de

acordo com informações do Ministério da Pesca) (PORTAL BRASIL, 2015).

No contexto da aquicultura, o Brasil está em 12º no ranking mundial e estimado que

se produção for ampliada para 2 milhões de toneladas ano, o país poderá figurar entre os cinco

maiores do mundo em 2020. A aquicultura brasileira cresceu 8,6% em 22 anos, passando de

Page 16: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

10

32,4 milhões de toneladas para 66,6 milhões de toneladas/ano. Entre o período de 2000 e

2012, na comparação com a carne bovina, o crescimento da produção de pescado em cativeiro

foi seis vezes maior. O aumento da produção do pescado foi de 6,7% enquanto o da carne foi

de 1,2% (PORTAL BRASIL, 2015).

Apesar das projeções favoráveis, é necessário o estudo de melhorias tecnológicas para

o aumento produtivo ou soluções às problemáticas relativas a produção. Por exemplo,

obtenção de informações do contexto (como temperatura, uso de energia, oxigenação, etc.) de

uma unidade produtiva. Na aquicultura, informações de contexto importantes para a produção

são, por exemplo, a quantidade de oxigênio dissolvido na água, temperatura do ambiente e da

água, funcionamento de dispositivos, como aeradores, entre outros. A falta de informação de

contexto para o gerenciamento do ciclo produtivo afeta a produção em um âmbito industrial e,

principalmente, familiar de subsistência.

Atualmente existem na literatura diversas soluções que trabalham com a obtenção de

dados de contexto de produções aquícolas. No trabalho Monitoramento da Piscicultura em

Reservatórios (SAMPAIO; COSTA, 2011), os autores apresentam uma aplicação do

biomonitoramento para estudo da decomposição foliar, que se propõe a refletir a qualidade

funcional do ecossistema aquático. O trabalho Estoques e Fluxos de Carbono no Semiárido

Nordestino: Estimativas Preliminares (SAMPAIO; COSTA, 2011) foi proposto devido a

decorrente expansão da piscicultura em reservatórios do rio São Francisco, onde houve uma

demanda estudos que avaliem sua capacidade suporte, para garantir sua sustentabilidade. A

coleta de dados desta pesquisa foi baseada na aplicação da técnica de litter bags (bolsa de

folheto) (BENFIELD et al., 1979) para análise da decomposição foliar. Uma característica

observada nesse trabalho é a necessidade da presença constante dos pesquisadores para coleta

local da informação. O envio de dados via web, e de forma intermitente, auxiliaria os

pesquisadores no monitoramento do comportamento da qualidade da água nas estações em

questão, evitando deslocamentos e proporcionando possíveis gerenciamentos quanto ao

manejo e qualidade da água providenciados de qualquer parte do globo.

O PSITECH (FAPEAM, 2017) é um software em desenvolvimento que tem como

proposta controlar os parâmetros de qualidade da água oxigênio dissolvido e temperatura em

tanques de piscicultura. O software é iniciativa de uma startup de mesmo nome que tem apoio

do governo do Amazonas por meio da Fundação de Amparo à Pesquisa do Estado do

Amazonas (Fapeam) e que tem como diferencial seu custo mais acessível em comparação aos

modelos tradicionais comercializados. O projeto é motivado devido o controle da qualidade

Page 17: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

11

da água ser uma das principais dificuldades enfrentadas pelos piscicultores, uma vez que a

água usada nos tanques influencia diretamente na produção e na vida saudável dos peixes. Em

seu escopo, o PSITECH propõe realizar análise da água nos tanques, com equipamento capaz

de enviar informações sobre tudo o que acontece no tanque de piscicultura para um atuador. O

software compromete-se a trabalhar diretamente com atuadores, agindo da seguinte forma:

quando a temperatura da água estiver alta o controlador poderá ligar uma válvula para circular

a água. Se o oxigênio dissolvido estiver baixo, também será possível acionar o aerador para

aumentar o oxigênio dissolvido no tanque. Analisando o panorama do PISCITECH, há uma

carência de uma interface web onde estas informações possam ser exibidas ao produtor e um

registro em banco de dados com as informações proporcionando um estudo estatístico.

A Internet das coisas está preparada para impulsionar o futuro da aquicultura para o

próximo nível. Como já acontece nas cidades inteligentes (Smart Cities) (“The Smart City

Concept in the 21st Century”, 2017), o termo fazendas inteligentes (Smart Farmings) (“Big

Data in Smart Farming – A review”, 2017) vêm ganhando força no campo e nas mais diversas

atividades produtivas, tornando mais comum a relação entre as empresas e a alta tecnologia

(MEOLA, 2016). Dispositivos com acesso a rede como: sensores, smartphones, tablets e

computadores tem se tornado, cada vez mais, ferramentas facilitadoras para o gerenciamento

e manutenção de ambientes de produção, haja vista o avanço do uso do termo agricultura de

precisão (AGROCAMPO, 2017).

Dessa forma, o desenvolvimento de uma aplicação que centralize a comunicação entre

informações geradas por sensores com outros dispositivos como: smartphones, tablets ou

computadores, tem potencial para melhorar o poder de gerenciamento do ciclo produtivo e

contribuir tomadas de decisões do usuário (produtor), decisões essas como: troca de uma

determinada espécie de peixe de uma unidade produtiva a outra devido a temperatura fora do

padrões recomendados, informar ao usuário que a quantidade de oxigênio da unidade

produtiva está inadequada e requer aeração, dentre outras.

No entanto, existe atualmente uma grande heterogeneidade tanto de hardware

(sensores, processadores, memória, dispositivos mobile, etc.) quanto de software (sistemas

operacionais, protocolos de comunicação, etc.) dos dispositivos que podem ser empregados

em uma solução para IoT. A heterogeneidade, na computação, significa diferenças de

hardware, software e de meios de comunicação, e traz como desafio o desenvolvimento de

ferramentas que sejam confiáveis, estáveis e que interajam entre si independente do ambiente.

Dado isso, a utilização de uma plataforma middleware que proporcione a interação de

Page 18: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

12

maneira independente das particularidades de cada dispositivo ou meio de comunicação, é

uma possível solução para lidar com sistemas de grande heterogeneidade.

1.1 JUSTIFICATIVA

Devido ao gradual crescimento populacional e aumento da demanda por alimentos, as

atividades aquícolas buscam meios de produzir com mais velocidade, precisão e qualidade.

Tendo em vista esses pontos, a tecnologia se torna uma grande aliada uma vez que está

presente praticamente em todos os processos atuais de produção.

Em busca da eficiência produtiva, a crescente inclusão da informatização, leva a um

aumento na quantidade de dispositivos e tecnologias envolvidas, com isso, as probabilidades

da existência de problemas com a heterogeneidade de hardware tanto de software sejam

eminentes. Como também a preocupação com a segurança, qualidade e quantidade de

informações que trafegarão nestes dispositivos.

Neste contexto, é proposto nesse trabalho de conclusão de curso a utilização do

middleware: fiware orion context broker para intermediar um ambiente que reúne

informações de vários dispositivos provenientes de um ou mais sensores. Desta forma,

aplicando o conceito de IoT a produção aquícola. Isto significa que tecnologias com

arquiteturas diferentes trabalhem em conjunto operando de maneira distribuída, tolerante a

falhas e escalável uniformemente para prover ao produtor uma interface que contenha

informações diversas sobre uma unidade produtiva.

1.1 OBJETIVOS

Esta seção tem o propósito de apresentar os objetivos deste trabalho. A seção 1.1.1

apresenta o objetivo geral do trabalho que concentra a sua ideia central. A seção 1.1.2

apresenta os objetivos específicos, expondo os pontos que se pretende alcançar com a

pesquisa e desenvolvimento.

1.1.1 OBJETIVO GERAL

O objetivo geral desse trabalho é oferecer uma interface para acesso a informações de

contexto produzidas, ou seja, informações características, por determinados dispositivos

sensores. Assim, um usuário, a partir de qualquer dispositivo que possua um navegador, será

capaz de acessar informações de contexto produzidas pelos dispositivos implantados na

unidade produtiva através de uma interface que facilite suas leituras. Com o este intuito, é

Page 19: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

13

proposto o desenvolvimento de uma interface que reúnas as informações geradas em tempo

real pelos dispositivos sensores, organize-as em tabelas, proporcionando através deste mashup

(FICHTER, 2007), ou seja, uma interface personalizável, uma experiência intuitiva e

transparente ao usuário. Em outras palavras, tornar a tecnologia uma ferramenta a favor do

usuário para suas tomadas de decisões lhe proporcionando um melhor gerenciamento de suas

atividades em tempo real.

1.1.2 OBJETIVOS ESPECÍFICOS

Os objetivos específicos desse trabalho são:

(i) Desenvolvimento de aplicações para dispositivos com capacidade de

sensoriamento;

(ii) A implantação do middleware fiware orion context broker para intermediar a

comunicação entre as informações de contexto geradas pelos dispositivos

sensores ou atuadores.

(iii) Desenvolvimento de uma interface web que acesse e reúna os dados existentes

no middleware, assim promovendo ao usuário uma leitura amigável de toda a

informação de contexto referente a unidade produtiva em tempo real.

Page 20: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

14

2. CONCEITOS BÁSICOS

Neste Capítulo, são apresentados os conceitos básicos que alicerçam este trabalho. São

abordados assuntos como computação orientada a serviços (Seção 2.1), padrão arquitetural

REST (Seção 2.2), um resumo teórico acerca da ferramenta middleware fiware: orion context

broker (Seção 2.6.), juntamente dos conceitos: entidades de contexto e habilitadores

genéricos.

2.1 COMPUTAÇÃO ORIENTADA A SERVIÇOS

A computação orientada a serviços (SOA ou, em inglês, SOC – Service Oriented-

Computing) é um paradigma promissor que utiliza serviços como princípios fundamentais

para o desenvolvimento de aplicações (soluções). Nesse contexto, os serviços são definidos

como elementos computacionais autônomos, auto descritivos, reusáveis e altamente portáveis,

diferindo assim de artefatos de software tradicionais. De maneira rápida e com um baixo

custo, serviços podem ser descritos, publicados, descobertos e dinamicamente agregados para

desenvolver sistemas distribuídos, interoperáveis e capazes de evoluir, podendo executar

funções que vão desde responder a simples requisições até mesmo executar processos de

negócio mais sofisticados (PAPAZOGLOU, 2003; PAPAZOGLOU et al., 2006).

Qualquer pedaço de código ou até mesmo qualquer componente de aplicação

implantado em um sistema pode ser reusado e transformado em um serviço disponível na

rede, reduzindo assim a necessidade de desenvolver novos componentes de software toda vez

que um novo processo de negócio surge (WEI; BLAKE, 2010). Assim, serviços refletem uma

abordagem de programação orientada a serviços baseada na ideia de compor aplicações

através da descoberta e invocação de serviços disponíveis através da rede para realizar alguma

dada tarefa (PAPAZOGLOU et al., 2006, 2007).

De forma geral, tem em sua essência permanecerem independentes do contexto no

qual irão ser utilizados e de linguagens de programação ou sistemas operacionais específicos,

ou seja, há um fraco acoplamento entre o provedor de serviço e o cliente que o consome.

2.1.1 SERVIÇO WEB

Dentro do contexto da Computação Orientada a Serviços os serviços web (web

services) tem ganhado destaque cada vez maior nos últimos anos devido a popularização do

uso de redes e internet. Um serviço web é qualquer software que se disponibiliza pela internet,

Page 21: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

15

ou rede, que realiza alguma tarefa (serviço) através do recebimento de dados e que envia uma

resposta ao cliente que invocou a tarefa. Suas características apresentam serviços autônomos,

modulares, distribuídos e dinâmicos que podem ser escritos, publicados, localizados ou

invocados na rede para criar produtos, processos e cadeias de suprimentos. Esses serviços

podem ser locais, distribuídos ou baseados na web.

Um serviço web é uma coleção de protocolos abertos e padrões usados para troca de

dados entre aplicativos e/ou sistemas. Aplicativos de várias linguagens de programação e em

execução em várias plataformas podem usar serviços da web para trocar dados em uma rede

de computadores, como a internet, de maneira similar à comunicação entre processos e um

único computador. Esta interoperabilidade (por exemplo, entre Java e Python, ou aplicativos

Windows e Linux) deve-se ao uso de padrões abertos (TUTORIALSPOINT, 2017). Ou seja,

em serviços web, apesar de cada aplicação ter a sua própria "linguagem", durante o processo

de comunicação tal linguagem é traduzida para uma linguagem comum através de um formato

intermediário como XML, JSON, CSV, etc.

Abaixo, a Figura 1 demonstra um diagrama de como é realizada a comunicação entre

dispositivos heterogêneos com um serviço web disponibilizado na internet.

Figura 1. Comunicação de Dispositivos com um Serviço Web.

2.2 REST

A sigla REST significa REpresentional State Transfer (Transferência de Estado

Representativo), e é um estilo de desenvolvimento de Serviços Web (Web Services) que teve

origem na tese de doutorado de Roy Fielding (FIELDING, 2000). Este por sua vez, é coautor

Page 22: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

16

de um dos protocolos mais utilizados no mundo, o HTTP (HyperText Transfer Protocol).

Assim, é notável que o protocolo REST é guiado pelas boas práticas de uso de HTTP:

• Uso adequado dos métodos HTTP, onde os mais utilizados são: GET, POST,

PUT, DELETE (SPRING, 2017), como exibido na Figura 2.

• Uso adequado de URL’s (Uniform Resource Locator), ou em português,

Localizador Padrão de Recursos (tradução livre);

• Uso de códigos de status padronizados para representação de sucessos ou

falhas;

• Uso adequado de cabeçalhos HTTP;

• Interligações entre vários recursos diferentes.

Figura 2. Abordagem de acesso aos serviços.

O ponto de partida do REST é o conceito de recurso. Em REST, tudo é definido em

termos de recursos, sendo estes, os conjuntos de dados que são trafegados pelo protocolo. Os

recursos são representados por URI’s (Uniform Resource Indentifiers) ou Identificador

Uniforme de Recursos.

Uma URI pode ser utilizada para identificar qualquer recurso, dar caminho para um

determinado conteúdo, dar nome a este, etc. Uma URL (Universal Resource Locator) é

utilizada apenas para fornecer caminhos, em outras palavras uma URL é uma forma de URI.

É mais natural que URI’s que não sejam URL’s sejam utilizadas em outros contextos, como

fornecimento de namespaces XML. (SAUDATE, 2014)

Na literatura é possível encontrar a terminologia RESTful que significa a capacidade

que um determinado sistema tem de implementar um serviço web utilizando o HTTP e os

Page 23: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

17

princípios do REST. Nas arquiteturas RESTful as informações trafegam via métodos HTTP,

onde no escopo da URI é que é transferido estas informações. Por exemplo, na primeira linha

de uma solicitação HTTP para um serviço web RESTful orientado a recursos: ("GET / reports

/ open-bugs HTTP / 1.1"), nota-se basicamente o que o cliente deseja fazer, que é buscar listar

de open-bugs. Se o método HTTP não coincide com as informações do método, o serviço não

é RESTful. Se a informação de escopo não estiver no URI, o serviço não é orientado a

recursos. Estes não são os únicos requisitos. (RICHARDSON; RUBY, 2007)

Para interagir com as URL’s são utilizados métodos HTTP. A regra de ouro para esta

interação é que URL’s são substantivos e métodos HTTP são os verbos. Isto quer dizer que os

métodos HTTP são os responsáveis por provocar alterações nos recursos identificados pelas

URL’s (SAUDATE, 2014). Estas modificações são padronizadas conforme demonstra a

Tabela 1.

Tabela 1. Interface Uniforme RESTful

A Tabela 1 demonstra como os verbos HTTP são utilizados para que o RESTful tenha

seu funcionamento correto. O verbo GET tem função de recuperar os dados identificados

previamente na URL, o verbo POST que uma vez contenha em seu corpo uma informação em

JSON cria um novo recurso, o verbo PUT tem a função de atualizar um recurso já existente e

informado na URL e o verbo DELETE apaga um recurso previamente identificado na URL.

2.3 PUBLISH/SUBSCRIBE

O publish/subscribe é um paradigma de comunicação com desacoplamento entre

produtores e assinantes em termos de tempo, espaço e sincronização. No publish/subscribe os

produtores publicam (publish) informações organizadas através de “tópicos” enquanto os

assinantes especificam “tópicos” de interesse e passam a receber dados apenas dos tópicos

assinados, por isso o nome “subscribe”. Os eventos publicados são disponibilizados para seus

Page 24: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

18

assinantes interessados, sem os produtores necessariamente conhecerem os seus assinantes e

vice-versa. (ADHIANTO et al., 2010)

Este paradigma de comunicação é baseado na troca assíncrona de mensagens, conhecidas

como eventos. Além do assincronismo, este modelo proporciona mais flexibilidade e

extensibilidade às aplicações que utilizam este modelo na inclusão de novos produtos e

consumidores.

Outra característica interessante do paradigma publish/subscriber é que os produtores

e consumidores não necessariamente necessitam estar disponíveis ao mesmo tempo.

Isso significa que um assinante pode receber as notificações mesmo que o um novo produtor

seja criado para determinado contexto. Tal característica tem alavancado o uso de aplicações

com comunicação publish/subscribe, principalmente no contexto da computação móvel, onde

a existência de uma conexão muitas vezes não pode ser garantida. Finalmente, o

publish/subscribe reflete diretamente o comportamento intrínseco de aplicações orientadas

para a informação porque a comunicação é iniciada pelos produtores de informação. (MÜHL;

BUCHMANN; BACON, 2002)

2.4 MIDDLEWARE

Um middleware (ou em português, mediador), no âmbito da computação distribuída,

basicamente é um software que realiza a mediação entre outros softwares e demais aplicações.

Em outras palavras, o termo middleware se aplica a uma camada de software que fornece uma

abstração de programação, assim como o mascaramento da heterogeneidade das redes, do

hardware, dos sistemas operacionais e das linguagens de programação subjacentes (GEORGE

COULOURIS, 2013).

Figura 3. Exemplo de Middleware em atuação.

Page 25: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

19

Além de resolver os problemas de heterogeneidade, o middleware fornece um modelo

computacional uniforme para ser usado pelos programadores de serviços e de aplicativos

distribuídos. Os modelos possíveis incluem a invocação remota de objetos, a notificação

remota de eventos, o acesso remoto a banco de dados e o processamento de transação

distribuído (GEORGE COULOURIS, 2013).

Há diversas categorias de middlewares, cada uma delas é motivada pela escolha de

entidades que se comunicam e pelos paradigmas de comunicação associados, seguindo cinco

dos principais modelos arquitetônicos: serviços web, objetos distribuídos, componentes

distribuídos, sistemas publish/subscribe e filas de mensagens (GEORGE COULOURIS,

2013).

Exemplos de paradigmas populares de middleware são:

(i) CORBA - (Common Object Request Broker Architecture), fornece invocação

remota de objetos, a qual permite que um objeto, em um programa sendo

executado em um computador, invoque um método de um objeto em um

programa executado em outro computador. Sua implementação oculta o fato de

que as mensagens passam por uma rede para enviar o pedido de invocação e

sua resposta (GEORGE COULOURIS, 2013).

(ii) RMI - O Java Remote Method Invocation (RMI). é muito parecida com as

chamadas de procedimento remoto (RPC – Remote Prodecure Calls), mas

voltada para o mundo dos objetos distribuídos. Com essa estratégia, um objeto

chamador pode invocar um método em um objeto potencialmente remoto,

usando invocação de método remoto. Assim como na RPC, os detalhes

subjacentes geralmente ficam ocultos do usuário. Contudo, as implementações

de RMI podem ir mais além, suportando a identidade de objetos e a capacidade

associada de passar identificadores de objeto como parâmetros em chamadas

remotas. De modo geral, elas também se beneficiam de uma integração mais

forte com as linguagens orientadas a objetos (GEORGE COULOURIS, 2013).

(iii) Orion Context Broker - é uma implementação Broker Publish/Subscriber que

fornecendo as interfaces NGSI9 e NGSI10. Usando essas interfaces, os clientes

podem fazer várias operações, como registro de aplicações, atualizações de

contexto e consultas. Em outras palavras, o Publish/Subscriber atua com as

informações cadastradas por determinado produtor e as envia para os

Page 26: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

20

assinantes específicos que demonstram interesse em recebe-la. O Orion será

apresentado com mais detalhes na seção 2.11.

2.5 FIWARE

O Fiware é uma plataforma criada pela União Europeia para o desenvolvimento e

implantação de aplicações globais para a internet. Esta plataforma possui uma API aberta,

onde é encorajado o envolvimento dos usuários e desenvolvedores, visto que o objetivo

máximo é tornar-se uma plataforma padrão com soluções reutilizáveis. Até que este objetivo

máximo seja alcançado, existe um outro objetivo que está atrelado a este, que é facilitar o

custo e a eficácia da criação e da entrega de aplicações e serviços de internet do futuro em

diversas áreas, incluindo cidades inteligentes, fazendas inteligentes, transportes sustentáveis,

energia renovável e sustentabilidade ambiental (FIWARE FORGE, 2017).

Na constituição da Fiware estão os habilitadores genéricos, que são os principais

elementos desta plataforma. Relacionados à aplicações, serviços e dados, os habilitadores

genéricos, em conjunto, dão suportes a criação de um ecossistema de aplicações, serviços e

dados sustentáveis, possibilitando o gerenciamento de serviços em um framework de

negócios, durante todo o ciclo de vida de um serviço por exemplo (PATIL; RAJESH;

SABHARWAL, 2011).

As subseções a seguir apresentam os elementos básicos inerentes ao Fiware, na qual a

subseção 2.5.1 trata dos habilitadores genéricos, já a subseção 2.5.2 trata do middleware orion

context broker e suas características, a subseção 2.5.3 discorre sobre a interface de

comunicação OMA NGSI e finalizando as subseções referentes ao Fiware, a subseção 2.5.4

que aborda as entidades de contexto.

2.5.1 HABILITADORES GENÉRICOS

Na documentação da plataforma Fiware, existem capítulos técnicos que são divididos

por conjuntos de funcionalidades responsáveis por prover serviços, tais como segurança,

infraestrutura, etc (FIWARE, 2017). As ferramentas utilizadas para realizar os serviços são

denominadas Generic Enablers (GEs) ou habilitadores genéricos, onde sua proposta é

disponibilizar uma série de funções de propósito geral, oferecidas através de APIs

(Application Programming Interface) bem definidas, facilitando o desenvolvimento de

aplicativos inteligentes em vários setores. Os GEs estabelecerão as bases da arquitetura

Page 27: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

21

associada à sua aplicação. As especificações das API Fiware GE são públicas e isentas de

royalties (“Academia FIWARE”, 2016).

Os GEs oferecem diversos serviços que permitem, dentro de outras coisas,

compartilhar, manipular, pesquisar e processar dados acerca de entidades de contexto,

facilitando o desenvolvimento de aplicações que utilizam informações contextuais. Em alguns

casos os GEs precisam comunicar-se entre si para proverem serviços aos usuários (BATISTA

et al., 2016).

2.6.2 ORION CONTEXT BROKER (OCB)

Dentre os GEs, o Orion Context Broker (OCB) é uma implementação do

Publish/Subscribe Context Broker GE, que fornece interfaces NGSI - 9/10 (FIWARE

FORGE, 2016a). Usando estas interfaces clientes podem realizar alguns tipos de operações:

registrar aplicações que produzem contexto, atualizar informação contextual, receber

notificações quando há mudanças na informação contextual, ou quando essa mudança ocorre

com uma determinada frequência e consultar informação contextual (FIWARE FORGE,

2016b).

Alinhado com a especificação OMA NGSI padrão, a informação de contexto na

Fiware é representada através de estruturas de dados genéricas referidas como elementos de

contexto. Um elemento de contexto refere-se a informações produzidas, coletadas ou

observadas que podem ser relevantes para processamento, realizando análises e extração de

conhecimento. A Fiware suporta um conjunto de tipos básicos de dados básicos, bem como a

possibilidade de definir tipos de dados estruturados: vetores e mapas-chave (quais elementos

podem ser outros vetores, mapas-chave ou tipos de dados simples) (FIWARE FORGE,

2016b).

Em resumo, as informações de contexto no OMA NGSI são representadas através de

estruturas de dados denominadas elementos de contexto, que associaram:

• Um EntityId e EntityType, identificando de forma exclusiva a entidade a que os dados

de contexto se referem.

• Uma sequência de um ou mais atributos de elemento de dados (<nome, tipo, valor>

trigêmeos)

• Metadados opcionais vinculados a atributos (também <nome, tipo, valor> trigêmeos)

Page 28: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

22

As interfaces NGSI-9 e NGSI-10 permitem o gerenciamento das configurações de

objetos físicos no mundo real, assim como permite um nível de abstração e remove a

complexidade de gerenciar conexões com gateways e dispositivos.

Utilizando estas interfaces, os clientes podem fazer várias operações como: (i)

Registrar aplicativos do elemento de contexto, por exemplo, um sensor de temperatura dentro

de um viveiro; (ii) Atualizar informações de contexto, por exemplo, enviar atualizações desta

temperatura; (iii) Ser notificado quando as mudanças na informação do contexto ocorrem (por

exemplo, a temperatura mudou) ou com uma determinada frequência (por exemplo, obtenha a

temperatura a cada minuto); (iv) Informações do contexto da consulta. O Orion-Context

Broker armazena informações de contexto atualizadas a partir de aplicativos, então as

consultas são resolvidas com base nessas informações.

As informações de contexto recebidas pelo middleware são armazenadas em um

banco de dados de contexto. Se outro Contexto Consumidor, como por exemplo um

dispositivo do usuário, solicitar a mesma informação de contexto para o middleware, ela pode

ser recuperada do banco de dados. (FIWARE FORGE, 2016b)

Outra característica importante é a escalabilidade, onde as informações de contexto

podem ser muito grandes (por exemplo, entidades que modelam o sensor em uma grande

cidade como Londres, São Paulo ou Tóquio). Assim, o design de projeto do Contexto deve ter

a capacidade de escalabilidade em mente. Assim, a lógica de processamento do middleware

deve ser tão apátrida quanto possível (para habilitar a escala horizontal) e a tecnologia de

banco de dados usada para implementar a persistência do contexto deve ser escalável

(FIWARE FORGE, 2016b).

Abaixo, a Figura 4 demonstra a arquitetura do Orion Context Broker, expondo seus

componentes.

Page 29: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

23

Figura 4 Arquitetura do OCB (FIWARE FORGE, 2016b)

A seguir é apresentada uma breve descrição desta arquitetura.

Os produtores de contexto são os sensores, que encaminham mensagens ao servidor

contendo dados coletados nos sensores em formato JSON através do método HTTP POST

usando a porta 1026.

O middleware atua recebendo todos os dados enviados a partir dos sensores. Como o

Orion é uma plataforma publish/subscribe, sua atuação consiste em registrar esses dados em

seu banco, verificar se há assinantes interessados que buscam estes dados, se confirmado, os

interessados se entram na lista de assinantes e a partir desta etapa já recebem as informações.

Os subscribers, consumidores de contexto, consultam os dados através de uma

interface, que lhe proporciona ter acesso a informação que parte do produtor de contexto

específico, podendo consultar mais de uma informação relativa ao contexto simultaneamente.

2.5.3 INTERFACE OMA NGSI

A especificação de gerenciamento de contexto NGSI (Next Generation Services

Interface) da Fiware trabalha baseada na especificação da OMA (Open Mobile Alliance)

(“Open Mobile Alliance”, 2017). Isto significa que assumem a forma de uma especificação de

ligação RESTFul entre duas interfaces definidas nas especificações OMA NGSI, nomeadas de

NGSI-9 e NGSI-10. Estas interfaces são definidas para troca de informações, onde a OMA

NGSI-10 é usada para trocar informações sobre entidades e seu atributo, ou seja, valores de

atributos e metadados. Já a interface OMA NGSI-9 é usada para informações de

disponibilidade sobre entidades e seus atributos.

Page 30: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

24

Entretanto, as especificações do Gerenciamento de Contexto NGSI da Fiware não

implementam as partes de especificações OMA, que se mostra bastante robusta e com muitas

especificações não necessárias. A interface NGSI no Fiware trabalha com modelos básicos de

gerenciamento de contexto, que são (i) entidades, (ii) atributos, (iii) domínios de atributo e

(iv) elementos de contexto.

As entidades representam o aspecto central de informação NGSI-9/10. Na qual as

entidades são as representações virtuais de todos os tipos de objetos físicos do mundo real. As

entidades possuem um identificador e um tipo, como por exemplo, uma entidade virtual que

representa uma unidade produtiva tem identificador chamado “Viveiro” e o seu tipo

“ViveiroMonitorado”.

Qualquer informação disponível sobre entidades físicas é expressa sob a forma de

atributos de entidades virtuais. Os atributos também têm um nome e um tipo. Por exemplo, a

temperatura da água em um determinado local observado seria representada como um atributo

com o nome "temperatura" e o tipo "float" (ponto flutuante, representação de números reais).

Há também um conceito de domínios de atributos no OMA NGSI-9/10. Um domínio

de atributo agrupa logicamente um conjunto de atributos. Por exemplo, o domínio de atributo

"ponto_monitorado_status" pode incluir os atributos "temperatura" e "pressão" de um

determinado ponto monitorado.

A estrutura de dados utilizada para a troca de informações sobre entidades é

denominada: elemento de contexto. Um elemento de contexto contém informações sobre

vários atributos de uma entidade, mais detalhada na seção 2.5.4.

2.5.4 ENTIDADES DE CONTEXTO

Na plataforma Fiware, as informações contextuais são representadas através de

estruturas genéricas conhecidas como entidades de contexto. Uma entidade de contexto, pode

ser usada para representar de forma virtual, elementos do mundo real, tais como uma pessoa,

um lugar, um sensor.

Informações contextuais são organizadas por meio de elementos de contexto (context

elements). Um elemento de contexto pode possuir associado a si um conjunto de elementos

atributos de contexto (context element atributes) e metadados (meta-data). Entidades de

contexto devem possuir um identificador (EntityID) e um tipo (EntityType), essa tupla

Page 31: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

25

<identificador, tipo> identifica de forma única uma entidade. Por exemplo, podemos criar

uma entidade de contexto do tipo pessoa, com identificador joao, outras entidades do tipo

pessoa não podem possuir o identificador joao (BATISTA et al., 2016). Como demonstrado

na Figura 5 abaixo.

Figura 5 Descrição do Elemento de Contexto (FIWARE FORGE, 2016b)

Informações que caracterizam uma entidade de contexto são representadas por meio

de atributos de contexto. Um atributo de contexto é uma tripla <nome, tipo, valor>. Por

exemplo, uma das informações que caracteriza a entidade joao pode ser a sua posição

geográfica, que pode ser representada por um atributo de contexto chamado localização, do

tipo geolocalização e com valor “5.8475293, -35.2079996” indicando que joao se encontra

em Natal -RN. (BATISTA et al., 2016)

Opcionalmente, um atributo de contexto pode possuir associado a si alguns metadados

que trazem informações contextuais relacionadas a um atributo, como por exemplo, a precisão

de seu valor, sua atualidade, etc. Metadados são representados pela tripla <nome, tipo, valor>.

Tomando como exemplo o atributo de contexto localização da entidade joao, a precisão de

seu valor poderia ser representada pelo metadado com nome precisão, do tipo inteiro e com

valor 20, indicando que a localização fornecida está sujeita a uma margem de erro de 20

metros. (BATISTA et al., 2016)

2.6 PARÂMETROS DA QUALIDADE DA ÁGUA

A qualidade da água é de extrema importância para o pleno desenvolvimento do

sistema produtivo, quanto melhor a qualidade da água, menos problemas nutricionais e de

doenças ocorrerão. Esta seção está dividida em subseções que fazem breves comentários

sobre alguns dos possíveis parâmetros observados.

2.6.1 TEMPERATURA DA ÁGUA

A temperatura da água influencia diretamente o rendimento dos sistemas de produção

de organismos aquáticos, portanto, é fundamental obter informações precisas sobre o clima

Page 32: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

26

local e a hidrodinâmica dos reservatórios para decidir qual será o local mais indicado para a

implantação dos tanques-redes por exemplo. Um dos fatores observados é o resfriamento

noturno, que diminui a temperatura da água superficial, ocasionando a estratificação da

coluna d’água (EMBRAPA, 2003). A estratificação causa uma diferença significativa entre as

densidades das camadas de água superficial, mais quente, e a de fundo, mais fria, ocasionando

problemas de circulação na coluna d’água, e provocando variações bruscas nas concentrações

de oxigênio dissolvido (EMBRAPA, 2003). Afim de monitorar este parâmetro, a Figura 6

representa um modelo do sensor DS18B20 usado para coletar informações referentes a

temperatura da água.

Figura 6 Sensor DS18B20 de Temperatura (MAXIM, 2017)

2.6.2 OXIGÊNIO DISSOLVIDO EM ÁGUA

As principais fontes de oxigênio dissolvido na água são: a fotossíntese, a difusão do ar

através da interface ar e água, e a entrada de água nos reservatórios. A concentração de

oxigênio dissolvido nos reservatórios depende diretamente de fatores como: (a) presença de

matéria orgânica e nutrientes; (b) biomassa de macrófitas; (c) densidade de fitoplâncton; (d)

quantidade de sólidos em suspensão, dentre outros (EMBRAPA, 2003).

A redução brusca e repentina da concentração de oxigênio dissolvido é uma das

principais causas da mortalidade de peixes em grandes reservatórios, devido não só a

diminuição da sua concentração, como também em função do aumento na concentração de

gás carbônico, diminuição do pH e elevação da concentração de nitritos, o que geralmente

ocorre em dias nublados durante o verão. Nessas situações, esses fatores poderão

comprometer a estabilidade ambiental e causar sérios riscos em decorrência do estresse

causado nos peixes cultivados, podendo levá-los à morte. (EMBRAPA, 2003). A Figura 7

representa o sensor modelo SEN-11194 que coleta as informações referentes ao oxigênio

dissolvido na água.

Page 33: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

27

Figura 7 Sensor SEN-11194 para Oxigênio Dissolvido na Água

2.6.3 PRESSÃO ATMOSFÉRICA

A pressão atmosférica é interpretada como a força exercida pela atmosfera sobre a

superfície em questão. Uma queda brusca na pressão atmosférica pode ocasionar a morte de

uma grande quantidade de peixes, pois os gases do fundo dos viveiros estão em equilíbrio, e

com a queda da pressão, desencadeia a liberação dos de uma só vez, como por exemplo, o gás

sulfídrico (H2S ou gás metano CH4). Estes gases são letais aos peixes na concentração de

0,1mg/l. (MARDINI; MARDINI, 2000). A Figura 8 exibe um sensor de avaliação pressão

barométrica BAROCAP (HOBECO, 2017).

Figura 8 Sensor de pressão atmosférica (HOBECO, 2017)

2.6.4 NITRITO

O Nitrito (NO2) é um composto intermediário do processo de nitrificação, durante o

qual a amônia é oxidada para nitrito, logo após, para nitrato (NO3) pela ação das bactérias

Nitrosomonas e Nitrobacter. (MARDINI; MARDINI, 2000). Este composto é encontrado em

baixas concentrações, notadamente, em ambientes oxigenados. A nitrificação é um processo

Page 34: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

28

predominantemente aeróbico e, como tal, ocorre somente nas regiões onde há oxigênio

dissolvido, geralmente, na coluna d’água e na superfície do sedimento do viveiro

(hipolimnio). (MARDINI; MARDINI, 2000).

Se houver um aporte de matéria orgânica fresca no fundo do viveiro (esterco), a

demanda deste material por oxigênio poderá causar condições anaeróbicas na superfície do

solo do viveiro, prejudicando o desempenho da bactéria do gênero Nitrobacter. Isso favorece

o acúmulo do nitrito na água de cultivo, podendo causar massiva mortandade de peixes.

(MARDINI; MARDINI, 2000). A concentração segura para o nitrito na água de cultivo é

abaixo de 0,5 mg/l. (MARDINI; MARDINI, 2000). A Figura 8 representa o sensor: Ion

Sensor Probes “PRO” que coleta dados de taxa de nitrito na água.

Figura 9 Sensor para Nitrito

Page 35: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

29

3. ARQUITETURA DO SISTEMA

Conforme apresentado na introdução, este trabalho tem como o objetivo o

desenvolvimento de uma aplicação que proporcione a diferentes tipos de dispositivos, que

possuam acesso a uma interface web, a leitura de dados que são coletados por diversos tipos

dispositivos sensores. Dados estes que são enviados anteriormente a uma plataforma

middleware, que recebe os dados e disponibiliza a consulta e leitura de forma estruturada.

Para atingir o objetivo, esse capítulo apresenta a arquitetura da aplicação

desenvolvida. A arquitetura proposta é apresentada em quatro camadas seguindo o estilo

arquitetural em camadas, a saber: Produtores de contexto, Middleware, Interface do Cliente e

Consumidores de contexto, conforme ilustrado na Figura 10.

Para este desenvolvimento foi utilizado a plataforma middleware: Orion Context

Broker, servindo como intermediador na comunicação realizada entre dispositivos sensores,

denominados produtores de informação de contexto, com os dispositivos consumidores destas

informações, usuários finais através de uma interface web. A comunicação é realizada

baseada no protocolo HTTP RESTful afim de proporcionar a comunicação entre todos os

dispositivos independente de sua arquitetura ou protocolo de comunicação.

Figura 10 Arquitetura do Sistema

Page 36: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

30

A Figura 10 apresenta a arquitetura da solução desenvolvida, em quatro camadas. Na

camada de Produtores de Contexto (Publisher) estão presentes todos produtores de

informação de contexto, ou seja, sensores que atuam captando diversos comportamentos de

uma unidade produtiva. Cada sensor tem a função de oferecer a Camada Middleware as

informações, sem interrupção, que são coletadas. De forma escalável, esta camada pode

suportar a inclusão de novos sensores e transmitir novas informações de contexto sem

prejudicar as anteriores.

A Camada Middleware é onde está localizado o Orion Context Broker (OCB),

juntamente com o armazenamento das informações produzidas pela camada de Produtores de

Contexto. A informações de contexto são armazenadas no banco de dados (MongoDB) e

disponibilizadas para o gerenciamento do OCB. Já o OCB, realizará o controle das

informações de contexto, tratando de receber as requisições dos consumidores como também

o recebimento das informações produzidas pelos produtores de contexto, e disponibilizadas

tais informações a qualquer consumidor de contexto que buscar determinada informação. O

OCB trabalha de forma que as informações sejam tratadas independente da tecnologia que a

busca, convergindo assim ao tratamento da heterogeneidade de informações.

A funcionalidade da camada de Interface do Cliente consiste em prover uma página

web de interface intuitiva. Propõe-se ser o portal de comunicação entre os consumidores de

contexto, OCB e os produtores de contexto, tornando esta comunicação totalmente

transparente ao usuário. Permitindo que o usuário possa personalizar sua forma de análise da

informação através da tecnologia de mashups, proporcionando melhor visualização das

informações de contexto a qual deseja analisar.

Por fim, a camada de Consumidores de Contexto (Subscribers), que representa a

camada dos usuários finais de todo o processo. O usuário consumidor da informação de

contexto, através da interface do cliente, irá realizar uma busca da informação que deseja

obter no momento, onde, uma vez consultado o fator assinatura será ativado e o usuário

receberá as informações de forma contínua até o mesmo encerrar o processo. Nesta camada se

encaixam todos os dispositivos que possuam acesso à internet e que tenha acesso a Interface

do Cliente.

Page 37: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

31

3.1. IMPLANTAÇÃO

Esta seção apresenta como foi realizada a implantação de cada uma das camadas

apresentadas anteriormente no capítulo 3.

Figura 11 Diagrama de Implantação do Trabalho

Os sensores são implantados em plataformas embarcadas como: Arduino (“Arduino”,

2017), Raspbarry Pi (“Raspberry Pi”, 2017) e NodeMCU (“NodeMcu”, 2017). A implantação

dos nós sensores é realizada via porta serial (COM3, por exemplo) através do ambiente de

programação Arduino IDE (Figura 12).

Figura 12 Escolha da porta de comunicação do sensor

A definição da plataforma embarcada também é definida no mesmo ambiente de

programação. No exemplo da Figura 12 é definido a plataforma: ESP8266 NodeMCU ESP-

Page 38: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

32

12E, devido ao seu módulo Wi-Fi, ele pode suportar redes (802.11 b/g/n) (FONSECA, 2009),

preparado para comunicação sem fio de baixa potência, operando com frequência de 2.4GHz,

possuindo suporte a WPA e WPA2 (DEMARTINI, 2013), ambos padrões de comunicação

Wi-Fi.

O ambiente que suporta tecnologicamente o middleware é a distribuição CentOS 6.x,

que nada mais é que abreviação de (Community ENTerprise Operating System), é uma

distribuição Linux (LINUX.COM, 2017) de classe corporativa derivada de códigos fonte

gratuitamente distribuídos pela Red Hat (“Red Hat Enterprise Linux”, 2017) e mantida pelo

CentOS Project (CENTOS, 2017). Trata-se de um ambiente “oficialmente suportado”.

Para a virtualização do middleware em um servidor local, foi utilizado a ferramenta

Docker (“What is Docker?”, 2017), uma plataforma de container que auxilia na construção,

gerenciamento e proteção de aplicativos. O Docker é uma ferramenta recomendada na própria

documentação da Fiware quando se opta pelo servidor local ao implementar o middleware.

Figura 13 Interface do Docker (Windows)

A inicialização da virtualização dá-se ao comando “Up” no local em que a imagem do

OCB estiver localizada, a partir deste momento o sistema operacional contendo o middleware

e o banco de dados é iniciado contendo seu próprio endereço de rede.

Figura 14 Iniciando a virtualização do OCB

Page 39: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

33

3.2 IMPLEMENTAÇÃO

Esta seção aborda a principais fases da implementação dos componentes pertencentes

as diferentes camadas da solução proposta. As fases estão subdivididas em: (i) implementação

um produtor de informação de contexto; (ii) atualização da informação de contexto e (iii)

consulta das informações existentes.

A Figura 15 demonstra um diagrama de sequência que apresenta o modelo de

funcionamento básico da comunicação entre os nós sensores, middleware e a interface web:

Figura 15 Sequência de comunicação

O nó sensor coleta a informação de contexto de uma determinada unidade produtiva que

em seguida é enviada através de HTTP ao middlware, por sua vez o middleware armazena as

informações em seu banco de dados, tornando estas informações disponíveis as requisições

HTTP dos usuários inscritos através da interface web, caso não possua usuários assinantes, as

informações se mantem armazenadas.

3.2.1 ENVIO DE INFORMAÇÕES AO MIDDLEWARE

Para o envio de dados ao middleware, é utilizada a curl (“Curl”, 2017), ferramenta de

linha de comando para sistemas operacionais que obtém ou envia documentos/arquivos de,

como também, para servidores. Esta ferramenta tem como característica principal o suporte a

vários protocolos de comunicação como HTTP, IMAP, POP3, FTPS e etc. A utilização curl

dá-se porque é quase onipresente em qualquer sistema GNU / Linux, e como o broker atua

com a distribuição CentOS, é a ferramenta recomendada pela documentação da Fiware. No

entanto ferramenta curl, não é obrigatória, tanto que é possível usar qualquer cliente REST.

Page 40: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

34

Os padrões básicos para qualquer implementação da ferramenta curl presente na

documentação da Fiware seguem a mesma metodologia arquitetural do REST. Como

demonstrado abaixo:

Tabela 2 Padrões básicos da ferramenta curl

3.2.2 IMPLEMENTAÇÃO DE UM PRODUTOR DE INFORMAÇÃO CONTEXTO

O middleware deve tornar-se consciente da existência de uma unidade produtora de

contexto, ou seja, a unidade que conterá os sensores. Neste trecho, é exemplificada a criação

da entidade Viveiro1, que representa uma unidade produtiva, possuindo os seguintes

atributos: temperatura, taxa de oxigênio dissolvido, concentração de nitrito e pressão. A

criação dá-se executando o método HTTP POST para a URI: /v2/entities, contendo as

informações em JSON conforme a Figura 16.

Figura 16 Criação de Unidade Produtora de Informação Contexto

Page 41: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

35

É demonstrado nesta implementação que além dos campos id que identifica o viveiro,

como também, seu tipo (type) que o caracteriza, também há os conteúdos referentes aos

atributos, os quais representam os valores que são coletados dos sensores.

A Figura 17 demonstra a implementação de uma unidade produtora de contexto

através da plataforma Arduino IDE:

Figura 17 Criação de PIC através do Arduino IDE

A partir da criação de uma unidade produtora de contexto, a Figura 18 demonstra

middleware é registrando a informação de contexto em seu banco de dados interno, o valor

atual sempre será substituído a cada nova atualização, este processo é realizado de forma

assíncrona.

Figura 18 Sequencia que segue a criação

Page 42: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

36

3.2.3 ATUALIZAÇÃO DA INFORMAÇÃO DE CONTEXTO

A informação de contexto é atualizada constantemente, enviando a coleta do produtor

de informação ao middleware através do método HTTP PUT respeitando o tempo

determinado no momento da implementação.

Figura 19 Atualização da Informação de Contexto

O código da Figura 19 demonstra que as variáveis do método representam o valor do

sensor (data), o próprio sensor (temp), como também o endereço host e a porta (port) a qual o

middleware está implantado. Logo substituindo estes valores, e conservando a estrutura,

demais sensores podem ser implementados através deste código na plataforma Arduino IDE.

3.2.4 CONSULTA DO CLIENTE AS INFORMAÇÕES COLETADAS

A consulta das informações de contexto existentes, são possíveis através de uma

requisição executada por qualquer aplicação que a use o verbo HTTP GET. Visando acessar

as informações de contexto armazenadas pelo OCB, a consulta é realiza da seguinte forma na

URI:

• Para consultar o Viveiro 1:

curl localhost:1026/v2/entities/Viveiro1

Page 43: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

37

Onde:

Figura 20 Consulta do cliente ao middleware

Desta forma, é realizada uma consulta do cliente ao middleware que irá exibir a

informação referente em seu banco de dados. Na qual, neste exemplo entregará ao cliente a

seguinte informação conforme a Figura 21:

Figura 21 Resposta JSON a consulta

Page 44: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

38

A interface web é desenvolvida para que estas informações JSON sejam organizados e

proporcionem uma leitura intuitiva ao usuário assinante que realizar a requisição. A Figura 22

exibe um modelo da interface do cliente.

Figura 22 Resultado da consulta do Cliente

Desta forma, quando houver mais de uma unidade produtora de contexto implantada

em uma unidade produtiva, as informações possam ser organizadas e listadas para facilitar a

leitura. Como também divididas em unidades produtivas aplicando a possibilidade de o

usuário possuir várias unidades produtivas.

Page 45: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

39

4. AVALIAÇÃO

Este capítulo apresenta a avaliação da solução desenvolvida através uma prova de

conceito e de cenários de mudança que buscam refletir atividades básicas que podem ocorrer

em um cenário real. A seção 4.1 apresenta a tela inicial da interface web com os seguintes

cenários: (i) adição de um sensor; (ii) leitura da informação de contexto do sensor; (iii) leitura

de posição geográfica. Na Seção 4.2 é provocado a adição e remoção de produtores de

informação de contexto, seguindo os parâmetros impostos pela interface NGSI, afim de

avaliar o comportamento do sistema nestes cenários. A seção 4.3 trata da análise dos

resultados.

Os métodos realizados para criação, remoção e atualização das informações de

contexto, foram executados através de um cliente REST, denominado ARC (Advanced REST

Client) (“Advanced REST client for Google Chrome”, 2017), este cliente é uma extensão do

navegador Google Chrome (GOOGLE, 2017) e favorece a esta seção permitindo injetar e

receber dados através de métodos HTTP de diversos tipos de sensores não presentes

fisicamente na ocasião.

4.1 INTERFACE WEB

No primeiro acesso, o usuário deverá cadastrar o seu perfil. Haja vista, como

demonstrado na Figura 23, a interface web tem seu ponto de partida sem nenhuma informação

salva, podendo ser personalizada da forma que mais se adeque ao cenário.

Figura 23 Interface Web no Primeiro Acesso

Page 46: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

40

4.1.1 CRIANDO UM PERFIL DE USUÁRIO

A Figura 24, mostra o campo de cadastro de novo perfil, o qual solicita informações

importantes para a personalização do perfil do usuário da interface web. A principal

informação no ato do cadastro é o local o qual o middleware está implementado

(hostname/ip), pois este campo é o que vai servir como identificador do perfil, independente

do nome de perfil informado. Neste trabalho, não houve a possibilidade de alocar o OCB em

uma unidade em nuvem, portanto é utilizado um servidor local (localhost) para hospedar a

ferramenta OCB tanto quanto a interface web.

Figura 24 Cadastro de Novo Perfil

4.1.2 LEITURA DAS INFORMAÇÕES DE CONTEXTO

A seguir, é exibida a interface web com o perfil nomeado como: “Fazenda Modelo –

EAJ - 01”. Neste perfil é apresentando unidades cadastradas, com também, os respectivos

resultados dos geradores de informação de contexto. A Figura 25, por exemplo, mostra a

unidade produtiva nomeada como “FazendaModelo1” exibindo o valor do produtor de

informação de contexto: “Temperatura”, o qual exibe o valor da informação de contexto

coletada até a última atualização.

Page 47: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

41

Figura 25 Unidade Cadastrada

4.1.3 LEITURA DA POSIÇÃO GEOGRÁFICA

A Figura 26 exibe a posição geográfica a qual determinada unidade produtiva está

posicionada, esta informação é encontrada no momento em que o menu localização é

selecionado, bastando o usuário acessar este menu e logo em seguida escolher a unidade a

qual deseja, onde mais uma vez é demonstrada a unidade produtiva “FazendaModelo1” e seu

respectivo e único produtor de informação de contexto “Temperatura”.

Figura 26 Posição Geográfica de um Produtor Informação de Contexto

Page 48: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

42

4.2 CRIAÇÃO DE UM NOVO PRODUTOR DE CONTEXTO

Nesta seção, é demonstrado através da plataforma Arduino e um cliente REST,

simulando hardwares distintos, como é realizada a adição e remoção de um produtor de

informação de contexto em uma determinada unidade produtiva. Onde a subseção 4.2.1 trata

da adição de novos sensores e a subseção 4.2.2 que trata da remoção de um sensor, atividades

baseadas na realidade voltadas a avaliar a escalabilidade e estabilidade do middleware.

4.2.1 NOVO PRODUTOR DE INFORMAÇÃO DE CONTEXTO (SENSOR)

Dada a necessidade do monitoramento da qualidade da água de uma produção, esta

subseção busca simular a implantação de dispositivos sensores a uma determinada unidade

produtiva, visando avaliar o comportamento do sistema como um todo.

A criação de um novo produtor de contexto, é realizado através do método HTTP

POST, que deve seguir corretamente as recomendações e exigências da interface NGSI, a

Figura 27 demonstra a adição de um novo sensor, que avalia a taxa de nitrato em água, na

unidade “FazendaModelo1”:

Figura 27 Adição de novo sensor a unidade produtiva via plataforma Arduino

Ao realizar este procedimento, atualizando do dashboard, é exibido o seguinte layout

(Figura 28). Sua posição geográfica tanto quanto seus valores foram adicionados à interface.

Page 49: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

43

Figura 28 Layout da Interface com Produtor de Contexto Criado

Simulando a adição de outro sensor, desta vez é utilizado um cliente REST. Onde um

sensor de taxa de oxigenação da água é adicionado ao middleware (Figura 29).

Figura 29 Adição de sensor de taxa de oxigênio via cliente REST

Logo a interface exibe o resultado conforme a Figura 30:

Page 50: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

44

Figura 30 Nova produtores de contexto adicionados

4.2.3 REMOÇÃO DE UM PRODUTOR DE INFORMAÇÃO DE CONTEXTO

A remoção de uma sensor é realizada através do método HTTP DELETE

(v2/entities/id?type=Type), onde em sua URI é necessário informar o id e type que o

identifica perante os demais produtores de informação de contexto. Simulando o

cancelamento de assinatura com um determinado sensor, a Figura 31 exibe através de um

cliente REST o comportamento após a remoção do sensor.

Figura 31 Remoção de produtor de Contexto via cliente REST

Page 51: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

45

Após a próxima atualização, o painel que antes exibia 3 sensores cadastrados, exibirá

somente os valores referentes aos sensores o qual está com assinatura. Os demais sensores não

sofreram mudanças, atingindo assim, os resultados esperados.

4.3 ANALISE DE RESULTADOS

Esta seção trata da análise de resultados, conjectura que aborda os resultados e

avaliações obtidas após a implementação e prática dos processos realizados.

O middleware OCB agiu conforme o esperado, onde diversos dispositivos foram

adicionados e trabalhados simultaneamente quando seguido corretamente os requisitos

sugeridos pela interface NGSI e o protocolo HTTP. Estando a todo momento disponível e

sem falhas quanto sua escalabilidade e seguro quanto ao seu banco de dados.

Neste trabalho foi demonstrado cenários de mudanças, como a adição e remoção de

produtores de informação de contexto em uma unidade produtiva, o middleware em conjunto

dos sensores a interface web atingiram a expectativas. Desta forma, a interface web pôde

atingir seu propósito que era exibir ao usuário informações sobre sua unidade produtiva de

forma organizada e intuitiva.

Em hipótese, a proposta de utilizar o OCB atinge as expectativas iniciais do projeto

agindo conforme esperado nos requisitos de interoperabilidade, escalabilidade e estabilidade.

A disponibilidade dos sensores vai depender da configuração a qual o usuário optará para sua

unidade produtiva, já que diversos cenários podem ser constituídos, logo é um ponto bastante

subjetivo. Já a interface web, qualquer dispositivo com acesso à internet e navegador poderá

acessá-lo para acompanhar em tempo real a sua unidade produtiva, permitindo se adequar a

qualquer resolução devida sua implementação responsiva.

Page 52: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

46

5. CONSIDERAÇÕES FINAIS

A utilização de uma ferramenta middleware servindo de intermediador entre a

comunicação de nós sensores e uma interface web demonstra-se bastante atrativa, uma vez

que diversos sensores possuem suas particulares formas de coletar dados, porém em muitos

dos casos não possuem formas de exibi-las em conjunto. Centralizar estas informações em um

local de fácil acesso e genérico é supostamente uma maneira de reduzir o impacto do excesso

de dispositivos.

O middleware OCB possui características e arquitetura voltadas para o trabalho da

internet das coisas (IoT), desta forma permitindo-se receber informações de diversos tipos de

dispositivos favorecendo o monitoramento para qualquer objetivo. Este trabalho foi motivado

pelo conceito de smartfarm, onde é proposto o uso do middleware como ferramenta

intermediadora para o monitoramento de uma unidade produtiva da aquicultura, observando

valores referentes aos seus respectivos produtores de contexto.

Entende-se que a utilização deste middleware juntamente com o avanço do conceito

smartfarm, possa proporcionar ainda mais um avanço significativo dado a sua disponibilidade

e baixo custo.

5.1 LIMITAÇÕES

Em seu estado atual, a interface web desenvolvida possui algumas limitações, sendo as

principais:

(i) O habilitador genérico da Fiware: Orion Context Broker, que atua como

middleware neste trabalho, não possui em seu escopo um banco de dados que

registre dados históricos de todas as suas consultas;

(ii) Apesar de termos resultados funcionais, a complexidade de implementação do

middleware em conjunto ao sensor e ao desenvolvimento da interface web,

torna necessário a utilização da aplicação em campo para resultados mais

próximos da realidade;

(iii) A criação de geradores de unidade de contexto não possui mecanismos de

descoberta automática, tornando necessário informar manualmente os dados

iniciais da unidade geradora de contexto.

Page 53: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

47

(iv) Os valores dos produtores de informação de contexto foram gerados de forma

randômica por não possuir no momento os sensores exemplificados.

5.2 TRABALHOS FUTUROS

Diante do exposto neste trabalho a grande abrangência da plataforma Fiware, diversos

trabalhos futuros poderão ser desenvolvidos. Como por exemplo, permitir uma consulta

histórica de todos os dados de contexto gerados pelos sensores a partir do momento de sua

criação. Alguns desafios envolvem esta implementação como: a criação de um serviço web

que realize consultas constantes a unidade geradora de contexto, colete estas informações e as

armazenes em um outro banco de dados.

Outro trabalho futuro bem importante diz respeito a descoberta automática de

geradores de contexto (sensores). Atualmente, os dados dos serviços são pré-cadastrados no

middlware e a composição fica restrita a estes comandos, via plataforma de desenvolvimento

ou clientes REST, os quais requerem toda uma configuração baseada na interface NGSI.

Page 54: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

48

REFERÊNCIAS

Academia FIWARE. Disponível em: <http://edu.fiware.org/>. Acesso em: 20 ago. 2017.

ADHIANTO, L. et al. Meeting subsctiber-defined QoS constraints in publish/subscribe

systems. Concurrency Computation Practice and Experience, v. 22, n. 6, p. 685–701,

2010.

Advanced REST client for Google Chrome. Disponível em:

<https://advancedrestclient.com/>. Acesso em: 13 nov. 2017.

AGROCAMPO. Agricultura de Precisão: a tecnologia aliada ao produtor rural.

Disponível em: <http://revistaagrocampo.com.br/agricultura-de-precisao/>. Acesso em: 7 out.

2017.

Arduino. Disponível em: <https://www.arduino.cc/>. Acesso em: 15 nov. 2017.

BATISTA, T. et al. SmartMetropolis - Plataformas e Aplicações para Cidades Inteligentes. p.

47, 2016.

BENFIELD, E. F. et al. Influence of Exposure Technique on Leaf Breakdown Rates in

Streams. Oikos, v. 33, n. 3, p. 386, 1979.

Big Data in Smart Farming – A review. Agricultural Systems, v. 153, p. 69–80, 1 maio

2017.

CENTOS. CentOS Project. Disponível em: <https://www.centos.org/>. Acesso em: 9 nov.

2017.

Curl. Disponível em: <https://curl.haxx.se/docs/manpage.html>. Acesso em: 11 fev. 2017.

DEMARTINI, F. WEP, WPA, WPA2: o que as siglas significam para o seu WiFi?

Disponível em: <https://www.tecmundo.com.br/wi-fi/42024-wep-wpa-wpa2-o-que-as-siglas-

significam-para-o-seu-wifi-.htm>. Acesso em: 16 nov. 2017.

EMBRAPA. República Federativa do Brasil Embrapa Meio Ambiente. 2003.

FAPEAM. Piscitech - Equipamento de baixo custo controla temperatura e qualidade da

água em tanques de piscicultura. Disponível em:

<http://www.fapeam.am.gov.br/equipamento-controla-temperatura-e-qualidade-da-agua-em-

tanques-de-piscicultura/>. Acesso em: 13 out. 2017.

FEHRENBACHER, D. D.; DJAMASBI, S. Information systems and task demand: An

exploratory pupillometry study of computerized decision making. Decision Support

Systems, v. 97, p. 1–11, maio 2017.

FICHTER, D. What Is a Mashup? 2007.

FIELDING, R. T. Architectural Styles and the Design of Network-based Software

Page 55: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

49

Architectures. Disponível em:

<https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm>. Acesso em: 14 nov. 2017.

FIWARE. Business Framework Consumption. 2017.

FIWARE FORGE. NGSI-9/NGSI-10 information model - FIWARE Forge Wiki.

Disponível em: <https://forge.fiware.org/plugins/mediawiki/wiki/fiware/index.php/NGSI-

9/NGSI-10_information_model>. Acesso em: 12 nov. 2017a.

FIWARE FORGE. FIWARE. Disponível em:

<https://forge.fiware.org/plugins/mediawiki/wiki/fiware/index.php/FIWARE.OpenSpecificati

on.Data.ContextBroker>. Acesso em: 20 ago. 2017b.

FIWARE FORGE. FIWARE. Disponível em:

<http://forge.fiware.org/plugins/mediawiki/wiki/fiware/index.php/Welcome_to_the_FI-

WARE_Wiki>. Acesso em: 20 ago. 2017.

FONSECA, W. Wireless: diferenças entre as gerações b, g e n. Disponível em:

<https://www.tecmundo.com.br/internet/2764-wireless-diferencas-entre-as-geracoes-b-g-e-

n.htm>. Acesso em: 16 nov. 2017.

GEORGE COULOURIS. Sistema distribuídos: conceitos e projeto. [s.l: s.n.]. v. 0

GOOGLE. Google Chrome. Disponível em:

<https://www.google.com.br/chrome/browser/desktop/index.html>. Acesso em: 14 nov. 2017.

HOBECO. BAROCAP. Disponível em: <http://www.hobeco.net/content/sensor-de-pressao-

atmosferica-barocap>. Acesso em: 16 nov. 2017.

LINUX.COM. What is Linux? Disponível em: <https://www.linux.com/what-is-linux>.

Acesso em: 9 nov. 2017.

MARDINI, C.; MARDINI, L. Cultivo de Peixes e Seus Segredos. Disponível em:

<https://books.google.com.br/books?id=cVuP6-9GBk8C&printsec=frontcover&hl=pt-

BR#v=onepage&q&f=false>. Acesso em: 20 ago. 2017.

MAXIM. DS18B20. Disponível em: <https://www.makerlab-

electronics.com/product/waterproof-temperature-sensor-ds18b20/>. Acesso em: 18 nov. 2017.

MEOLA, A. Why IoT, Big Data &amp; Smart Farming Are the Future of Agriculture -

Business Insider. Disponível em: <http://www.businessinsider.com/internet-of-things-smart-

agriculture-2016-10?es_p=2791926>. Acesso em: 11 nov. 2017.

MÜHL, G.; BUCHMANN, A. P.; BACON, J. M. Large-Scale Content-Based

Publish/Subscribe Systems. 2002.

NodeMcu. Disponível em: <http://www.nodemcu.com/index_en.html>. Acesso em: 15 nov.

2017.

Page 56: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

50

Open Mobile Alliance. Disponível em: <http://www.openmobilealliance.org/wp/>. Acesso

em: 12 nov. 2017.

PAPAZOGLOU, M. P. Service -Oriented Computing : Concepts , Characteristics and

Directions. 2003.

PAPAZOGLOU, M. P. et al. Service-Oriented Computing Research Roadmap Service-

Oriented Computing Research Roadmap. n. April, p. 1–29, 2006.

PAPAZOGLOU, M. P. et al. Service-Oriented Computing: State of the Art and Research

Challenges. Computer, v. 40, n. 11, p. 38–45, nov. 2007.

PATIL, A.; RAJESH, K.; SABHARWAL, K. Comparison of Middleware Technologies -

CORBA , RMI & COM/DCOM. p. 1–27, 2011.

PORTAL BRASIL. Aquicultura tem potencial para dobrar produção em cinco anos

Produção Nacional. Disponível em: <http://www.brasil.gov.br/economia-e-

emprego/2015/06/aquicultura-tem-potencial-para-dobrar-producao-em-cinco-anos>. Acesso

em: 15 out. 2016.

Raspberry Pi. Disponível em: <https://www.raspberrypi.org/>. Acesso em: 15 nov. 2017.

Red Hat Enterprise Linux. Disponível em: <https://www.redhat.com/pt-

br/technologies/linux-platforms/enterprise-linux>. Acesso em: 9 nov. 2017.

RICHARDSON, L.; RUBY, S. RESTful Web Services. [s.l: s.n.].

SAMPAIO, E. V. D. S. B.; COSTA, T. L. DA. Revista Brasileira de Geografia Física.

Revista Brasileira de Geografia Física, v. 6, p. 1275–1291, 2011.

SAUDATE, A. Rest: Construa API’s inteligentes de maneira simples. [s.l.] Casa do

Código, 2014.

SPRING. Understanding REST. 2017.

The Smart City Concept in the 21st Century. Procedia Engineering, v. 181, p. 12–19, 1 jan.

2017.

TUTORIALSPOINT. What are Web Services. Disponível em:

<https://www.tutorialspoint.com/webservices/what_are_web_services.htm>. Acesso em: 12

out. 2017.

UNRIC. ONU projeta que população mundial chegue aos 8,5 mil milhões em 2030.

Disponível em: <http://www.unric.org/pt/actualidade/31919-onu-projeta-que-populacao-

mundial-chegue-aos-85-mil-milhoes-em-2030>. Acesso em: 3 dez. 2016.

VINATEA, L. Aquicultura. Disponível em:

<http://www.panoramadaaquicultura.com.br/paginas/Revistas/30/evolucao.asp>. Acesso em:

12 out. 2017.

Page 57: UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIDADE ... · Monografia (Tecnólogo) Universidade Federal do Rio Grande do Norte. Unidade Acadêmica Especializada em Ciências Agrárias.

51

WEI, Y.; BLAKE, M. B. Service-Oriented Computing and Cloud Computing: Challenges and

Opportunities. IEEE Internet Computing, v. 14, n. 6, p. 72–75, nov. 2010.

What is Docker? Disponível em: <https://www.docker.com/what-docker>. Acesso em: 13

nov. 2017.