Computação autônoma - Autonomic computing

A computação autônoma (AC) se refere às características de autogerenciamento dos recursos de computação distribuídos , adaptando-se a mudanças imprevisíveis enquanto oculta a complexidade intrínseca para operadores e usuários. Iniciada pela IBM em 2001, essa iniciativa teve como objetivo principal desenvolver sistemas de computador capazes de autogerenciamento, superar a complexidade crescente do gerenciamento de sistemas de computação e reduzir a barreira que a complexidade representa para um maior crescimento.

Descrição

O conceito de sistema AC é projetado para tomar decisões adaptativas, usando políticas de alto nível. Ele verificará e otimizará constantemente seu status e se adaptará automaticamente às mudanças nas condições. Uma estrutura de computação autônoma é composta de componentes autonômicos (AC) interagindo uns com os outros. Um AC pode ser modelado em termos de dois esquemas de controle principais (local e global) com sensores (para automonitoramento ), efetores (para autoajuste), conhecimento e planejador / adaptador para explorar políticas baseadas em autoconsciência e meio ambiente. Essa arquitetura às vezes é chamada de Monitor-Analyze-Plan-Execute (MAPE).

Impulsionada por tal visão, uma variedade de estruturas arquitetônicas baseadas em componentes autonômicos " auto-regulados " foi proposta recentemente. Uma tendência muito semelhante caracterizou recentemente uma pesquisa significativa na área de sistemas multiagentes . No entanto, a maioria dessas abordagens é normalmente concebida com arquiteturas de servidor centralizadas ou baseadas em cluster e, principalmente, aborda a necessidade de reduzir os custos de gerenciamento, em vez da necessidade de habilitar sistemas de software complexos ou fornecer serviços inovadores. Alguns sistemas autônomos envolvem agentes móveis interagindo por meio de mecanismos de comunicação fracamente acoplados.

A computação orientada para a autonomia é um paradigma proposto por Jiming Liu em 2001 que usa sistemas artificiais que imitam o comportamento coletivo de animais sociais para resolver problemas computacionais difíceis. Por exemplo, a otimização da colônia de formigas poderia ser estudada neste paradigma.

Problema de complexidade crescente

As previsões sugerem que os dispositivos de computação em uso crescerão 38% ao ano e a complexidade média de cada dispositivo está aumentando. Atualmente, esse volume e complexidade são gerenciados por humanos altamente qualificados; mas a demanda por pessoal de TI qualificado já está ultrapassando a oferta, com os custos de mão de obra excedendo os custos de equipamento em uma proporção de até 18: 1. Os sistemas de computação trouxeram grandes benefícios de velocidade e automação, mas agora há uma necessidade econômica esmagadora de automatizar sua manutenção.

Em um artigo do IEEE Computer de 2003 , Kephart e Chess alertam que o sonho da interconectividade dos sistemas e dispositivos de computação pode se tornar o "pesadelo da computação difusa ", no qual os arquitetos são incapazes de antecipar, projetar e manter a complexidade das interações. Eles afirmam que a essência da computação autônoma é o autogerenciamento do sistema, liberando os administradores do gerenciamento de tarefas de baixo nível e, ao mesmo tempo, oferecendo um melhor comportamento do sistema.

Um problema geral dos modernos sistemas de computação distribuída é que sua complexidade , e em particular a complexidade de seu gerenciamento, está se tornando um fator limitante significativo em seu desenvolvimento futuro. Grandes empresas e instituições estão empregando redes de computadores em grande escala para comunicação e computação. Os aplicativos distribuídos em execução nessas redes de computadores são diversos e lidam com muitas tarefas, que vão desde processos de controle interno até a apresentação de conteúdo da web para atendimento ao cliente.

Além disso, a computação móvel está invadindo essas redes em uma velocidade cada vez maior: os funcionários precisam se comunicar com suas empresas enquanto não estão em seus escritórios. Eles fazem isso usando laptops , assistentes pessoais digitais ou telefones celulares com diversas formas de tecnologias sem fio para acessar os dados de suas empresas.

