• Nenhum resultado encontrado

A arquitetura usa um sistema fuzzy para determinar o nível de prioridade de cada serviço. No monitor pesado, todas as variáveis fuzzy e as regras fuzzy são utilizadas. Já no monitor leve, existem duas possibilidades: se o monitor é responsável pelo tempo de resposta, todas as variáveis e regras da disponibilidade são descartadas; se o monitor é responsável pela disponibilidade, todas as variáveis e regras do tempo de resposta são descartadas.

Como na arquitetura podem existir mais de um sistema fuzzy em monitores diferentes monitorando o mesmo serviço, é possível que para o mesmo serviço sejam atribuídos níveis de prioridade diferentes a partir de diferentes sistemas fuzzy. Por exemplo, o serviço está disponível (serviço com prioridade baixa), porém está próximo do limite máximo do tempo de resposta (serviço com prioridade alta). Para resolver este conflito, o otimizador utiliza o maior nível de prioridade atribuído ao serviço.

A arquitetura proposta é completamente flexível em relação ao sistema fuzzy. Todos os parâmetros do sistema fuzzy apresentados nesta seção foram definidos empiricamente para testar a viabilidade da arquitetura. As definições apresentadas nesta seção são as que apresentaram melhores resultados na maioria dos casos entre todos os parâmetros testados. Foram os parâmetros que se mostraram mais adequados para o problema a ser resolvido. É possível tentar otimizar os resultados com a alteração dos parâmetros do sistema fuzzy. A arquitetura permite a utilização de outros termos linguísticos e em quantidades diferentes. Os conjuntos fuzzy podem utilizar outras funções, assim como outros limites. As regras da base de regras fuzzy podem ter outros antecedentes/consequentes, assim como a quantidade de regras pode ser diferente na base de regras.

Quatro variáveis linguísticas foram utilizadas para gerar as regras fuzzy do sistema:

• Atraso: Se o atraso para a resposta de um serviço está aumentando, o serviço deveria começar antes;

• TempoResposta: Se o tempo de resposta de um serviço está próximo do valor máximo estabelecido no contrato eletrônico, o serviço deveria começar antes;

• TempoProcessamento: Um serviço com o tempo de processamento mais rápido deveria ser executado antes do que os serviços com tempos de processamento mais lentos;

• Disponibilidade: Se a disponibilidade de um serviço está próximo do valor mínimo estabelecido no contrato eletrônico, o serviço deveria começar antes.

Vale ressaltar que as quatro variáveis linguísticas são importantes para o sistema fuzzy e não devem ser observadas individualmente. Por exemplo, se for observada apenas a variável tempoprocessamento, o sistema poderia levar a injustiça, uma vez que os serviços com um pequeno tempo de processamento seriam sempre executados e os serviços com longo tempo de processamento poderiam nunca ser executados. Porém isto não acontece. Se um serviço com longo tempo de processamento demorar para ser executado, por exemplo a variável temporesposta irá intervir, pois o tempo de resposta acordado ficará próximo do seu limite, aplicando justiça ao sistema.

A variável atraso é determinada pela inclinação da reta de uma equação do 1o grau. Esta reta é determinada pela interpolação dos dados históricos. Em uma reta crescente, a inclinação da equação do 1o grau varia de 0 (zero) a 90 (noventa) graus. Os termos linguísticos da variável linguística atraso são: baixo, médio, alto e muito-alto. Os quatro conjuntos fuzzy são trapezoidais, e os limites são (mais detalhes podem ser observados na Figura 15):

• Conjunto fuzzy baixo: 0, 0, 30 e 45 graus; • Conjunto fuzzy médio: 30, 45, 70 e 75 graus; • Conjunto fuzzy alto: 70, 75, 80 e 85 graus; • Conjunto fuzzy muito-alto: 80, 85, 90 e 90 graus.

