1.3 Objetivos e Metas
2.3.4 Considerações Arquiteturais
Segundo Kephart e Chess (2003), sistemas autonômicos são coleções interativas de elementos autonômicos (sistemas individuais constituintes que contém recursos e distribuem serviços para humanos e outros elementos autonômicos). Elementos autonômicos gerenciam seu comportamento interno e relacionamentos com outros elementos autonômicos conforme po- líticas estabelecidas. O gerenciamento do próprio sistema resulta em diversas interações através de elementos autonômicos do auto gerenciamento dos elementos autonômicos individuais. A Figura 2.5 exibe um elemento autonômico tipicamente composto por um ou mais elementos gerenciados acoplados a um único gerenciador autonômico, que os controla. O elemento ge- renciado essencialmente é equivalente ao encontrado em sistemas não autonômicos, embora ele possa ser adaptado para habilitar que o gerente autonômico o controle e monitore. O elemento gerenciado pode ser um recurso de hardware, como uma CPU ou impressora, ou um recurso de software, como um banco de dados ou um sistema legado.
Cada elemento autonômico é responsável pelo gerenciamento de seus estados in- ternos, comportamento e interações com o ambiente, que consiste de sinais e mensagens de outros elementos e do mundo externo. O comportamento de um elemento interno e seus rela- cionamentos com outros elementos é orientado pelos objetivos embutidos por seus projetistas, por outros elementos que possuem autoridade sobre ele ou subcontratos com elementos pares
Tabela 2.1: Funções internas de um gerente autonômico
Função Definição
Monitorar Função do gerente autonômico que coleta, agrega, filtra e reporta detalhes, como métricas e topologias, que foram coletadas de recursos gerenciados.
Analisar Função do gerente autonômico que correlaciona e modela situações complexas, como previsão de séries temporais ou modelos de filas, para compreender o estado atual do sistema.
Planejar Função do gerente autonômico que estrutura as ações necessárias para executar metas e objetivos. Executar Função do gerente autonômico que muda o comportamento do recurso gerenciado utilizando
atuadores, baseado em ações recomendadas pela função de planejamento.
com consentimento explícito. O elemento pode requerer assistência de outros elementos para executar metas. Em caso afirmativo, ele será responsável por obter os recursos necessários de outros elementos e por lidar com casos de exceção, como a falha de um recurso requerido.
Um elemento ou recurso gerenciado é um componente do sistema controlado, po- dendo ser um recurso único ou uma coleção de recursos, controlado por sensores e atuadores (IBM, 2004). No entanto, ao contrário dos elementos não autonômicos, um elemento gerenci- ado fornece um conjunto de sensores e atuadores que são utilizados pelo gerente autonômico para monitorar e controlar.
O gerente autonômico é um componente que implementa um loop de controle, e realiza ações de: gerenciar a coleta (filtragem e relatório de dados coletados pelos sensores); analisar e aprender sobre o elemento gerenciado; e acumular conhecimento e predizer ações futuras (IBM, 2004). O gerente autonômico também fornece sensores e atuadores para ser utilizado por outros elementos autonômicos em uma infraestrutura distribuída (SOUSA, 2010). Segundo IBM (2005), um evento é uma mudança significante no estado de um recurso do sistema. Um evento pode ser gerado por um problema, para a resolução de um problema ou para a execução de uma tarefa. A Tabela 2.1 exibe ações de um ciclo de vida de um gerente autonômico.
Sensores provêm mecanismos para coletar informações sobre o estado e transições de um elemento (IBM, 2004). Um sensor consiste em: um conjunto de propriedades que ex- põem informação sobre o estado atual de um recurso gerenciado, acessadas através de operações padrão de consulta; e um conjunto de eventos de gerenciamento (não solicitados, mensagens as- síncronas ou notificações) que ocorrem quando o recurso gerenciado sofre alterações de estado que mereça relato (IBM, 2005).
Atuadores são mecanismos que modificam o estado do elemento conforme deci- sões tomadas pelo sistema autônomo (IBM, 2004). Um atuador consiste em: uma coleção de operações padrão de escrita que permitem alterar o estado do elemento gerenciado; e uma cole- ção de operações que são implementadas pelos gerentes autonômicos que permite aos recursos gerenciados realizar requisições ao seu gerente (IBM, 2005).
A Figura 2.6 exibe uma arquitetura semelhante à arquitetura proposta por Kephart e Chess (2003), porém com mais detalhes e inclusão dos sensores e atuadores. Em essência, as duas arquiteturas são idênticas, pois possuem as mesmas funcionalidades e objetivos, além das funções de monitorar, analisar, planejar e executar.
3 TRABALHOS RELACIONADOS
Elasticidade é um ponto chave para a adição de QoS através de serviços em nuvem. Ela permite que provedores adicionem ou removam recursos, sem interrupção e em tempo de execução, para lidar com variações nas cargas de trabalho aplicadas. Esses recursos podem ser adquiridos rapidamente, em alguns casos automaticamente, para atender ao aumento e redução da carga de trabalho (MELL; GRANCE, 2009). Aspectos relacionados à elasticidade têm rece- bido muita atenção, tais como tempo de resposta, cargas de trabalho e SLA. Estas questões são importantes em ambientes de Computação em Nuvem porque provedores precisam adicionar recursos conforme as cargas de trabalho para prevenir violações de SLA, e remover recursos quando a carga de trabalho diminui.
Elasticidade é comumente associada à escalabilidade de sistemas. Porém existem diferenças. Escalabilidade é definida como a habilidade de um sistema adicionar mais recur- sos para atender a grandes cargas de trabalho (ISLAM et al., 2012). Elasticidade consiste no crescimento e redução de recursos conforme as cargas de trabalho. A escalabilidade somente considera o crescimento da carga de trabalho, não considera o tempo, e não captura quanto tempo leva para o sistema atender o nível de desempenho desejado. Diferentemente, o tempo para a elasticidade é um aspecto central, o qual depende da velocidade de resposta a uma carga de trabalho.
Embora diversos estudos em Computação em Nuvem tenham explorado o tema elasticidade (COSTA et al., 2011; SHARMA et al., 2011; SULEIMAN et al., 2012; ISLAM et al., 2012; GALANTE; BONA, 2012), o processo de análise do estado da arte para a seleção de trabalhos relacionados necessita de uma metodologia para sua elaboração e execução, e assim evitar algo incompleto ou uma fraca revisão de literatura.