InfoQ

Interview

Adrian Colyer on Domain Specific Aspects

Interview with Adrian Colyer on Apr 09, 2007 06:00 PM

Community
Java
Topics
AOP
Tags
Spring,
AspectJ
Summary
AspectJ lead and AOP expert Adrian Colyer briefly talks about Domain Specific Aspects, where business rules and policies and can map to an aspect like solution. Adrian also discusses using AOP to implement design patterns such as Observer/Observable, and AOP adoption.

Bio
Adrian Colyer is the leader of the AspectJ project and a well-known industry expert on AOP. He is a co-author of the book "Eclipse AspectJ : AOP in Eclipse with AspectJ and AJDT," and has also published numerous book chapters, articles and published papers. Adrian is Chief Scientist at Interface21, providers of the Spring Framework.
Can you tell us a bit about yourself and what you're involved in?
Where are we now in the option cycle for Aspects?
What kind of requirements can map to domain specific aspects?
Can you talk more about the e-commerce example? How are the Aspects used for pricing and what objects could they be intercepting?
What about using Aspects for complex event processing? Could Aspects replace the Observer/Observable pattern?
You've moved to Interface21, the company that puts out Spring. What are you doing there and how does that impact on your role in the Aspect world?
show all  show all

5 comments

Reply

Using domain aspects by Rickard Öberg Posted Apr 10, 2007 4:41 AM
Re: Using domain aspects by Floyd Marinescu Posted Apr 10, 2007 11:34 AM
Re: Using domain aspects by Rickard Öberg Posted Apr 12, 2007 10:08 AM
When was the interview? by Twice Tshwenyane Posted Apr 12, 2007 7:55 AM
Re: When was the interview? by Floyd Marinescu Posted Apr 12, 2007 9:34 AM
  1. Back to top

    Using domain aspects

    Apr 10, 2007 4:41 AM by Rickard Öberg

    Great interview, and it's good to hear that there is more discussion around domain aspects. We've been using AOP and domain aspects since 2002, and have nothing but good experiences with it. Also, I must say that doing the opposite of what Adrian talks about, i.e. plunging into using AOP all-out instead of just using the "simple" parts, allowed us to exploit the advantages of it more fully, and in a less schizofrenic way. So there are certainly benefits to going "all in". But, at the same time it *IS* important to consider if a team have the skillz and experience needed to do so. With great advantages comes great risk, so it's (as usual) a tradeoff.

  2. Back to top

    Re: Using domain aspects

    Apr 10, 2007 11:34 AM by Floyd Marinescu

    Rickard, Adrian mentioned business policies that apply in a number of places as an example use of Aspects for domain logic. What were some of yours?

  3. Back to top

    When was the interview?

    Apr 12, 2007 7:55 AM by Twice Tshwenyane

    When was this interview carried out? Most of the things in the last paragraph seem dated.

  4. Back to top

    Re: When was the interview?

    Apr 12, 2007 9:34 AM by Floyd Marinescu

    It was about a year ago, we tried to edit out anything dated, sorry if we missed anything.

  5. Back to top

    Re: Using domain aspects

    Apr 12, 2007 10:08 AM by Rickard Öberg

    The majority of our interceptor aspects apply only to one "place" (=mixin), BUT the vast majority if mixins are reused in a number of places, which means that the interceptor aspects are then consequently ALSO reused in many objects. E.g. if I add a child to a container there's an interceptor which ensures that the child->container is properly set. The interceptor applies to only one place (=the Container.addChild method), but the Container mixin applies to some twenty places in our domain model. This allows for highly focused and specific aspects which are still highly reusable, when combined with mixins. So the interceptors are usually very specific in terms of methods that they apply to, but those methods/mixins can then be reused quite a lot in a number of different classes. The way I think about aspects changed quite a bit when I started using mixins in our domain model extensively, since as in the above case it allows the interceptor aspects to be very specific to a particular mixin, but the mixins are usually highly reusable.

Exclusive Content

Rob Windsor on WCF with REST, JSON and RSS

WCF is not just for SOAP based services and can be used with popular protocols like RSS, REST and JSON. Join Rob Windsor as he introduces WCF 3.5 and its new native support for non-SOAP services.

Christophe Coenraets Discusses Flex 3, AIR, and BlazeDS

Christophe Coenraets discusses Flex 3, Flex Builder, AIR, BlazeDS, Adobe and open source, integrating Flex with existing applications, and integrating RIAs with search engines and browsers.

Debunking Common Refactoring Misconceptions

Danijel Arsenovski attempts to dispel some of the myths around refactoring and how it applies to .NET developers.

REST Eye for the SOA Guy

In this presentation, recorded at QCon San Francisco, CORBA guru Steve Vinoski explains REST from the view of someone who comes to SOA from a traditional, RPC-oriented background.

Choose Feature Teams over Component Teams for Agility

Feature teams are key to scaling agility for large teams. In an excerpt from "Scaling Lean and Agile Development," Larman & Vodde show how feature teams resolve traditional problems & raise new issues

Billy Newport explains Virtualization

Billy Newport talks about virtualization, eXtreme Transaction Processing (XTP) and WebSphere Virtual Enterprise. He discusses hardware, hypervisor, JVM, application and data virtualization.

Virtualization and Security

While virtualization provides many benefits, security can not be a forgotten concept in its application.

Introduction to Agile for Traditional Project Managers

This session is specifically aimed at traditionally trained project managers who are new to Agile, and who would like to be able to relate the PMI's best practices to their Agile equivalents.