Aspect-Oriented Programming (AOP) is a great way for designing and programing the applications. It offers a better solution to many problems than do existing technologies such as EJB.
J2EE is a typical target environment (but not the only one) that could benefit from AOP Alliance. Indeed, J2EE environments partially solve some issues by providing means to handle technical issues such as persistence or transactions. However, the J2EE architecture is not flexible enough to easilly add new technical concerns related to particular needs. Moreover, it would be interesting to be able to remove one solution when not needed or when a ligther solution is preferable.
AOP provides a generic means to build new technical concerns (crosscutting concerns) and to plug them within an application in a flexible and modular way. Applying some AOP concepts in J2EE can also really simplify its use. For instance, regular Java objects (POJOs) can be used in place of EJBs. So, being able to easily apply full AOP to J2EE will greatly increase the usability of J2EE. It would also bring much more power to J2EE-compliant application servers.