Distributed Systems Extensions for the Dunai FRP Library

Bibliographische Detailangaben

Titel
Distributed Systems Extensions for the Dunai FRP Library
verantwortlich
Götz, Julian
Hochschulschriftenvermerk
Masterarbeit, Hochschule für Technik, Wirtschaft und Kultur, 2020
veröffentlicht
2020
Online-Ausg.. : , 2020
Erscheinungsjahr
2020
Medientyp
E-Book Hochschulschrift
Datenquelle
Qucosa
Tags
Tag hinzufügen

Zugang

Kostenfrei zugänglich

Diese Ressource ist frei verfügbar.

Zusammenfassung
Functional Reactive Programming (FRP) offers a declarative way to express reactive systems such as animations, user interfaces and games. Various topics related to FRP like optimization, generalization and debugging were studied. However, the use of FRP in distributed systems has not been investigated extensively. Focused on the use of the Dunai FRP library implemented in the Haskell programming language, the aim of this thesis is to develop and evaluate a way to apply FRP to distributed systems. A library is implemented to extend Dunai with means to create distributed systems. There is support for the Client/Server network architectural model and algorithms to synchronize applications across a network. As the synchronization of distributed systems has been a topic of research for decades, this thesis explores whether developed ideas, such as Time Warp (Jefferson, 1985), can be expressed in FRP. Additionally, Client Side Prediction (Bernier, 2001) and Dead Reckoning (DIS Steering Committee, 1994) are used to predict server reactions on client-side. An exemplary application demonstrates the implementation. The application is then evaluated in a performance test and a user test. TimeWarp synchronization has a significant impact on performance. Despite this, the application is playable up to a latency of 100 ms. The result of Dead Reckoning is acceptable, whereas Client Side Prediction is not usable. The thesis shows that the developed way can be used to run FRP on distributed systems. Further work should focus the performance to enable more complex applications. Moreover, Dead Reckoning can be improved to a smoother result. Non-trivial changes are necessary to make Client Side Prediction usable.
Sprache
Deutsch
Schlagworte
DDC-Notation
006.3\0285436