Combinação dinâmica de aspectos: uma abordagem eficiente - Rainone, Flavia (2008)
Os sistemas dinamicos orientados a aspectos permitem a adiçao e a remoçao de aspectos em tempo de execuçao, capacidade denominada combinaçao dinamica. Tais sistemas sao ditos adaptaveis, pois possuem a capacidade de se adaptar a novas situaçoes no decorrer de sua execçao. Este trabalho visa avaliar o custo de desempenho envolvido na execuçao da combiçao dinamica, fator que pode afetar o desempenho do sistema durante a execuçao de operaçoes de adiçao e remoçao dinamicas de aspectos. Mostraremos que esse custo é relativamente alto e iremos propor uma nova abordagem de implementaçao a fim de minimiza-lo. A nossa abordagem é formada por duas partes. A primeira envolve a criaçao de uma estrutura de dados capaz de devolver informaçoes sobre pontos de junçao utilizando um pointcut como chave de busca. Essa estrutura de dados é chamada de grafo de sombras de junçao e possui um desempenho médio superior, quando comparada com o processo de casamento de pointcuts tradicional. A segunda parte da abordagem que propomos consiste em alterar os bytecodes da aplicaçao em tempo de execuçao, processo conhecido como hot swap, com o objetivo de garantir que o fluxo de controle de um ponto de junçao se mantera inalterado quando nao houver adendos a serem chamados durante sua execuçao. A fim de realizarmos uma avaliaçao pratica da abordagem proposta, implementa- mos a nossa soluçao na ferramenta de programaçao orientada a aspectos dinamica JBoss AOP. Note, no entanto, que poderíamos ter implementado a abordagem proposta em qualquer ferramenta de programaçao orientada a aspectos dinamica em Java, ou ainda, em outra linguagem que fornecesse suporte a hot swap.