A relação entre os últimos tempos de resposta e o valor máximo estabelecido no contrato eletrônico determina a variável temporesposta. Os últimos tempos de resposta são determinados pelos dados históricos. A variável temporesposta determina quanto dos últimos tempos de resposta está faltando para atingir o tempo de resposta máximo. Esta variável tem o domínio entre 0 (zero) e 1 (um). Os termos linguísticos da variável linguística temporesposta

são: muito-alto, alto, médio e baixo. Os quatro conjuntos fuzzy são trapezoidais, e os limites são (mais detalhes podem ser observados na Figura 16):

• Conjunto fuzzy muito-alto: 0, 0, 0.1 e 0.2; • Conjunto fuzzy alto: 0.1, 0.2, 0.3 e 0.4; • Conjunto fuzzy médio: 0.3, 0.4, 0.5 e 0.7; • Conjunto fuzzy baixo: 0.5, 0.7, 1 e 1.

Figura 15: Variável Fuzzy Atraso / Funções Trapezoidais para os Conjuntos Fuzzy.

Figura 16: Variável Fuzzy TempoResposta / Funções Trapezoidais para os Conjuntos Fuzzy.

A variável tempoprocessamento é determinada pelo tempo de processamento. Se um serviço tem um tempo de processamento mais rápido, ele deveria ser executado antes dos serviços com tempos de processamento mais lentos. O tempo de processamento é obtido através dos dados históricos. Esta variável tem o domínio entre 0 (zero) e 1 (um). Zero significa os serviços com tempos de processamento mais rápidos e um significa os mais lentos. Executar os serviços com tempos de processamento menores garante uma diminuição

do tempo médio de espera de todos os serviços. Os termos linguísticos da variável linguística tempoprocessamento são: muito-baixo, baixo, alto e muito-alto. Os quatro conjuntos fuzzy são trapezoidais, e os limites são (mais detalhes podem ser observado na Figura 17):

• Conjunto fuzzy muito-baixo: 0, 0, 0.2 e 0.3; • Conjunto fuzzy baixo: 0.2, 0.3, 0.45 e 0.55; • Conjunto fuzzy alto: 0.45, 0.55, 0.7 e 0.8; • Conjunto fuzzy muito-alto: 0.7, 0.8, 1 e 1.

Figura 17: Variável Fuzzy TempoProcessamento / Funções Trapezoidais para os Conjuntos Fuzzy.

A relação entre a disponibilidade do serviço e o valor mínimo estabelecido no contrato eletrônico determina a variável disponibilidade. A disponibilidade do serviço é determinada pelos dados históricos. A variável disponibilidade determina quanto a disponibilidade do serviço precisa diminuir para atingir a disponibilidade mínima. Esta variável tem o domínio entre 0 (zero) e 1 (um). Os termos linguísticos da variável linguística disponibilidade são: muito-baixo, baixo, médio e alto. Os quatro conjuntos fuzzy são trapezoidais, e os limites são (mais detalhes podem ser observados na Figura 18):

• Conjunto fuzzy muito-baixo: 0, 0, 0.1 e 0.2; • Conjunto fuzzy baixo: 0.1, 0.2, 0.3 e 0.4; • Conjunto fuzzy médio: 0.3, 0.4, 0.5 e 0.7; • Conjunto fuzzy alto: 0.5, 0.7, 1 e 1.

A base de regras fuzzy é composta por 24 regras. As regras foram criadas a partir da combinação entre as variáveis linguísticas e os conjuntos fuzzy. É possível dividir as regras fuzzy em três grupos. O primeiro grupo representa as regras com proposições atômicas, onde as variáveis linguísticas cujos valores representam grande possibilidade de violação não

participam da combinação com outras variáveis linguísticas. O segundo grupo representa as regras com as proposições compostas relacionadas com a característica não-funcional de QoS tempo de resposta, e o terceiro grupo representa as regras com as proposições compostas relacionadas com a característica não-funcional de QoS disponibilidade.

Figura 18: Variável Fuzzy Disponibilidade / Funções Trapezoidais para os Conjuntos Fuzzy.

As regras fuzzy, e os grupos, são:

Documentos relacionados