Isso cria uma enorme complexidade na rede geral de computadores, que é difícil de controlar manualmente por operadores humanos. O controle manual é demorado, caro e sujeito a erros. O esforço manual necessário para controlar um crescente sistema de computadores em rede tende a aumentar muito rapidamente.

80% desses problemas na infraestrutura acontecem no aplicativo específico do cliente e na camada de banco de dados. A maioria dos provedores de serviços 'autônomos' garantem apenas até a camada de encanamento básica (energia, hardware, sistema operacional , rede e parâmetros básicos de banco de dados).

Características dos sistemas autônomos

Uma possível solução seria permitir que sistemas de computação modernos em rede se gerenciem sem intervenção humana direta. A Autonomic Computing Initiative (ACI) visa fornecer a base para sistemas autônomos. É inspirado no sistema nervoso autônomo do corpo humano. Este sistema nervoso controla funções corporais importantes (por exemplo, respiração, frequência cardíaca e pressão arterial ) sem qualquer intervenção consciente.

Em um sistema autogerido autônomo, o operador humano assume um novo papel: em vez de controlar o sistema diretamente, ele / ela define políticas e regras gerais que orientam o processo de autogestão. Para esse processo, a IBM definiu os quatro tipos de propriedade a seguir, denominados propriedades self-star (também chamadas de self- *, self-x ou auto- *).

  1. Autoconfiguração: Configuração automática de componentes;
  2. Autocura: descoberta automática e correção de falhas;
  3. Auto-otimização : Monitoramento e controle automático de recursos para garantir o funcionamento ideal em relação aos requisitos definidos;
  4. Autoproteção: Identificação proativa e proteção contra ataques arbitrários.

Outros, como Poslad, Nami e Bertels, expandiram o conjunto da autoestrela da seguinte forma:

  1. Auto-regulação : Um sistema que opera para manter algum parâmetro, por exemplo, Qualidade de serviço , dentro de uma faixa de reset sem controle externo;
  2. Autoaprendizagem: os sistemas usam técnicas de aprendizado de máquina, como aprendizado não supervisionado que não requer controle externo;
  3. Autoconsciência (também chamada de Autoinspeção e Auto-decisão): O sistema deve conhecer a si mesmo. Deve saber a extensão de seus próprios recursos e os recursos aos quais se vincula. Um sistema deve estar ciente de seus componentes internos e links externos para controlá-los e gerenciá-los;
  4. Auto-organização : estrutura do sistema conduzida por modelos do tipo físico sem pressão explícita ou envolvimento de fora do sistema;
  5. Auto-criação (também chamada de Auto-montagem , Auto-replicação ): Sistema impulsionado por modelos de tipo ecológico e social sem pressão explícita ou envolvimento de fora do sistema. Os membros de um sistema são automotivados e autodirigidos, gerando complexidade e ordem em uma resposta criativa a uma demanda estratégica em constante mudança;
  6. Autogestão (também chamada de autogestão): um sistema que se autogerencia sem intervenção externa. O que está sendo gerenciado pode variar dependendo do sistema e do aplicativo. Autogerenciamento também se refere a um conjunto de processos autoestrelados, como computação autônoma, em vez de um único processo autoestrelado;
  7. Auto-descrição (também chamada de autoexplicação ou Auto-representação): Um sistema se explica. É capaz de ser compreendido (por humanos) sem maiores explicações.

A IBM estabeleceu oito condições que definem um sistema autônomo:

O sistema deve

  1. conhecer a si mesmo em termos de quais recursos tem acesso, quais são suas capacidades e limitações e como e por que está conectado a outros sistemas;
  2. ser capaz de se configurar e reconfigurar automaticamente dependendo das mudanças no ambiente de computação;
  3. ser capaz de otimizar seu desempenho para garantir o processo de computação mais eficiente;
  4. ser capaz de contornar os problemas encontrados, consertando a si mesmo ou direcionando as funções para longe do problema;
  5. detectar, identificar e se proteger contra vários tipos de ataques para manter a segurança e integridade geral do sistema;
  6. adaptar-se ao seu ambiente conforme ele muda, interagindo com os sistemas vizinhos e estabelecendo protocolos de comunicação;
  7. dependem de padrões abertos e não podem existir em um ambiente proprietário;
  8. antecipar a demanda de seus recursos e ao mesmo tempo ser transparente para os usuários.

