ABSTRACT
Modern applications are typically complex, multithreaded, distributed, and often should provide real-time responses and small-footprint. Due to such characteristics, most often, it is hard to understand the behavior of such systems and consequently detect the root causes of performance or reliability problems. In order to collect information about system's runtime behavior - operations' performance, internal threads status - the system developer is required to instrument the target application (and sometimes also its execution platform). Such monitoring code which allows the developer to reason about the code execution is not localized in a single application module; it must be included in many modules. As a consequence, the monitoring concern tends to be scattered across multiple application/platform modules and tangled with other application concerns. The Application Monitor pattern supports the separate definition of monitoring-related functionalities concerns through the use of aspect-oriented programming. It decouples such concerns from the implementation of application-specific concerns, which in turn improves the system reusability and maintainability.
- AspectJ Team. The AspectJ Programming Guide. Available at: eclipse.org/aspectjGoogle Scholar
- Bodkin, R., Performance monitoring with AspectJ - Parts I & II, AOP@Work, Sep 2005. Available at: http://www-128.ibm.com/developerworks/java/library/j-aopwork12/index.html (Accessed 05/2006)Google Scholar
- Chavez, C. A Model-Driven Approach to Aspect-Oriented Design. PhD Thesis, Computer Science Department, PUC-Rio, April 2004, Rio de Janeiro, Brazil.Google Scholar
- Coelho, R., Kulesza, U., Staa, A., Lucena, C., Unit Testing in Multi-agent Systems using Mock Agents and Aspects, International Workshop on Software Engineering for Large-scale Multi-Agent Systems (SELMAS), 2006. Google ScholarDigital Library
- Dantas, A., Cirne, W., Saikoski, K. Using AOP to Bring a Project Back in Shape: The OurGrid Case. Journal of the Brazilian Computer Society. 2006.Google Scholar
- Deters, M. and Cytron, R., Introduction of Program Instrumentation using Aspects, In: Proceedings of the OOPSLA 2001, Workshop on Advanced Separation of Concerns in Object-Oriented Systems, 2001.Google Scholar
- Filman, R., Elrad, T., Clarke, S., Aksit, M. Aspect-Oriented Software Development. Addison-Wesley, 2005. Google ScholarDigital Library
- Gamma, E. et al. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA, 1995. Google ScholarDigital Library
- Kiczales, G. et al. An Overview of AspectJ. Proceedings of the European Conference on Object-Oriented Programming (ECOOP'01), Budapest, Hungary, 2001. Google ScholarDigital Library
- Kiczales, G. et al. Aspect-Oriented Programming. Proc. of the European Conference on OO Programming - ECOOP'97, LNCS 1241, Springer, Finland, June 1997.Google Scholar
- F. Buschmann, C. Jkel, R. Meunier, H. Rohnert, and M. Stahl. Pattern-Oriented Software Architecture - A System of Patterns. John Wiley & Sons, 1996 they had developed. Google ScholarDigital Library
Index Terms
- The application monitor aspect pattern
Recommendations
A catalogue of bug patterns for exception handling in aspect-oriented programs
PLoP '08: Proceedings of the 15th Conference on Pattern Languages of ProgramsAspects allow a developer to externally add new functionality to a program. This additional functionality may also throw new exceptions that will flow through the program execution until they are handled. Moreover, aspects can also be used to handle ...
Interaction awareness for aspect refactoring
AOAsia '13: Proceedings of the 8th international workshop on Advanced modularization techniquesAspect Refactoring includes two phases: aspect mining and aspect extraction. Aspect mining is used to identify crosscutting concerns from the OO program. Aspect extraction extracts the identified crosscutting concerns from the OO program and refactors ...
Aspect-Oriented Refactoring of Legacy Applications: An Evaluation
The primary claimed benefits of aspect-oriented programming (AOP) are that it improves the understandability and maintainability of software applications by modularizing crosscutting concerns. Before there is widespread adoption of AOP, developers need ...
Comments