Modelo Referencial MAPE-K com Uso de …endler/courses/Mobile/Monografias/...proposta, descrevendo...

16
Modelo Referencial MAPE-K com Uso de Aprendizagem Estatística André de Souza Moreira Pontifícia Universidade Católica do Rio de Janeiro, RJ, Brasil [email protected] 1 Introdução Ao longo dos anos, sistemas de software cresceram em complexidade e passaram a ser cada vez mais utilizados em ambientes dinâmicos, portanto sem conhecimento prévio da configuração do meio de forma exata. No contexto dos sistemas ULS ( Ultra-Large-Scale) [1], há uma necessidade crescente de fazê-los mais versáteis, flexíveis, resilientes, tolerantes à falha, robusto, disponíveis, configuráveis, entre outros. Estes tópicos motivaram o estudo de sistemas autônomos. O termo “computação autônoma” foi primeiramente introduzido pela IBM [4]. Apesar disso, projetos anteriores à este trabalho já exploravam os mesmos objetivos destes campo de pesquisa. Tais sistemas apresentam a característica de mutabilidade ao passo que o ambiente também apresenta mudanças, podendo assim cumprir com a tarefa ao qual o sistema foi designado. É desejável que esta adaptação ocorra em tempo de execução e com a menor necessidade, ou se possível nenhuma, de interferência humana no processo. Visando atingir tais objetivos, a IBM publicou em [2] um modelo para desenvolvimento de sistemas autônomos, conhecido como MAPE-K. Este modelo engloba as fases de Monitoramento, Análise, Planejamento, Execução; tais etapas compartilham uma base de conhecimento na qual é fundamental para a tomada de decisões. Este modelo foi utilizado pela comunidade científica para a elaboração ou refinamento de sistemas autônomos em diversos contexto. Contudo, as pesquisas já elaboradas que utilizam o modelo MAPE-K concentram-se esforços somente nas fases de Monitoramento e Análise, deixando em aberto diversas questões das outras etapas, em especial da fase de Planejamento, visto que a fase de Execução é bem específica ao contexto em que o sistema vai ser empregado. Portanto, este trabalho propõe uma abordagem de sistema autônomo baseada no modelo MAPE-K, na qual são empregados técnicas de aprendizagem de máquina para servir de suporte à esta fase. Em especial, a contribuição deste trabalho reside na utilização de lógica fuzzy na fase de Análise, permitindo assim que o sistema obtenha melhores resultados quando eventos inesperados são gerados ou até mesmo em casos onde existam ambiguidades nas ontologias que regem o comportamento do

Transcript of Modelo Referencial MAPE-K com Uso de …endler/courses/Mobile/Monografias/...proposta, descrevendo...

Modelo Referencial MAPE-K com Uso deAprendizagem Estatística

André de Souza Moreira

Pontifícia Universidade Católica do Rio de Janeiro, RJ, Brasil

[email protected]

1 Introdução

Ao longo dos anos, sistemas de software cresceram em complexidade e passaram a ser cada

vez mais utilizados em ambientes dinâmicos, portanto sem conhecimento prévio da configuração do

meio de forma exata. No contexto dos sistemas ULS (Ultra-Large-Scale) [1], há uma necessidade

crescente de fazê-los mais versáteis, flexíveis, resilientes, tolerantes à falha, robusto, disponíveis,

configuráveis, entre outros. Estes tópicos motivaram o estudo de sistemas autônomos.

O termo “computação autônoma” foi primeiramente introduzido pela IBM [4]. Apesar disso,

projetos anteriores à este trabalho já exploravam os mesmos objetivos destes campo de pesquisa. Tais

sistemas apresentam a característica de mutabilidade ao passo que o ambiente também apresenta

mudanças, podendo assim cumprir com a tarefa ao qual o sistema foi designado. É desejável que esta

adaptação ocorra em tempo de execução e com a menor necessidade, ou se possível nenhuma, de

interferência humana no processo.

Visando atingir tais objetivos, a IBM publicou em [2] um modelo para desenvolvimento de

sistemas autônomos, conhecido como MAPE-K. Este modelo engloba as fases de Monitoramento,

Análise, Planejamento, Execução; tais etapas compartilham uma base de conhecimento na qual é

fundamental para a tomada de decisões. Este modelo foi utilizado pela comunidade científica para a

