Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

1 Introduction

ELDAMeth [7] is an agent-oriented methodology specifically designed for the simulation-based prototyping of distributed agent systems (DAS). It is centered on the ELDA (Event-driven Lightweight Distilled StateCharts Agent) model [9, 12] and on an iterative development process covering DAS Modeling, simulation, and implementation for a target agent platform (currently JADE [2]) and exploits specifically defined frameworks and CASE tools. In particular, the ELDA model is based on three main concepts which are important for enabling dynamic and distributed computation [15, 16]: (1) lightweight agent architecture and agent behaviors driven by events that trigger reactive and proactive computation; (2) agent interaction and cooperation based on multiple coordination spaces that are exploited by the agents at run-time; (3) coarse-grained strong mobility through which agents can migrate across agent locations by transparently retaining their execution state [6].

Moreover, ELDAMeth can be used either stand-alone, according to the ELDAMeth process reported in Fig. 1, or in conjunction/integration with other agent-oriented methodologies which support the analysis and (high-level) design phases.

Fig. 1
figure 1

The traditional ELDAMeth process

In particular, ELDAMeth has been integrated with Gaia [11], PASSI [4], and MCP [9] by using a process-driven method engineering approach [3]. Moreover, ELDAMeth (or previously defined models and frameworks that are now in ELDAMeth) was applied in different application domains: e-Commerce [4, 11], distributed information retrieval [79, 12, 14], content distribution networks [10], distributed data mining [5], and wireless sensor networks [1].

Useful references for ELDAMeth:

  • Fortino, G., Russo, W.: ELDAMeth: a methodology for simulation-based prototyping of DAS. Inform. Softw. Technol. 54, 608–624 (2012)

  • Fortino, G., Garro, A., Mascillaro, S., Russo, W.: Using event-driven light-weight DSC-based agents for MAS modeling. Int. J. Agent Orient. Softw. Eng. 4(2) (2010)

  • Fortino, G., Rango, F., Russo, W.: Engineering multi-agent systems through statecharts-based JADE agents and tools. Trans. Comput. Collect. Intell. LNCS 7270 VII, 61–81 (2012)

  • Fortino, G., Russo, W., Zimeo, E.: A statecharts-based software development process for mobile agents. Inform. Softw. Technol. 46(13), 907–921 (2004)

Useful references for ELDAMeth integrations and extensions:

  • Cossentino, M., Fortino, G., Garro, A., Mascillaro, S., Russo, W.: PASSIM: a simulation-based process for the development of multi-agent systems. Int. J. Agent Orient. Softw. Eng. 2(2), 132–170 (2008)

  • Fortino, G., Garro, A., Mascillaro, S., Russo, W.: A multi-coordination based process for the design of mobile agent interactions. In: Proceedings of IEEE Symposium on Intelligent Agents (2009)

  • Fortino, G., Garro, A., Russo, W.: An integrated approach for the development and validation of multi agent systems. Comput. Syst. Sci. Eng. 20(4), 94–107 (2005)

1.1 The ELDAMeth Process Lifecycle

ELDAMeth is based on the three phases of the iterative process model shown in Fig. 2:

  • The Modeling phase produces a specification of a Multi-Agent System (ELDA MAS) fully compliant with the ELDA MAS Meta-model [9] (see Sect. 1.2). Moreover, the platform-independent code of the ELDA MAS is generated in this phase.

  • The Simulation phase produces MAS execution traces and computes performance indices that are evaluated with respect to the functional and non-functional requirements of the MAS under-development. On the basis of such evaluation, if requirements are satisfied, the Implementation phase is carried out; otherwise, the Modeling phase is iterated.

  • The Implementation phase produces the ELDA-based MAS code targeting a specific platform. Currently the JADE platform is exploited [13].

1.2 The ELDA MAS Meta-Model

The MAS Meta-model [9] adopted by ELDAMeth is represented in Fig. 3. The definitions of the MAS Meta-model Elements (MMMElements) are reported in Table 1.

Fig. 2
figure 2

The ELDAMeth process phases (and iterations)

Fig. 3
figure 3

The ELDA MAS Meta-model

Table 1 Definitions of ELDA MAS Meta-model elements

2 Phases of the ELDAMeth Process

2.1 The Modeling Phase

The goal of the Modeling phase is to provide a detailed design of the MAS under-development in terms of a set of interconnected DSCs [14] representing agent behaviors and/or roles. Figure 4 presents the flow of activities of the Modeling phase. In particular, the two main activities are ELDA Modeling and ELDA Coding. Figure 5 shows the Modeling described in terms of activities, roles, and work products. The Modeling involves a process role and five work products. The Modeling is fully supported by ELDATool, a CASE tool specifically developed to automate modeling, validation and implementation of ELDA-based MAS.

