A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Computação Autonômica

Apresentações semelhantes


Apresentação em tema: "Computação Autonômica"— Transcrição da apresentação:

1 Computação Autonômica
Nathalia Nascimento

2 Carlos J. P. Lucena © LES/PUC-Rio
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] The company cited applications and environments that weigh in at tens of millions of lines of code and require skilled IT professionals to install, configure, tune, and maintain. 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

3 Carlos J. P. Lucena © LES/PUC-Rio
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] A IBM apresentou a computação autonômica com uma conotação biológica 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

4 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, 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

5 Carlos J. P. Lucena © LES/PUC-Rio
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 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

6 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 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

7 Carlos J. P. Lucena © LES/PUC-Rio
Auto-Gerenciamento IBM considera 4 aspectos para auto gerenciamento Self-* Atualmente, esses aspectos vêm sendo tratados separadamente 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

8 Carlos J. P. Lucena © LES/PUC-Rio
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 Ele aprende de forma independente sobre o sistema Registra as suas capacidades e habilidades, de forma que os demais componentes possam fazer uso dele 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

9 Carlos J. P. Lucena © LES/PUC-Rio
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 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

10 Carlos J. P. Lucena © LES/PUC-Rio
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. 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

11 Carlos J. P. Lucena © LES/PUC-Rio
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 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

12 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 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

13 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 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

14 Carlos J. P. Lucena © LES/PUC-Rio
Sumário Requisitos Engenharia 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

15 Carlos J. P. Lucena © LES/PUC-Rio
Requisitos 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 Framework proposto por Di Marzo: 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

16 Carlos J. P. Lucena © LES/PUC-Rio
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. 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

17 Carlos 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. - what aspects of the environment are relevant for adaptation? - Which requirements are allowed to vary or evolve at runtime and which must always be maintained? 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

18 Carlos 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. 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

19 Carlos J. P. Lucena © LES/PUC-Rio
Sumário Requisitos Engenharia 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

20 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 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

21 Atividades do control loop.
12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

22 Carlos 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. 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

23 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? 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

24 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? 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

25 Exemplos de Autoadaptação em Sistemas Multi-agentes
12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

26 Carlos J. P. Lucena © LES/PUC-Rio
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. 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

27 Carlos J. P. Lucena © LES/PUC-Rio
Autoadaptação em SMA Frameworks que estendem o JADE. JAAF JAAF-S JAAF+T 2008 2009 2010 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

28 Carlos J. P. Lucena © LES/PUC-Rio
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**. *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. 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

29 Carlos J. P. Lucena © LES/PUC-Rio
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 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. 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

30 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. 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. 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

31 Carlos J. P. Lucena © LES/PUC-Rio
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) 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

32 Carlos J. P. Lucena © LES/PUC-Rio
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? 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

33 Carlos J. P. Lucena © LES/PUC-Rio
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. 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

34 Carlos J. P. Lucena © LES/PUC-Rio
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. 12/04/2017 Carlos J. P. Lucena © LES/PUC-Rio

35 Software Engineering for Self-Adaptive Systems
Andrew Diniz da Costa


Carregar ppt "Computação Autonômica"

Apresentações semelhantes


Anúncios Google