[aosd-discuss] AOP languages mature enough to used in industry
Michael Haupt
michael.haupt at hpi.uni-potsdam.de
Fri May 18 09:16:11 EDT 2007
Hi Dean,
Am 18.05.2007 um 14:23 schrieb Dean Wampler:
> Unless I'm mistaken, Spring supports the AspectJ pointcut language
> for specifying where to apply advice/proxies as well as its
> original syntax that is more like "apply an advice-like proxy to
> this single class".
right. I was referring to the older versions of Spring AOP that
didn't yet support AspectJ pointcuts, and also to similar interface
mapping-based approaches like AspectS and COP in its various
instantiations.
> My real point about the pointcut language (excuse the pun... ;) is
> that a strong pointcut language is essential for AOP because we
> need the ability the specify a complex collection of join points,
> including various static and dynamic conditional constructs, in
> order to have a truly modular system. That is, if AOP allows me to
> modularize a concern, I need the ability to specify this in a very
> succinct way in a single module. Apply advice is the easy part,
> even in java, where there are plenty of good byte-code manipulation
> libraries.
Pun excused. :-)
I also like to reason about aspects (and look-alikes) from a
modularity-oriented point of view. After all, aspects are modules,
aren't they?
But if they are, then what makes them so special that they are
allowed to dishonour other modules' privacy by being invasive about
their specification of interaction with other modules?
(Continued below.)
> Of course, this is the low-level stuff. We also need good
> constructs for modular specification of concerns at higher levels
> of abstraction.
If you are saying that pointcut languages, seen the way they are
approached mostly today, are actually low-level stuff, then I'm with
you. All this reasoning in terms of field access here, method call
there, ... *is* low-level. Stateful aspects, tracematches,
annotations, the full model Alpha supports... that's much more like it.
Reasoning about module interactions in terms of modules looks much
more digestible to me than doing it in terms of module intestines, so
to speak. Every single module knows about its intestines, and that's
good; but it should also be enough. So if there is something in
module X that another module should react to, then X should know how
to say this. XPIs seem like a good idea in this regard.
Best,
Michael
--
Dr.-Ing. Michael Haupt michael.haupt at hpi.uni-potsdam.de
Software Architecture Group Phone: ++49 (0) 331-5509-542
Hasso Plattner Institute for Fax: ++49 (0) 331-5509-229
Software Systems Engineering http://www.swa.hpi.uni-potsdam.de/
Prof.-Dr.-Helmert-Str. 2-3, D-14482 Potsdam, Germany
Hasso-Plattner-Institut für Softwaresystemtechnik GmbH, Potsdam
Amtsgericht Potsdam, HRB 12184
Geschäftsführung: Prof. Dr. Christoph Meinel
More information about the discuss
mailing list