elaboração ou refinamento de sistemas autônomos em diversos contexto. Contudo, as pesquisas já

elaboradas que utilizam o modelo MAPE-K concentram-se esforços somente nas fases de

Monitoramento e Análise, deixando em aberto diversas questões das outras etapas, em especial da fase

de Planejamento, visto que a fase de Execução é bem específica ao contexto em que o sistema vai ser

empregado.

Portanto, este trabalho propõe uma abordagem de sistema autônomo baseada no modelo

MAPE-K, na qual são empregados técnicas de aprendizagem de máquina para servir de suporte à esta

fase. Em especial, a contribuição deste trabalho reside na utilização de lógica fuzzy na fase de Análise,

permitindo assim que o sistema obtenha melhores resultados quando eventos inesperados são gerados

ou até mesmo em casos onde existam ambiguidades nas ontologias que regem o comportamento do

sistema.

Outra contribuição consiste na utilização de regressores na fase de Planejamento. Dessa

forma, é possível antecipar com mais precisão quais serão as consequências de uma dada ação e,

assim, pode-se refinar e escolher com mais precisão a(s) ação(ões) à ser(em) aplicada(s) ao sistema.

Por último, é apresentado uma modelagem de um cenário de servidores web utilizando o modelo de

computação autônoma proposto.

As próximas seções estão organizadas da seguinte forma: No Capítulo 2 são apresentados

duas propostas de extensão do modelo de computação autônoma com utilização do MAPE-K. No

Capítulo 3 é feita uma breve apresentação de tópicos teóricos que servirão como base para o

desenvolvimento da metodologia proposta neste trabalho. Já o Capítulo 4 apresenta a metodologia

proposta, descrevendo cada uma das etapas do modelo MAPE-K e a respectiva utilização de técnicas

de aprendizagem de máquina neste modelo. Em seguida, no Capítulo 5, é apresentado um caso de uso

do modelo proposto em um cenário de um servidor web. Por fim, no Capítulo 6, são feitas as

considerações finais deste trabalho.

2 Trabalhos Relacionados

Dentre os trabalhos de computação autônoma que utilizam o modelo MAPE-K como base,

vale destacar dois trabalhos que propõe uma extensão desse modelo para melhor se adequar às

necessidades do sistema. Em [5] é feita uma discussão acerca da modelagem de um projeto, o

MODELPLEX [6], de computação autônoma com base no modelo MAPE-K. Contudo, tal trabalho dá

ênfase apenas nas fases de Monitoramento e Análise e o mesmo deixa claro que este ainda é um

trabalho parcial, que fora escritor conforme o projeto MODELPLEX está em fase de desenvolvimento.

Neste trabalhos, os autores fazem uso da plataforma IBM WebSphere® Business Events como uma

engine de regras, visto que ela pode atuar como CEP (Complex Event Processing) na fase de

monitoramento. Além disso, este trabalho foca mais na modelagem UML de um sistema já existente de

forma a utilizar o MAPE-K como modelo de sistema autônomo.

Em [7] é apresentada uma abordagem para análise de tempo de execução e gerenciamento

automático de sistemas baseado em conhecimento, no caso o MAPE-K. Assim como o trabalho

anterior, este trabalho estende a fase de monitoramento utilizando CEP. O autor defende que a

complexidade de reasonings combinados em ontologias OWL1 é um problema NP-Completo, o que

torna inviável para o gerenciamento de tempo de execução. Dessa forma, os eventos gerados no

sistema são classificados em baixa frequência e alta frequência, onde para cada um há um tratamento

1 Web Ontology Language

diferente.

No caso de dados de baixa frequência, os dados são adicionados diretamente na ontologia e

assim o reasoning é disparado. Já para os dados de alta frequência, os eventos são utilizados como

entrada para a engine de CEP (Figura 1). Por fim, o autor demonstra a solução apresentada aplicada em

um exemplo de sistema de controle de tráfego aéreo.

Portanto, os dois trabalhos seguem na mesma linha de introduzir uma engine de CEP para

auxiliar na fase de monitoramento do modelo MAPE-K. Esta abordagem é valorosa, em especial

quando utilizada em sistemas com eventos complexos e de alta frequência. Contudo, tais pesquisas não

concentram-se em explorar os problemas e solução envolvidos na fase de planejamento. Portanto, essa

