Surajbali, B. and Coulson, G. and Greenwood, P. and Grace, P. (2007) Augmenting reflective middleware with an aspect orientation support layer. In: ARM '07: The 6th international workshop on Adaptive and reflective middleware, 1900-01-01.
|PDF (ARM07.pdf) |
Available under License ACM.
Download (197Kb) | Preview
Reflective middleware provides an effective way to support adaptation in distributed systems. However, as distributed systems become increasingly complex, certain drawbacks of the reflective middleware approach are becoming evident. In particular, reflective APIs are found to impose a steep learning curve, and to place too much expressive power in the hands of developers. Recently, researchers in the field of Aspect-Oriented Programming (AOP) have argued that 'dynamic aspects' show promise in alleviating these drawbacks. In this paper, we report on work that attempts to combine the reflective middleware and AOP approaches. We build an AOP support layer on top of an underlying reflective middleware substrate in such a way that it can be dynamically deployed/undeployed where and when required, and imposes no overhead when it is not used. Our AOP approach involves aspects that can be dynamically (un)weaved across a distributed system on the basis of pointcut expressions that are inherently distributed in nature, and it supports the composition of advice that is remote from the advised joinpoint. An overall goal of the work is to effectively combine reflective middleware and AOP in a way that maximises the benefits and minimises the drawbacks of each.
|Item Type:||Conference or Workshop Item (Paper)|
|Journal or Publication Title:||ARM '07: The 6th international workshop on Adaptive and reflective middleware|
|Uncontrolled Keywords:||cs_eprint_id ; 1691 cs_uid ; 361|
|Subjects:||Q Science > QA Mathematics > QA75 Electronic computers. Computer science|
|Departments:||Faculty of Science and Technology > School of Computing & Communications|
|Deposited On:||12 Aug 2008 10:08|
|Last Modified:||25 Jan 2017 00:10|
Actions (login required)