Skip to content
Fábio Nogueira edited this page Dec 7, 2016 · 9 revisions

Home -> Related Work #SASSY Self-architecting Software Systems (SASSY) [Menascé 2011] é uma plataforma que visa suportar a adaptação dinâmica de sistemas orientados a serviços em função de requisitos não-funcionais. Esses sistemas são representadados em tempo de execução através de modelos arquiteturais responsáveis por dirigir o processo de adaptação, o qual pode ser disparado em função de modificações nos requisitos ou de variações na qualidade de serviço. Quando esse processo é disparado, as adaptações são realizadas através de modificações no modelo correspondente visando, assim, garantir a satisfação dos não-funcionais.

Em SASSY, um especialista no domínio especifica um sistema através de uma linguagem gráfica de modelagem orientada a atividades, referenciada como Service Activity Schemas (SAS) [Esfahani 2009]. Os modelos gerados em SAS representam os serviços que compõem o sistema e as interações entre eles. Os requisitos não-funcionais são representados através de funções utilidade, as quais são avaliadas ao longo da execução para identificar a necessidade de adaptação.

As possíveis variações na arquitetura correspondem a padrões arquiteturais (em particular, padrões para composição de serviço), os quais são associados a modelos analíticos parametrizados representando a influência do uso desses padrões nas métricas de qualidade. Para guiar o processo de adaptação, um arquiteto deve especificar padrões de adaptação, os quais são responsáveis por efetivar as modificações arquiteturais necessárias ao longo da execução.

A partir da especificação da aplicação e dos padrões arquiteturais, a plataforma deriva a arquitetura do sistema em termos dos tipos de serviço necessários, e um modelo de coordenação que regula a interação entre os serviços realizando o fluxo modelado na linguagem visual. Por fim, os tipos de serviço e as informações de qualidade são utilizados para a descoberta dinâmica dos serviços através da busca em um registro.

Durante a execução, uma aplicação é gerenciada por gerente de adaptação que implementa o laço MAPE-K. Para tomar as decisões acerca da necessidade da adaptação, esse gerente utiliza funções de utilidade especificadas. Quando da necessidade de adaptação, os padrões de adaptação são aplicados de forma a gerar, dinamicamente, uma nova arquitetura.

Service Activity Schemas (SAS)

A linguagem SAS é definida através de um meta-modelo que pode ser dividido em três partes. A primeira delas representa o comportamento do sistema através de um grafo contendo atividades, serviços e fluxos de dados entre eles. A segunda permite a especificação dos serviços e de suas interfaces definidas em função dos dados de entrada e de saída. Por fim, a terceira é utilizada para a definição das métricas de qualidade a serem utilizadas e das funções de utilidade. Embora os autores mencionem que o conjunto de métricas não é limitado, a representação a nível de meta-modelo de classes representando disponibilidade e tempo de resposta parece indicar que a definição de novas métricas demandaria modificações no meta-modelo e na própria plataforma, uma vez que não há nesse modelo (meta) indicação de como as métricas podem ser efetivamente computadas.

#References

Clone this wiki locally