ausência indica uma necessidade no estudo não só da fase de planejamento, mas bem como o seu papel

de acordo com os resultados produzidos pela etapa de monitoramento.

3 Fundamentação Teórica

1. Modelo MAPE-K

O MAPE-K consiste em um modelo de computação autônoma desenvolvido pela IBM [2].

Esse modelo é composto pelas fases de monitoramento, análise, planejamento e execução; em

conjunto com uma base de conhecimento (Figura 2).

Figura 1: Fluxo de dados entre os componentes de um sistema de gerenciamento

Abaixo, seguem as atribuições de cada uma das etapas do modelo MAPE-K:

Monitoramento

• Responsável por coletar detalhes do elemento gerenciado. Ex: métricas, configurações, entre

outros. Nesta fase são realizados observações a fim de identificar inconformidades que

indiquem a necessidade de ser feita uma análise.

Análise

• Realiza análise de dados complexos e reasoning nos sintomas fornecidos pela etapa de

monitoramento. Se for necessários realizar mudanças, uma requisição de mudanças é enviada

para a etapa de planejamento.

Planejamento

• Estrutura as ações necessárias para que os objetivos do sistema sejam atingidos. Esta etapa cria

ou seleciona um procedimento para a realização de uma mudança desejada no elemento

gerenciado.

Execução

• Altera o comportamento do elemento gerenciado. Para tal, faz uso dos atuadores, utilizando

como base as ações recomendadas pela etapa de planejamento.

Base de Conhecimento

• Dados compartilhados entre as fases de monitoramento, análise, planejamento e execução. As

informações contidas nessa base são dos mais variados tipos, desde configurações , métricas,

logs, entre outros. Essa base de conhecimento pode e deve ser constantemente atualizada

durante a vida do sistema.

Figura 2: Fases do modelo de Referência para computação autônoma da IBM.

O elemento autônomo consiste de um recurso gerenciado e de um gestor autônomo com o

feedback loop do MAPE-K. O recurso gerenciado representa qualquer software ou hardware no qual é

dado um comportamento autônomo através do acoplamento com um gestor autônomo. Portanto, o

elemento gerenciado pode ser desde um servidor web à um comente de software específico de uma

aplicação (exemplo: um otimizador de consultas de banco de dados), entre outros.

O elemento gerenciado deve dispor tanto sensores e atuadores para que este possa ser

gerenciado. Sensores são utilizados para a coleta de informação acerca do elemento gerenciado. Em

um servidor web, por exemplo, um sensor poderia estar relacionado com o tempo de resposta para um

cliente ou então a utilização de recursos, tais quais a Memória, HD, entre outros. Já os atuadores são os

responsáveis por realizar mudanças no elemento gerenciado.

2. Lógica Fuzzy

A lógica fuzzy é o conhecimento baseado na teoria dos conjuntos fuzzy. Nesta lógica, o

raciocínio exato corresponde a um caso limite do raciocínio aproximado, sendo interpretado como um

processo de composição de relações nebulosas. Segundo Earl [3], o que diferencia a lógica fuzzy da

lógica booleana é a capacidade desta de se aproximar do mundo real, onde não existe somente

respostas concretas. A lógica fuzzy da espaço ao meio termo apresentando ainda a possibilidade de

mensurar o grau de aproximação da solução exata e assim inferir algo que seja necessário. Esses

algoritmos são amplamente utilizados atualmente em diversas áreas como: robótica, automação de

linhas de produção, simulações financeiras entre outras.

Quando um determinado problema apresenta um grande grau de incerteza é necessário que

para solução deste se utilize um modelo matemático que contemple essa especificidade e não

desconsidere aspectos que possam ser ignorados na aplicação de lógicas tradicionais. Como afirma

Earl [3], para esses casos a lógica fuzzy é amplamente recomendada pois apresenta um modelo capaz

de combinar a imprecisão associada aos eventos naturais e o poder computacional das máquinas

produzindo assim sistemas de respostas inteligentes.

Nos sistemas lógicos binários, os predicados são exatos, enquanto que na lógica fuzzy os

predicados não são precisos (ex. : alto, baixo, quente, frio). Nos sistemas lógicos tradicionais, o

operador mais utilizado é a negação, já na lógica fuzzy uma variedade de operadores de predicados são

possíveis (ex. : muito, mais ou menos, pouco).

