The service and the pointcut editor can be downloaded from here.
A CPN model for the Aspect Oriented Service developed during this project can be download from here.
The Aspect Service is designed to deal with any number of advices. The verication is complicated due to the numerous aspects/advices and their possible combinations that may be triggered for an activity. It is not realistic to go through each of the possible situations.
Instead, we divide all the possible situations into four groups, and dene four abstract types to characterise them. These are:
- Type 1: no advices are triggered for an activity
- Type 2: at least one implicit advice and no explicit advices are triggered for an activity
- Type 3: at least one explicit advice and no implicit advices are triggered for an activity
- Type 4: at least one implicit advice and at least one explicit advice are triggered for an activity
Note that as to Type 3 and Type 4 above, we do not distinguish between the variations `before’,`after’, and `around’ that apply to an explicit advice. The reason is that the sequence of message exchanges between the Aspect Service and a WfMS is the same independently of where the Proceed placeholder (determining the `before’, `after’, `around’ behaviour) is positioned in an advice.
We assume that all advices are independent of each other, i.e. there is neither interference nor data dependency between any two advices. Hence, it is valid to scope the verication within a set of four scenarios which are simple but representative examples of the above four types of situations. These are:
- Scenario A: no advice is triggered for an activity (i.e. an advised join point)
- Scenario B: one implicit but no explicit advice is triggered for an activity
- Scenario C: one explicit but no implicit advice is triggered for an activity
- Scenario D: one implicit and one explicit advices are triggered for an activity.
The following figure shows graphical descriptions of these four scenarios and the necessary steps performed for aspect weaving.
|Scenario A||Scenario B|
|Scenario C||Scenario D|