RUO Principal

Repositorio Institucional de la Universidad de Oviedo

Ver ítem 
  •   RUO Principal
  • Investigación
  • Datos de investigación
  • Ver ítem
  •   RUO Principal
  • Investigación
  • Datos de investigación
  • Ver ítem
    • español
    • English
JavaScript is disabled for your browser. Some features of this site may not work without it.

Listar

Todo RUOComunidades y ColeccionesPor fecha de publicaciónAutoresTítulosMateriasxmlui.ArtifactBrowser.Navigation.browse_issnPerfil de autorEsta colecciónPor fecha de publicaciónAutoresTítulosMateriasxmlui.ArtifactBrowser.Navigation.browse_issn

Mi cuenta

AccederRegistro

Estadísticas

Ver Estadísticas de uso

AÑADIDO RECIENTEMENTE

Novedades
Repositorio
Cómo publicar
Recursos
FAQs

Data from "Efficient Runtime Aspect Weaving for Java Applications"

Autor(es) y otros:
Rodríguez Prieto, ÓscarAutoridad Uniovi; Ortín Soler, FranciscoAutoridad Uniovi; O'Shea, Donna
Palabra(s) clave:

Runtime adaptation

Aspect weaving

Invokedynamic

Aspect-oriented programming

Java

Runtime performance

Fecha de publicación:
2017-11-08
Editorial:

Information and Software Technology (Elsevier)

Resumen:

Context: The aspect-oriented paradigm is aimed at solving the code scattering and tangling problem, providing new mechanisms to support better separation of concerns. For specific scenarios where high runtime adaptability is an important requirement, dynamic Aspect-Oriented Programming (AOP) represents a useful tool. With dynamic AOP, components and aspects can be woven and unwoven at runtime, enabling applications greater responsiveness when dealing with different or changing requirements. However, this responsiveness typically incurs a cost in terms of runtime performance and memory consumption. Objective: Build an efficient dynamic aspect weaver for Java that provides the best runtime performance compared to the existing approaches, minimum memory overhead consumption, and similar functionalities to the widespread runtime weavers. Method: We design and implement weaveJ, a dynamic aspect weaver for Java. This dynamic weaver leverages the invokedynamic opcode introduced in Java 7, which allows dynamic relinkage of method and field access. We compare the functionalities of weaveJ with the existing dynamic weavers for Java, and evaluate their runtime performance and memory consumption. Results: weaveJ shows the best runtime performance for all benchmarks and real applications executed. Method interception with invokedynamic is at least 142% faster than the techniques used by the existing runtime weavers. The average cost of dynamic weaving using invokedynamic is only 2.2% for short running programs, and 1.5% for long running applications. Moreover, the use of aspects in weaveJ does not imply additional memory consumption. Conclusion: The dynamic aspect weaver implemented demonstrates that invokedynamic is a suitable mechanism to provide efficient runtime aspect weaving for Java applications. Moreover, it supports concurrent and programmatic aspect (un)weaving at any point of execution, a wide set of join points, class and object weaving, and allow aspects to have their own state. Neither the Java language nor the virtual machine needs to be modified.

Context: The aspect-oriented paradigm is aimed at solving the code scattering and tangling problem, providing new mechanisms to support better separation of concerns. For specific scenarios where high runtime adaptability is an important requirement, dynamic Aspect-Oriented Programming (AOP) represents a useful tool. With dynamic AOP, components and aspects can be woven and unwoven at runtime, enabling applications greater responsiveness when dealing with different or changing requirements. However, this responsiveness typically incurs a cost in terms of runtime performance and memory consumption. Objective: Build an efficient dynamic aspect weaver for Java that provides the best runtime performance compared to the existing approaches, minimum memory overhead consumption, and similar functionalities to the widespread runtime weavers. Method: We design and implement weaveJ, a dynamic aspect weaver for Java. This dynamic weaver leverages the invokedynamic opcode introduced in Java 7, which allows dynamic relinkage of method and field access. We compare the functionalities of weaveJ with the existing dynamic weavers for Java, and evaluate their runtime performance and memory consumption. Results: weaveJ shows the best runtime performance for all benchmarks and real applications executed. Method interception with invokedynamic is at least 142% faster than the techniques used by the existing runtime weavers. The average cost of dynamic weaving using invokedynamic is only 2.2% for short running programs, and 1.5% for long running applications. Moreover, the use of aspects in weaveJ does not imply additional memory consumption. Conclusion: The dynamic aspect weaver implemented demonstrates that invokedynamic is a suitable mechanism to provide efficient runtime aspect weaving for Java applications. Moreover, it supports concurrent and programmatic aspect (un)weaving at any point of execution, a wide set of join points, class and object weaving, and allow aspects to have their own state. Neither the Java language nor the virtual machine needs to be modified.

Descripción:

Data from the article "O. Rodriguez-Prieto, F. Ortin, D. O'Shea. Efficient Runtime Aspect Weaving for Java Applications. Information and Software Technology (100), pp. 73-86, 2018. https://doi.org/10.1016/j.infsof.2018.03.012"

URI:
https://hdl.handle.net/10651/76126
DOI:
10.17811/ruo_datasets.76126
Enlace a recurso relacionado:
http://hdl.handle.net/10651/47136
Patrocinado por:

This work has been funded by the European Union, through the European Regional Development Funds (ERDF), and the Principality of Asturias, through its Science, Technology and Innovation Plan (Grant GRUPIN14-100). The work of Oscar Rodriguez-Prieto was also supported by the Spanish Ministry of Education, Culture and Sport under an FPU grant (FPU15/05261).

Colecciones
  • Datos de investigación [70]
Ficheros en el ítem
untranslated
Dataset (133.1Mb)
untranslated
Readme (3.165Kb)
Métricas
Compartir
Exportar a Mendeley
Estadísticas de uso
Estadísticas de uso
Metadatos
Mostrar el registro completo del ítem
Página principal Uniovi

Biblioteca

Contacto

Facebook Universidad de OviedoTwitter Universidad de Oviedo
El contenido del Repositorio, a menos que se indique lo contrario, está protegido con una licencia Creative Commons: Attribution-NonCommercial-NoDerivatives 4.0 Internacional
Creative Commons Image