• Nenhum resultado encontrado

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), Qualidade de Serviço (QoS) e Qualidade 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 funcionalidade (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 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.

Documentos relacionados