[aspectc-user] Re: Information needed regarding AOP
Olaf Spinczyk
olaf at ivs.cs.uni-magdeburg.de
Fri Jan 25 11:40:09 CET 2002
Hi,
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.
Regards
Olaf
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