Fig. 4
figure 4

The Modeling flow of activities

Fig. 5
figure 5

The Modeling phase described in terms of activities, roles, and work products

2.1.1 Process Roles

One role is involved in the Modeling: the Modeler.

2.1.1.1 Modeler

The Modeler produces a detailed design of the MAS under-development and generates a platform-independent code through the following activities:

  • ELDA Modeling: this activity allows the design of the MAS under-development, specifying agent behaviors and/or roles.

  • ELDA Coding: the objective of this activity is to generate a platform-independent code for the MAS under-development through ELDATool.

2.1.2 Activity Details

The ELDA Coding activity is an atomic activity that has no tasks and is usually carried out by the Modeler with support of the ELDATool that is able to automatically translate the models produced in the ELDA Modeling activity into platform-independent code according to the ELDA Framework [9]. Conversely, the ELDA Modeling activity has seven tasks described in the following.

2.1.2.1 ELDA Modeling Activity

The ELDA Modeling activity is a fundamental activity carried out by the Modeler that produces the behavioral and structural ELDA MAS design based on defined functional and non-functional requirements and on a high-level design model, both deriving from an external system analysis phase not included in ELDAMeth. This activity is composed of seven tasks as shown in Fig. 6; their description is reported in Table 2.

Fig. 6
figure 6

The flow of tasks of the ELDA Modeling activity

Table 2 Tasks of ELDA Modeling activity
Fig. 7
figure 7

The Modeling work products

Tasks can be carried out in parallel and iteratively. The mandatory inputs to the ELDA Modeling are the Functional and Non-Functional Requirements document and the High-Level Design Model. The outputs are the (mandatory) Behavioral ELDA MAS Design Model and the (optional) Structural ELDA MAS Design Model. The former is a set of DSCs, representing agent behaviors and/or roles, whereas the latter is a class diagram representing the interaction relationships among agents and/or roles.

2.1.3 Work Products

Figure 7 reports the relationships among the work products of this step (Modeling phase) and the ELDA MMMElements (see Sect. 1.2).

2.1.3.1 Work Product Kinds

Table 3 describes the work products of the Modeling.

In the following the Structural ELDA MAS Design Model, the Behavioral ELDA MAS Design Model, and the Platform-independent ELDA MAS Code (specifically the Reviewer role code) produced for the CMS case study will be described.

2.1.3.1.1 Structural ELDA MAS Design Model

In Fig. 8 the Structural ELDA MAS Design Model of the CMS case study is portrayed. In particular, five roles are identified: Author, Chair, and PCMember, where a PCMember could be either a Reviewer, or a Vice-Chair, or both. Moreover, CMS is an agent representing the CMS system.

Table 3 Modeling work products kinds
Fig. 8
figure 8

Class diagram of agents and roles interactions in the CMS case study

2.1.3.1.2 Behavioral ELDA MAS Design Model

The Behavioral ELDA MAS Design Model of the CMS case study is composed of the DSCs of the five defined roles (Author, Chair, PCMember, Reviewer, and Vice-Chair) and the CMS agent. In the following they are detailed in terms of DSC diagram and event, action and guard tables. The PCMember specification is based on the specifications of Reviewer and Vice-Chair, so a further specification for the PCMember was not defined.

2.1.3.1.3 Author

See Fig. 9 and Tables 4, 5 and 6.

2.1.3.1.4 Reviewer

See Fig. 10 and Tables 7, 8 and 9.

Fig. 9
figure 9

Author DSC diagram

Table 4 Author actions
Table 5 Author guards
Table 6 Author events
Fig. 10
figure 10

Reviewer DSC diagram

Table 7 Reviewer actions
Table 8 Reviewer guards
Table 9 Reviewer events
2.1.3.1.5 Vice-Chair

See Fig. 11 and Tables 10, 11 and 12.

Fig. 11
figure 11

Vice-Chair DSC diagram

Fig. 12
figure 12

Chair DSC diagram

Table 10 Vice-Chair actions
Table 11 Vice-Chair guards
Table 12 Vice-Chair events
Table 13 Chair actions
Table 14 Chair guards
2.1.3.1.6 Chair

See Fig. 12 and Tables 13, 14 and 15.

2.1.3.1.7 CMS

See Fig. 13 and Tables 16 and 17.

2.1.3.1.8 Platform-Independent ELDA MAS Code

In Fig. 14 part of the code (variables, actions, guards, and events) of the active behavior of the Reviewer role (see earlier section “Reviewer”) produced in the ELDA Coding activity is reported.

2.2 The Simulation Phase

