outset modular agent architectures in order to cope with these heterogeneity issues.

 

SHORTCOMINGS OF CLASSICAL AGENT ARCHITECTURES

Agent-oriented software engineering has been studied from different perspectives, including agent-oriented methodologies and languages for higher-level development phases, conceptual modeling, and implementation frameworks [ 2, 3]. Although sepa- Architectural Problem ration of concerns is widely recog- Architectural nized as crucial to the development scattering of maintainable multi-agent soft- Architectural ware [ 5, 6, 12], existing approaches tangling do not scale up to support the separation of agent properties in heterogeneous architectures.

Developers must rely on traditional
architectural patterns, such as the High architectural
coupling and low

Mediator pattern [ 4] and the Lay- cohesion ers pattern [ 4], in order to build their systems. As illustrated in Figure 1, these solutions define architectural abstractions, such as mediators and layers, and composition rules to support the isolation of agent concerns and their further composition.

However, these solutions impose
rigid connections on the architec-
tural components, which make the
construction of heterogeneous agent Limited evolvability
and maintainability

types difficult and not scalable to cope with the complexity of multiple interactive agent concerns. These existing architectural proposals are applicable to simple agent architec- Shortcomings of tures and with few agenthood prop- existing architectural erties. The constraints on the styles. composition rules imposed by those solutions do not scale up to master the intrinsic crosscutting character of agent properties in heterogeneous contexts. Figure 1 illustrates this problem in terms of a layered agent architecture (Figure 1a) and a mediator-based agent architecture (Figure 1b), represented with a simplified UML notation.

The layered architecture imposes a bidirectional communication only between adjacent layers; that is, the architectural components of a software agent. In order to make proper internal decisions and adapt the agent knowledge accordingly, the autonomy and adaptation components must be aware of received messages and external stimulus coming from the surrounding

environment. As illustrated in Figure 1a, this requirement forces the software architects to add interaction-related interfaces into the other layers so that the autonomy and adaptation components have access to the perceived stimulus and messages. As a result, the interaction concern (represented in blue) crosscuts the modularity of the kernel and adaptation components.

The situation is not different in the mediator-based

 

Description

The occurrence of architectural elements, such as interfaces, that belong to one agent concern in architectural components encapsulating other agent concerns. For example, the interaction-related interfaces are scattered over the agent architectures in Figure 1.

The mix of multiple agent concerns together in the same module. For instance, tangling is evident in the agent kernel of Figures 1a and 1b as both are implementing interfaces associated with different agent concerns.

Hindering of The inability of the architect being able to reason and make decisions about an agent
modular architecture’s module while looking only at its functionality and its interfaces. For
reasoning example, the architects treating the collaboration and interaction concerns in Figure 1a
need to consult the definitions and interfaces of other modules, leading to an
expanded or global reasoning rather than a modular reasoning.

The presence of an overly strong connection between architecture components (high coupling), and the lack of closeness between the internal functionalities and interfaces of a specific component (low cohesion). In Figure 1b, for example, the system coupling is increased, and the cohesion of each component (for example, the Kernel) is decreased.

The evidence of complexity increase in the component interfaces. For example, the number of interfaces of several components in Figures 1a and 1b is augmented due to the crosscutting nature of the interaction concern.

The inability of directly mapping in the architecture description the separation of agent concerns achieved in the requirements description. For example, the mobility-specific requirement cannot be directly traced to the Mobility component (Figure 1b) as it also affects the boundaries of the Kernel component.

Poor modularization The incapacity of the architectural decisions and rationale associated with one agent of design decisions concern being documented in a localized manner. The rationale and design decisions and rationale related to the interaction concern are typically tangled and scattered over the architecture artifacts in the same way as interaction-specific interfaces and functionalities.

Inflexible design The rigidness in the composition rules to support alternative compositions between agent components in order to smoothly produce heterogeneous architectures. This inflexibility is visible both in the mediator and layered solutions.

The adversities associated with including, changing, or removing the design elements associated with an agent crosscutting concern as they crosscut several architectural components. For instance, this problem would occur recurrently in changing or replacing the collaboration and interaction components in Figure 1a. In fact, in a previous study [ 6] we have observed a poor stability of a typical mediator-based agent architecture implementation in the presence of maintenance and evolution scenarios.

Architectural interface bloat

Poor traceability from requirements to architecture

solution. This architectural style requires all the inter-component communications being intermediated by a central component, which is also in charge of encapsulating the agent’s basic functionality. As illustrated in Figure 1b, this architectural approach also fails to isolate the interaction concern and leads to the intermingling of the agent kernel functionality and the message-processing functionality. Note that a similar problem occurs with the mobility concern as the communication with the autonomy component needs to be settled by the agent kernel. Hence, the inability of traditional architectural styles and respective composition rules in capturing the crosscutting feature of agent concerns in heterogeneous architectures leads to several negative consequences, such as architectural tangling and bloated interfaces, which are described in detail in the table here.

References:

Archives