Ted Leung on the air
Ted Leung on the air: Open Source, Java, Python, and ...
Ted Leung on the air: Open Source, Java, Python, and ...
Sun, 08 Jun 2003
Code generation a replacement for AOP?
Craig Andera and
Clemens Vasters are writing about some of the problems that they see with AOP. Most of this boils down to the observation that many services are not orthogonal. This in turn leads to problems because one service must be invoked before another service, which means that the order in which aspects are executed matters.
That's where they agree. After that, they diverge. Clemens thinks that we have to learn to deal with these issues because the web services world is a pipeline of services. This is especially true in a GXA based view of the world. The mechanism for weaving aspects is not the hard problem, its making those aspects work together when they aren't supposed to know anything about each other. His solution to this is to apply transaction management techniques and turn each aspect into a very light weight semi-transactional resource manager.
Craig is down on AOP because services are not generally orthogonal, but his argument is weakened by relying on the fact that COM+ services are not orthogonal. He is giving up on AOP (at least an interception or attribute based form) and saying that we just have to write the code by hand since we have to baby sit all the interactions between the aspects/services. That leaves the problem of too much typing, which he proposes to solve using code generation. At this point, you already know what I'm going to say... Macros are a good way to solve the code generation problem without resorting to a separate tool.
There's a lot tangled up in here, a lot of it stems from trying to figure out how to use AOP to solve problems in existing systems. It's nice to see people from the .NET side of the world making contributions to clarify what AOP is all about. At the same time, we shouldn't be limiting the applicability of AOP because COM+ is broken. In the Java world, we have people busily reimplementing service frameworks to allow for use in AOP settings. The JBoss AOP stuff comes first to mind, but they aren't the only ones. We're still in the experimental phases of AOP, clarification, not codification should be the focus.
[12:44] |
[computers/programming] |
# |
TB |
F |
G |
2 Comments |
"because COM+ is broken." ... I deeply disagree with that half sentence.
Posted by Clemens Vasters at Mon Jun 9 15:03:23 2003
Posted by Clemens Vasters at Mon Jun 9 15:03:23 2003
I'm just repeating what Craig and Tim were saying about COM+. See Craig's post, about half way down.
Is what Tim is claiming true, that turning off some services in COM+ requires turning off others (which ought to be orthogonal)?
Posted by Ted Leung at Mon Jun 9 15:12:04 2003
Is what Tim is claiming true, that turning off some services in COM+ requires turning off others (which ought to be orthogonal)?
Posted by Ted Leung at Mon Jun 9 15:12:04 2003
You can subscribe to an RSS feed of the comments for this blog:
Add a comment here:
You can use some HTML tags in the comment text:
To insert a URI, just type it -- no need to write an anchor tag.
Allowable html tags are:
You can also use some Wiki style:
URI => [uri title]
<em> => _emphasized text_
<b> => *bold text*
Ordered list => consecutive lines starting spaces and an asterisk
To insert a URI, just type it -- no need to write an anchor tag.
Allowable html tags are:
<a href>
, <em>
, <i>
, <b>
, <blockquote>
, <br/>
, <p>
, <code>
, <pre>
, <cite>
, <sub>
and <sup>
.You can also use some Wiki style:
URI => [uri title]
<em> => _emphasized text_
<b> => *bold text*
Ordered list => consecutive lines starting spaces and an asterisk