Mémoire de Maîtrise
DOI
https://doi.org/10.11606/D.45.2008.tde-20230727-113422
Document
Auteur
Nom complet
Flavia Rainone
Adresse Mail
Unité de l'USP
Domain de Connaissance
Date de Soutenance
Editeur
São Paulo, 2008
Directeur
Titre en portugais
Combinação dinâmica de aspectos: uma abordagem eficiente
Mots-clés en portugais
Computação Aplicada
Técnicas De Programação
Resumé en portugais
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.
Titre en anglais
not available
Resumé en anglais
Dynamic aspect-oriented systems support the addition and removal of aspects at runtime, capability called dynamic weaving. Such systems are called adaptable, given they possess the ability to adapt to new situations during their execution. This work targets the evaluation of the performance costs involved in the execution of dynamic weaving, which can impact the overall performance of the system during dynamic aspect-oriented operations. We will show that this cost is relatively high and we will propose a new approach to minimize it. Our approach is composed of two parts. The first one involves the creation of a data structure capable of retrieving information regarding joinpoints using a pointcut as search key. This data structure is called the joinpoint shadow graph and provides an average better performance when compared with the traditional pointcut matching process. The second part of our approach consists in changing the bytecodes of the appli- cation at runtime, a technique called hot swap, in order to enforce that we will always keep a joinpoint control flow unchanged when there are no advice to be run during that joinpoint execution. In order to perform an evaluation of the proposed approach, we have implemented our solution at the JBoss AOP aspect-oriented programming tool. Note, however, that the proposed approach could have been implemented in any other dynamic aspect-oriented programming tool or, yet, in other language that offers support to hot swap.
AVERTISSEMENT - Regarde ce document est soumise à votre acceptation des conditions d'utilisation suivantes:
Ce document est uniquement à des fins privées pour la recherche et l'enseignement. Reproduction à des fins commerciales est interdite. Cette droits couvrent l'ensemble des données sur ce document ainsi que son contenu. Toute utilisation ou de copie de ce document, en totalité ou en partie, doit inclure le nom de l'auteur.
Date de Publication
2023-07-27
AVERTISSEMENT: Apprenez ce que sont des œvres dérivées
cliquant ici.