-
Notifications
You must be signed in to change notification settings - Fork 0
SASSY
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 o comportamento e os requisitos de qualidade de um sistema através de uma linguagem gráfica orientada a atividades, referenciada como Service Activity Schemas (SAS) [Esfahani 2009]. O resultado dessa especificação é um modelo arquitetural anotado com funções utilidade representando os requisitos de qualide. Essas funções são avaliadas ao longo da execução para identificar a necessidade de adaptação.
De outro lado, um arquiteto de software desenvolve padrões arquiteturais (em particular, padrões para composição de serviço), os quais são associados por um especialista em qualidade com modelos analíticos parametrizados que são utilizados para representar a influência do uso dos padrões correspondentes nas métricas de qualidade. O arquiteto deve ainda 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 proposto através da 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 a serem utilizados através da busca em um registro de serviços.
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.
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
- [Esfahani 2009] (http://cs.gmu.edu/~menasce/papers/Models2009.pdf "A Modeling Language for Activity-Oriented Composition of Service-Oriented Software Systems")
- [Menascé 2011] (https://www.computer.org/csdl/mags/so/2011/06/mso2011060078-abs.html)