• Nenhum resultado encontrado

A.1 Estudos primários versus ciclo de controle autônomo MAPE-K

6.2 Reconfigurador

O subsistema Reconfigurador da ISALYNE-Instance foi construído com base na infraes- trutura Cosmapek, descrito no Capítulo 3, fazendo reúso de parte da sua arquitetura e do seu código-fonte.

6.2.1

Refinamento da Arquitetura

Tendo como base o modelo arquitetural da infraestrutura Cosmapek (Capítulo 3), foram executadas uma sequência de passos, descritos a seguir, com o objetivo de refinar sua arquitetura inicial, de modo a atender ao modelo de referência ISALYNE-RM.

1. Primeiramente foram listados os componentes da arquitetura da Cosmapek, classificando-os conforme os módulos estabelecidos no modelo de referência ISALYNE-RM. A Tabela 6.1 apresenta o mapeamento dos componentes e das in- terfaces da Cosmapek e a classificação para os módulos do modelo de referência ISALYNE-RM.

2. Em seguida foram identificados os pontos para possíveis melhorias:

(a) O espalhamento e entrelaçamento das funcionalidades do Módulo de Conheci- mento, sendo dividido em quatro componentes, torna complexa a organização arquitetural, dificultando o entendimento, o reúso e a manutenção da infraes- trutura;

(b) Ainda devido ao espalhamento do Módulo de Conhecimento, os componentes Planner e Reader acessam uma quantidade demasiada de componentes para obter ou repassar informações relativas à base de conhecimento;

(c) O componente Variability realiza parte das atividades do planejamento (cálculo da futura configuração de features).

3. Com os pontos de melhoria estabelecidos, a arquitetura foi reorganizada de forma incremental, visando melhorar a modularidade, a separação de interesses e a manu- tenibilidade.

A Figura 6.1 apresenta o novo modelo arquitetural, após as transformações executadas. As funcionalidades do Módulo de Conhecimento foram reorganizadas em um único com- ponente, chamado Knowledge, que provê duas interfaces IKnowledge e IReadingManager. A primeira interface reúne as operações relacionadas a features, componentes e conectores.

Tabela 6.1: Componentes e interfaces do subsistema gestor da Cosmapek, classificados de acordo com os módulos do ISALYNE-RM.

ISALYNE-RM Cosmapek Módulo de

Decisão Monitore ISensorManager – responsável pela atividade de monitoramento. Analyzer e IAnalysisManager – responsável pela atividade de análise. Solicita in- formações sobre os sensores diretamente do componente Monitor.

Módulo de Reconfiguração

Plannere IPlanningManager – responsável pela atividade de planejamento. Acessa todos os componentes que executam funcionalidades referentes à base de conheci- mento.

Executore IExecutionManager – responsável pela atividade de execução. Solicita os elementos que serão reconfigurados diretamente ao Planner.

Módulo de Conhecimento

Components e IComponentManager – gerenciam os componentes pertencentes ao modelo arquitetural.

Features e IFeatureManager – gerenciam as features pertencentes ao modelo de features.

Connectors e IConnectorManager – gerenciam os conectores de componentes per- tencentes ao modelo arquitetural.

Variabilitye IVariabilityManager – centralizam parte das informações referentes à base de conhecimento e calculam a futura configuração de features.

Módulo de Interface Reflexiva

ISensor– interface com a qual deverão ser implementados os sensores, responsáveis pela captura de informações referentes à DSPL.

IExecution– interface com a qual deverão ser implementados os efetores dos ele- mentos da DSPL, que podem ser reconfigurados.

Outros Reader e IReadingManager – a interface é acessada externamente para definir os arquivos que serão lidos para capturar os dados referentes à base de conhecimento. Acessam todos os componentes que executam funcionalidades referentes à base de conhecimento.

Controller e IControllerManager – a interface é acessada externamente para per- mitir a inicialização do subsistema gestor e define o intervalo de tempo para a atividade de análise.

Enquanto que a segunda interface é a comunicação do sistema externo com o componente Knowledge, pela qual serão passadas informações referentes aos artefatos que compreen- dem a base de conhecimento.

Nesse novo modelo arquitetural, a separação de interesses fica destacada ao dividir os componentes em grupos com responsabilidades claras. Os grupos de componentes, repre- sentados por linhas pontilhadas na Figura 6.1, delimitam os módulos estabelecidos pelo modelo de referência ISALYNE-RM. Essa reorganização da arquitetura torna o Recon- figurador mais simples e facilita seu entendimento, contribuindo para a melhoria de sua manutenibilidade.

6.2.2

Implementação do Reconfigurador

Com a definição do modelo arquitetural do Reconfigurador, foram definidas as funciona- lidades que devem estar presentes na sua implementação, incluindo as decisões de projeto sobre os requisitos de adaptação (Seção 5.3.1) e a especificação de uma configuração de features do MAPEK-FM (Seção 5.3.2).

A Tabela 6.2 apresenta as decisões de projeto para cada requisito de adaptação do Reconfigurador. Essa implementação do Reconfigurador reage de forma autônoma às

Figura 6.1: O modelo arquitetural do Reconfigurador da ISALYNE-Instance. mudanças provenientes do sistema, assim devem ser implementados sensores para captar informações sobre o estado do sistema durante a execução. As adaptações podem ocor- rer durante o projeto, o carregamento e a execução da DSPL. O Reconfigurador segue o padrão arquitetural Reflection, implementando a adaptação fechada através da reconfigu- ração da arquitetura em tempo de execução. E finalmente, todas as atividades do padrão MAPE-K são implementadas, porém são baseadas em modelos estáticos para executar o binding durante a execução.

Tabela 6.2: Requisitos de adaptação do Reconfigurador.

Requisito Decisão de projeto

RA.1. Causa da Adaptação Sistema

RA.2. Automação da Adaptação Autônoma

RA.3. Binding Time da Adaptação Projeto, carregamento e execução

RA.4. Padrão Arquitetural Reflection

RA.5. Tipo da Adaptação Fechada

RA.6. Técnica de Realização da Adaptação Reconfiguração da arquitetura

RA.7. Uso do Padrão MAPE-K Estaticamente definida + Binding time de execução Modelos estáticos

A Figura 6.2 apresenta a seleção de features do MAPEK-FM, que compõe o Recon- figurador. Foi implementado o padrão de ciclo centralizado. O Módulo de Decisão, que inclui os componentes Monitor e Analyzer, captura as informações do sistema em relação à disponibilidade e ao tempo de resposta de serviços e componentes, utilizando um ana- lisador dinâmico para a tomada de decisão pela adaptação. O Módulo de Recomposição, que inclui os componentes Planner e Executor, utiliza um planejador estático para definir a nova arquitetura, efetivando essa nova arquitetura através da conexão e desconexão de componentes.

Figura 6.2: Seleção de features do Reconfigurador em relação ao MAPEK-FM.

O Reconfigurador foi implementado em Java seguindo o modelo de implementação de componentes dinâmicos DyCosmos [46] e Java Reflection API. Foi reutilizado o código- fonte da infraestrutura Cosmapek, porém alguns componentes foram eliminados e o seu código parcialmente reaproveitado para os novos componentes. O Reconfigurador possui 6 componentes, 9 interfaces e 10 conectores, totalizando 7.892 SLOC. O código-fonte do Reconfigurador está disponível em https://git.facom.ufms.br/jane.eleuterio/ ISALYNE.