Para expressar conceitos é muito comum o uso de elementos qualitativos ao invés de valores

quantitativos. Elementos típicos incluem "mais ou menos", "alto", "não muitos", "médio", etc. Estas

ideias são capturadas pela definição de variável linguística. O sistema lógico fuzzy consiste em três

operações básicas:

Na primeira etapa, Fuzzificação, o problema é analisado e os dados de entrada são

transformados em variáveis linguísticas. Uma variável linguística tem por característica assumir

valores dentro de um conjunto de termos linguísticos, ou seja, palavras ou frases. Assim, ao invés de

assumir instâncias numéricas, uma variável linguística assume instâncias linguísticas. Por exemplo,

uma variável linguística Temperatura poderá assumir como valor um dos membros do conjunto {baixa,

média, alta}. Para se atribuir um significado aos termos linguísticos, associa-se cada um destes a um

conjunto fuzzy definido sobre um universo de discurso comum, conforme a figura abaixo:

A forma mais comum de expressar o conhecimento é por meio de regras do tipo condição-

ação. Regras do tipo se-então são frequentemente chamadas de declarações condicionais fuzzy ou

simplesmente regras fuzzy.

Após a fuzzificação, é o momento em que serão criadas as regras ou proposições através da

associação das variáveis já criadas. Nesta etapa, as proposições são geradas do relacionamento entre as

variáveis do modelo e a região Fuzzy. Esta fase do sistema lógico fuzzy pode ser dividido em dois

componentes: agregação e composição. A agregação corresponde à parcela “se” da regra, tal parcela

define a validade de uma regra para o caso estudado. Já a composição corresponde à parcela “então”,

Figura 3: Sistema lógico fuzzy

Figura 4 Variável Linguística Temperatura

tal parcela define o resultado obtido após feita a inferência.

Por fim, a desfuzzificação é a etapa em que os valores fuzzy são convertidos em números reais

tendo assim um conjunto de saída matematicamente definido. Existem algumas diferentes técnicas de

desfuzzificação presentes nas literaturas: centróide, First-of-Maxima, Middle-of-Maxima, Critério

Máximo.

3. Regressores

Modelos de regressão são modelos matemáticos que possibilitam relacionar o comportamento

entre variáveis aleatórias. Dado que a função seja do tipo f(X) = aX + b, X é a variável independente e

y = f(X) é a variável dependente. O modelo de regressão é chamado de multivariado quando envolve

uma relação causal com mais de duas variáveis, ou seja, quando o comportamento de y é dependente

de duas ou mais variável independe X1, X2, …, Xn.

O relacionamento entre as duas variáveis poderá ser do tipo linear ou não linear. No primeiro,

o relacionamento é representado por uma equação da linha ou hiper plano, enquanto que no

relacionamento não linear, esta representação é feita através de funções mais complexas, entre elas:

exponencial, geométrica, entre outros.

Os regressores são muito importantes na predição de fatos futuros de acordo com observações

feitas no passado. Assim, pode-se estimar a população de um local nos próximos anos de acordo com a

taxa de crescimento populacional observada nos anos anteriores.

Ao se plotar num gráfico cartesiano os pares de informação referente a cada observação

obtemos uma “nuvem” de pontos definidos pelas coordenadas x e y de cada ponto. Essa nuvem, por

sua vez, definirá um eixo ou direção que caracterizará o padrão de relacionamento entre X e Y. A

relação entre as variáveis é chamada de direta (ou positiva) quando os valores de Y aumentarem em

decorrência da elevação dos valores de X . Já a relação inversa (ou negativa) ocorre quando os valores

de Y variam de forma inversa aos valores de X. A figura abaixo demonstra a a relação entre duas

variáveis: peso e altura.

Ainda utilizando como base a Figura 5, os pontos plotados no diagrama representam

observações feitas sobre as duas variáveis. Assim, deseja-se encontrar a função (neste caso, uma reta)

que melhor descreve o comportamento entre as duas variáveis. Um método bastante simples e

amplamente utilizado consiste no Mínimos Quadrados, o qual considera os desvios dos Yi de seu

valor esperado:

ξi = Yi – (β0 + β1 Xi )

O método dos mínimos quadrados considera a soma dos n desvios quadrados, denotado por Q:

Q=∑i=1

n

[Y i−β0−β1 X i ]2

