Auto-Gerenciamento Viviane Torres da Silva [email protected] http://www.ic.uff.br/~viviane.silva/isma Auto-gerenciamento Auto-*: auto-configuração, auto-otimização, auto-correção e auto-proteção Auto-configuração: um sistema se auto configura de acordo com objetivos de alto nível, i.e., especificando o que é desejado, e não como atingir isso Auto-otimização: otimiza o uso dos recursos melhorando a performance ou qualidade do serviço Auto-gerenciamento Auto-correção (cura): o sistema é capaz de detectar e diagnosticar os problemas. Tolerância a falhas é um aspecto importante. Auto-proteção: o sistema é capaz de se proteger de ataques maliciosos e também de usuários que podem alterar o software inadvertidamente Control Loop MAPE-K Proposto pela IBM para implementar auto-* Elementos da Atomicidade Suporte: aspecto da arquitetura ou componente que ajuda a melhorar a performance da arquitetura utilizando atomicidade Core: onde ocorre o auto-gerenciamento em si Autonomia: onde ocorre a auto-adaptação do sistema Atomicidade: considera toda a arquitetura e descreve o trabalho realizado em termos da arquitetura Auto-adaptação Viviane Torres da Silva [email protected] http://www.ic.uff.br/~viviane.silva/isma Motivação Capacidade do agente de se adaptar aos mudanças em um ambiente dinâmico O agente é capaz de perceber o ambiente, raciocinar se deve ou não fazer a adaptação e realizar a adaptação Não podemos assumir que todas as adaptações são conhecidas a priori Tipos de Adaptação Top-down: o sistema como um todo se adaptar devido a mudanças de requisitos funcionais ou não-funcionais do sistema Botton-up: os sistema é composto por um grande conjunto de agentes que interagem/colaboram localmente respeitando as suas regras individuais. O comportamento global emerge a partir destas interações locais Engenharia de Requisitos Se preocupa com o quê o sistema tem que fazer e em quais restrições precisa fazer Em sistemas auto-adaptáveis, se preocupa com quais adaptações são possíveis e quais restrições devem ser respeitadas para fazer a adaptação Quais aspectos do ambiente são importante para a adaptação? Quais requisitos podem ser alterados ou evoluir no tempo e quais têm que ser sempre mantidos? Não podemos antecipar todos os requisitos Modelagem Duas perspectivas: níveis de adaptação associados com o sistema e atividades associadas com a adaptação Níveis de adaptação: se refere aos requisitos, design e código Atividades da adaptação: estão associadas ao “control loop”, ou ciclo de adaptação (5 tarefas básicas: coletar, analisar, decidir e atuar) Control-loop Environmental Sensors Application Requirements Network Instrumentation Collect Inference Managed Elements Record Strategies Analyse Act Inform Users or Administrators Rules and Policies Decide Risk Analysis Hypothesis Generation Uncertain Reasoning Preocupações na Adaptação I/III Tipo de adaptação: – Pode ser simplesmente uma adaptação de parâmetros – Podem ocorrer mudanças na arquitetura Nível de adaptação: – Nível de intervenção humana para que a adaptação ocorra Técnicas para adaptação: – Orientadas a dados: • Como identificar e utilizar os objetos – Orientadas a processo: • Produzindo ou gerando os objetos com as características desejadas Preocupações na Adaptação II/III Lugar: – Onde a adaptação ocorre? Na infra-estrutura que dá suporte ao sistema, na lógica da aplicação, no middleware que conectar o sistema a outro, ... Impacto: – Afeta um único componente ou o sistema como um todo Receptividades: – Se refere a resposta vinda da adaptação, quão boa foi a adaptação Tiggers: – O que inicia a adaptação? Preocupações na Adaptação III/III Segurança: – Grau de segurança da adaptação. Uma adaptação pode causar um desastre ao sistema Manutenção: – Se refere a habilidade do sistema para fazer alterações independentemente ou com intervenção humana Integridade dos Dados: – Se refere a imprópria alteração dos dados Técnicas de adaptação Adaptação baseada na arquitetura: – Mudanças no nível de componentes do software Adaptação baseada em parâmetros pré-determinados – Parâmetros e dados de entrada para configuração dos componentes do software Adaptação baseada em aspectos – Muda o código do sistema via programação dinâmica Desafios Prever o comportamento do sistema, devido as adaptações, é difícil Preocupações com adaptações que podem causar efeitos colaterais ....