Skip to content

Using Gauges for Architecture Based Monitoring and Adaptation

Fábio Nogueira edited this page Dec 22, 2016 · 3 revisions

Home -> References

Este paper apresenta a infraestrutura de monitoração utilizada na plataforma Rainbow, detalhando os mecanismos utilizados para monitorar o sistema em execução, interpretar os resultados da monitoração e verificar propriedades do sistema com base na interpretação realizada. Toda a infraestrutura é centrada em modelos mantidos em tempo de execução.

Monitoração e Adaptação Dinâmicas

Na análise feita no paper, os autores defendem que um sistema de adaptação dinâmica deve realizar três atividades básicas:

  • Monitoração: Responsável por observar o comportamento do sistema em execução e do seu ambiente. Dada a variedade de sistemas e de ambientes, diferentes tecnologias de monitoração podem ser utilizadas.
  • Interpretação: Responsável por filtrar, agregar e interpretar as observações feitas na monitoração de forma a produzir os valores associados às propriedades de alto nível associadas ao sistema e seus elementos.
  • Reconfiguração: Responsável por realizar a modificação na aplicação, normalmente através da adaptação de um modelo arquitetural de alto nível. Verificada a corretude deste modelo, as adaptações podem ser propagadas para a aplicação em si. A utilização de um modelo arquitetural é advogada em virtude de três características principais destes modelos. Primeiro, o modelo arquitetural permite apresentar a informação em alto nível, facilitando assim a interpretação correspondente. Em segundo lugar, um modelo pode incorporar restrições, as quais podem ser checadas utilizando as informações de alto nível que são derivadas pela interpretação. Em terceiro lugar, modificações no modelo podem ser facilmente mapeadas para operações de reconfiguração normalmente disponíveis nas plataformas subjacentes.

#Visão em Camadas A chave para o modelo de adaptação dinâmica proposto no paper está na sua visão da aplicação em camadas, cada uma com um gerente responsável pelas ações de monitoração e adaptação. As relações entre estas camadas é controlada pelas abstraction bridges.

No nível mais básico encontra-se o componente de gerenciamento de tempo de execução, o qual é responsável por monitorar o sistema e o seu ambiente de execução. As informações observadas neste nível são propagadas para o nível de abstração superior através de uma abstraction bridge, a qual é responsável por condensar, filtrar e abstrair as observações de forma a tornar a informação obtida útil do ponto de vista da arquitetura do sistema.

O nível intermediário é responsável por interpretar o comportamento observado do sistema em termos de propriedades de mais alto nível. Neste nível, os gerentes de modelos utilizam um ou mais modelos arquiteturais do sistema para determinar se a informação extraída do nível abaixo viola as premissas do projeto arquitetural. Em caso afirmativo, esses gerentes podem promover adaptações no modelo, as quais são refletidas na aplicação em execução.

#Realização A chave para a manutenção do modelo consiste nas abstraction bridges, as quais são elementos conceituais responsáveis por converter informações obtidas a partir do sistema em execução em propriedades associadas aos elementos arquiteturais. A realização dessas abstraction bridges é baseada nos conceitos de probes e gauges.

Durante a execução de um sistema, um conjunto de probes (sensores) instalados no próprio sistema e no ambiente observam o comportamento dos mesmos e publicam suas observações através de um probe bus.

Um conjunto de gauges consome essas informações e as interpretam em termos de propriedades de mais alto nível associadas aos componentes e conectores do sistema. Nesse contexto, o papel dos gauges é atribuir semântica a essas propriedades.

Os valores dessas propriedades são divulgados através de um gauge report bus e consumidos por diferentes gauges consumers que são responsáveis por atualizar os modelos arquiteturais com os valores dessas propriedades. Por fim, os gerentes de modelo utilizam os modelos atualizados para verificar se as premissas do sistema estão sendo atendidas, podendo então tomar decisões relativas à adaptação.

#Avaliação A infraestrutura de monitoração baseada em probes e gauges possui diversas características importantes. A proposição desses dois elementos leva a uma separação natural entre a monitoração e a interpretação, permitindo diferentes interpretações para um mesmo conjunto de observações. Uma vez que os gauges são desacoplados dos probes a partir de um mecanismo de eventos, eles podem ser realizados em ambientes de execução separados, não sobrecarregando o ambiente no qual o sistema está efetivamente em execução. A informação extraída de diferentes gauges pode ser combinada para derivar novas informações.

A despeito dos pontos positivos apresentados acima, a solução proposta também possui limitações. Em primeiro lugar, é importante mencionar que os gauges precisam ser implementados para processar as observações recebidas. Nesse contexto, a plataforma não vai além de fornecer um conjunto de interfaces a serem utilizadas pelos desenvolvedores na implementação desses elementos. O mesmo acontece com relação aos gauges consumers, os quais devem ser implementados para receber os a informação gerada pelos gauges e atualizar os modelos. Na plataforma DSOA, os agentes de processamento são responsáveis pela interpretação dos dados obtidos a partir dos sensores. Estes agentes são descritos declarativamente utilizando modelos escritos em uma linguagem própria para processamento de eventos. Esses agentes podem ser reconfigurados dinamicamente a partir da atualização desses modelos. Assim, a plataforma DSOA permite que os desenvolvedores possam trabalhar em um nível de abstração mais elevado. A proposição de uma linguagem própria para a especificação de agentes permite também uma maior especialização dos perfis de desenvolvimento. Essas características representam importantes avanços no contexto do desenvolvimento de sistemas auto-adaptativos.

References

Clone this wiki locally