Cargando…

Mandrake: multiagent systems as a basis for programming fault-tolerant decentralized applications

We conceptualize a decentralized software application as one constituted from autonomous agents that communicate via asynchronous messaging. Modern software paradigms such as microservices and settings such as the Internet of Things evidence a growing interest in decentralized applications. Construc...

Descripción completa

Detalles Bibliográficos
Autores principales: Christie, Samuel H., Chopra, Amit K., Singh, Munindar P.
Formato: Online Artículo Texto
Lenguaje:English
Publicado: Springer US 2022
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8827306/
https://www.ncbi.nlm.nih.gov/pubmed/35221785
http://dx.doi.org/10.1007/s10458-021-09540-8
_version_ 1784647602070880256
author Christie, Samuel H.
Chopra, Amit K.
Singh, Munindar P.
author_facet Christie, Samuel H.
Chopra, Amit K.
Singh, Munindar P.
author_sort Christie, Samuel H.
collection PubMed
description We conceptualize a decentralized software application as one constituted from autonomous agents that communicate via asynchronous messaging. Modern software paradigms such as microservices and settings such as the Internet of Things evidence a growing interest in decentralized applications. Constructing a decentralized application involves designing agents as independent local computations that coordinate successfully to realize the application’s requirements. Moreover, a decentralized application is susceptible to faults manifested as message loss, delay, and reordering. We contribute Mandrake, a programming model for decentralized applications that tackles these challenges without relying on infrastructure guarantees. Specifically, we adopt the construct of an information protocol that specifies messaging between agents purely in causal terms and can be correctly enacted by agents in a shared-nothing environment over nothing more than unreliable, unordered transport. Mandrake facilitates (1) implementing protocol-compliant agents by introducing a programming model; (2) transforming protocols into fault-tolerant ones with simple annotations; and (3) a declarative policy language that makes it easy to implement fault-tolerance in agents based on the capabilities in protocols. Mandrake’s significance lies in demonstrating a straightforward approach for constructing decentralized applications without relying on coordination mechanisms in the infrastructure, thus achieving some of the goals of the founders of networked computing from the 1970s.
format Online
Article
Text
id pubmed-8827306
institution National Center for Biotechnology Information
language English
publishDate 2022
publisher Springer US
record_format MEDLINE/PubMed
spelling pubmed-88273062022-02-23 Mandrake: multiagent systems as a basis for programming fault-tolerant decentralized applications Christie, Samuel H. Chopra, Amit K. Singh, Munindar P. Auton Agent Multi Agent Syst Article We conceptualize a decentralized software application as one constituted from autonomous agents that communicate via asynchronous messaging. Modern software paradigms such as microservices and settings such as the Internet of Things evidence a growing interest in decentralized applications. Constructing a decentralized application involves designing agents as independent local computations that coordinate successfully to realize the application’s requirements. Moreover, a decentralized application is susceptible to faults manifested as message loss, delay, and reordering. We contribute Mandrake, a programming model for decentralized applications that tackles these challenges without relying on infrastructure guarantees. Specifically, we adopt the construct of an information protocol that specifies messaging between agents purely in causal terms and can be correctly enacted by agents in a shared-nothing environment over nothing more than unreliable, unordered transport. Mandrake facilitates (1) implementing protocol-compliant agents by introducing a programming model; (2) transforming protocols into fault-tolerant ones with simple annotations; and (3) a declarative policy language that makes it easy to implement fault-tolerance in agents based on the capabilities in protocols. Mandrake’s significance lies in demonstrating a straightforward approach for constructing decentralized applications without relying on coordination mechanisms in the infrastructure, thus achieving some of the goals of the founders of networked computing from the 1970s. Springer US 2022-02-08 2022 /pmc/articles/PMC8827306/ /pubmed/35221785 http://dx.doi.org/10.1007/s10458-021-09540-8 Text en © The Author(s) 2022 https://creativecommons.org/licenses/by/4.0/Open AccessThis article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/ (https://creativecommons.org/licenses/by/4.0/) .
spellingShingle Article
Christie, Samuel H.
Chopra, Amit K.
Singh, Munindar P.
Mandrake: multiagent systems as a basis for programming fault-tolerant decentralized applications
title Mandrake: multiagent systems as a basis for programming fault-tolerant decentralized applications
title_full Mandrake: multiagent systems as a basis for programming fault-tolerant decentralized applications
title_fullStr Mandrake: multiagent systems as a basis for programming fault-tolerant decentralized applications
title_full_unstemmed Mandrake: multiagent systems as a basis for programming fault-tolerant decentralized applications
title_short Mandrake: multiagent systems as a basis for programming fault-tolerant decentralized applications
title_sort mandrake: multiagent systems as a basis for programming fault-tolerant decentralized applications
topic Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8827306/
https://www.ncbi.nlm.nih.gov/pubmed/35221785
http://dx.doi.org/10.1007/s10458-021-09540-8
work_keys_str_mv AT christiesamuelh mandrakemultiagentsystemsasabasisforprogrammingfaulttolerantdecentralizedapplications
AT chopraamitk mandrakemultiagentsystemsasabasisforprogrammingfaulttolerantdecentralizedapplications
AT singhmunindarp mandrakemultiagentsystemsasabasisforprogrammingfaulttolerantdecentralizedapplications