larity abstractions attached to the
architectural aspects. A crosscutting interface is different from a
module interface in the sense that
the latter essentially provides services to other components. Crosscutting interfaces provide services
to the system, but also specify
when and how an aspect affects
other architectural components.
Contrary to interfaces in traditional architecture styles, they
flexibly determine which external
components and interfaces the
architectural aspect of a software
agent will be connected. With
this dependency inversion, crosscutting interfaces overcome the
problems associated with the
rigidness implicit in traditional
architectural styles (see Figure 1).
Each agent’s architectural aspect
can be more flexibly composed
with the agent kernel and with
any agent aspects depending on
the requirements of a specific
agent architecture.
(b) Tangling in a class representing an agent.
modularize with existing architectural abstractions. An
aspect-oriented architectural style brings to the software architects a new abstraction, the notion of architectural aspects, and new composition means for
handling each crosscutting agent concern as an individual component at an early stage of design, as illustrated in Figure 3a. Each architectural aspect
modularizes a typical crosscutting agent property and
separates it from the agent kernel. The “aspectization”
of agent architectures allows the association of agenthood properties with the basic functionality in a way
that is transparent to the agent kernel.
The key idea to enable adjustable compositions is
the notion of crosscutting interfaces, which are modu-
Each of the architectural aspects is
related to more
than one component, representing
the crosscutting
nature of agent properties in complex architectures. An agent’s
architectural aspect can realize
more than one crosscutting interface since it can crosscut multiple
agent components in different
ways. The interface of an architectural aspect can crosscut the Kernel component and other
architectural aspects. An aspect
interface crosscuts either the internals of an agent component or elements of other interfaces. The first case means the
architectural aspect affects the internal structure or
dynamic behavior of an agent component. The second
case means the aspect affects elements of an interface.
Instances of aspect-oriented agent architectures are
illustrated for a user agent (see Figure 3a) and an information agent (see Figure 3b). Extensions of UML are
used to represent the architectural aspects (compo-
Figure 2.
Heterogeneous
agent architectures:
Crosscutting the
life-cycle artifacts.