Mesmo que o propósito e, portanto, o comportamento dos sistemas autônomos variem de sistema para sistema, todo sistema autônomo deve ser capaz de exibir um conjunto mínimo de propriedades para atingir seu propósito:

  1. Automático : Isso significa essencialmente ser capaz de autocontrolar suas funções e operações internas. Como tal, um sistema autônomo deve ser autônomo e capaz de iniciar e operar sem qualquer intervenção manual ou ajuda externa. Novamente, o conhecimento necessário para inicializar o sistema ( Know-how ) deve ser inerente ao sistema.
  2. Adaptativo : um sistema autônomo deve ser capaz de alterar sua operação (ou seja, sua configuração, estado e funções). Isso permitirá que o sistema lide com as mudanças temporais e espaciais em seu contexto operacional a longo prazo (customização / otimização do ambiente) ou a curto prazo (condições excepcionais como ataques maliciosos, falhas, etc.).
  3. Ciente : um sistema autônomo deve ser capaz de monitorar (sentir) seu contexto operacional, bem como seu estado interno, a fim de ser capaz de avaliar se sua operação atual atende ao seu propósito. A consciência controlará a adaptação de seu comportamento operacional em resposta às mudanças de contexto ou estado.

Níveis evolutivos

A IBM definiu cinco níveis evolutivos, ou o modelo de implantação autônomo , para a implantação de sistemas autônomos:

  • O nível 1 é o nível básico que apresenta a situação atual em que os sistemas são essencialmente gerenciados manualmente.
  • Os níveis 2-4 introduzem funções de gerenciamento cada vez mais automatizadas, enquanto
  • o nível 5 representa o objetivo final dos sistemas autônomos e autogerenciados.

Padrões de design

A complexidade do projeto de sistemas autônomos pode ser simplificada pela utilização de padrões de projeto , como o padrão modelo-visão-controlador (MVC) para melhorar a separação de interesses , encapsulando questões funcionais.

Loops de controle

Um conceito básico que será aplicado em Sistemas Autônomos são as malhas de controle fechadas . Este conceito bem conhecido origina-se da Teoria de Controle de Processo . Essencialmente, uma malha de controle fechada em um sistema de autogerenciamento monitora algum recurso (software ou componente de hardware) e tenta de forma autônoma manter seus parâmetros dentro de uma faixa desejada.

De acordo com a IBM, espera-se que centenas ou mesmo milhares dessas malhas de controle funcionem em um sistema de computador autogerenciado em grande escala.

Modelo conceitual

AutonomicSystemModel.png

Um bloco de construção fundamental de um sistema autônomo é a capacidade de detecção ( Sensores S i ), que permite ao sistema observar seu contexto operacional externo. Inerente a um sistema autônomo é o conhecimento do Propósito (intenção) e o Know-how para operar a si mesmo (por exemplo, bootstrapping , conhecimento de configuração, interpretação de dados sensoriais, etc.) sem intervenção externa. A operação real do sistema autônomo é ditada pela Lógica , que é responsável por tomar as decisões corretas para servir ao seu Propósito , e influencia pela observação do contexto operacional (com base na entrada do sensor).

Este modelo destaca o fato de que a operação de um sistema autônomo é dirigida por um propósito. Isso inclui sua missão (por exemplo, o serviço que deve oferecer), as políticas (por exemplo, que definem o comportamento básico) e o " instinto de sobrevivência ". Se visto como um sistema de controle, isso seria codificado como uma função de erro de feedback ou em um sistema assistido heuristicamente como um algoritmo combinado com um conjunto de heurísticas limitando seu espaço operacional.

Veja também

Referências

links externos