clonemap

module
v0.0.0-...-f22a224 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 24, 2023 License: Apache-2.0, MIT, Apache-2.0, + 1 more

README

cloneMAP: cloud-native Multi-Agent Platform

cloneMAP is a multi-agent platform (MAP) that is designed to run in a cloud environment based on Kubernetes. The aim of this project is to combine the advantages of cloud computing and a distributed computing paradigm such as multi-agent systems.

Go Report Card License

Overview

Architecture

cloneMAP consists of four modules. Each module is implemented in a scalable and robust way. Where possible, applications are stateless and hence horizontally scalable. State is stored in distributed storages and databases. The single modules can be deployed and used independently. They are coupled by means of REST APIs.

Core

The core components of cloneMAP are the agent management system (AMS), an etcd store and agencies. The AMS (API) is responsible for managing all MASs and the corresponding agents running in cloneMAP. Typical tasks are agent creation, monitoring and termination. To allow the AMS to be horizontally scalable, its state (configuration and status information) is stored in an etcd cluster.

Agencies (API) are the deployment unit for agents. Each agency hosts a specified number of agents. Agencies have the task to aggregate common operations in order to relieve the AMS. In Kubernetes terms an agency is a pod with one container. The agents are single go-routines executed within the agency.

DF

To provide agents with the ability to explore each other the so called directory facilitator (DF) is implemented (API). It consists of the scalable service registry and an etcd store. The same etcd cluster as for the AMS is used. The service registry provides functionalities such as registering, deregistering and searching for services. Hence, agents can us it as yellow pages service.

State and logging

As agents usually have a certain state that changes over time, that state needs to be saved in order to make the platform robust. This is done by module state and logging. A DB service provides agents with a REST API for storing state and logs. Upon restart the agents can query the last state stored in the DB and continue their work from that point. A Cassandra DB is used as backend.

IoT

In order to connect the agents running in cloneMAP to the outside world a message broker is used. Currently only MQTT is available. With the help of this message broker agents can interact with devices outside the cloud (e.g. IoT-devices). This module is called IoT-Interface.

UI

For easy user interaction it is planned to provide a WebUI that interacts with the AMS via its REST API. The WebUI is not yet available.

Getting Started

The following documentation is available for cloneMAP:

Documentation of the code follows the godoc specification.

2020, Institute for Automation of Complex Power Systems, EONERC

License

This project is licensed under either of

at your option.

Contact

EONERC ACS Logo

Institute for Automation of Complex Power Systems (ACS)
EON Energy Research Center (EONERC)
RWTH University Aachen, Germany

Directories

Path Synopsis
cmd
ams
df
kubestub
Package main : starts a local MAP
Package main : starts a local MAP
examples
pkg
agency
Package agency is used for running a single agency: management of agents located in same container / pod
Package agency is used for running a single agency: management of agents located in same container / pod
ams
Package ams provides functionality for the Agent Management System.
Package ams provides functionality for the Agent Management System.
client
Package client contains code for interaction with clonemap modules
Package client contains code for interaction with clonemap modules
common/httpreply
Package httpreply implements common replies for http requests
Package httpreply implements common replies for http requests
common/httpretry
Package httpretry implements methods for http requests which are repeated in case of errors.
Package httpretry implements methods for http requests which are repeated in case of errors.
df
Package df implements the Directory Facilitator
Package df implements the Directory Facilitator
kubestub
Package kubestub : interaction with containers (start and delete)
Package kubestub : interaction with containers (start and delete)
logger
Package logger implements the frontend for the logging module
Package logger implements the frontend for the logging module
plugnplay
Package plugnplay implements a component which automatically triggers the creation of an agent in case a new IoT device is connected to the platform.
Package plugnplay implements a component which automatically triggers the creation of an agent in case a new IoT device is connected to the platform.
schemas
Package schemas defines the data structures used for the REST APIs
Package schemas defines the data structures used for the REST APIs
status
Package status : provides different codes for status of map parts
Package status : provides different codes for status of map parts

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL