computação autonômica nathalia nascimento [email protected]

35
Computação Autonômica Nathalia Nascimento [email protected]

Upload: internet

Post on 22-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

Computação Autonômica

Nathalia Nascimento

[email protected]

Page 2: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

Motivação

• “Os profissionais de TI mais experientes acreditam que, em poucos anos, o mundo tecnológico se tornará impossível de administrar” [Kephart, 2005]– Sistemas complexos; heterogêneos; dífíceis de integrar e

manter

• Em 2001, a IBM lançou um manifesto para comprovar que a complexidade tecnológica seria o maior obstáculo ao progresso da indústria tecnológica

• O sonho da “Internet das Coisas” podia vir a se tornar um pesadelo [Kephart, 2005]

11/04/23 2Carlos J. P. Lucena © LES/PUC-Rio

Page 3: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

Motivação

• Solução: Computação Autonômica–Prover aos componentes a habilidade de auto gerenciamento de acordo com objetivos especificados pelo administrador [Kephart, 2003]

–Computação autonômica visa melhorar os sistemas de computação com um objetivo semelhante de diminuir a participação humana.

–IBM: O termo “autonômico” vem da biologia.

• No corpo humano, o sistema nervoso autônomo cuida dos reflexos inconscientes, ou seja, as funções corporais, que não requerem a nossa atenção.

–Em 2005, já existiam mais de 20 workshops voltados ao tema de Computação Autonômica [Kephart, 2005]

11/04/23 3Carlos J. P. Lucena © LES/PUC-Rio

Page 4: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

11/04/23 4Carlos J. P. Lucena © LES/PUC-Rio

O Estudo de Sistemas Autoadaptáveis

• O tópico de sistemas autoadaptáveis tem sido estudado em diferentes áreas de pesquisa da engenharia de software:

– Requisitos

– Arquitetura de software

– Middleware

– Desenvolvimento baseado em componente

– Linguagens de programação

– etc.

• Outras comunidades de pesquisa tem sido investigadas:

– Computação tolerante a falhas

– Computação inspirada na biologia

– Sistemas multiagents

– Robótica,

– etc.

Page 5: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

Auto Gerenciamento

• A essência da computação autonômica é o auto gerenciamento

• O quão livre o administrador é dos detalhes de operação do sistema

• O sistema irá manter e ajustar suas operações frente à falhas de software ou hardware, mudanças externas ou dos componentes, etc.

• Monitora o uso próprio do sistema e checa por atualizações

– O sistema realiza a instalação, se reconfigura e realiza teste de regressão

– Se um erro for detectado, o sistema tenta reverter para a versão anterior enquanto tenta isolar a falha do sistema

11/04/23 5Carlos J. P. Lucena © LES/PUC-Rio

Page 6: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

Auto Gerenciamento - Exemplo

• Upgrade: Novos módulos introduzidos

• Teste de regressão detecta falhas

• O sistema retoma a versão anterior, detecta o “elemento X”, gera um diagnóstico e envia ao administrador do sistema

11/04/23 6Carlos J. P. Lucena © LES/PUC-Rio

Page 7: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

Auto-Gerenciamento

• IBM considera 4 aspectos para auto gerenciamento

– Self-*

– Atualmente, esses aspectos vêm sendo tratados separadamente

11/04/23 7Carlos J. P. Lucena © LES/PUC-Rio

Page 8: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

Self-Configuration

• O Data Centro de grandes corporações podem requerer meses de investimento para integrar os servidores, banco de dados, etc.

– Instalação, configuração demandam muito tempo e estão propensos à erros

• Sistema autonômicos irão se auto configurar com base em políticas de alto nível

– Objetivos em nível de negócio

– O que é desejado alcançar, e não como deve ser feito

• Novo elemento é introduzido

– Ele incorpora as regras

– Os outros elementos se adaptam à ele

– Nova célula no corpo ou uma nova pessoa na população

11/04/23 8Carlos J. P. Lucena © LES/PUC-Rio

Page 9: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

Self-Optimization

• Sistemas complexos como banco de dados possuem uma série de parâmetros para serem corretamente configurados, de forma que o sistema seja otimizado

• Sistemas autonômicos continuam a buscar formas de aperfeiçoar as suas atividades

– Identificar formas para melhorar performance e custo

– Monitora, experimentar novos valores para os seus parâmetros e realizar escolhas apropriadas

– Músculos mais fortes durante o exercício físico, e o cérebro realiza adaptações durante o processo de aprendizado

11/04/23 9Carlos J. P. Lucena © LES/PUC-Rio

Page 10: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

Self-healing

• IBM e outras empresas de TI possuem vastos departamentos focados em identificar e determinas as causas de falhas em sistemas complexos

– Alguns problemas levam meses para serem diagnosticados e tratados

• Sistemas autonômicos irão detectar, diagnosticar e reparar as falhas

– Exemplo: através de testes de regressão

– Utiliza conhecimento da configuração do sistema, arquivos de log, etc.

11/04/23 10Carlos J. P. Lucena © LES/PUC-Rio

Page 11: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

Self-protection

• Os sistemas precisam ser prevenidos de ataques maliciosos

• Sistemas autonômicos terão auto-proteção em dois sentidos:

– Irá defender o sistema de problemas correlacionados aos ataque maliciosos ou falhas em cascata

– Irá antecipar os problemas com base em relatórios previamente emitidos pelos sensores, e assim, poderá realizar as etapas necessárias para evitá-los

11/04/23 11Carlos J. P. Lucena © LES/PUC-Rio

Page 12: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

Desenvolvimento de Sistemas Auto-Adaptáveis

• Self-Adaptive:

– top-down

– Avaliam seu comportamento global e mudam ele quando a avaliação indica que não estão se comportando como deveriam ou com a performance desejada.

• Self-organising:

– bottom-up.

– Compostos por componentes que interagem localmente de acordo com regras simples. O comportamento global do sistema emerge dessas interações locais, sendo difícil deduzir as propriedades do sistema global estudando apenas as propriedades locais dessas partes.

• É atribuído aos componentes dos sistemas auto adaptativos um certo grau de descentralização e auto organização. Ser puramente descentralizado, não consegue garantir uma segurança

11/04/23 12Carlos J. P. Lucena © LES/PUC-Rio

Page 13: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

O Desenvolvimento de Sistemas Autoadaptáveis

• O desenvolvimento de sistemas autoadaptáveis pode ser visto a partir de duas perspectivas:

• top-down quando considera um sistema individual

– Avaliar seu próprio comportamento e alterá-lo quando é identificada a necessidade de se adaptar, devido a evolução das exigências funcionais e não-funcionais

• bottom-up quando considera sistema cooperativos

– O comportamento global do sistema emerge a partir de interações locais.

– Auto-organização

11/04/23 13Carlos J. P. Lucena © LES/PUC-Rio

Page 14: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

11/04/23 14Carlos J. P. Lucena © LES/PUC-Rio

Sumário

• Requisitos

• Engenharia

Page 15: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

Requisitos

11/04/23 15Carlos J. P. Lucena © LES/PUC-Rio

• R1: Componentes individuais autônomos

– Componentes com características de self-*

– Os componentes devem ser desacoplados, para quando for resolver uma falha, não interferir no sistema global

• R2: Interoperabilidade

– As capacidades de auto adaptação e auto organização originam a partir da interação entre componentes individuais

– Em cenários reais, os componentes que interagem são heterogêneos

• R3: Self-*

– Propriedades de Self-* vêm da capacidade dos componentes de detectarem novas condições/falhas sem intervenção humana

– Capacidades de sentir, decidir e agir

Page 16: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

Requisitos

• R4: Guia de Comportamento

– Sistemas auto organizáveis: regras locais

– Sistemas audo adaptáveis: regras locais e globais

– É importante deixar o sistema livre para permitir a adaptação decentralizada, mas limitar o escopo das ações permitidas

• R*: Processo de desenvolvimento

– preocupa-se em o que um sistema deve fazer e quais restrições ele deve considerar.

– requisitos deve endereçar quais adaptações são possíveis e quais restrições estão relacionadas a adaptações.

11/04/23 16Carlos J. P. Lucena © LES/PUC-Rio

Page 17: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

11/04/23 17Carlos J. P. Lucena © LES/PUC-Rio

Requisitos

• Outras questões importantes:

– Quais aspectos do ambiente são relevantes para adaptação?

– Quais requisitos podem variar e evoluir em tempo de execução, e serem sempre mantidos?

– Logo, a engenharia de requisitos para sistema autoadaptáveis tem que tratar incertezas, já que expectativas sobre o ambiente frequentemente podem variar ao longo do tempo.

Page 18: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

11/04/23 18Carlos J. P. Lucena © LES/PUC-Rio

Requisitos

• Um dos principais desafios para autoadaptações é no design do sistema, já que não pode-se sempre assumir que todas as adaptações são conhecidas a priori.

• Não é possível antecipar todas as condições possíveis do ambiente e suas respectivas adaptações.

• Exemplo:

– Se um sistema responder a um cyber-ataque, ele pode não conhecer algum ataque realizado, já que atores maliciosos desenvolvem novos ataques todo o tempo.

• Uma evolução dos requisitos deve ser realizada em tempo de execução.

Page 19: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

11/04/23 19Carlos J. P. Lucena © LES/PUC-Rio

Sumário

• Requisitos

• Engenharia

Page 20: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

