Home > Research > Publications & Outputs > Mandrake: multiagent systems as a basis for pro...

Links

Text available via DOI:

View graph of relations

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

Research output: Contribution to Journal/MagazineJournal articlepeer-review

Published

Standard

Mandrake: multiagent systems as a basis for programming fault-tolerant decentralized applications. / Christie, Samuel H.; Chopra, Amit K.; Singh, Munindar P.
In: Autonomous Agents and Multi-Agent Systems, Vol. 36, No. 1, 16, 08.02.2022.

Research output: Contribution to Journal/MagazineJournal articlepeer-review

Harvard

APA

Christie, S. H., Chopra, A. K., & Singh, M. P. (2022). Mandrake: multiagent systems as a basis for programming fault-tolerant decentralized applications. Autonomous Agents and Multi-Agent Systems, 36(1), Article 16. https://doi.org/10.1007/s10458-021-09540-8

Vancouver

Christie SH, Chopra AK, Singh MP. Mandrake: multiagent systems as a basis for programming fault-tolerant decentralized applications. Autonomous Agents and Multi-Agent Systems. 2022 Feb 8;36(1):16. doi: 10.1007/s10458-021-09540-8

Author

Christie, Samuel H. ; Chopra, Amit K. ; Singh, Munindar P. / Mandrake: multiagent systems as a basis for programming fault-tolerant decentralized applications. In: Autonomous Agents and Multi-Agent Systems. 2022 ; Vol. 36, No. 1.

Bibtex

@article{a92d9ce0b20e4b7db9e6aab3dd6f37b0,
title = "Mandrake: multiagent systems as a basis for programming fault-tolerant decentralized applications",
abstract = "Abstract: 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{\textquoteright}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{\textquoteright}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.",
keywords = "Article, Fault tolerance, Agent programming, Protocols",
author = "Christie, {Samuel H.} and Chopra, {Amit K.} and Singh, {Munindar P.}",
year = "2022",
month = feb,
day = "8",
doi = "10.1007/s10458-021-09540-8",
language = "English",
volume = "36",
journal = "Autonomous Agents and Multi-Agent Systems",
publisher = "Springer",
number = "1",

}

RIS

TY - JOUR

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

AU - Christie, Samuel H.

AU - Chopra, Amit K.

AU - Singh, Munindar P.

PY - 2022/2/8

Y1 - 2022/2/8

N2 - Abstract: 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.

AB - Abstract: 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.

KW - Article

KW - Fault tolerance

KW - Agent programming

KW - Protocols

U2 - 10.1007/s10458-021-09540-8

DO - 10.1007/s10458-021-09540-8

M3 - Journal article

VL - 36

JO - Autonomous Agents and Multi-Agent Systems

JF - Autonomous Agents and Multi-Agent Systems

IS - 1

M1 - 16

ER -