345 research outputs found
Dynamic AOP with PROSE. In:
Abstract. Dynamic Aspect-Oriented Programming (d-AOP) is an important tool to implement adaptation in a wide variety of applications. In particular, large distributed infrastructures, middleware, and pervasive computing environments can greatly benefit from d-AOP to adapt software systems at run time. In this paper, we discuss the design of PROSE, an open source, generic platform for software adaptation. The paper discusses the join-points needed in practical systems together with examples of how they can be used, different implementation strategies and their practical implications. It also describes a highly efficient mechanism to implement stub and advice weaving
Dynamic Virtual Join Point Dispatch
Conceptually, join points are points in the execution of a program and advice is late-bound to them. We propose the notion of virtual join points that makes this concept explicit not only at a conceptual, but also at implementation level. In current implementations of aspect-oriented languages, binding is performed early, at deploy-time, and only a limited residual dispatch is executed. Current implementations fall in the categories of modifying the application code, modifying the meta-level of an application, or interacting with the application by means of eventsâthe latter two already realizing virtual join points to some degree. We provide an implementation of an aspect-oriented execution environment that supports truly virtual join points and discuss how this approach also favors optimizations in the execution environment
AO-OpenCom: an AO-Middleware architecture supporting flexible dynamic reconfiguration
Middleware has emerged as a key technology in the construction of distributed systems. As a consequence, middleware is increasingly required to be highly modular and configurable, to support separation of concerns between services, and, crucially, to support dynamic reconfiguration: i.e. to be capable of being changed while running. Aspect-oriented middleware is a promising technology for the realisation of distributed reconfiguration in distributed systems. In this paper we propose an aspect-oriented middleware platform called AO-OpenCom that builds AO-based reconfiguration on top of a dynamic component approach to middleware system composition. The goal is to support extremely flexible dynamic reconfiguration that can be applied at all levels of the system and uniformly across the distributed environment. We evaluate our platform by the capability in meeting flexible reconfiguration and the impact of these overheads
Recommended from our members
Using Dynamic Aspects in Music Composition Systems
Aspect-oriented programming (AOP) attempts to modularise crosscutting concerns in software. Initial approaches to AOP have used static weaving techniques in which crosscutting implementation, encapsulated by aspects, is merged into . Research into dynamic aspects suggests various ways in which crosscutting implementations may be dynamically woven into code, enabling aspects to be defined and composed at run-time.
It has been suggested, in [14], that AOP might be usefully applied at the end-user level in applications that support multidimensional creative processes, and in particular, of music composition. In this paper we extend this argument to suggest that dynamic aspects are essential to this application. We motivate our argument with a high-level description of crosscutting that exists within music composition, and ways in which these crosscutting concerns, and requirements for their management, have arisen from our initial use of static aspects in music composition. We then evaluate some of the ways in which current research into dynamic aspects might be utilised in addressing these requirements
Semantics-directed implementation of method-call interception
We describe a form of method-call interception (MCI) that allows the programmer to superimpose extra functionality onto method calls at run-time. We provide a reference semantics and a reference implementation for corresponding language constructs. The setup applies to class-based, statically typed, compiled languages such as Java. The semantics of MCI is used to direct a language implementation with a number of valuable properties: simplicity of the implementational model and run-time adaptation capabilities and static type safety and separate compilation and reasonable performance. Our implementational development employs sourcecode instrumentation. We start from a naive implementational model, which is subsequently refined to optimise program execution. The implementation is assessed via benchmarks
Recommended from our members
Debugging Woven Code
The ability to debug woven programs is critical to the adoption of Aspect Oriented Programming (AOP). Nevertheless, many AOP systems lack adequate support for debugging, making it difficult to diagnose faults and understand the program's structure and control flow. We discuss why debugging aspect behavior is hard and how harvesting results from related research on debugging optimized code can make the problem more tractable. We also specify general debugging criteria that we feel all AOP systems should support. We present a novel solution to the problem of debugging aspect-enabled programs. Our Wicca system is the first dynamic AOP system to support full source-level debugging of woven code. It introduces a new weaving strategy that combines source weaving with online byte-code patching. Changes to the aspect rules, or base or aspect source code are rewoven and recompiled on-the-fly. We present the results of an experiment that show how these features provide the programmer with a powerful interactive debugging experience with relatively little overhead
- âŚ