11/04/23 20Carlos J. P. Lucena © LES/PUC-Rio

Engenharia: State of the Art & Feedback Loops

Considerações preliminares

• Qualquer tentativa de automatizar sistemas de auto-adaptativos, necessariamente, tem que considerar loops de feedback (processo de autoadaptação).

• Proposta da IBM: O raciocínio do sistema geralmente envolve processos de feedback com quatro atividades chaves:

– collect, analyze, decide, and act

Page 21: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

11/04/23 21Carlos J. P. Lucena © LES/PUC-Rio

Atividades do control loop.

Page 22: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

11/04/23 22Carlos J. P. Lucena © LES/PUC-Rio

Exemplo

• Imagine manter e executar web services por um longo periodo. Isso necessita:

– coletar informações que refletem o estado do sistema

– analisar informações para diagnosticar os problemas de desempenho ou detectar falhas do sistema, a fim de decidir como resolvê-los (ex: autocura [self-healing]),

– e efetuar a decisão tomada no sistema.

Page 23: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

11/04/23 23Carlos J. P. Lucena © LES/PUC-Rio

Engenharia: Atividades do Control Loop

• Coleta:

– Inicio do processo de autoadaptação

– Uso de sensores e outras fontes que permita conhecer o estado corrente do sistema

– Necessidade de sensores confiáveis.

• Análise:

– Analisar os dados coletados

– Há muitas maneiras de estruturar e raciocinar sobre os dados coletados (ex: lógica fuzzy, forward chaining, backward chaining, raciocic).

– Tem que ser capaz de responder: Como é o estado corrente do sistema? Quanto de informação antiga pode ser necessária para o futuro? Quais dados precisam ser analisados?

Page 24: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

11/04/23 24Carlos J. P. Lucena © LES/PUC-Rio

Engineering: Generic Control Loop 3

• Decisão:

– Responsável por informar como adaptar o sistema para alcançar o estado do sistema desejado.

– Definir estratégias de decisão.

– Importante questão: Como a decisão é alcançada?

• Atuar (Efetuador/Executor)

– Implementar a decisão tomada a partir de atuadores ou efetuadores.

– Importante questão: Quando e como a adaptação pode ser feita de forma segura?

Page 25: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

Exemplos de Autoadaptação em Sistemas Multi-agentes

Carlos J. P. Lucena © LES/PUC-Rio 2511/04/23

Page 26: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

Autoadaptação em SMA

• Agentes podem ser autoadaptáveis.

• Como criar um agente autoadaptável?

– Existem diversos frameworks de SMA.

– Existe algum framework que oferece facilidades para o desenvolvimento de adaptações?

– Jade, tem alguma coisa?

• Problemas comuns nas abordagens oferecidas:

– Amarração em algum processo de autoadaptação.

– Impossibilidade de adicionar atividades em algum processo.

– Não usa algum dos frameworks conhecidos de SMA.

– Não são gratuitos.

11/04/23 26Carlos J. P. Lucena © LES/PUC-Rio

Page 27: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

Autoadaptação em SMA

• Frameworks que estendem o JADE.

11/04/23 27Carlos J. P. Lucena © LES/PUC-Rio

2008 2009 2010

Page 28: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

JAAF Framework

• *JAAF: Java Self-Adaptive Agent Framework

– Extensão do JADE

– Oferece um control-loop padrão baseado na proposta da IBM (4 atividades)

– Permite a criação de novos control-loops.

– Oferece tipos de sensores para coletar dados.

– Oferece módulo com estratégias de IA originalmente implementadas no framework DRP-MAS**.

11/04/23 28Carlos J. P. Lucena © LES/PUC-Rio

*S. NETO, B. F. ; COSTA, Andrew Diniz da ; NETTO, M. T. A. ; SILVA, Viviane Torres da ; LUCENA, Carlos J P . A Framework to Implement Self-Adaptive Agents. In: International Conference on Software Engineering and Knowledge Engineering, 2009, Boston. Proceedings of the 21th International Conference on Software Engineering and Knowledge Engineering (SEKE 09), 2009

**COSTA, Andrew Diniz da ; SILVA, Viviane Torres da ; ALENCAR, P ; LUCENA, Carlos J P . A Hybrid Diagnostic-Recommendation System for Agent Execution in Multi-Agent Systems. In: ICSOFT-2008, 2008, Porto. Proceedings of the ICSOFT-2008, 2008.

Page 29: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

JAAF-S Framework

• JAAF-S: Java self-Adaptive Agent Framework for Services

– Extensão do JAAF

– Voltado para adaptações de serviços (ex: web-services).

– Oferece suporte para OWL-S.

• Leitura de dados

– Atualização do módulo de IA com

• algoritmo genético

• raciocínio baseados em casos

