Skip to content

Extended-Green-Cloud/extended-green-cloud-simulator

Repository files navigation

Extended Green Cloud Simulator (EGCS)

Extended Green Cloud Simulator (EGCS) is a self-adaptive multi-agent system used to simulate carbon-intelligent cloud infrastructures. Specifically, it allows the users to:

  • define topologies of cloud networks that are, among others, powered with green-energy sources
  • employ and assess different system strategies such as:
    • orchestration of the workload across different cloud network regions
    • job prioritization and scheduling policies
    • handling unexpected environmental events such as dynamic weather changes
  • run large-scale distributed simulations including simulations in which agents reside in multiple agent platforms and are distributed among different hosts
  • experiment with system's autonomic behaviours and the runtime (self-)adaptability

System architecture and technological requirements

Technological stack

The system was implemented with the following technologies:

  • Java 17 + JADE (Backend)
  • EasyRules (Rules Based Expert System) + MVEL (Expression Languages)
  • Typescript (Frontend)
  • Typescript + Express + Express WS (Socket Server)
  • PostgreSQL Timescale (Database)

In order to run the system, it is also required to install:

  1. Docker (https://docs.docker.com/get-docker/)
  2. Maven (https://maven.apache.org/download.cgi)
  3. Shell with the ability to execute bash scripts (e.g. Git BASH for Windows users: https://gitforwindows.org/)
  4. Node.js 18+ (https://nodejs.org/en/download)
  5. Python 3 (https://www.python.org/downloads/)

System components

The system consists of the following modules:

  • agent-connector - module containing methods used for generating agent controllers and GUI agent nodes, as well as, services (WebSocket-based listener) used to connect the agents with environment to be able to sense external events
  • agent-system - module containing definition of EGCS agents
  • articles - module with various showcase agent systems, implemented based on the EGCS agent architecture
  • commons - module containing common methods and classes shared between other modules
  • data-clustering - module containing tools that were used to cluster real-life cloud data and generate the synthetic workflows
  • engine - module used to run the simulations. It allows the users to specify the topology of the cloud network, pass the desired system strategies and specify test scenario events
  • green_cloud_ui - module containing implementation of GUI
  • gui - module implementing GUI controller with outward WebSockets. It is used to connect JADE agents with the frontend
  • knowledge-database - PostgreSQL Timescale database used to store monitoring data for the analysis performed by system's managing component
  • managing-system - module realizing agents' adaptations. It implements the architectural MAPE-K model
  • rules-controller - module that defines rules and behaviours that (in the future) will handle the system's strategies
  • socket-server - WebSocket module that serves as a proxy between backend and the GUI
  • weather-api - module that contain services responsible for communication with external API used to fetch forecasted weather conditions

External services

The system is using OpenWeatherMap API to retrieve weather predictions: https://openweathermap.org/api.

Synthetic data generation

In order to generate synthetic data streams please refer to the Data Stream Generation Instruction.

System configuration and running

All files used to configure the system are placed in ./config. The instruction on how to configure the system can be found in: Configuration Instruction.

Similarly, the scripts used to compile the project are in ./compile. In order to compile and run the project, refer to: Compilation Instruction.

References

More information about the system can be found in:

Wrona, Z., Ganzha, M., Paprzycki, M., Krzyżanowski, S. (2023). 
Extended Green Cloud – Modeling Cloud Infrastructure with Green Energy Sources. 
In: Mathieu, P., Dignum, F., Novais, P., De la Prieta, F. (eds) 
Advances in Practical Applications of Agents, Multi-Agent Systems, and Cognitive Mimetics. 
The PAAMS Collection. PAAMS 2023. 
Lecture Notes in Computer Science(), vol 13955. Springer, Cham. 
https://doi.org/10.1007/978-3-031-37616-0_37