Portanto, para a obtenção da melhor y=f(x) que descreve a relação entre as duas variáveis X e

Y, busca-se os valores de β0 e β1 que minimizem o valor de Q.

4 Metodologia Proposta

Na computação autônoma, visa-se a construção de sistemas que sejam capazes de adaptar-se à

diversas situações, a fim de que sua funcionalidade seja preservada e o objetivo final seja atingido.

Neste contexto, outros fatores são de grande importância, tais como a Quality of Service (QoS) e

Service Level Agreements (SLAs). Assim, é importante que os indicadores baseados em SLI (Service

Level Indicators) sejam alcançados, tais como tolerância à falhas e tempo máximo para entrega de um

serviço.

Esses indicadores podem ser avaliados através da utilização de ontologias. A ontologia

possibilita definir a semântica dos dados, derivar novos conhecimentos a partir de fatos e operadores

lógicos, assim pode-se empregar um reasoner visando a validação das regras criadas. Contudo, a

utilização de ontologias para análise em tempo de execução tem se mostrado eficiente em sistemas

pequenos [8][9], o que nem sempre é o caso, visto que cada vez mais os sistemas são maiores e mais

complexos.

Figura 5: Diagrama de dispersão das variáveis altura (X) e peso (Y).

O primeiro problema reside no fato de que é bastante comum a combinação de ontologias em

sistemas grandes e complexos. No entanto, o reasoning em ontologias complexas consiste em um

problema NP-completo [10]. Assim, torna-se inviável a utilização dessa abordagem, uma vez que é de

grande importância para computação autônoma que o gerenciamento dos indicadores seja realizado em

tempo real. Visando superar este problema, alguns trabalhos [5][7] propuseram a divisão dos eventos

do sistema em duas categorias: alta frequência e baixa frequência. Os eventos de baixa frequência,

aqueles que ocorrem em menor quantidade, são validados pelos modelos de ontologias. Por outro lado,

os eventos de alta frequência são direcionados para uma engine CEP (Complex Event Processing).

Desta forma, este trabalho propõe utilizar-se deste mesmo mecanismo para a fase de Análise

do MAPE-K, pois além de processar esses eventos em tempo real, a engine de CEP traz consigo a

vantagem de fácil adaptação no modelo MAPE-K, visto que as fases de monitoramento e análise são

inerentes de uma engine CEP.

O segundo problema consiste na dificuldade de criação de modelos de ontologias que sejam

capazes de descrever todos os possíveis cenários ao qual o sistema será submetido. Visto que deseja-se

que o sistema mude conforme ocorram mudanças no cenário onde o sistema atua, é necessário que

regras sejam modeladas para cada um dos possíveis cenários. Prever e modelar todos estes cenários

configura-se em uma extensa tarefa que requer atenção, pois requer que o maior número de casos

possíveis sejam previstos e, além disso, que regras sejam definidas a fim de reger o comportamento do

sistema em cada um desses casos.

Além disso, nem sempre é fácil estabelecer comportamentos precisos e ao mesmo tempo

genérico, exemplo: dado que necessita-se criar uma regra para evitar sobrecarga do disco rígido, qual a

taxa de transferência a ser considerada como alta? Sabe-se que a taxa de transferência dos discos SSD

é superior que a taxa dos discos SATA, que por sua vez é maior que dispositivos flash portáteis.

Portanto, esta é uma fase crítica, pois a ausência de regras ou até mesmo ambiguidades entre elas

podem gerar ações errôneas que resultam em agravamentos do cenário adverso.

Portanto, além dos modelos ontológicos e engine CEP, o emprego de reasonings baseados em

lógica fuzzy resolve os problemas listados no parágrafo anterior. A utilização de variáveis categóricas

para a descrição do modelo traz diversas vantagens, tal como a utilização de um modelo genérico,

onde basta utilizar-se de novas observações para que este seja portado para outro ambiente. Utilizando

o mesmo exemplo dos discos rígidos, a variável “taxa de transferência” com a propriedade “alta” pode

ser utilizada em qualquer um dos contextos, necessitando apenas a fuzzificação do modelo com as

observações da taxa de transferência de cada um dos discos. A capacidade de adaptar-se a diferentes

contextos também é importante quando os cenários onde o sistema atua mudam ao longo do tempo:

por exemplo, a taxa de transferência do disco novo é superior quando comparado à um disco já