11/04/23 29Carlos J. P. Lucena © LES/PUC-Rio

S. NETO, B. F. ; COSTA, Andrew Diniz da ; SILVA, Viviane Torres da ; LUCENA, Carlos J P . JAAF-S: A Framework to Implement Autonomic Agents Able to Deal with Web Services. In: The 4th International Conference on Software and Data Technologies (ICSOFT 2009), 2009, Sofia. Proceedings of the 4th International Conference on Software and Data Technologies (ICSOFT 2009), 2009.

Page 30: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

JAAF+T Framework (I/II)

• JAAF+T: Java self-Adaptive Agent Framework for Self-Test

– Extensão e remodelagem do JAAF-S

– Objetivo: Testar adaptações antes de concretizá-las. Aplicar auto-teste.

– Inclusão de novos control-loops

– Integração com ferramentas de teste (ex: Junit, DBUnit, JAT, etc).

– Uso de arquivos XML que servem como input para o sistema.

11/04/23 30Carlos J. P. Lucena © LES/PUC-Rio

COSTA, Andrew Diniz da ; Camila Nunes ; SILVA, Viviane Torres da ; S. NETO, B. F. ; LUCENA, Carlos J P . JAAF+T: A Framework to Implement Self-Adaptive Agents that Apply Self-Test. In: 25th Symposium On Applied Computing, 2010, Sierre. Proceedings of the 25th Symposium On Applied Computing, 2010.

COSTA, Andrew Diniz da ; SILVA, Viviane Torres da ; LUCENA, Carlos J P ; Janaina Horácio . A Multi-Agent System Framework to Assure the Reliability of Self-Adapted Behaviors. In: II Workshop sobre Sistemas de Software AutônomosI (Autosoft), do II Congresso Brasileiro de Software: Teoria e Prática (CBSoft), 2011, São Paulo. II Workshop sobre Sistemas de Software AutônomosI (Autosoft), do II Congresso Brasileiro de Software: Teoria e Prática (CBSoft), 2011.

COSTA, Andrew Diniz da ; SILVA, Viviane Torres da ; LUCENA, Carlos J P ; Soeli Fiorini ; CARVALHO, G. . Innovative Modeling of Relevant Test Concepts. In: Sixth International Workshop on Software Quality and Maintainability of the CSMR 2012, 2012, Szeged. Proceedings of the Sixth International Workshop on Software Quality and Maintainability, 2012.

Page 31: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

Discussão (I/III)

• Outros frameworks de autoadaptação que usem famosos frameworks de SMA (ex: Jadex, Jack, ...).

– Abordagens genéricas

– Abordagens ad-hoc (ex: redes de computadores, gerenciamento de projetos – alocação de atividades, redes sociais, mobile etc.).

• Criar abordagens que atendam algum dos seguintes self-*

– self-configuration

– self-optimization

– self-healing

– self-protection

• Definir nova linguagem de desenvolvimento que permita a melhor representação de incertezas (pode, talvez se, se somente se, etc)

11/04/23 31Carlos J. P. Lucena © LES/PUC-Rio

Page 32: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

Discussão (II/III)

• Definir novos control-loops

– Uso de reputação e normas?

– Ad-hoc

• Criar simulações que usem a ideia de autoadaptações.

• Definir padrões de autoadaptação direcionada ao uso de agentes de software.

• Como modelar autoadaptação? UML é suficiente?

• Caso use BDI em um SMA, como testar autoadaptações que refletem mudanças no BDI de um agente?

11/04/23 32Carlos J. P. Lucena © LES/PUC-Rio

Page 33: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

Discussão (III/III)

• Fornecer o histórico de adaptações realizadas para consulta de um usuário.

– Possível hot spot de algum framework.

• Por que não pensar em oferecer uma interface gráfica que permita configurar agentes de software autoadaptáveis?

– Construir ou modificar graficamente um agente de software

• Incluir estratégias de coleta, análise, decisão etc.

11/04/23 33Carlos J. P. Lucena © LES/PUC-Rio

Page 34: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

References

• A Generic Framework for the Engineering of Self-Adaptive and Self-Organising Systems

– Giovanna di Marzo, et.al.

• Software Engineering for Self-Adaptive Systems: A Research Road Map

– Betty H.C. Cheng, et. al.

• Research challenges of autonomic computing. In: 27th International Conference on Software Engineering (ICSE 2005)

– Kephart, J.

• The Vision of Autonomic Computing. Computer, 36(1):41–50, January 2003.

– J. O. Kephart and D. M. Chess.

11/04/23 34Carlos J. P. Lucena © LES/PUC-Rio

Page 35: Computação Autonômica Nathalia Nascimento nnascimento@inf.puc-rio.br

Software Engineering for Self-Adaptive Systems

Andrew Diniz da Costa