Kuehn, E. M. (2021). A Practical Tool-Chain for the Development of Coordination Scenarios. In F. Damian & O. Dardha (Eds.), Coordination Models and Languages, COORDINATION 2021 (pp. 239–254). Springer. https://doi.org/10.1007/978-3-030-78142-2_15
Coordination Models and Languages - 23rd {IFIP} {WG} 6.1 International Conference, {COORDINATION} 2021, Held as Part of the 16th International Federated Conference on Distributed Computing Techniques, DisCoTec
Koordinierungsszenarien stellen hohe Anforderungen an Gleichzeitigkeit und Interaktion. Dies sind jedoch typische Quellen für Fehler im Entwurf und in der Implementierung. Ein Modellierungsansatz ermöglicht es, über verteilte Algorithmen nachzudenken und Unzulänglichkeiten von Anfang an zu erkennen. Das Peer-Modell wurde als Modellierungswerkzeug für Verteilung, Nebenläufigkeit und Blackboard-basierte Zusammenarbeit und Koordination eingeführt und stützt sich auf bekannte Grundlagen wie Tupelräume, Petri-Netze und das Akteursmodell. Es gibt zwar ein Laufzeitsystem, das Java-Entwicklern für das Prototyping dient, aber wie bei den meisten akademischen Systemen fehlte bisher eine praktikable Tool-Chain.
In diesem Beitrag wird eine praktische neue Tool-Chain für das Peer-Modell vorgestellt, die aus einem grafischen Modellierungswerkzeug besteht, das auf einem Zeichenprogramm aufbaut, das XML exportiert. Ein Übersetzer parst das XML und übersetzt es in eine neu entwickelte domänenspezifische Sprache, die die Grundlage für die Codegenerierung bildet. Ein Ziel ist eine neue, auf formalen Automaten basierende Laufzeitumgebung, die in der Programmiersprache Go geschrieben ist und systematische Simulationsläufe von Benutzermodellen ermöglicht. Die Demo zeigt ein Peer-Competition-Szenario, bei dem mehrere Spieler ein Spiel spielen, ein globaler Zustand die Spielstände der Spieler hält und zusätzlich jeder Peer einen dezentralen Zustand unterhält. Bevor ein Peer einen Spielzug unternimmt, prüft er, ob sein aktueller lokaler Zustand mit dem globalen identisch ist. Wenn dies der Fall ist, führt er seine Aktion aus und verteilt die Informationen darüber an alle anderen Spieler zur weiteren Überprüfung. Das Szenario spiegelt die wichtigsten Koordinationsmechanismen in Blockchain-Systemen wider.
de
Coordination scenarios have high demands on concurrency and interaction. However, these are typical sources for flaws in both design and implementation. A modeling approach enables reasoning about distributed algorithms and finding deficiencies right from the beginning. The Peer Model has been introduced as a modeling tool for distribution, concurrency and blackboard-based collaboration and coordination, relying on known foundations like tuple spaces, Petri Nets and Actor Model. A runtime system exists that serves Java developers for prototyping, but still a feasible tool-chain was missing, like for most academic systems.
This paper presents a practical new tool-chain for the Peer Model consisting of a graphical modelling tool, building on a drawing program that exports XML. A translator parses the XML and translates it into a newly developed domain specific language that is the basis for code generation. One target is a new, formal automaton-based runtime written in the Go programming language.It allows systematic simulation runs of user models. The demo shows a peer competition scenario, where several players play a game, a global state holds the players' scores, and in addition each peer maintains a decentralized state. Before taking a move in the game, a peer asserts its current local state to be the same like the global one. If this is the case, it carries out its action and distributes the information about it to all other players for further verification. The scenario captures core coordination mechanisms found in blockchain systems.