A Process-Oriented Aspect (POA) alters the execution of a process by injecting Advices, which are user defined code, at specific points of the process called
Join Points. The selection of the Join Points is made based on the 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 (that is, 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 TIBCO ActiveMatrix BusinessWorks applications. This provides a flexible model and allows a different user, that is, the Aspect Developer to develop business logic that can alter post design-time, the behavior of a TIBCO ActiveMatrix BusinessWorks application.
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 TIBCO ActiveMatrix BusinessWorks 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 ActiveMatrix BusinessWorks engine executes the ActiveMatrix BusinessWorks application as is (that is, without altering the behavior defined by the TIBCO ActiveMatrix BusinessWorks developer). TIBCO ActiveMatrix BusinessWorks provides a platform for developing both TIBCO ActiveMatrix BusinessWorks applications as well as process-oriented aspects that can be injected in these applications.
This developer of an TIBCO ActiveMatrix BusinessWorks application creates processes and generates an EAR file for deployment. The application developer is aware of the potential injection of POAs but is not responsible for developing them.
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 TIBCO ActiveMatrix BusinessWorks application where the aspects are injected. This user's responsibility is to create a robust piece of code that addresses a cross-cutting concern for the TIBCO ActiveMatrix BusinessWorks application.
This developer creates the aspects that are applied to one or more TIBCO ActiveMatrix BusinessWorks applications. An extensive knowledge about the TIBCO ActiveMatrix BusinessWorks application as well as the available advices is required. These advices 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.
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 ActiveMatrix BusinessWorks.