Knowledge
Adaptation
Behavior
Adaptation
Adaptation
Message
Reception
Services
Interaction
Message
Sending
Kernel
Protocol
Enforcement
Role
Binding
Decision
Autonomy
Execution
Autonomy
Autonomy
Collaboration
(a) Aspect-oriented architecture of a user agent.
Knowledge
Adaptation
Behavior
Adaptation
Information
Gathering
Adaptation
Learning
Message
Reception
Sensory
Services
Learning
Knowledge
Traveling
Interaction
Message
Sending
Mobility
Kernel
Protocol
Enforcement
Execution
Autonomy
Decision
Legend: Autonomy
aspectual component
component
crosscutting interface
normal interface
crosscuts
Proactive
Autonomy
Role
Binding
Autonomy
Collaboration
(b) Aspect-oriented architecture of an information agent.
agent roles (collaboration component) in order to make decisions.
Figure 3 shows that the aspect-oriented style easily supports both
architectural configurations. A partial architectural design is shown and
some non-aspectual components,
such as the ones for agent knowledge
representation and message assembling, are left out for simplicity purposes. In the first case (Figure 3a),
the autonomy aspect does not have
an interface for enabling proactive
behavior. It has two crosscutting
interfaces that affect the kernel and
interaction components. In the second case (Figure 3b), the autonomy
component includes a third crosscutting interface that supports the
observation of the agent kernel and
the collaboration component in
order to trigger the proactive behavior of the information agent. The
architectures have other important
differences in their configurations
and compositions. For example, the
architecture of the information
agent also includes the mobility and
learning aspects and a third interface
to enable sensory behavior. Moreover, the adaptation aspect crosscuts
the sensory interface in order to
adapt as new environmentally relevant events are sensed by the agent.
nents with diamonds on their top), crosscutting relationships (dotted arrow), and crosscutting interfaces
(small diamonds). Their partial non-aspect-oriented
detailed designs were represented in Figure 2a. The
user agent is prominently reactive, while the information agent is a proactive entity. As a result, their architectures are very different. For example, the
component in charge of implementing the
autonomous behavior has different interfaces and relationships with each component in the agent architecture. Reactive agents make decisions only as a matter
of deciding about external requests embedded in
incoming messages. Proactive agents also need to
inspect changes in their internal state and decide for
starting new actions by their own initiative independently from requests from other agents and system
users. In other words, the autonomy component also
needs to observe events in the agent kernel and in the
WHAT ARE OTHER BENEFITS?
The benefits of having new architectural design rules entailed by an
aspect-oriented style are not limited to improved composability of
agent architecture concerns. We
have noticed a number of other positive consequences such as the ones discussed here.
Figure 3. Aspectizing
heterogeneous
agent architectures:
Enabling flexible
composition.
Modular Reasoning at the Architectural Level.
The aspectization of agent architectures supports
modular reasoning, since the architects are able to
more independently treat each agenthood property.
Different from other architectural styles, the agent
concerns are modularized and do not affect the definitions and interfaces of multiple architectural modules.
The notion of crosscutting interfaces allows addressing
tangling- and scattering-related problems typically
found in the definition of heterogeneous agent architectures. As a result, software architects are able to