• No results found

Roles in Adaptive Software Systems

2. State of the Art

2.3. Roles in Adaptive Software Systems

The concept of roles has already been applied to the design and implementation of self- adaptive software systems or software systems in general. However, existing approaches only cover certain aspects of the Role concept, e.g., their collaborative and behavioral nature (MACODO), their contextual and behavioral nature (HELENA) or mainly their collaborative nature as in the field of Multi-Agent Systems. This section investigates

2.3. Roles in Adaptive Software Systems the utilization of the Role concept in the existing research body and compares the exist- ing notions of roles with our understanding of the concept, highlighting differences and similarities.

2.3.1. MACODO [17]

A large software system is often comprised of many smaller subsystems that exchange information amongst each other to perform their assigned tasks. Specific names are often assigned to these subsystems, e.g., Message Broker, Provider, Booking System etc. These names are basically Roles the respective subsystem plays in the overall system and, most importantly, in relation to other subsystems with respect to their mutual interaction. The respective responsibilities and “Roles” of interacting subsystems named Provider, Message Broker and Receiver are intuitively understandable.

Modeling these collaborations between subsystems on an architectural level, however, is a challenging task that the MACODO approach tackles. The approach aims to make the collaborations among subsystems explicit on an architectural level to better capture the system behavior that is a result of these collaborations. Therefore, MACODO pro- poses different architectural views to capture the collaborative system behavior utilizing the notion of Roles to describe responsibilities of subsystems and the interactions be- tween them. The Collaboration & Actor View models the actors (i.e., Players) in the system and the concrete collaborations between the actors. This view describes the run- time architecture of a system in terms of actors as well as the collaborations between them and assigns responsibilities to actors omitting unnecessary information about the details of the collaboration. The Collaboration View models collaborations into reusable units and decomposes them into reusable subunits. This view describes collaborations in terms of implementation units and captures the type of collaborations, roles, behav- iors and interactions. The Role & Interaction View models the run-time architecture of collaborations in detail.

The notion of the Role concept in MACODO is organization-centric [9] because roles are treated mainly as named places with players implementing the role-specific behavior through the adoption of the interface demanded by the role of the collaboration. In MA- CODO, the system behavior varies within the collaboration, i.e., the exchanging actors participating in a collaboration can alter the overall system’s behavior. This variability, especially at run time, however, has not been closely investigated in MACODO since the approach focuses on the architecture of collaborative software systems at design time.

In summary, MACODO provides an interesting approach to capture collaborations in large and distributed software systems, but omits run-time aspects of behavioral adapta-

Agent Role Interaction * handles * contains * * is member *

Figure 2.6.: General role model used in multi-agent-systems.

tions. Our approach, in contrast, focuses on the utilization of the Role concept to foster reliable run-time adaptations of highly distributed and interconnected software systems.

2.3.2. HELENA [24, 19]

The HELENA approach originally proposed a holistic engineering process for self-adaptive software systems using the notion of Roles to improve the modeling of standard and dy- namic system behavior. HELENA follows an extreme player-centric [9] approach, which means that players are without specific behaviors of their own but serve as mere con- tainers for the roles they are playing to exchange data. Any dynamic system behavior is implemented in the role, thus, the behavior of a player changes depending on the set of roles it currently plays. One of the major contributions of the approach is the descrip- tion of run-time adaptations using formal methods to ensure system properties such as correctness, i.e., if adaptations will result in consistent and valid system configurations.

In summary, HELENA mainly focuses on the design of self-adaptive software systems using the notion of Roles to abstract from standard and dynamic system behavior. A formal method was presented to describe changes in the software system and to rea- son about these changes, but concrete solutions how adaptations are performed at run time that ensure a consistent transition from the system’s source to its intended target configuration are missing.

2.3.3. Roles in Multi-Agent-Systems

Due to the large variety of Multi-Agent-Systems (MAS) and their diverse fields of appli- cability, we focus on the commonalities among several approaches with respect to their utilization and application of the Role concept. In Figure 2.6, a generalized role model applicable to many multi-agent-systems is depicted. Using an organization-centric [9] notion of roles is common in MAS as it is used in [12, 3, 4], for example. Agents com- municate or collaborate through a defined interface that denotes their responsibilities (e.g., role) in the collaboration. A collaboration is generally not limited to a one-to-one

2.4. Perform Run-Time Adaptations