The goal of the Simulation phase is to support the functional validation and performance evaluation of the MAS model produced in the Modeling phase (see Sect. 2.1). Specifically, the ELDASim simulation framework is exploited to fully support such phase. The Simulation process is composed of three main activities: Performance Indices Definition, Simulation Implementation, and Simulation Execution, as shown in Fig. 15. Simulation specifically involves a process role and five work products, as described in Fig. 16.

Table 15 Chair events
Fig. 13
figure 13

CMS DSC diagram

Table 16 CMS actions
Table 17 CMS events

2.2.1 Process Roles

One role is involved in the Simulation: the Simulation Designer.

2.2.1.1 Simulation Designer

The Simulation Designer is responsible for the functional validation and performance evaluation of the MAS under-development through the following activities:

  • Performance Indices Definition: this activity allows the definition of the performance indices which will be evaluated during the simulation.

  • Simulation Implementation: it produces a simulator program that allows executing the simulation.

  • Simulation Execution: in this activity the simulation is executed and the simulation results are obtained.

2.2.2 Activity Details

Performance Indices Definition and Simulation Implementation are atomic activities that have no tasks, whereas Simulation Execution activity has two tasks as described here.

2.2.2.1 Simulation Execution Activity

The Simulation Execution activity comprises the two tasks described in Table 18. The flow of tasks in the Simulation Execution activity is reported in Fig. 17.

2.2.3 Work Products

Figure 18 reports the relationships among the work products of this step and the ELDA MMMElements (see Sect. 1.2).

2.2.3.1 Work Product Kinds

Table 19 describes the work products of the Simulation.

2.2.3.1.1 Simulator Program

In Fig. 19 the Simulator Program template produced for the CMS case study is described.

The methods of the CMS class are:

  • void resetSimulationParams(): resets the simulation parameters

  • void loadParams(XMLTree configuration): loads and initializes the simulation parameters

  • void setupAS(): performs the setup of the agent servers of the distributed simulated agent platform

  • void createSimPerformanceParamsTabs(): creates database tables for storing the results obtained from the simulations

  • void setupAndStartCustomSimulation(): starts the simulation up

  • void setupAgent(): allows the setup of the agents involvedin the simulation

  • void setAgentCodeDimension(): sets the code dimension of the agents

  • void startAgent(): starts the agents up

  • void traceSimPerformanceParams(): traces the simulation performance parameter values obtained from the simulation

  • void clearAS(): clears the agent servers up

  • void resetSimPerformanceParams(): resets the tracing of the simulation results.

Fig. 14
figure 14

ELDAFramework-based code of the Reviewer role

Fig. 15
figure 15

The Simulation flow of activities

2.3 The Implementation Phase

The goal of the Implementation phase is to translate the MAS design model into code for a target platform. In particular, the translation is semi-automatic, supported by the ELDATool, and targeting the JADE platform. The Implementation process is composed of two main activities (Platform-specific ELDA Implementation and Testing), as shown in Fig. 20. In particular, Implementation involves two process roles and five work products (see Fig. 21).

2.3.1 Process Roles

Two roles are involved in the Implementation: Developer and Tester.

Fig. 16
figure 16

The Simulation phase described in terms of activities, roles, and work products

Table 18 Tasks of Simulation Execution activity
Fig. 17
figure 17

The flow of tasks of the Simulation Execution activity

2.3.1.1 Developer

The Developer is responsible for:

  • Platform-specific ELDA Implementation—this activity translates the MAS design model into code generated according to a real target platform (e.g., JADE) through ELDATool.

2.3.1.2 Tester

The Tester is responsible for:

  • Testing—this activity executes some tests on the MAS under-development considering the performance indices evaluated during the simulation and produces a document containing the test results.

Fig. 18
figure 18

The Simulation work products

Table 19 Simulation work products kinds

2.3.2 Activity Details

Platform-specific ELDA implementation and testing activities are atomic and do not have any tasks.

Fig. 19
figure 19

Code template of the Simulator Program

Fig. 20
figure 20

The Implementation flow of activities

2.3.3 Work Products

The work products produced in this phase are the platform-specific ELDA MAS Code, which is the code of the MAS under-development for the JADE platform, and Testing Results, which is a set of real execution traces and table/plots of computed performance indices.

2.3.3.1 Work Product Kinds

Table 20 describes the work products of the Implementation:

2.3.3.1.1 Platform-Specific ELDA MAS Code

In Fig. 22 part of the JADE-based code (variables, actions, guards, and events) of the Reviewer role of the Platform-specific ELDA MAS Code produced for the CMS case study will be described.

3 Work Products Dependencies

The diagram in Fig. 23 depicts the dependencies among the different work products.

Fig. 21
figure 21

The Implementation phase described in terms of activities, roles, and work products

Table 20 Implementation work products kinds
Fig. 22
figure 22

The JADE-based code of the Reviewer role

Fig. 23
figure 23

Work products dependencies diagram