Copyright © TIBCO Software Inc. All Rights Reserved
Copyright © TIBCO Software Inc. All Rights Reserved


Chapter 1 Overview : Overview

Overview
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.
Figure 1 TIBCO 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 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.
Figure 2 TIBCO ActiveMatrix BusinessWorks ActiveAspects Plug-in Process
Roles and Responsibilities
Application Developer
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.
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 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.
Aspect Developer
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.
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 ActiveMatrix BusinessWorks.
The advice executes after an activity either completes successfully or it throws an exception.

Copyright © TIBCO Software Inc. All Rights Reserved
Copyright © TIBCO Software Inc. All Rights Reserved