utilizado por mais tempo. Por fim, é mais natural para o ser humano definir regras utilizando dados

categóricos do que dados brutos.

Logo, a fase de Análise consiste em agregar as informações processadas tanto pelos modelos

ontológicos, engine de CEP e modelos fuzzy (Error: Reference source not found). Essa agregação é

então utilizada como entrada para a fase de Planejamento. Tal agregação enriquece a análise dos dados

obtidos, já que dependendo do sistema, a fase de monitoramento adquire dados dos mais diversos

tipos, onde a validação de alguns deles é mais apropriada utilizando a representação de classes,

propriedades e relacionamentos, sendo assim mais factível para ontologias; enquanto que a análise de

dados numéricos é mais factível quando utilizado modelos matemáticos.

Uma vez que a fase de Planejamento é responsável por estruturar quais ações devem ser

tomadas a fim de que o sistema produza os resultados esperados, é de grande importância também

adotar modelos baseados em experiência para guiar quais são as melhores ações a serem tomadas em

um dado cenário, bem como a organização dessas ações. Portanto, um modelo baseado em regressão

cumpre tal requisito, apresentando a mesma característica de mutabilidade também observada nos

modelos fuzzy. Dessa forma, conforme o recurso gerenciado for mudando ao longo do tempo, o

modelo adapta-se à essa nova condição, sem a necessidade de intervenção humana.

Na Figura 7 é possível ver detalhadamente os processos envolvidos na etapa de Planejamento.

A entrada dessa fase é oriunda da fase de análise e esta entrada será utilizada para obter as melhores

ações (x) a serem realizadas para que os indicadores desejáveis sejam alcançados. Esse conjunto de

ações x será a entrada da etapa de execução. Uma vez que tais ações foram adotadas, observa-se os

resultados produzidos no sistema. De posse tanto do resultado esperado e do resultado observado, a

Figura 6: Fluxograma das ações realizadas na etapa de Análise do modelo MAPE-K.

experiência, chamada de F(x), é introduzida na base de conhecimento e o regressor adapta-se em

seguida à experiência produzida.

Outra vantagem dos regressores consiste na rápida predição das consequências futuras de um

conjunto de ações, uma vez que basta aplicar a função F(x). Portanto, a utilização de regressores não

irá penalizar o desempenho de sistemas em tempo real. Por último, uma grande vantagem

proporcionada pelos regressores está na previsibilidade das consequências das ações. Portanto, além de

ser possível fazer melhores escolhas de ações, a previsibilidade permite que o sistema antecipe

situações futuras decorrentes de ações do presente, podendo assim já atuar de antemão, antes mesmo

da consequência acontecer. Isso é de grande utilidade quando não existe um conjunto de ações

adequadas que possa ser executado em uma única etapa.

Dessa forma, o grande diferencial da abordagem proposta reside na introdução de mutabilidade

e adaptação nas fases de Análise e Planejamento. Este trabalho defende a ideia de que para gerenciar

um recurso que seja mutável à diferentes cenários, bem como mudanças temporais, é necessário que o

próprio modelo que descreva tais ações também seja mutável de acordo com o cenário.

5 Caso de Uso

Esta seção descreve brevemente um caso de uso da abordagem proposta para o gerenciamento

de um servidor web hipotético para o serviço de streaming. Dessa forma, o caso de uso a ser

apresentado consiste na avaliação do QoS do servidor web baseado na latência da conexão. Diversos

eventos em um servidor web podem interferir diretamente na qualidade da transmissão dos dados, mas

iremos simplificar para fins didáticos.

O referido servidor requer a autenticação do usuário para liberar o acesso ao canal de

streaming. Essa autenticação é requerida apenas uma vez, visto que a transmissão de dados é realizada

sob uma conexão persistente. O primeiro aspecto a ser monitorado consiste nas tentativas de

autenticação dos usuários, a fim de minimizar a ocorrências de DDoS (Distributed Denial-of-Service)

Figura 7: Ações executadas na fase de Planejamento com base no modelo MAPE-K

e, consequentemente, manter a qualidade da transmissão. Como a autenticação não é um evento

demasiadamente frequente sob condições normais, tais eventos podem ser processados utilizando as

ontologias definidas no sistema. Sabe-se que em caso de ataque DDoS, este evento terá frequência alta,

