Peter> Hmm.... maybe I need to clarify what I mean by "real-world".
Peter>
Peter> To mean, the term means something like "drawn from actual,
Peter> working code in real projects implemented to achieve useful,
Peter> practical results", as opposed to what, so far, pretty much
Peter> everyone who proposes examples seems to think, which is more
Peter> like "potentially interesting theoretical ideas which sound
Peter> kinda cool"...
Peter>
Peter> Has anyone used AOP in a real project, which wasn't a project
Peter> just to demonstrate AOP? For anything other than the logging
Peter> example? If so, what was the specific value provided by AOP,
Peter> and can you post a snippet or two of code which demonstrates the
Peter> cleaner structure provided by the clear separation of concerns
Peter> which you believe comes from AOP practices? And thank you.
Perhaps you would be interested in IBM's recent paper, which was presented at
the AOSD 2004 conference:
Adrian Colyer and Andrew Clement. ``Large-Scale AOSD for Middleware.''
In Proceedings of the 3rd International Conference on Aspect-Oriented
Software Development, Lancaster, UK, March 2004, pages 56--65.
<
http://doi.acm.org/10.1145/976270.976279>
ABSTRACT
For a variety of reasons, today's middleware systems are highly
complex. This complexity surfaces internally in the middleware
construction, and externally in the programming models supported and
features offered. We believed that aspect-orientation could help with
these problems, and undertook a case study based on members of an IBM
middleware product-line. We also wanted to know whether
aspect-oriented techniques could scale to commercial project sizes with
tens of thousands of classes, many millions of lines of code, hundreds
of developers, and sophisticated build systems. This paper describes
the motivation for our research, the challenges involved, and key
lessons that we learnt in refactoring both homogeneous and
heterogeneous crosscutting concerns in the middleware.
Now you might discount this as primarily being "a project just to demonstrate
AOP," but I think that that would be unfair. Certainly a goal of the case
study was to evaluate AOP, but it was definitely in the context of a specific
and "real-world" task. I hope you enjoy it!
For more pointers to real-world uses of AOP/AOSD, I'd suggest asking around in
the AOSD discussion mailing lists hosted at <
http://aosd.net/>. I don't have a
catalog of commercial uses handy, but the folks on the list are friendly
.
Eric.