Renato Marques Dilli
Ranqueamento de Recursos na IoT: Conceitos, Técnicas e Desafios
Trabalho Individual apresentado ao Programa de Pós-Graduação em Computação da Uni-versidade Federal de Pelotas, como requisito parcial à obtenção do título de Doutor em Ci-ência da Computação
Orientador: Prof. Dr. Adenauer Corrêa Yamin Coorientadora: Prof. Dr. Ana Marilza Pernas
RESUMO
DILLI, Renato Marques. Ranqueamento de Recursos na IoT: Conceitos, Técnicas e Desafios. 2017. 62 f. Trabalho Individual (Doutorado em Ciência da Computação) – Programa de Pós-Graduação em Computação, Centro de Desenvolvimento Tecno-lógico, Universidade Federal de Pelotas, Pelotas, 2017.
Atualmente, muitos recursos estão conectados à Internet solicitando e forne-cendo serviços simultaneamente. A seleção adequada de recursos que melhor atendem às demandas de usuários com uma ampla gama de opções tem sido um desafio de pesquisa relevante e atual.
O emprego de padrões arquiteturais e tecnologias adequadas ao processo de des-coberta e ranqueamento de recursos possibilita um maior refinamento no processo de seleção do recurso mais adequado.
Com a grande quantidade de recursos disponíveis na IoT pode ocorrer ambigui-dades nas especificações das características dos recursos, dificultando assim, o pro-cesso de descoberta. As tecnologias de Web Semântica, em especial as ontologias, evitam conceitos ambíguos e possibilitam um aumento da expressividade através da utilização de raciocinadores para inferir conceitos que não estão explícitos.
Com base nos parâmetros não-funcionais, a Qualidade de Serviço (QoS) e Quali-dade de Contexto (QoC) desempenham um papel significativo no ranqueamento dos recursos de acordo com os serviços que oferecem.
Os serviços providos pelos recursos possuem vários atributos de qualidade. A seleção do recurso mais adequado à requisição do cliente leva em consideração as preferências definidas pelos clientes e administradores da infraestrutura computacio-nal. Uma das técnicas utilizadas pelo mecanismo de ranqueamento dos serviços é a utilização de algoritmos para Análise de Decisão de Múltiplos Critérios (MCDA).
Algoritmos de aprendizagem de máquina também podem ser empregados no pro-cesso de ranqueamento. A aprendizagem de máquina pode ser muito útil para apren-der os padrões de classificação utilizados pelos algoritmos MCDA e pré-classificar no-vos recursos logo que entram no ambiente, evitando o recálculo dos algoritmos MCDA a cada novo recurso detectado.
Este trabalho objetiva a revisão de conceitos relacionados à descoberta e ranque-amento de recursos na Internet das Coisas. São apresentados padrões e tecnologias que podem ser incorporados para qualificar o processo de ranqueamento. Também são discutidos trabalhos de descoberta de recursos e métodos para ranqueamento de recursos na IoT, considerando os diferentes conceitos revisados.
DILLI, Renato Marques. IoT Resource Ranking: Concepts, Techniques and Challenges. 2017. 62 f. Trabalho Individual (Doutorado em Ciência da Computação) – Programa de Pós-Graduação em Computação, Centro de Desenvolvimento Tec-nológico, Universidade Federal de Pelotas, Pelotas, 2017.
Currently, many features are connected to the Internet requesting and providing ser-vices simultaneously. Proper selection of features that best meet the demands of users with a broad range of options has been a relevant and current research challenge.
The use of architectural standards and technologies adequate to the process of dis-covery and ranking of resources allows a greater refinement in the process of selecting the most appropriate resource.
With a lot of resources available in IoT, there may be ambiguities in the specifi-cations of the characteristics of the resources, making the discovery process difficult. Semantic Web technologies, especially ontologies, avoid ambiguous concepts and en-able an increase in expressiveness through the use of reasoners to infer concepts that are not explicit.
Based on the non-functional parameters, Quality of Service (QoS) and Quality of Context (QoC) play a significant role in the ranking of resources according to the ser-vices they offer.
Services provided by resources have several quality attributes. Selecting the most appropriate feature for the client request takes into account the preferences defined by the client and administrators of the computational infrastructure. One of the techniques used by the service ranking mechanism is the use of Multiple Criteria Decision Analysis (MCDA) algorithms.
Machine learning algorithms can also be employed in the ranking process. Machine learning can be instrumental in learning the classification patterns used by MCDA al-gorithms and pre-classifying new features as they enter the environment, avoiding the recalculation of MCDA algorithms to each new detected resource.
This work aims to review concepts related to the discovery and ranking of resources in the Internet of Things. Standards and technologies that can be incorporated to qualify the ranking process are presented. Also discussed are resource discovery work and methods for resource allocation in IoT, considering the different concepts reviewed.
LISTA DE FIGURAS
Figura 1 Arquitetura de Software do middleware EXEHDA . . . 17
Figura 2 Organização Celular do Ambiente Ubíquo Gerenciado pelo EXEHDA 18 Figura 3 JSON - Exemplo de objeto (JSON.org, 2014) . . . 41
Figura 4 JSON - Exemplo de array (JSON.org, 2014) . . . 42
Figura 5 JSON - Valores de objetos (JSON.org, 2014) . . . 42
Figura 6 JSON - Exemplo de string (JSON.org, 2014) . . . 42
API Application Programming Interface AHP Analytic Hierarchy Process
ANP Analytic Network Process ARP Address Resolution Protocol CoAP Constrained Application Protocol CPU Central Processing Unit
CRUD Create, Read, Update and Delete
DA Directory Agent
DEA Data Envelopment Analysis
DHCP Dynamic Host Configuration Protocol DHT Distributed Hash Table
DLS Distributed Location Service DPWS Device Profile for Web Services
EXEHDA Execution Environment for Highly Distributed Applications FDCRT Fuzzy Distance Correlation Ranking Technique
FSIRT Fuzzy Subjective Interval-based Ranking Technique GRDDL Gleaning Resource Descriptions Dialects of Languages HTTP Hypertext Transfer Protocol
IERC IoT European Research Cluster IETF Internet Engineering Task Force IoT Internet of Things
ITU-T ITU Telecommunication Standardization Sector JSON JavaScript Object Notation
LSP Logical Scoring Preference
MQTT Message Queue Telemetry Transport MADM Multiattribute Decison Making
MAUT Multiple Attribute Utility Theory MCDA Multiple Criteria Decision Analysis MCSP Multicriteria Selection Problem MCMP Multicriteria Mathematical Problem MIT Massachusetts Institute of Technology mDNS multicast Domain Name System MODM Multiobjective Decison Making NFPs Non-Functional Properties NFC Near Field Communication OWL Web Ontology Language OMA Open Mobile Alliance
OWA Ordered Weighted Averaging
P2P Peer-to-Peer
QoS Quality of Service QoC Quality of Context QoD Quality of Device
QR Quick Response
QWS Quality of Web Service
RDF Resource Description Framework REST Representational State Transfer RFID Radio Frequency Identification SAW Simple Additive Weight
SOAP Simple Object Access Protocol
TICs Tecnologias de Informação e Comunicação TCP Transmission Control Protocol
TTL Time to Live
TLS Transport Layer Security
TOPSIS Technique for Order of Preferences by Similarity to Ideal Solution UbiComp Computação Ubíqua
UDP User Datagram Protocol UPnP Universal Plug and Play URI Uniform Resource Identifier URL Uniform Resource Locator W3C World Wide Web Consortium WSDL Web Service Description Language
VIKOR VlseKriterijumska Optimizacija Kompromisno Resenje XML eXtensible Markup Language
SUMÁRIO
1 INTRODUÇÃO . . . . 10
1.1 Objetivos . . . . 11
1.2 Estrutura do Texto . . . . 11
2 INTERNET DAS COISAS - IOT . . . . 12
2.1 Conceitos e Definições . . . . 12
2.2 Desafios de Pesquisa . . . . 14
3 O MIDDLEWARE EXEHDA . . . . 16
4 DESCOBERTA DE RECURSOS NA IOT . . . . 20
4.1 Desafios de Pesquisa . . . . 20
4.2 Requisitos em Descoberta de Recursos . . . . 21
4.3 Etapas do Gerenciamento de Recursos . . . . 23
4.3.1 Modelagem . . . 23 4.3.2 Descoberta . . . 25 4.3.3 Estimativa . . . 25 4.3.4 Alocação . . . 25 4.3.5 Monitoramento . . . 25 4.4 Escopo da Descoberta . . . . 26 5 CRITÉRIOS DE QUALIDADE . . . . 28
5.1 Qualidade de Contexto - QoC . . . . 28
5.2 Qualidade de Serviço - QoS . . . . 30
6 RANQUEAMENTO DE RECURSOS . . . . 32
6.1 Algoritmos MCDA . . . . 33
6.1.1 Analytic Hierarchy Process (AHP) . . . 34
6.1.2 Analytic Network Process (ANP) . . . 35
6.1.3 Technique for Order of Preferences by Similarity to Ideal Solution (TOPSIS) 35 6.1.4 VIseKriterijumska Optimizacija I Kompromisno Resenje (VIKOR) . . . . 35
6.1.5 Simple Additive Weight (SAW) . . . 36
6.2 Aprendizagem de Máquina . . . . 36
6.2.1 Modos de Aprendizagem . . . 36
6.2.2 Algoritmos de Árvore de Decisão . . . 37
7.2 Padrão UPnP . . . . 43
7.3 Padrão Arquitetural REST . . . . 45
7.3.1 Visão Geral . . . 45
7.3.2 Elementos da Arquitetura REST . . . 46
7.3.3 Características do REST . . . 46
7.3.4 Web Service RESTful . . . 47
7.4 Ontologias: Ferramentas, Padrões e Linguagens . . . . 48
7.4.1 Raciocinadores . . . 48
7.4.2 Padrão RDF/RDF-Schema . . . 49
7.4.3 Linguagem OWL . . . 49
7.4.4 Linguagem SPARQL . . . 50
8 TRABALHOS EM RANQUEAMENTO DE RECURSOS . . . . 51
9 CONSIDERAÇÕES FINAIS . . . . 54
1
INTRODUÇÃO
O cenário atual contabiliza mais de seis bilhões de coisas conectadas à Internet disponibilizando serviços aos clientes, existindo a previsão de 100 bilhões até 2025 (Gartner, 2015)(RESEARCH, 2017). O número de serviços será maior à medida que as coisas físicas poderão fornecer uma ou mais funcionalidades. A seleção adequada de serviços que satisfaçam as exigências do cliente entre um grande número de ser-viços aptos, torna-se uma tarefa difícil e demorada.
A Internet das Coisas - Internet of Things (IoT), caracteriza-se pela presença de uma grande quantidade de objetos que pelo seu perfil operacional realizam conexões transientes na Internet totalizando uma grande quantidade de serviços disponibiliza-dos (PERERA, 2017). Esta situação aponta para a importância de pesquisas que possam contribuir com os mecanismos para descoberta e seleção de recursos na perspectiva de uma elevada escalabilidade em ambientes de composição dinâmica.
A definição de recurso utilizada é aquela apresentada por (TANENBAUM; BOS, 2014): recurso é qualquer objeto que pode ser alocado dentro da infraestrutura com-putacional. Os recursos muitas vezes são compostos de vários dispositivos consti-tuídos por hardwares heterogêneos, tais como, sensores e atuadores (RAZZAQUE et al., 2016). O acesso aos dispositivos geralmente é realizado através de um ou mais serviços.
Um desafio a ser vencido após a identificação e localização dos recursos é classifi-car os serviços para selecionar o que melhor atende a solicitação do usuário (GARCÍA, 2012). Os processos de classificação se concentram nas preferências do usuário, que frequentemente estabelecem uma ordem baseada na Qualidade de Serviço (QoS) ou propriedades não-funcionais (NFPs - Non-Functional Properties). Usando essas pre-ferências, o conjunto de serviços descobertos pode ser classificado de modo que o melhor serviço possa ser escolhido (SCHRÖPFER et al., 2006).
As propostas atuais para descoberta e acesso aos serviços para a IoT tem como importante frente de pesquisa em aberto a grande quantidade de recursos (podendo chegar a bilhões), com elevada heterogeneidade, em um ambiente de composição dinâmica, características essas típicas da infraestrutura provida pela Internet
(BAR-NAGHI; SHETH, 2016).
Para atender o perfil operacional desta infraestrutura, o processo de descoberta de recursos deve considerar tanto os requisitos funcionais como os não-funcionais. Os funcionais descrevem explicitamente as funcionalidades dos recursos, ou seja, o que ele pode oferecer e os não-funcionais definem informações adicionais sobre os serviços, tais como: desempenho e segurança (KHUTADE; PHALNIKAR, 2014).
1.1
Objetivos
Este Trabalho Individual tem como objetivo geral o estudo do tema desco-berta/ranqueamento de recursos na Internet das Coisas. Como objetivos específicos podemos destacar:
• sistematizar conceitos relacionados à Internet das Coisas (IoT);
• sistematizar desafios e etapas do processo de descoberta de recursos; • identificar técnicas para ranqueamento de recursos;
• sistematizar os critérios de qualidade de serviço e de contexto;
• descrever padrões e tecnologias atuais para contribuir no processo de desco-berta/ranqueamento;
• realizar um estudo sobre trabalhos de ranqueamento de recursos.
1.2
Estrutura do Texto
O texto está organizado em 9 capítulos. No capítulo 1 é introduzido sobre o tema e os objetivos para a concepção deste trabalho. A Internet das Coisas é tratada no capí-tulo 2, onde são apresentadas várias definições e desafios. O capícapí-tulo 3 apresenta o middleware EXEHDA. No capítulo 4 é apresentado o processo de descoberta de recur-sos na IoT com seus desafios, técnicas e características, as etapas do gerenciamento de recursos e escopos da descoberta. O capítulo 5 descreve os critérios de qualidade a serem considerados no processo de descoberta/ranqueamento de recursos. Foram considerados os critérios de Qualidade de Contexto (QoC) e de Qualidade de Ser-viço (QoS). O ranqueamento de recursos é apresentado no capítulo 6 e três técnicas são discutidas para ranqueamento: algoritmos multi-critérios para tomada de decisão (MCDA); algoritmos baseados em aprendizagem de máquina; e lógica fuzzy. No ca-pítulo 7 estão destacados alguns padrões e tecnologias empregados no processo de descoberta/ranqueamento. O capítulo 8 apresenta trabalhos sobre ranqueamento de recursos e no capítulo 9 estão as considerações finais.
2
INTERNET DAS COISAS - IOT
A expressão Internet das Coisas começou a surgir no laboratório de pesquisa Auto-ID Center do MIT (Massachusetts Institute of Technology ) e foi apresentado em 1999 por Kevin Ashton, em um relato intitulado "A Internet das Coisas tem o potencial de mudar o mundo, assim como a Internet fez. Talvez até mais"(ASHTON, 2009).
Em 2001 esta expressão foi descrita no artigo intitulado "The Electronic Product Code (EPC): A naming Scheme for Physical Objects"(BROCK, 2001) onde o autor descreve o seguinte: Nossa visão é a de criar um "Smart World ", isto é, uma infraes-trutura inteligente que conecta vários objetos, informações e pessoas através da rede de computadores. Esta infraestrutura, por sua vez, permitirá o controle dos recursos físicos através do monitoramento remoto pelas pessoas e máquinas.
A meta é desenvolver padrões abertos, protocolos de comunicação e linguagens para tornar mais fácil a adoção mundial desta rede, formando assim uma base para esta nova realidade da IoT.
No início de 2015, o mundo já registrava 25 bilhões de dispositivos conectados à internet segundo a CES 2015 (Consumer Electronics Show 2015), mostrando que a Internet das Coisas, vem tendo um destaque importante, sendo considerada a revolu-ção tecnológica do futuro entre as infraestruturas de computarevolu-ção e comunicarevolu-ção.
2.1
Conceitos e Definições
A seguir são apresentados alguns conceitos e definições sobre Internet das Coisas encontradas na literatura:
• (PERERA et al., 2014) A Internet das Coisas consiste em milhares de objetos interconectados através da Internet, no qual os objetos e as pessoas se comuni-cam entre si, não tendo a intervenção direta do ser humano, possibilitando facili-dades na vida diária de cada um de nós, tendo uma rede totalmente conectada, coletando informações de lugares, objetos e situações.
• (SOMA et al., 2011) Internet das coisas é uma associação da computação ubí-qua e a Internet do futuro. Ela interage com sensores heterogêneos,
agregado-res, atuadores e um domínio no contexto de aplicações, preservando segurança. • (ATZORI; IERA; MORABITO, 2010) A Internet das Coisas é um paradigma que prescreve um mundo de objetos físicos embarcados com sensores e atuadores, interligados por redes sem fio e que se comunicam utilizando a Internet, criando uma rede de objetos inteligentes capazes de executar processamentos, coletar variáveis ambientais e reagir a estímulos externos.
• (AGGARWAL, 2013) Internet das coisas refere-se ao endereçamento de objetos e suas representações virtuais em uma estrutura igual à Internet. Tais objetos podem interligar informações sobre si mesmo ou podem transmitir dados em tempo real de sensores sobre seu estado.
• (ANDREA et al., 2014) A IoT é uma tecnologia que contribui para concretizar no-vos domínios de aplicação das tecnologias de informação e comunicação (TICs), a exemplo das cidades inteligentes, no qual o uso de tecnologias avançadas de comunicação e sensoriamento objetiva promover serviços de valor agregado para os órgãos administrativos destas cidades e para as pessoas.
• (EVANS, 2011) A Internet das Coisas é uma importante evolução que a Inter-net obteve, onde as pessoas não são os únicos que produzem a ação, mas eles criam a possibilidade que os objetos possam mediar suas vidas. Toda esta evolução promove a nossa população a análise, coleta e distribuição de dados, obtendo-se assim novos conhecimentos e informações.
• (SAINT-EXUPERY, 2009) A Internet das Coisas permite que objetos possam se conectar a qualquer momento, em qualquer lugar, com qualquer coisa, de preferência utilizando qualquer caminho ou rede e qualquer serviço.
• (MIORANDI et al., 2012) Segundo o autor, os objetos inteligentes ou simples-mente "coisas" devem ser capazes de detectar fenômenos (físicos ou lógicos) e/ou disparar ações sobre o ambiente, possuir alguma capacidade computacio-nal, ter capacidade de comunicação e identificador único.
Há quatro aspectos que podem dar caracterização à Internet das Coisas: (i) sis-temas independentes; (ii) a IoT é instalada em cooperação com os novos serviços; (iii) a comunicação é feita de objetos-para-pessoas e de objetos-para-objetos; e (iv) o acesso a rede pode ser a todos ou restrito a alguns.
Com o avanço tecnológico que acontece no cenário mundial, surge o aparecimento da IoT, das redes de sensores sem fio, computação móvel e computação ubíqua. Mas há uma série de desafios que deverão ser superadas para a disseminação deste assunto, principalmente com relação ao desenvolvimento das aplicações e da alta heterogeneidade de hardware e software deste ambiente.
14
2.2
Desafios de Pesquisa
Os principais desafios que devem ser vencidos no desenvolvimento de sistemas de suporte para Internet das Coisas são os seguintes (PAULO F. et al., 2015) (FLÁVIA C.; PAULO F.; THAIS, 2013) (GUBBI et al., 2013) (MIORANDI et al., 2012):
• Heterogeneidade de dispositivos. A grande heterogeneidade de dispositivos físi-cos é uma das características centrais da Internet das Coisas que poderão estar no ambiente de interesse das aplicações dos usuários. Essa heterogeneidade diz respeito às diferentes capacidades e recursos tecnológicos disponíveis em cada dispositivo, sejam estes de software ou de hardware. Nos cenários da IoT onde há um elevado número de dispositivos, não é desejável que o desenvolve-dor de aplicações ubíquas se envolva no tratamento dos aspectos tecnológicos de baixo nível. Com isso as soluções de middleware podem tratar a heterogenei-dade e possibilitar a interoperabiliheterogenei-dade e integração dos dispositivos e serviços que estão no ambiente. O grande propósito nesse caso consiste em gerenciar aspectos de baixo nível desses dispositivos da IoT, e ao mesmo tempo diminuir as demandas de alto nível das aplicações da UbiComp (FLÁVIA C.; PAULO F.; THAIS, 2013).
• Escalabilidade. O número de dispositivos e a quantidade de informações produ-zidas envolvidas, podem ser muito elevados. Isso acarreta problemas de escala-bilidade que englobam diferentes naturezas (MIORANDI et al., 2012), incluindo: (i) nomeação e endereçamento, devido ao vasto número de dispositivos envolvi-dos; (ii) comunicação, pela quantidade de dados permutados na rede; (iii) trata-mento de um volume enorme de dados e; (iv) gerenciatrata-mento de serviços, devido ao grande número de execuções.
• Eficiência energética. Quanto a eficiência energética, muitos dispositivos da IoT operam com baterias, como nodos sensores por exemplo. Isso demonstra que estes dispositivos tenham uma quantidade limitada de energia, e seu tempo de funcionamento muitas vezes está ligado à durabilidade dessa energia. Mesmo com a utilização de métodos de captação de energia que possam ser utilizados, como a utilização de painéis solares por exemplo, eles nem sempre resolvem os problemas de energia. Por isso, o uso eficiente da energia é importante para prolongar a vida útil destes dispositivos, uma vez que nem sempre substituir ou recarregar a bateria é uma atividade simples. Nesse sentido, as estratégias de diminuição do consumo de energia geralmente estão ligadas à otimização da uti-lização das interfaces de comunicações sem fio e do processamento. Com isso, independentemente da utilização de baterias, do grande número de dispositi-vos contemplados em abordagens IoT, leva para que as soluções deste cenário,
tenha o cuidado com relação ao consumo de energia destes dispositivos.
• Auto-organização. As características dos ambientes da IoT são as seguintes: (i) complexidade; e (ii) dinamismo. Em redes de sensores, esses dispositivos estão sempre saindo e entrando na rede, por término de energia, perda de sinal de rádio ou pela entrada de um novo dispositivo, devido à substituição por defeito ou necessidade de inserir outro ponto de monitoramento (JENNIFER; BISWANATH; Ghosal Dipak, 2008). Com o grande número de dispositivos envolvidos na rede é necessário que se tenha o mínimo de intervenção humana nos procedimentos de gerenciamento. Por isso, o uso de mecanismos de descoberta de dispositivos e serviços são vitais nestes cenários.
• Interoperabilidade semântica e gerenciamento de dados. O volume elevado de dados que são trocados na IoT, necessitam de tratamento. Para que esses da-dos possam resultar em informações úteis que possam ser usadas por diferentes aplicações é necessário disponibilizá-las em formatos adequados e padroniza-dos, fornecendo modelos e descrições semânticas do conteúdo, chamadas de meta-dados, utilizando formatos e linguagens bem definidos. Isso possibilita que sejam usados métodos de raciocínio sobre estes dados produzidos.
3
O MIDDLEWARE EXEHDA
Este capítulo é destinado a apresentar os conceitos relacionados ao middleware EXEHDA e seus subsistemas, citado inicialmente em (YAMIN, 2004).
O EXEHDA é um middleware adaptativo ao contexto e baseado em serviços, com objetivo de criação e gerenciamento de um ambiente computacional, provendo al-ternativas de execução neste ambiente. Estas aplicações são distribuídas, móveis e adaptativas ao contexto em que seu processamento ocorre, estando disponíveis a partir de qualquer lugar, todo o tempo (LOPES, 2016).
Arquitetura e Ambiente Ubíquo
O middleware EXEHDA tem como premissa principal a definição de uma arqui-tetura que capacite aplicações se comunicarem em um ambiente computacional, de uma forma sensível ao contexto gerindo as informações, sendo seus aspectos funcio-nais e não-funciofuncio-nais mutáveis a partir deste controle. Aplicações alvo do middleware EXEHDA são distribuídas, sensíveis ao contexto e abrangem a mobilidade lógica e física. Mobilidade física e lógica neste cenário, refere-se à mobilidade de dispositivos enquanto a mobilidade física se refere ao deslocamento do usuário (LOPES, 2016). Arquitetura de Software
A arquitetura de software do middleware EXEHDA é apresentada na Figura 1. Os principais requisitos que o EXEHDA deve atender são: (i) gerenciar tanto aspectos não funcionais como funcionais da aplicação, de modo independente; (ii) dar suporte à adaptação dinâmica de aplicações; (iii) disponibilizar mecanismos para obter e tratar informações de contexto; (iv) empregar informações de contexto na tomada de deci-sões; (v) decidir as ações adaptativas de forma colaborativa com a aplicação; e (vi) disponibilizar a semântica siga-me, permitindo ao usuário iniciar as aplicações e aces-sar dados a partir de qualquer lugar, e executar as aplicações continuamente mesmo em deslocamento.
Figura 1 – Arquitetura de Software do middleware EXEHDA Ambiente Ubíquo Disponibilizado
O ambiente ubíquo se equivale ao ambiente computacional, visto que recursos e serviços gerenciados pelo EXEHDA tem como premissa cumprir os requisitos propos-tos em um ambiente computacional. Sistema este, composto por todos dispositivos e usuários relacionados à sua execução no middleware.
O EXEHDA propõe um ambiente computacional constituído por células de execu-ção, nas quais os dispositivos computacionais são distribuídos (vide Figura 2). Cada célula é constituída dos seguintes componentes (DAVET, 2016):
• EXEHDAbase, o elemento central da célula, sendo responsável por todos servi-ços básicos e constituindo referência para os demais elementos;
• EXEHDAnodo que corresponde aos dispositivos computacionais responsáveis pela execução das aplicações;
• EXEHDAnodo móvel, um subcaso do anterior, que corresponde aos dispositivos tipicamente móveis que podem se deslocar entre as células do ambiente ubíquo, como notebooks, tablets ou smartphones
• EXEHDAborda, responsável por fazer a interoperação entre os serviços do mid-dleware e os diversos tipos de gateways; e
• EXEHDAgateway, que consiste no elemento responsável por setorizar pontos de coleta e/ou atuação distribuídos, disponíveis no meio físico, realizando a intera-ção destes com os outros componentes do middleware.
O Servidor de Borda é instanciado em um equipamento do tipo EXEHDAborda e se destina a gerenciar a interação com o meio físico através de gateways, bem como a execução de regras de contingência e armazenamento temporário das informações
18
Figura 2 – Organização Celular do Ambiente Ubíquo Gerenciado pelo EXEHDA contextuais coletadas, em caso de falha de comunicação. O Servidor de Contexto, por sua vez, é alocado no EXEHDAbase e atua no armazenamento e no processamento das informações contextuais, integrando informações históricas e aquelas provenien-tes de diferenprovenien-tes Servidores de Borda distribuídos no ambiente ubíquo.
Na proposta do EXEHDA a premissa é que os sensores e/ou atuadores sejam incorporados ao Servidor de Borda através de gateways. Os gateways são utilizados então, para tratar a heterogeneidade, tanto de hardware como de software, inerentes a dispositivos de sensoriamento e/ou atuação, realizando a conversão de protocolos e o gerenciamento dos dispositivos, além de fornecer a estes capacidade de comunicação via Internet.
Com o intuito de garantir a interoperabilidade com as tecnologias de mercado, e também potencializar a distribuição das iniciativas de coleta e/ou atuação, foram pre-vistos três tipos distintos de gateways (DAVET, 2016):
• Gateways Proprietários (GW-PR), que tem funcionalidades e protocolos hetero-gêneos variando de acordo com seus fabricantes;
• Gateways Nativos (GW-SB), cujas funcionalidades operam de maneira integrada à arquitetura do EXEHDA, sendo instanciados em equipamentos do tipo EXEH-DAgateway; e
• Gateway Virtual (GWV-SB), localizado no mesmo hardware em que executa o Servidor de Borda, constituindo-se em uma virtualização do Gateway Nativo, dispensando quando possível a necessidade de um hardware específico para o gateway.
A existência de dispositivos amplamente heterogêneos em um ambiente computa-cional, torna necessária a adoção de um núcleo com funcionalidades mínimas, esten-didas através de serviços carregados sob demanda. Esta abordagem para padroniza-ção de projetos é referenciada na literatura como microkernel.
Sistemas modernos em ambientes computacionais são bastante complexos, com-preendendo sistemas legados, sistemas fechados provenientes de empresas e sis-temas desenvolvidos por grupos de pesquisas interessados. São caracterizados por sua distribuição e heterogeneidade, características comuns em ambientes computa-cionais. Com base nisso, percebe-se a dificuldade no desenvolvimento de sistemas com sincronização de dados e desenvolvimento de novas funcionalidades que supram necessidades requisitadas por serviços na perspectiva da Computação Ubíqua.
4
DESCOBERTA DE RECURSOS NA IOT
Este capítulo caracteriza a descoberta de recursos no contexto da IoT e apresenta aspectos importantes que devem ser considerados durante o processo de descoberta. Também são apontados desafios de pesquisa que devem ser observados, tais como, disponibilidade, escalabilidade e dinamicidade em que os recursos entram e saem do ambiente computacional.
4.1
Desafios de Pesquisa
Há vários desafios a serem tratados no processo de descoberta de recursos na IoT. A disponibilidade é um deles, pois a infraestrutura e o ambiente da IoT são di-nâmicos e a participação humana no processo de descoberta é inviável, portanto a automatização é um requisito importante. Quando não há nenhuma infraestrutura de rede, cada dispositivo deve anunciar a sua presença e os recursos que oferece. Este é um modelo diferente dos sistemas distribuídos centralizados, onde a publicação, descoberta e comunicação de recursos geralmente são gerenciados por um servi-dor dedicado. Mecanismos de descoberta também precisam escalar bem, no que diz respeito a quantidade de recursos, e deve haver uma distribuição eficiente da carga computacional inerente ao esforço de descoberta, dada a composição de dispositivos com recursos limitados na IoT.
Além da disponibilidade e escalabilidade dos recursos, os trabalhos de (GOMES et al., 2016), (PAGANELLI; PARLANTI, 2012) e (VANDANA; CHIKKAMANNUR, 2016) destacam os seguintes requisitos que devem ser atendidos na descoberta de recursos para IoT:
• Esquema de Identificação Flexível. Transparência em relação ao esquema de identificação adotado (por exemplo, URIs, endereços IP, etc.) usado para ende-reçar recursos e serviços.
• Consulta de vários atributos. Capacidade de encontrar recursos ao fazer consul-tas com base em uma correspondência exata de um ou mais atributos.
• Consulta de Intervalo. Capacidade de encontrar recursos com base em consul-tas especificando limites em atributos únicos ou múltiplos.
• Lidar com vários provedores. Várias entidades podem produzir e publicar infor-mações sobre um dado recurso.
• APIs de gerenciamento. Capacidade de gerenciar informações associadas a um determinado recurso.
• Descrição semântica de recursos e serviços. Uso de ontologias para modelar semanticamente recursos e serviços expostos.
• Modelagem de critérios QoC. Modelagem de indicadores de QoC associados a dados de contexto.
• Interações síncronas e assíncronas. Capacidade de lidar com interações síncro-nas e assíncrosíncro-nas com clientes.
• Como identificar as capacidades semelhantes entre dispositivos. Vários disposi-tivos podem coexistir em um ecossistema IoT com recursos semelhantes. Para descobrir o objeto com a melhor capacidade dada a quantidade de objetos é um grande desafio.
• Nenhuma técnica padrão para garantir uniformidade no ranqueamento do ser-viço. Ranqueamento das capacidades baseadas em características semelhan-tes é um desafio.
• Técnicas para avaliação periódica do ranqueamento. Os dispositivos precisam fornecer continuamente seus serviços, a avaliação periódica de seu ranquea-mento é necessária. Portanto, o intervalo de tempo e a metodologia a ser se-guida para a avaliação precisam ser especificados para vários domínios.
4.2
Requisitos em Descoberta de Recursos
Segundo (KARIM TALAL; RACHID, 2013), os seguintes requisitos devem ser es-pecificados para atingir os objetivos da descoberta:
1. Descrição do Serviço. A fim de facilitar o processo de descoberta, cada proto-colo tem uma linguagem de descrição com vocabulário e sintaxe utilizados para descrever o serviço e as suas propriedades (PAUL WISNER FRANKLIN REY-NOLDS; SAARINEN, 2008). Os métodos disponíveis para esta tarefa variam de acordo com o grau de expressividade: chave/valor, baseado em template e des-crição semântica (KHOUJA M.; KAMOUN, 2011). Na abordagem de chave/valor,
22
os serviços são caracterizados por um conjunto de pares de valores de atributo. A abordagem baseada em template usa a mesma técnica da primeira aborda-gem, além disso, oferece conjunto predefinido de atributos comuns que são usa-dos com frequência. A descrição semântica depende da utilização de ontologia, mas é mais expressiva do que as duas primeiras abordagens.
2. Arquitetura do Serviço de Descoberta. A arquitetura usada pelos protocolos de descoberta podem ser classificados da seguinte forma:
• Modelo baseado em diretório. Tem um diretório dedicado que mantém as descrições de todos serviços. O diretório pode ser logicamente centrali-zado, mas fisicamente distribuído pela rede. Portanto, descrições de serviço são armazenados em diretórios diferentes.
• Modelo não baseado em diretório. Não tem diretório dedicado, cada prove-dor de serviços mantém suas descrições de serviço. Quando uma consulta chega, cada provedor processa e responde se ele corresponde a consulta. 3. Anúncio do Serviço e Consulta. São dois mecanismos básicos para clientes,
provedores de serviços e diretórios para trocar informações sobre os serviços disponíveis.
• Anúncio. Os provedores de serviço notificam todos potenciais clientes que um conjunto de novos serviços está ativo e pronto para uso. O processo estará completo através do registro das descrições do serviço no diretório, se ele existir, ou de mensagens multicast.
• Consulta (Query ). Possibilita clientes descobrirem serviços que satisfaçam seus requisitos. Para fazer isto, o cliente inicializa uma consulta unicast para o diretório, ou uma consulta multicast (SUNDRAMOORTHY; HARTEL; SCHOLTEN, 2009). A consulta é definida utilizando a linguagem de des-crição (MARIN-PERIANU; HARTEL; SCHOLTEN, 2005) para especificar os detalhes sobre o serviço que está sendo procurado. O diretório ou provedor de serviço que possui o recurso que combina com a descrição responde à consulta.
4. Invocação do Serviço. Depois de recuperar a informação do serviço desejado, o próximo passo é o acesso. No entanto, além de executar a descoberta de serviço, a maioria dos protocolos oferecem métodos para utilizar os serviços (MARIN-PERIANU; HARTEL; SCHOLTEN, 2005). Um exemplo é o Simple Ob-ject Access Protocol (SOAP) usado no Universal Plug and Play (UPnP).
5. Atualização da Configuração. Protocolos de descoberta de serviço devem pre-servar uma visão consistente da rede e fornecer informações válidas sobre os serviços disponíveis. Portanto, é necessária a gestão de tal dinamicidade. Atu-alização de configuração permite aos usuários monitorar os serviços, a sua dis-ponibilidade e mudanças em seus atributos. Existem duas funções para esta atualização:
• Configuração Purge. Permite a detecção de entidades desconectadas atra-vés de (i) locação e (ii) anúncio time-to-live (TTL) (SUNDRAMOORTHY; HARTEL; SCHOLTEN, 2009). Na locação, os pedidos e as prestadoras de serviços mantém um contrato de arrendamento com o diretório, e atualiza periodicamente. O diretório assume que o prestador de serviços que não consegue atualizar o seu arrendamento deixou o sistema, e purga suas in-formações. Com TTL, o usuário monitora o TTL sobre a publicidade de ser-viços descobertos e assume que o serviço deixou o sistema, se o prestador de serviços deixa de re-anunciar antes de expirar o seu TTL.
• Manutenção da Consistência. Permite que os usuários saibam quando os serviços alteraram as suas características. As atualizações podem ser pro-pagadas usando (i) notificação de atualização push-based, onde os usuá-rios e diretóusuá-rios recebem notificações do provedor de serviços; ou (ii) com pull-based polling para atualizações pelo usuário para o provedor de dire-tório ou serviço para uma nova descrição (SUNDRAMOORTHY; HARTEL; SCHOLTEN, 2009).
4.3
Etapas do Gerenciamento de Recursos
As principais atividades de um sistema de gerenciamento de recursos na IoT são as seguintes (DELICATO; PIRES; BATISTA, 2017): modelagem; descoberta; estima-tiva; alocação; e monitoramento. Considerando que o tema central de pesquisa a ser desenvolvido é o ranqueamento de recursos, enquanto parte importante do gerenci-amento, entendemos que a Modelagem de Recursos é uma atividade essencial na melhoria do processo de descoberta e ranqueamento de recursos. Por este motivo a mesma é discutida em mais detalhes que as outras atividades.
4.3.1 Modelagem
A atividade de modelagem de recursos pode ser agrupada em diferentes catego-rias, considerando suas abordagens e primitivas usadas para representar recursos. A modelagem, neste Trabalho Individual, foi classificada em três categorias: (i) baseada em atributos; (ii) baseada em semântica; e (iii) baseada em virtualização. Cada
cate-24
goria difere entre si quanto ao grau de abstração, granularidade e formalismo com que os elementos são representados nos modelos (DELICATO; PIRES; BATISTA, 2017). 4.3.1.1 Baseada em Atributos
Pode ser considerada a mais direta, uma vez que os recursos são descritos como um conjunto de atributos. Esta abordagem permite uma granularidade mais fina, uma vez que os atributos descrevem características específicas do hardware do dispositivo, tais como CPU e capacidade de armazenamento. Tais características são modeladas em termos do que o recurso é capaz de fornecer. Em relação ao grau de abstra-ção dessas abordagens, pode ser considerado baixo, uma vez que atributos estão diretamente relacionados às características físicas dos dispositivos. Ou há um ma-peamento para-um entre o atributo e o recurso físico que representa, ou um um-para-muitos no caso de recursos virtuais, em qualquer caso os elementos utilizados sempre referem-se a atributos de baixo nível de dispositivos.
4.3.1.2 Baseada em Semântica
Mecanismos mais sofisticados para modelagem de recursos são baseados no uso de tecnologias semânticas, tais como, ontologias. Estes mecanismos são frequen-temente adotados por abordagens orientadas a serviços e promovem um alto nível de abstração para representar os recursos da IoT. Com essa abordagem, os mode-los podem ser criados a partir de uma perspectiva de nível superior, e os recursos podem ser consumidos como um serviço. As ontologias são baseadas na lógica de descrição, portanto, elas proporcionam inerentemente um alto grau de formalismo na representação de recursos. Uma ontologia é uma representação formal de um con-junto de conceitos dentro de um domínio e das relações entre esses conceitos. As ontologias são muito expressivas e flexíveis, de modo que permitem representar hard-ware e softhard-ware, recursos físicos e virtuais e em uma variedade de granularidades. Conceitos podem ser definidos para modelar um dispositivo IoT de forma única e seus componentes físicos, juntamente com as relações entre eles, evitando a ambiguidade de descrição.
4.3.1.3 Baseada em Virtualização
Esta proposta de modelagem, consiste em utilizar abordagens de virtualização, que podem fornecer um alto grau de abstração ao modelo de recursos IoT. Essas abordagens podem se concentrar na virtualização de dispositivos, virtualização de rede ou virtualização do sistema como um todo, fornecendo assim diferentes granu-laridades para modelagem. Nesse contexto, as técnicas definidas por software são mecanismos principais para abstrair componentes e funcionalidades de baixo nível (recursos), permitindo seu provisionamento e gerenciamento através de APIs de alto
nível e bem definidas.
Em relação ao rigor/precisão dos modelos adotados para representar recursos e aplicações podemos considerar que eles têm um baixo grau de formalismo (DELI-CATO; PIRES; BATISTA, 2017). Basicamente, os recursos IoT são descritos como unidades definidas por software e expostos através de APIs bem definidas. Essas unidades definidas por software abrangem aspectos funcionais e não funcionais dos recursos IoT e são configuradas com base em um conjunto de políticas.
4.3.2 Descoberta
Antes que os recursos possam ser alocados, eles precisam ser descobertos no ecossistema IoT. A descoberta de recursos em tal sistema heterogêneo é em si um de-safio, agravado pela atual falta de padronização de protocolos e formatos. Além disso, a alta escalabilidade da IoT requer que o ambiente computacional forneça algum me-canismo capaz de registrar e descobrir recursos e serviços de forma auto-configurada, eficiente e dinâmica.
4.3.3 Estimativa
Às vezes é útil tentar estimar a quantidade de recursos a serem utilizados, a fim de garantir que todos os recursos necessários a uma aplicação em execução sejam pro-vidos. As estratégias de estimação de recursos são geralmente baseadas na manu-tenção de dados históricos do consumo de recursos. Estes dados são obtidos através de atividades de monitoramento. Nos casos em que existe uma estimativa e pos-sivelmente reserva de recursos, pode eventualmente recursos não serem utilizados. Portanto, pode ser necessário que o sistema seja capaz de recuperar esses recursos não utilizados, devolvendo-os ao conjunto de recursos disponíveis.
4.3.4 Alocação
A alocação de recursos na infraestrutura da IoT tem requisitos adicionais intro-duzidos pelos dispositivos deste tipo de infraestrutura, cada um com uma natureza específica dos dados produzidos, caracterizados como fluxos de dados. O processo de alocação deve considerar tanto os fluxos dos dispositivos como dos nós interme-diários, tais como gateways. O objetivo principal da alocação de recursos é garantir a adequada reunião de requisitos de aplicação, com os dispositivos providos pela infra-estrutura, minimizando o seu custo operacional.
4.3.5 Monitoramento
O monitoramento de recursos é uma atividade que deve tratar a natureza altamente dinâmica dos sistemas IoT, considerando aspectos tanto no que diz respeito à dispo-nibilidade de conexões de rede, à presença de dispositivos, bem como as variações
26
de interesse do usuário. O monitoramento desses aspectos é essencial para proporci-onar um serviço de qualidade. Além disso, o monitoramento sobre o uso de recursos atuais também é necessário para a finalidade de manter uma alocação de recursos ótima ou próxima à otimizada. Isto implica que o processo de alocação não pode ser estático, mas sim dinâmico e adaptativo para acomodar tais variações no contexto de execução.
4.4
Escopo da Descoberta
Esta seção organiza o escopo da descoberta da seguinte forma: (i) próxima ao cliente; (ii) na rede local; (iii) em diretórios; (iv) ponto-a-ponto (P2P); e (v) baseada em semântica (AZIEZ; BENHARZALLAH; BENNOUI, 2017)(DATTA; DA COSTA; BON-NET, 2016).
Próximo ao cliente
Inclui tecnologias para descobrir as coisas em uma proximidade espacial. Algumas das tecnologias atuais disponíveis nesta categoria:
• Marcadores ópticos. É um modelo onde as coisas próximas são descobertas pelo cliente usando códigos de barras e códigos QR e depois decodificados usando aplicativos. A descoberta remota não é suportada.
• Near Field Communication. É construído em RFID com alcance máximo de 10cm. Ele opera a banda Ism de 13.56MHz. Ele não suporta qualquer des-coberta de nível superior e suporta apenas desdes-cobertas locais.
• Bluetooth Beacon. O protocolo Bluetooth, de baixa energia e de curto alcance, permite que qualquer objeto transmita sua identidade digital de forma ubíqua. Um dispositivo beacon envia sinais unidirecionais que consiste uma ID exclusiva para esse beacon.
• Wi-Fi Aware. Os dispositivos Wi-fi Aware transmitem um sinal unidirecional curto que contém sua ID, dados de aplicativos como URL. Podem atuar como um emissor e um receptor também.
• Google Physical-Web/UriBeacon. É um projeto de código aberto que descobre e interage com dispositivos conectados, como clicar em links em uma lista de resultados de pesquisa.
Na rede local
Ele inclui tecnologias para descobrir as coisas como pontos finais em uma rede conhecida. A seguir estão algumas das tecnologias atuais disponíveis nesta categoria:
• Multicast DNS (mDNS). O mDNS é uma extensão do protocolo DNS da Internet. O mDNS consulta os nomes enviando uma mensagem IP multicast para todos os nós IoT na rede local. Quando o nó alvo recebe seu nome, ele mostra uma mensagem de resposta que contém seus endereços IP.
• Multicast CoAP. O CoAP é estendido para oferecer suporte ao envio de solicita-ções para grupos de IP multicast. É baseado em IP, UDP e CoAP. Quando um cliente faz um pedido, todos os nós CoAP multicast endereço para descobrir os servidores CoAP. O servidor CoAP escuta o endereço dos nós e responde aos clientes.
• Simple Service Discovery Protocol (SSDP). É um protocolo de descoberta usado com UPnP (dispositivos Plug and Play). Um cliente SSDP mostra uma solicitação de descoberta HTTP UDP para o canal multicast SSDP. O serviço SSDP que ouve a esses canais no recebimento de um pedido de serviço correspondente responde de volta a resposta UDP HTTP unicast.
• WS-Discovery. Especifica a descoberta de multicast através de serviços da Web com base no SOAP.
• XMPP. Ele descobre informações sobre entidades XMPP. Ele encontra as capa-cidades de uma entidade e os itens associados a uma entidade. Esta tecnologia é baseada em IP, TCP e XMPP.
Em Diretórios
Inclui tecnologias para descobrir recursos em diretórios específicos. Os pedidos dos usuários são tratados por esses diretórios.
Ponto-a-ponto P2P
Nesta abordagem, o diretório é distribuído entre os pares. As tabelas de hash distribuídas (DHT), mapeiam o espaço de pesquisa em um intervalo numérico que aloca servidores para esse intervalo.
Baseado em semântica
Inclui tecnologias onde os recursos são descobertos com base na interpretação semântica.
5
CRITÉRIOS DE QUALIDADE
Neste capítulo são apresentados conceitos referentes a Qualidade de Contexto (QoC - Quality of Context) e Qualidade de Serviço (QoS - Quality of Service) com objetivo de integrá-los ao processo de descoberta e ranqueamento de recursos na IoT.
5.1
Qualidade de Contexto - QoC
Uma definição de contexto bastante utilizada pelos pesquisadores, é a proposta por (DEY; ABOWD; SALBER, 2001), onde contexto é qualquer informação que possa ser utilizada para caracterizar a situação de uma entidade. Conforme (EMMANOUILI-DIS; KOUTSIAMANIS; TASIDOU, 2013), o contexto é classificado em: sistema; am-biente; serviço; usuário; e social. (SCHUSTER et al., 2013) definem uma taxonomia para classificação do contexto social pervasivo com base nas questões where, when, who e how, com quatro dimensões: espaço; tempo; pessoa; e informação. Além das questões why e what em contexto de domínio específico.
A aplicabilidade da Computação Ciente de Contexto depende, em parte, da ca-pacidade de gerenciar a qualidade da informação tratada (BUCHHOLZ; KÜPPER; SCHIFFERS, 2003). As imperfeições podem ser resumidas em três categorias (HEN-RICKSEN; INDULSKA; RAKOTONIRAINY, 2002): (i) a informação contextual pode ser incorreta, refletindo uma situação diversa à situação real da entidade que é modelada; (ii) pode ser inconsistente, se contradiz outras informações consideradas válidas; e (iii) pode ser incompleta, se nem todos os aspectos da situação estiverem acessíveis ao sistema.
Para (BUCHHOLZ; KÜPPER; SCHIFFERS, 2003) a Qualidade de Contexto des-creve a qualidade da informação que é usada como de contexto. Assim, QoC refere-se à informação e não ao processo, nem ao componente de hardware que fornece as informações. A definição de QoC para (KRAUSE; HOCHSTATTER, 2005) é qual-quer informação inerente que descreve informação de contexto e pode ser usada para determinar o valor da informação para uma aplicação específica. Isso inclui
informa-ções sobre o processo de provisionamento que a informação foi submetida (“histórico”, “idade”), mas não tratam de estimativas sobre os passos de provisionamentos futuros. Os metadados relevantes à ciência de Qualidade de Contexto podem ser, em um primeiro nível, divididos em parâmetros de QoC e indicadores de QoC (FILHO et al., 2010). Os indicadores são informações de mais alto nível como precisão, confiabili-dade e valiconfiabili-dade, expressas em uma representação que permite à aplicação avaliar o nível de adequação entre suas demandas e a qualidade do contexto. Os parâmetros de QoC são informações (sejam elas sensoreadas, inferidas ou informadas) a partir das quais podem ser derivados os indicadores de QoC.
A avaliação dos indicadores de QoC pode empregar uma série de métodos e téc-nicas, dependendo da forma de representação das informações contextuais e das restrições impostas pela plataforma. Por exemplo, o trabalho de (HOSSAIN, 2010) uti-liza métodos probabilísticos para reauti-lizar o cálculo da confiança com base na fusão de observações realizadas por múltiplos sensores. No trabalho de (NEISSE et al., 2012), a avaliação do indicador “confiabilidade” é realizada usando a lógica subjetiva para realização de inferências. Outros métodos encontrados na literatura incluem lógica fuzzy ou difusa; algoritmos genéticos; álgebras max-plus, min-plus e min-max-plus; e técnicas baseadas na Teoria de Probabilidade Bayesiana (NAZÁRIO; DANTAS; TO-DESCO, 2012).
Há três questões básicas que devem, obrigatoriamente, ser consideradas na con-cepção de estratégias de gerência de QoC, bem como na incorporação dessas es-tratégias a sistemas cientes de contexto (NAZÁRIO; DANTAS; TODESCO, 2012) (XA-VIER, 2017): (i) a definição de um conjunto básico e expressivo de indicadores de QoC de propósito geral; (ii) o desenvolvimento de métodos para quantificação des-ses indicadores a partir dos parâmetros de QoC; e (iii) a extensão dos modelos de representação de contexto para permitir a representação das meta informações ne-cessárias ao provimento de recursos de QoC.
Devido ao aspecto dinâmico da IoT, não podemos antecipar todas as eventuali-dades (SALAH; SAADI, 2016). Portanto, há uma forte necessidade de lidar com a incerteza nos dados de contexto. As decisões tomadas apenas sobre as informações de contexto disponíveis podem impedir o sistema global. Dessa forma, quantificar a qualidade do contexto (QoC) é uma questão-chave, pois pode comprometer a preci-são e a oportunidade das decisões. Assim, a incerteza nos dados de contexto pode levar a má decisão. Também pode ter um impacto negativo na capacidade de prever com fiabilidade os contextos futuros para auxiliar em decisões pró-ativas.
30
5.2
Qualidade de Serviço - QoS
Qualidade de Serviço consiste de uma combinação de várias qualidades ou pro-priedades do serviço, tais como, disponibilidade, tempo de resposta, precisão e vazão (MENASCÉ; RUAN; GOMAA, 2007). Enquanto os requisitos funcionais definem o que o serviço deverá fazer, os requisitos não-funcionais, em particular, a QoS, especifica o nível de qualidade dos serviços, definindo, por exemplo, o tempo necessário para um serviço responder a várias requisições e a porcentagem de tempo que um serviço está funcionando.
(BUCHHOLZ; KÜPPER; SCHIFFERS, 2003) apontam as diferenças entre Quali-dade de Contexto (QoC), QualiQuali-dade de Serviço (QoS) e QualiQuali-dade de Dispositivos (QoD). Enquanto QoC descreve a qualidade da informação de contexto, QoS se re-fere à qualidade de um serviço. QoS é qualquer informação que descreve o quão bem um serviço é realizado.
Serviços são executados em componentes de hardware, estes dispositivos pos-suem também uma qualidade, chamada Qualidade de Dispositivos (QoD). QoD é qualquer informação sobre as características técnicas e capacidades de um dispo-sitivo.
Um serviço na IoT pode ser definido pelas combinações de funcionalidades, inte-roperabilidade, interações, habilidades de comunicação, dados relacionados e capa-cidade de usar os dados relacionados do(s) dispositivo(s) para implementar o sistema IoT para atender aos requisitos de aplicativos específicos do sistema e do usuário final (BHADDURGATTE; BP, 2015).
Qualidade de Serviço têm uma natureza muito distinta, compreendendo uma grande variedade de atributos de qualidade, tais como os ligados a desempenho (tempo de resposta, disponibilidade), custo e tolerância a falhas (confiabilidade).
Considerando-se a diversidade dos atributos de qualidade, diferentes esquemas foram propostos para agrupá-los e classificá-los. Uma classificação natural que pode ser facilmente considerada é agrupar os atributos de qualidade em duas categorias. A primeira compreende os atributos determinísticos que são aqueles cujos valores são conhecidos antes da execução da aplicação, tais como custo. A segunda refere-se aos atributos não determinísticos que engloba aqueles cujos valores são observados em tempo de execução, tais como tempo de resposta. Em aplicações de software ori-entadas a serviços, os atributos de qualidade, principalmente os não determinísticos, representam uma questão importante (a qualidade do serviço) e, muitas vezes, são considerados na seleção e composição de serviços, devido principalmente a quanti-dade de serviços disponíveis com a mesma funcionaliquanti-dade (CAVALCANTI, 2014).
Devido às características da IoT, provedores e consumidores de serviços podem pertencer a diferentes domínios e a rede tem um forte impacto na segurança e no
desempenho do serviço. Desta forma, consumidores costumam mudar o provedor de serviços quando a qualidade esperada não é satisfeita. Por isso, atributos ligados ao desempenho são os mais comuns aos trabalhos que relacionam serviços e QoS, prin-cipalmente em trabalhos ligados a descoberta e seleção de serviços. Eles consistem em um conjunto de atributos não determinísticos e quantitativos que descrevem o de-sempenho e a capacidade de resposta dos serviços em tempo de execução na visão do consumidor. A seguir são descritos os principais atributos de qualidade ligados ao desempenho de serviços:
• Tempo de resposta. O tempo de resposta de um serviço ou de uma operação do serviço refere-se à duração do tempo para enviar uma mensagem a partir de um determinado consumidor até o recebimento da mensagem de resposta por este consumidor. Por isso, o tempo de resposta é um atributo de qualidade específico para o consumidor e deve ser calculado individualmente.
• Vazão. A vazão é o número de solicitações que um provedor de serviços pode processar com sucesso e retornar ao consumidor em um determinado período de tempo.
• Disponibilidade. A disponibilidade representa a probabilidade do serviço estar disponível, funcionando e produzindo resultados corretos. Ou seja, ela refere-se à razão entre o tempo que o serviço está em atividade e o tempo de inatividade deste serviço.
• Precisão. A precisão refere-se à taxa de sucesso de serviço. Ela é calculada através da razão entre todas as invocações ao serviço e as invocações que fa-lharam durante intervalo de tempo.
• Preço. O preço de um serviço é o valor monetário que o consumidor paga para invocar o serviço e, normalmente, é calculado por invocação.
6
RANQUEAMENTO DE RECURSOS
As solicitações dos usuários descrevem os requisitos e as preferências com rela-ção aos serviços. No que diz respeito aos requisitos, eles indicam as funcionalidades necessárias que um usuário está procurando, de modo que estão vinculados ao pro-cesso de descoberta, à medida que ele obtém do repositório os serviços candidatos que oferecem essas funcionalidades solicitadas. Por sua vez, as preferências são in-terpretadas unicamente por mecanismos de classificação para ordenar serviços que foram descobertos. As exigências dos usuários são geralmente suportadas por mid-dlewares, cujas propostas de descoberta dependem de seus modelos.
As preferências do usuário definem o critério de otimalidade que é aplicado ao selecionar um serviço entre um conjunto de candidatos. Estas preferências geral-mente se referem a propriedades de QoS relevantes para o usuário (BECKER; GEIHS; GRAMBERG, 1999), embora um provedor de serviços também pode definir preferên-cias sobre as propriedades do serviço e potenciais usuários. Em qualquer caso, as descrições de preferência são avaliadas para classificar os serviços candidatos previ-amente descobertos. Esse processo de classificação pode ser interpretado como um problema de otimização que obtém o melhor serviço de acordo com as preferências estabelecidas (GARCÍA et al., 2008).
A maioria destes métodos assume um conjunto fechado de serviços candidatos completamente avaliados. No entanto, o conjunto de serviços candidatos pode incluir serviços que ainda não foram totalmente avaliados relativamente a todos os atributos de qualidade. Além disso, mesmo depois de os serviços terem sido completamente avaliados, os usuários podem contestar as supostas avaliações discordando delas. Além disso, os usuários podem sugerir suas preferências por atributos de qualidade de serviços sem fornecer números ou intervalos de números, mas sim fornecendo caracterizações da importância relativa de cada atributo para seus propósitos especí-ficos.
Assim, a classificação dos serviços pode ser afetada por certas fontes de incer-teza, as quais foram classificadas por (PLATENIUS et al., 2013): (i) incerteza devida a conhecimentos incompletos causados por avaliações de serviço parciais fornecidas
pelo prestador de serviços ou pelo broker ; (ii) incerteza devida às pressuposições adotadas para a avaliação dos serviços pela técnica de classificação aplicada; e (iii) a incerteza devido às vagas preferências dos usuários sobre os atributos de QoS dos serviços e a incerteza dos usuários sobre a adequação dos valores max e min avalia-dos avalia-dos atributos.
O trabalho de (KAKARONTZAS; GEROGIANNIS, 2016) lida com essas fontes de incerteza com os Conjuntos Fuzzy Intuicionais (IFSs - Intuitionistic Fuzzy Sets), como segue: (i) utiliza IFSs para refletir avaliações faltantes de serviços; (ii) quando há informações desconhecidas sobre pesos de critérios de QoS, são calculados pesos de entropia (ou seja, objetivos) para concluir com uma classificação final dos serviços; e (iii) utiliza IFSs refletindo o acordo ou desacordo dos usuários sobre os valores max e min avaliados dos atributos de benefício e qualidade de custo.
Várias técnicas de classificação foram propostas para determinar o peso dos atri-butos. Elas são organizadas em três categorias principais (ALMULLA; YAHYAOUI; AL-MATORI, 2015): objetivas; subjetivas; e híbridas. As técnicas objetivas determi-nam pesos diretamente dos dados. Técnicas bem conhecidas desta categoria são: análise de elementos principais; entropia; e modelo de programação de múltiplos ob-jetivos. As técnicas subjetivas derivam os pesos para os atributos de qualidade das informações a partir das preferências fornecidas por especialistas de domínio. Esta segunda categoria inclui técnicas bem conhecidas, como o Processo de Hierarquia Analítica (AHP - Analytic Hierarchy Process), a técnica de autovetores e a técnica de mínimos quadrados ponderada. Por sua vez, a técnica Delphi é uma combinação híbrida de técnicas objetivas e subjetivas. Algoritmos usando as técnicas híbridas de-terminam pesos diretamente dos dados, bem como das informações de preferência fornecidas pelos especialistas do domínio ou pelos usuários.
Neste Trabalho Individual a discussão das técnicas para tratamento da incerteza no processo de ranqueamento está organizada em três seções. A Seção 6.1 trata dos métodos baseados em especificação, a Seção 6.2 discute os algoritmos baseados em aprendizagem de máquina e a Seção 6.3 introduz a lógica fuzzy.
6.1
Algoritmos MCDA
Análise de Decisão de Múltiplos Critérios (MCDA - Multiple Criteria Decision Analy-sis) refere-se à tomada de decisões na presença de critérios múltiplos, geralmente conflitantes. Os algoritmos MCDA visam auxiliar no julgamento da tomada de decisão utilizando um conjunto de objetivos e critérios, estimando seus pesos de importân-cia relativa e estabelecendo a contribuição de cada opção em relação a cada critério de desempenho. MCDA não é apenas um conjunto de teorias, metodologias e técni-cas, mas também uma perspectiva específica para lidar com problemas de tomada de
34
decisão (FIGUEIRA; GRECO; EHRGOTT, 2005).
O trabalho de (WHAIDUZZAMAN et al., 2014) apresenta uma revisão bibliográfica sobre algoritmos MCDA organizado-os em problema base, tipos, métodos e catego-rias.
Os algoritmos foram classificados conforme o problema base a ser resolvido: (i) Problema de Seleção Multicritério (MCSP - Multicriteria Selection Problem), seleciona a melhor alternativa a partir de um conjunto finito de alternativas, todas conhecidas a priori; e (ii) Problema Matemático Multicritério (MCMP - Multicriteria Mathematical Problem), seleciona a melhor alternativa a partir de um conjunto muito grande ou infinito de alternativas, as quais, nem todas são conhecidas a priori.
Métodos MCDA podem ser categorizados em dois tipos (WHAIDUZZAMAN et al., 2014): (i) por Teoria da Utilidade Multiatributo (MAUT - Multiple Attribute Utility The-ory ), que tem origem na Teoria da Utilidade e aborda situações com múltiplos objeti-vos, representados por atributos; e (ii) por métodos de sobreclassificação (outranking). MAUT tenta encontrar uma função que reflita a utilidade ou utilidade de uma alterna-tiva particular. A cada ação é atribuída uma utilidade marginal, com um número real representando a preferência da ação considerada. A utilidade retornada é a soma des-sas utilidades marginais. Métodos de sobreclassificação decidem se uma alternativa é classificada com grau mais alto que outro (métodos ELECTRE e PROMETHEE).
Os algoritmos foram organizados em duas categorias: tomada de decisão multi-atributo (MADM - Multiattribute Decision Making) e tomada de decisão multiobjetiva (MODM - Multiobjective Decision Making). De acordo com um levantamento realizado por (WHAIDUZZAMAN et al., 2014) para avaliar o uso de diferentes métodos, especi-almente para melhorar a qualidade, o fuzzy foi o mais utilizado, representando 40% do total, seguido por AHP e ANP juntos em aproximadamente 20%. Em contraste, DEA -Data Envelopment Analysis, Programação por Metas e ELECTRE foram empregados raramente (MOHAMMADSHAHI, 2013). Os métodos mais utilizados, segundo (WHAI-DUZZAMAN et al., 2014) e (NUNES et al., 2016) são apresentados resumidamente a seguir.
6.1.1 Analytic Hierarchy Process (AHP)
Em 1980, Thomas L. Saaty descobriu AHP, um método popular e amplamente utilizado para MCDA. O AHP permite o uso de critérios qualitativos e quantitativos ao avaliar alternativas e os atributos não são inteiramente independentes uns dos outros. O AHP é baseado numa comparação parcial, com os atributos estruturados em uma relação hierárquica, o que é muito útil. A hierarquia começa do nível superior em direção ao objetivo; Os níveis mais baixos correspondem a critérios, subcritérios, e assim por diante. Nesta árvore de hierarquia, o processo começa a partir de nós folha e progride até o nível superior. Cada nível de saída representa a hierarquia
correspondente ao peso ou à influência de diferentes ramos originários desse nível. Finalmente, após realizar as comparações, a melhor alternativa em relação a cada atributo é geralmente selecionada (CRISTÓBAL, 2011).
6.1.2 Analytic Network Process (ANP)
A ANP é uma extensão do AHP proposta por Thomas L. Saaty em 1996. Trata-se de uma técnica abrangente de tomada de decisão destinada a superar o problema da dependência e feedback entre os critérios, utilizando relações hierárquicas unidirecio-nais entre os níveis de decisão. Para lidar com a interdependência entre os elementos, a ANP deriva uma “supermatriz” contendo pesos compostos (LIANG et al., 2013). Para a obtenção da supermatriz, assume-se que para um sistema de n agrupamentos ou componentes nos quais os elementos de cada componente interagem ou impactam ou, ainda, são influenciados por alguns ou por todos os elementos do próprio ou de outro agrupamento.
6.1.3 Technique for Order of Preferences by Similarity to Ideal Solution (TOP-SIS)
Esta técnica mostra preferência pela semelhança com uma solução ideal, que tenta selecionar uma alternativa mais próxima da solução ideal e, simultaneamente, mais distante da solução anti-ideal. Nesta técnica, a matriz de decisão é inicialmente nor-malizada usando a normalização do vetor, e as soluções ideais e anti-ideais são iden-tificadas dentro da matriz de decisão normalizada. TOPSIS foi desenvolvido em 1981 por Hwang e Yoon e seleciona alternativas com a menor distância da solução ideal positiva e a distância mais distante da solução ideal negativa (MOHAMMADSHAHI, 2013). É um método de critérios múltiplos para identificar soluções a partir de um conjunto finito de alternativas. As soluções ótimas devem ter a menor distância da so-lução ideal positiva e a mais distante da soso-lução ideal negativa (CRISTÓBAL, 2011). O método TOPSIS introduz uma função de agregação, incluindo as distâncias do ponto ideal e do ponto ideal negativo, sem considerar sua importância relativa. No entanto, o ponto de referência pode ser uma grande preocupação na tomada de decisão, e deve ser o mais próximo possível da solução ideal (REHMAN; HUSSAIN; HUSSAIN, 2012) (CRISTÓBAL, 2011).
6.1.4 VIseKriterijumska Optimizacija I Kompromisno Resenje (VIKOR)
VIKOR, também conhecido como o método de classificação de compromisso, é uma ferramenta eficaz na tomada de decisão multicritério. O seu índice de classifi-cação multicritério baseia-se numa medida de “proximidade” à solução ideal. VIKOR emprega normalização linear, mas os valores normalizados não dependem da uni-dade de avaliação de um critério. Uma função de agregação equilibra a distância da
36
solução ideal entre satisfação individual e ideal (CRISTÓBAL, 2011). É uma técnica eficiente de MCDA para classificar e, em seguida, selecionar a partir de um conjunto de alternativas conflitantes (ALABOOL; MAHMOOD, 2013).
6.1.5 Simple Additive Weight (SAW)
O algoritmo SAW usa uma pontuação de avaliação para classificar cada opção disponível. A pontuação é obtida através de valores de critérios normalizados multi-plicados por um peso. As opções são classificadas em ordem decrescente de acordo com sua pontuação final, que é a soma das pontuações para cada critério.
6.2
Aprendizagem de Máquina
A aprendizagem de máquina visa compreender a lógica dos programas para me-lhorar o desempenho das máquinas em determinadas tarefas, através da experiência anterior (SIMON, 1983). Sendo assim, os algoritmos de aprendizagem automática têm-se revelado extremamente úteis em diversos domínios, desde logo têm sido es-pecialmente importantes na resolução de problemas de mineração de dados, onde universos de dados extensos poderão conter implicitamente informações considera-das de valor e que poderá ser descoberta automaticamente. Estes algoritmos são igualmente essenciais em domínios de compreensão difícil, em que os próprios hu-manos não possuem capacidades para o desenvolvimento de algoritmos eficazes. 6.2.1 Modos de Aprendizagem
Segundo (RUSSELL et al., 2005), para alguns sistemas de aprendizagem é ne-cessário predizer se uma certa ação irá fornecer uma certa saída. Nesse sentido, é possível classificar os sistemas de Aprendizagem de Máquina nos seguintes modos:
• Aprendizagem supervisionada, no qual dado um conjunto de observações ou exemplos rotulados, isto é, conjunto de observações em que a classe, denomi-nada também atributo meta, de cada exemplo é conhecida, o objetivo é encontrar uma hipótese capaz de classificar novas observações entre as classes já exis-tentes.
• Aprendizagem não-supervisionado, no qual dado um conjunto de observações ou exemplos não rotulados, o objetivo é tentar estabelecer a existência de grupos ou similaridades nesses exemplos.
• Aprendizagem semi-supervisionado, no qual dado um pequeno conjunto de ob-servações ou exemplos rotulados e um conjunto de obob-servações ou exemplos não rotulados, o objetivo é utilizar ambos os conjuntos para encontrar uma hi-pótese capaz de classificar novas observações entre as classes já existentes.