Skip to content

Related Work

Fábio Nogueira edited this page Mar 23, 2017 · 73 revisions

Home

Related Work

A concepção de aplicações auto-adaptativas baseados em atributos de qualidade é um tema complexo e vem sendo alvo de diversas pesquisas ao longo dos últimos anos. Essa complexidade está relacionada à duas características principais. De um lado está a própria natureza das aplicações auto-adaptativas, as quais devem ser capazes de se adaptar, idealmente sem interferência direta de seus operadores. De outro lado, está a natureza do aspecto de qualidade, que é ortogonal à funcionalidade das aplicações, e deve ser abordado em diferentes níveis, desde a infraestrutura de execução até o nível de sistema em si.

Visando delimitar o universo de trabalhos relacionados e organizar a sua apresentação, a presente tese utilizou as duas características supra-citadas como critério de classificação. Assim, os primeiros trabalhos apresentados correspondem aos diferentes sistemas auto-adaptativos propostos na literatura. Na sequência, são apresentados e discutidos os diferentes modelos de qualidade propostos com base em um conjunto de critérios identificados como essenciais para a viabilização do processo de adaptação.

Self-Adaptive Platforms

As aplicações auto-adaptativas são projetadas para suportar, ao longo de sua execução, mudanças tanto em termos dos ambientes de execução quanto de seus próprios requisitos. Uma abordagem frequentemente utilizada na concepção dessas aplicações se baseia em descrições de alto nível, normalmente de natureza arquitetural, que são utilizadas pelas plataformas de suporte como guia para o processo de adaptação. Em geral, essas descrições são representadas sob forma de modelos, os quais são utilizados para transferir informação de projeto para a infraestrutura de execução. Nesse contexto, essa seção apresenta relevantes projetos de pesquisa que propõem plataformas de suporte às aplicações auto-adaptativas concebidas a partir de modelos arquiteturais, em especial, aquelas nas quais a adaptação é guiada por características de qualidade.

Quality Models

Uma das principais dificuldades associadas à representação das características de qualidade é a sua natureza "transversal". Neste contexto, o termo "transversal" indica que o conceito de qualidade permeia as diferentes camadas que compõem uma aplicação em execução, desde a sua infraestrutura de suporte, até a aplicação composta, passando por cada um dos seus componentes individuais.

Em particular, no contexto das aplicações baseadas em serviço, Papazoglou et al. descreve a natureza transversal da qualidade através de sua SOA estendida representada esquematicamente por uma pirâmide composta por três níveis: fundamentos, composição e gerenciamento. Nessa pirâmide os atributos de qualidade são representados através de uma reta que perpassa todos os níveis, indicando claramente o impacto de cada nível na formação da qualidade global do sistema e, consequentemente, a necessidade de se considerar e gerenciar essa característica ao longo desses níveis.

Considerando-se essa característica particular, percebe-se que uma representação adequada de qualidade deve possuir informações correspondentes à essas diferentes camadas, permitindo assim uma visão integrada das características de qualidade da aplicação. Nesse contexto, uma lacuna aparente nos trabalhos avaliados é a ausência de um modelo mais completo de qualidade, que capaz oferecer suporte às diferentes etapas que compõem o ciclo de vida de uma aplicação auto-adaptativa. Em particular, um modelo de qualidade ideal deve oferecer suporte não só à descoberta dinâmica dos elementos a serem utilizados, mas também ao gerenciamento e eventual substituição dos mesmos.

Considerando-se a relevância dos modelos de qualidade no contexto desta tese, esta seção se dedica a fazer uma análise dos principais modelos de qualidade propostos. Em particular, o foco dessa análise não serão os modelos em si, nem os atributos e métricas neles representados, mas nas linguagens de modelagem utilizadas na confecção dos mesmos.

Clone this wiki locally