Information Technology Reference
In-Depth Information
list behavior, respectively. The authorization aspect contains one advice map and
one pointcut map. For the waiting list aspect, two advice maps and two pointcut
maps are defined. The plug-in bindings are indicated by arrows. The authoriza-
tion aspect adds an authorization check ( checkAuthorization ) before any respon-
sibility in the Reservation component, while the waiting list aspect adds failed
reservations to a waiting list ( addToWaitingList ) or tries to fulfill a reservation
from the waiting list if a cancellation occurs ( tryReservationsFromWaitingList ).
The pointcut map for authorization matches any access to the Reservation
component. Therefore, the responsibility in the authorization pointcut map is
matched against makeReservation and cancelReservation in the base maps. Note
that it is irrelevant for the match that the make reservation map contains two
end points and the cancel reservation map only one because the end points (as
well as the start points and the OR-fork) are not matched. The pointcut map
requires only the responsibilities to be matched.
The pointcut maps for the waiting list match the makeReservation respon-
sibility with the makeReservation responsibility in the base maps, the OR-fork
including conditions with the OR-fork and conditions in the base maps, and the
cancelReservation responsibility with the cancelReservation responsibility in the
base maps.
3.6
URN Metamodel and Aspects
For the purpose of this paper, we are focusing on a subset of the UCM portion
of the URN metamodel (Fig. 15) [33, 38]. A UCMmap consists of component
references ( ComponentRef )and PathNodes , reflecting structure and behavior,
respectively. Components may contain other components as well as path nodes.
There are a great number of different kinds of path nodes but only the Stub is
of greater interest with regard to aspects. Stubs may contain plug-in maps and
PluginBinding specifies how a stub and a plug-in map are connected.
In order to accommodate the new concepts introduced by aspects, the URN
metamodel needs to be extended. The new concepts are advice map, pointcut
map, pointcut stub, and joinpoint. UCMadviceMap and UCMpointcutMap spe-
cialize the UCMmap class whereas PointcutStub and AspectStub specialize the
Stub class. Joinpoint is a new class associated with PathNode since each path
node can be a joinpoint. To be exact, this is not true for path nodes such as di-
rection arrows which only serve as visual aids. Therefore, the association between
PathNode and Joinpoint is optional (0..1).
The association between PathNode and Joinpoint indicates an additional rela-
tionship, showing that path nodes on pointcut maps are matched against join-
points in the base model. Note that Joinpoint instances and their associations
are created only at run time and are therefore not part of a URN source model.
Finally, the AspectStub is required for visualizing the composed system (see
Sect. 4.2) and there is an association between aspects to capture any precedence
relationships. This is required for conflict resolution of aspects trying to insert
behavior at the same insertion point (see Sect. 4.4).
 
Search WWH ::




Custom Search