From cac2b64eb055ce93eb15c6bf1f05c81d0654ab4c Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Mon, 23 Jun 2025 10:00:29 +0200 Subject: [PATCH 1/5] fix(paper): Proposal for new author list Signed-off-by: Steffen Vogel --- paper/paper.md | 42 ++++++++++++++++++------------------------ 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/paper/paper.md b/paper/paper.md index 2ca053b78..db437b155 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -1,69 +1,63 @@ --- title: 'VILLASnode: An Open-Source Real-time Multi-protocol Gateway' tags: + - C/C++ - Real-time - Distributed experiments - Electrical grid simulation + authors: -- name: Alexandra Bach - orcid: 0009-0005-7385-4642 - affiliation: 1 -- name: Leonardo Carreras - orcid: 0000-0002-9033-1051 - affiliation: 1 -- name: Laura Fuentes Grau - orcid: 0009-0004-8997-7009 - affiliation: 1 + - name: Steffen Vogel orcid: 0000-0003-3384-6750 - affiliation: "1, 3" # (Multiple affiliations must be quoted) -- name: Manuel Pitz - orcid: 0000-0002-6252-2029 - affiliation: 1 + affiliation: "1, 3" - name: Niklas Eiling orcid: 0000-0002-7011-9846 affiliation: 1 -- name: Felix Wege - orcid: 0000-0001-6602-9875 - affiliation: 1 -- name: Andres Acosta - orcid: 0000-0003-3066-8354 +- name: Manuel Pitz + orcid: 0000-0002-6252-2029 affiliation: 1 -- name: Iris Köster +- name: Alexandra Bach + orcid: 0009-0005-7385-4642 affiliation: 1 +- name: Marija Stevic + affiliation: "1, 3" - name: Prof. Antonello Monti orcid: 0000-0003-1914-9801 affiliation: "1, 2" + affiliations: + - name: Institute for Automation of Complex Power Systems, RWTH Aachen University, Germany index: 1 - name: Fraunhofer Institute for Applied Information Technology, Aachen, Germany index: 2 - name: OPAL-RT Germany GmbH index: 3 + date: 20 June 2025 bibliography: paper.bib --- # Summary -VILLASnode is a software tool, designed to facilitate real-time data exchange between various components in geographically distributed real-time experiments. Components can be test beds, real-time simulators, software tools, and physical devices. +VILLASnode is a multi-protocol gateway, designed to facilitate real-time data exchange between various components of geographically distributed real-time experiments. Components can be test beds, digital real-time simulators, software tools, and physical devices. Whereas distributed computing, systems or algortihms aim to solve a common task, geographically distributed experiments link infrastructures with different components to make these components accessible to other infrastructures. Thus, data exchanges are possible which would not be possible in one single infrastructure. VILLASnode serves as the gateway that connects components across different infrastructures by providing a set of protocols and customized third-party implementations, e.g., different simulators. It enables seamless collaboration in research and testing environments while safeguarding the intellectual property of the infrastructures. The components at every infrastructure appear as a black box. The infrastructure does not need to share models or confidential information. -VILLASnode is a Linux command line tool and can run as installation from source or as container. It is written in C/C++ and designed in a modular way. +VILLASnode is a Linux command line tool and can run as installation from source or as container. It is written in C/C++ and designed in a modular and extensible way. All components which are interfaced by the VILLASnode gateway are represented by nodes ($n$). These nodes act as sinks or sources for data specific to the component. Every node is an instance of a node-type. In a single VILLASnode instance, multiple instances of the same node-type can co-exist at the same time. The basic data package, common for all node-types, includes timestamped data, constituting a sample. Up to 64 values can form a sample. Samples may need modification or filtering. VILLASnode supports hooks ($h$) for this purpose. Hooks are simple callback functions, which are called whenever a message is processed. Paths ($p$) take care of the processing and define the connections and dataflows between nodes. -Node-types, hooks, and paths need to be initalized in a configuration file which is passed when starting VILLASnode. +Node-types, hooks, and paths need to be initalized in a JSON configuration file which is passed when starting VILLASnode. Figure 1 shows an example of an experiment where five different node-types are used, connected by three paths, using three hooks. It includes queues ($q$) and registers ($r$). Queues temporarily store data before data is forwarded to registers. Registers provide the possibility to (de-)mulitplex data and to create new samples. -![Example of modular exprimental design with nodes, paths, and hooks [@villasnode_docs].](figures/VILLASnode_paths.svg) +![Example of modular experimental design with nodes, paths, and hooks [@villasnode_docs].](figures/VILLASnode_paths.svg) -VILLASnode can be controlled remotely by an Application Programming Interface (API). It is used by the Python Wrapper allowing to control, configure and execute most of the functions of VILLASnode. This is useful if Python software tools are to be integrated in a distributed experiment. +VILLASnode can be controlled remotely by an HTTP REST-style Application Programming Interface (API). It is used by the Python Wrapper allowing to control, configure and execute most of the functions of VILLASnode. This is useful if Python software tools are to be integrated in a distributed experiment. In general, the interaction with VILLASnode is available for other tools and coding languages by using clients that implement basic functionalities, custom configurations and data conversions. Since VILLASnode is written in C/C++ it supports real-time capabilites and can supports real-time tuning for Linux systems. To provide all necassary information, VILLASnode has a detailed documentation [@villasnode_docs]. It includes installation recommendations and best practices for development as well as example configurations and beginners guides, so-called labs. From c51126055e777805151f8e66520db931b00f5947 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Wed, 9 Jul 2025 10:49:20 +0200 Subject: [PATCH 2/5] Add rest of the authors to acknowledgement Signed-off-by: Alexandra --- paper/paper.md | 1 + 1 file changed, 1 insertion(+) diff --git a/paper/paper.md b/paper/paper.md index db437b155..067e2ff35 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -79,6 +79,7 @@ Lastly, VILLAScontroller is currently under development and aims to automate sim The gateway supports a wide range of established data exchange protocols. Support for various message brokers like MQTT, AMQP, nanomsg, ZeroMQ, Redis or Kafka provide connectivity to existing software platforms. Support for process bus protocols such as CAN, EtherCAT, Modbus, IEC 61850-8-1 (GOOSE), IEC 61850-9-2 (Sampled Values) enable connectivity to physical devices. A range of web-based protocols like WebRTC, WebSockets, NGSI or a HTTP REST API facilitate integration into web-based interfaces. Lastly, a set of generic protocols add support for plain UDP/TCP/Ethernet sockets, Infiniband, file-based I/O or communication with other processes via standard I/O or shared memory regions. # Acknowledgements +We like to thank several colleagues and students who supported us. Especially, we thank Leonardo Carreras, Laura Fuentes Grau, Andres Costa, and Felix Wege. - [RESERVE](http://re-serve.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 727481. - [VILLAS](https://villas.fein-aachen.org/website/): Funding provided by [JARA-ENERGY](http://www.jara.org/en/research/energy). Jülich-Aachen Research Alliance (JARA) is an initiative of RWTH Aachen University and Forschungszentrum Jülich. From 8822b39cd2fed6d962c7b8d9cb4a76a75fb0d743 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Wed, 9 Jul 2025 12:10:07 +0200 Subject: [PATCH 3/5] Add other project Signed-off-by: Alexandra --- paper/paper.md | 1 + 1 file changed, 1 insertion(+) diff --git a/paper/paper.md b/paper/paper.md index 067e2ff35..d86e688d7 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -90,5 +90,6 @@ We like to thank several colleagues and students who supported us. Especially, w - [HYPERRIDE](https://hyperride.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 957788. - [AI-EFFECT](https://ai-effect.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 101172952. - [EnerTEF](https://enertef.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 101172887. +- [Target-X](https://target-x.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 101096614. # References From 84db97989f3c1ada6943622cc87e0c352136e37c Mon Sep 17 00:00:00 2001 From: Alexandra Date: Wed, 9 Jul 2025 12:32:50 +0200 Subject: [PATCH 4/5] Fix markdownlint Signed-off-by: Alexandra --- paper/paper.md | 1 + 1 file changed, 1 insertion(+) diff --git a/paper/paper.md b/paper/paper.md index d86e688d7..0f863545c 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -79,6 +79,7 @@ Lastly, VILLAScontroller is currently under development and aims to automate sim The gateway supports a wide range of established data exchange protocols. Support for various message brokers like MQTT, AMQP, nanomsg, ZeroMQ, Redis or Kafka provide connectivity to existing software platforms. Support for process bus protocols such as CAN, EtherCAT, Modbus, IEC 61850-8-1 (GOOSE), IEC 61850-9-2 (Sampled Values) enable connectivity to physical devices. A range of web-based protocols like WebRTC, WebSockets, NGSI or a HTTP REST API facilitate integration into web-based interfaces. Lastly, a set of generic protocols add support for plain UDP/TCP/Ethernet sockets, Infiniband, file-based I/O or communication with other processes via standard I/O or shared memory regions. # Acknowledgements + We like to thank several colleagues and students who supported us. Especially, we thank Leonardo Carreras, Laura Fuentes Grau, Andres Costa, and Felix Wege. - [RESERVE](http://re-serve.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 727481. From b1ea5d5e9f0a1989e3f0a2251ec400cb24dd8654 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Wed, 9 Jul 2025 12:58:11 +0200 Subject: [PATCH 5/5] fix(lint): Remove trailing whitespace Signed-off-by: Steffen Vogel --- paper/paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper/paper.md b/paper/paper.md index 0f863545c..427536711 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -80,7 +80,7 @@ The gateway supports a wide range of established data exchange protocols. Suppor # Acknowledgements -We like to thank several colleagues and students who supported us. Especially, we thank Leonardo Carreras, Laura Fuentes Grau, Andres Costa, and Felix Wege. +We like to thank several colleagues and students who supported us. Especially, we thank Leonardo Carreras, Laura Fuentes Grau, Andres Costa, and Felix Wege. - [RESERVE](http://re-serve.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 727481. - [VILLAS](https://villas.fein-aachen.org/website/): Funding provided by [JARA-ENERGY](http://www.jara.org/en/research/energy). Jülich-Aachen Research Alliance (JARA) is an initiative of RWTH Aachen University and Forschungszentrum Jülich.