Section 16.1. JAC FRAMEWORK AND PROGRAMMING MODEL


16.1. JAC FRAMEWORK AND PROGRAMMING MODEL

The JAC framework is based on the notion of containers. Much like in other component frameworks (e.g., EJB [29]), a container is a host for software entities. JAC containers host both a "business" component and non-functional "aspect" component. As we discuss in Section 16.4, when working with a centralized environment, the container is simply a customized Java classloader that performs bytecode adaptations to glue the business and aspect components together. Whenever a distribution concern appears in the application, these containers become remotely accessible (either with RMI or CORBA).

16.1.1. Programming Model

JAC identifies three different roles in the development of an aspect-oriented application:

Application programmer. This role is concerned with the core business of the application. The application programmer implements the software entities coming from the functional decomposition of the problem.

Aspect programmer. This role is concerned with the implementation of non-functional services. Up to this stage, these services are independent from the ones defined by application programmers.

Software integrator. This role puts application and aspect code together. Two important tasks under the responsibility of this role are pointcut definitions and aspect composition.

For these three roles, the programming model of JAC provides the following software artifacts:

Base program. This is the set of Java objects that implements the core functionalities of applications. These are regular Java objects. This set of objects is self-sufficient and can be run on a JVM without any aspects.

Aspect components. These components implement non-functional concerns to be woven on a base program. An aspect component defines a crosscut policy (i.e., the methods of the base program whose semantics are modified by the non-functional concern) and some aspect methods (advices in AspectJ) that define the semantic modifications. Aspect methods may wrap (execute before and/or after code), replace, or extend the semantics of a base method.



Aspect-Oriented Software Development
Aspect-Oriented Software Development with Use Cases
ISBN: 0321268881
EAN: 2147483647
Year: 2003
Pages: 307

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net