porém espera-se que o mesmo não venha ocorrer, pois o objetivo do sistema consiste em justamente

antecipar tais situações a fim de evitá-las. Um modelo simples que rege o processo de autenticação de

usuário a fim de evitar ataques DDoS, consiste na identificação de usuários que, a partir do mesmo

endereço IP, fazem diversas tentativas de autenticação sem sucesso. Caso este evento seja identificado,

a etapa de Planejamento é então diretamente acionada.

A taxa de pacotes perdidos consiste em outro indicativo de queda da qualidade do sinal. Dado

que este evento tende a ser mais frequente, uma vez que há maior fluxo de pacotes trafegando pela

rede do que usuários tentando autenticar-se, este evento será processado pela engine de CEP. Uma

regra simples para nossos objetivos consiste na observação da quantidade de pacotes perdidos para

uma quantidade de usuários diferentes. Exemplo: se os últimos x usuários tiveram ao menos y pacotes

perdidos.

Por fim, como resultado do processo de fuzzificação e das experiências anteriores em outros

servidores, obtém-se o seguinte modelo fuzzy composto por duas variáveis (Figura 8): probabilidade

de ataque DDoS (por exemplo a métrica apresentada em [11] ) e razão de pacotes perdidos por

usuários. Assim, tenta-se inferir a probabilidade da latência estar alta devido à falta de recursos.

A base de conhecimento do modelo fuzzy é composta por três regras:

• Se a probabilidade de ataque DDoS é alta e a taxa de pacotes perdidos é baixa, então latência é

Figura 8: Etapa de fuzzificação para a avaliação da qualidade do sinal de um servidor web hipotético

média.

• Se a probabilidade de ataque DDoS é baixa e a taxa de pacotes perdidos é alta, então latência é

alta.

• Se a probabilidade de ataque DDoS é baixa e a taxa de pacotes perdidos é baixa, então latência

é baixa.

• Depois da etapa de desfuzzificação, caso a probabilidade da latência esteja maior que um

limiar, a etapa de Planejamento é então requisitada.

Dessa forma, vale destacar que até então há dois principais casos considerados que resultam

no aumento da latência: ataque DdoS e falta de recurso para atender a demanda. No primeiro caso, a

simples e direta negação/bloqueio dos usuários identificados é adotada na fase de Planejamento. Já o

segundo caso será contornado através da utilização de uma fila de prioridade. Assim, em um dado

momento, somente uma parcela de usuários será atendida.

Supondo que o serviço é disponibilizado para usuários comum e premium, onde esse último é

formado pelo grupo de pessoas assinantes do serviço, um regressor é estabelecido para modelar o

impacto nas finanças da empresa devido à negação do serviço. Vale frisar que apesar dos usuários

comuns não pagarem pelo serviço, o sistema exibe propagandas para este grupo, sendo assim também

fonte de renda de forma indireta.

O regressor utilizado é uma função multivariada do tipo y = f(X,Z) (Figura 9), onde y é a

probabilidade da decisão estar impactando negativamente as finanças por ter negado o serviço para X e

Z usuários premium e comuns, respectivamente.

Portanto, visa-se utilizar o modelo de regressão para priorizar certos usuários, diminuindo

assim a latência por falta de recursos computacionais, de tal forma que o impacto financeiro pela

configuração adotada seja o menor possível. Uma vez que sabe-se a priori quantos usuários ficaram na

fila de espera pelo recurso, é possível prever o impacto futuro que a decisão ocasionará no sistema.

Assim, podemos já de antemão priorizar alguns dos usuários que estão na fila, para que o mesmo

esteja sejam os próximos a utilizarem o recurso assim que disponível. Ao final de um ciclo de

pagamento, pode-se introduzir a experiência produzida na base de conhecimento. Dessa forma, o

regressor utilizado irá absorver tal experiência e esta servirá como base para decisões futuras.

6 Conclusão

É inegável a importância da computação autônoma nos sistemas atuais, especialmente à

medida que esses sistemas tornam-se complexos e desempenham atividades críticas. Portanto, o

modelo MAPE-K tem sido fundamental para nortear a modelagem desses sistemas.

Contudo, para que tais sistemas atuem de forma autônoma conforme as mudanças que

ocorrem no ambiente, diversos sistemas autônomos têm feito uso de ontologias para modelar as

