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