[aspectc-user] Re: Information needed regarding AOP

Olaf Spinczyk olaf at ivs.cs.uni-magdeburg.de
Fri Jan 25 11:40:09 CET 2002


I was asked the following question:

On Friday, 25. January 2002 10:09, you wrote:
> What type of concerns can be addressed using AOP ? Can Application
> Monitoring be considered as an aspect ?. I believe using reflective
> techniques (from which AOP has evolved) its possible for us to monitor
> application object states and interactions between objects. If that is
> feasible in AspectC++, what will be the impact on the application's
> performance?

Application monitoring is a cercern that can be implemented with AspectC++ 
(and other aspect-oriented languages) very well. We use AspectC++ in our 
operating system code to gather performance data or trace the control flow by 
printing messages. AspectC++ allows to implement these aspects in a modular 
way. This means that a single aspect definition, which looks very much like a 
class definition, is sufficient for this purpose. If you combine aspects with 
static configuration, e.g. with an "#ifdef/#endif" around the aspect, you can 
easily switch monitoring on and off.

AspectC++ is implemented as a code transformation system. It changes the code 
only at places (called "join points"), where it is needed to implement the 
aspect. For instance, if you want to monitor the execution of a specific 
method, only this method is touched. There is no general overhead.

Aspects can also access regular objects. So you can monitor the behavior of 
your system and implement a feedback.

I hope this answer helps you. If you are interested in AOP in general as 
well, you should visit www.aosd.net.



PS: I have just added the draft version of our paper "Program Instrumentation 
for Debugging and Monitoring with AspectC++", which has been accepted for 
ISORC 2002, to the list of publications at www.aspect.org/download.

More information about the aspectc-user mailing list