diferentes configurações possíveis em que o sistema poderá ser submetido. Por outro lado, nem sempre

é possível prever todos os cenários ao qual o sistema estará sujeito. Neste caso, a ação a ser executada

pelo sistema será indefinida, devido a ausência de regras que definam o comportamento esperando

diante de tal situação. Dessa forma, o sistema poderá atuar de forma indesejada, tal atuação pode levar

à mudanças que não surtem efeito ou que , no pior caso, acabam agravando o cenário adverso.

A contribuição deste trabalho consiste na utilização de modelos matemáticos para a resolução

Figura 9: Regressor não linear multivariado descrevendo o impacto financeiro oriundo da negação deserviço para grupo de usuários

desses cenários, utilizando como base o modelo de computação autônoma MAPE-K. A lógica fuzzy,

que é caracterizada pela adoção de incerteza, passa a ser empregada na fase de Análise do modelo

MAPE-K para a resolução de eventos onde não existem representação na ontologia, podendo também

atuar em caso onde, para um dado evento, existam regras ambíguas. Outra proposta deste trabalho

consiste no emprego de regressores na fase de Planejamento do modelo MAPE-K, sendo possível

prever o resultado de ações que serão realizadas no sistema, possibilitando o refinamento e a obtenção

de melhores predições sobre como executar uma alteração para que os objetivos do sistema sejam

alcançados.

Defende-se, assim, que a o fator central da computação autônoma está na construção de regras

que definem os mais diversos cenários em que o sistema irá atuar. Porém, tais cenários são, em sua

grande maioria, dinâmicos; sendo assim necessária a intervenção humana para adequação ou criação

de novas regras. Contudo, tal intervenção traz mais custos, mais chances de introduzir erros no

processo e caso a readequação das regras não aconteça em tempo hábil, novos problemas poderão

surgir e os já existentes poderão se agravar. Logo, a utilização de técnicas de aprendizagem de

máquina apresenta-se como uma alternativa à estes problemas, uma vez que tais modelos são flexíveis

com as experiências produzidas ao longo do tempo.

7 Referências

[1]

Northrop, L., Feiler, P., Gabriel, R.P., Goodenough, J., Linger, R., Longstaff, T.,

Kazman, R., Klein, M., Schmidt, D., Sullivan, K., Wallnau, K.: Ultra-Large-Scale

Systems - The Software Challenge of the Future. Tech. rep., Software Engineering

Institute, Carnegie Mellon (June 2006)

[2] IBM. 2003. An architectural blueprint for autonomic computing. Tech. rep., IBM.

[3]COX, Earl. The fuzzy systems handbook: a practitioner’s guide to building, using, and

maintaining fuzzy systems . New York: AP Professional, 1994.

[4]Horn, P. 2001. Autonomic Computing: IBM’s perspective on the state of Information

Technology. IBM Research.

[5]Pickering, Brian, et al. "Model-driven management of complex systems."Technical

Report COMP COMP-005-2008 Lancaster University (2008): 117.

[6]Model-based systems management state of the art, MODELPLEX deliverable D5.1.a,

MODELPLEX project, 2007.

[7] Meyer, Folker, et al. "An approach for knowledge-based IT management of air traffic

control systems." Network and Service Management (CNSM), 2013 9th International

Conference on. IEEE, 2013.

[8]

J. E. L. De Vergara, A. Guerrero, V. A. Villagr a, and J. Berrocal, “Ontology-Based Network Management: Study Cases and Lessons Learned,” Journal of Network and

Systems Management, vol. 17, no. 3, pp. 234–254, September 2009.

[9]

V. A. Villagr and J. E. L. D. Vergara, “Ontologybased policy refinement using swrl

rules for management information definitions,” in OWL. In: Proc. 17th IFIP/IEEE

International Workshop on Distributed Systems, Operations and Management, 2006,

pp. 227–232.

[10]

B. Motik, B. C. Grau, I. Horrocks, Z. W. A. Fokoue, and C. Lutz. (2012) Owl 2 web

ontology language profiles (second edition). [Online]. Available:

http://www.w3.org/TR/owl2-profiles/

[11]

Li, K., Zhou, W., Li, P., Hai, J., & Liu, J. (2009, October). Distinguishing DDoS

attacks from flash crowds using probability metrics. In Network and System Security,

2009. NSS'09. Third International Conference on (pp. 9-17). IEEE.