Overview : Overview

Overview
A Process-Oriented Aspect (POA) alters the execution of a process by injecting Advices, which are user defined code, in specific points of the process called Join Points. The selection of the Join Points is made based on expressions called Point Cuts.
An Aspect is the collection of Point Cuts and Advices. Aspects implement features that cut across different layers of a BW application (i.e. across different BW processes). One of the key characteristics of the POA style programming is that these features can be developed, packaged and deployed independent of BW Applications. This provides a very flexible model and allows a different user, the Aspect Developer to develop business logic that can alter post design-time, the behavior of a BW application.
Figure 1 ActiveMatrix BusinessWorks ActiveAspects Behavior
Aspects are packaged in Aspect Libraries, which are JAR files. These are different from the JAR files that contain Advice Implementations. These JAR files must be available in the aspect path in order to allow the aspects to be loaded by the BW engine. The aspect injection process happens at run-time through a process called In-Memory XML Weaving.
If the Aspect Libraries are not available in the aspectPath, the BW engine executes the BW application as is (i.e. without altering the behavior defined by the ActiveMatrix BusinessWorks developer). ActiveMatrix BusinessWorks provides a platform for developing both ActiveMatrix BusinessWorks applications as well as process-oriented aspects that can be injected in these applications.
Figure 2 ActiveMatrix BusinessWorks ActiveAspects Plug-in Process
Roles and Responsibilities
Application Developer
This developer of an TIBCO ActiveMatrix BusinessWorks application creates processes and generated an EAR file for deployment. The application developer is aware of the potential injection of POAs but is not responsible for developing them.
Advice Implementation Developer
This developer develops the Java code that gets injected into the TIBCO ActiveMatrix BusinessWorks processes via the POAs. In general, this developer may have very little information about the ActiveMatrix BusinessWorks application where the aspects are injected. This user's responsibility is to create a robust piece of code that addresses a crosscutting concern for the TIBCO ActiveMatrix BusinessWorks application.
Aspect Developer
This developer creates the aspects that are applied to one or more TIBCO ActiveMatrix BusinessWorks applications. This user must have a deep knowledge about the TIBCO ActiveMatrix BusinessWorks application as well as the advices that are available, that can be injected in the TIBCO ActiveMatrix BusinessWorks application. In some organizations the Aspect Developer may also play the role of the Advice Implementation Developer. For simplicity, this document assumes that there is only one user, the Aspect Developer, who plays both roles.
Deployment Architect
Deploys both a TIBCO ActiveMatrix BusinessWorks application and its associated aspects.
Process Join Point
A Process Join Point is a well defined point in a process flow where a special event occurs. A special event could be the beginning of the execution of an activity or the end of the execution of an activity. By inserting advices in join points, a TIBCO ActiveMatrix BusinessWorks user can alter the execution of the process. Table 3 describes the join points supported by TIBCO BusinessWorks.
The advice executes after an activity either completes successfully or it throws an exception.