ABSTRACT
A program is deterministic if multiple re-executions with the same inputs always lead to the same state. Even concurrent instances of a deterministic program should observe identical behavior---in real time---if assigned the same set of inputs. In this work, we propose real-time reproducibility for distributed programs. Multiple instances of the same interactive application can broadcast asynchronous inputs and yet conform to identical behavior. Collaborative networked applications, such as watch parties, document editing, and video games can benefit from this approach. We name this class of applications as symmetric distributed applications. Using a standard event-driven API to wait and emit events, programmers write code as if the application executes in a single machine. Our middleware intercepts event generation and synchronizes all instances in a consistent timeline so that receipt is identically reproducible. Not only distributed applications benefit from consistency and determinism but also development and testing can be done in a single instance with the same guarantees. In our experiments, the middleware can handle applications with 25 FPS, distributed in up to 25 nodes over the Internet, with an event latency below 350ms.
- Albert Benveniste and Gérard Berry. 1991. The synchronous approach to reactive and real-time systems. Proc. IEEE, 79, 9 (1991), 1270–1282.Google ScholarCross Ref
- Albert Benveniste, Paul Caspi, Stephen A Edwards, Nicolas Halbwachs, Paul Le Guernic, and Robert De Simone. 2003. The synchronous languages 12 years later. Proc. IEEE, 91, 1 (2003), 64–83.Google ScholarCross Ref
- Gérard Berry and Georges Gonthier. 1992. The Esterel synchronous programming language: Design, semantics, implementation. Science of computer programming, 19, 2 (1992), 87–152. Google ScholarDigital Library
- Gérard Berry, S Ramesh, and RK Shyamasundar. 1993. Communicating reactive processes. In Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages. 85–98. Google ScholarDigital Library
- Robert L Bocchino, Vikram Adve, Sarita Adve, and Marc Snir. 2009. Parallel programming must be deterministic by default. Usenix HotPar, 6 (2009). Google ScholarDigital Library
- Conal Elliott, Greg Schechter, Ricky Yeung, and Salim Abi-Ezzi. 1994. TBAG: A high level framework for interactive, animated 3D graphics applications. In Proceedings of the 21st annual conference on Computer graphics and interactive techniques. 421–434. Google ScholarDigital Library
- Nicolas Halbwachs. 1998. Synchronous programming of reactive systems. In International Conference on Computer Aided Verification. 1–16. Google ScholarDigital Library
- Charles Antony Richard Hoare. 1978. Communicating sequential processes. Commun. ACM, 21, 8 (1978), 666–677. Google ScholarDigital Library
- Martin Kleppmann, Adam Wiggins, Peter van Hardenberg, and Mark McGranaghan. 2019. Local-first software: you own your data, in spite of the cloud. In Proceedings of Onward’19. 154–178. Google ScholarDigital Library
- Leslie Lamport. 1979. How to make a multiprocessor computer that correctly executes multiprocess progranm. IEEE transactions on computers, 28, 09 (1979), 690–691. Google ScholarDigital Library
- Avinash Malik, Zoran Salcic, Partha S Roop, and Alain Girault. 2010. SystemJ: A GALS language for system level design. Computer Languages, Systems & Structures, 36, 4 (2010), 317–344. Google ScholarDigital Library
- Florence Maraninchi. 1991. The Argos language: Graphical representation of automata and description of reactive systems. In IEEE Workshop on Visual Languages. 3.Google Scholar
- Dumitru Potop-Butucaru, Robert De Simone, and Jean-Pierre Talpin. 2005. The synchronous hypothesis and synchronous languages. The embedded systems handbook, 1–21.Google Scholar
- S Ramesh. 1998. Communicating reactive state machines: Design, model and implementation. IFAC Proceedings Volumes, 31, 32 (1998), 105–110.Google ScholarCross Ref
- Rodrigo CM Santos, Francisco Sant’Anna, and Noemi Rodriguez. 2017. A GALS Approach for Programming Distributed Interactive Multimedia Applications. In Anais Estendidos do XXIII Simpósio Brasileiro de Sistemas Multimídia e Web. 52–57.Google Scholar
- Lui Sha, Abdullah Al-Nayeem, Mu Sun, Jose Meseguer, and Peter C Olveczky. 2009. PALS: Physically asynchronous logically synchronous systems.Google Scholar
- Marc Shapiro, Nuno Preguiça, Carlos Baquero, and Marek Zawirski. 2011. Conflict-free replicated data types. In Symposium on Self-Stabilizing Systems. 386–400. Google ScholarDigital Library
- David A Smith, Alan Kay, Andreas Raab, and David P Reed. 2003. Croquet-a collaboration system architecture. In First Conference on Creating, Connecting and Collaborating Through Computing, 2003. C5 2003. Proceedings.. 2–9.Google ScholarCross Ref
- Paul Teehan, Mark Greenstreet, and Guy Lemieux. 2007. A survey and taxonomy of GALS design styles. IEEE Design & Test of Computers, 24, 5 (2007), 418–428. Google ScholarDigital Library
Index Terms
- Symmetric distributed applications
Recommendations
Building distributed, multi-user applications by direct manipulation
UIST '94: Proceedings of the 7th annual ACM symposium on User interface software and technologyThis paper describes Visual Obliq, a user interface development environment for constructing distributed, multi-user applications. Applications are created by designing the interface with a GUI-builder and embedding callback code in an interpreted ...
A Framework for Modeling the Distributed Deployment of Synchronous Designs
Synchronous specifications are appealing in the design of large scale hardware and software systems because of their properties that facilitate verification and synthesis.When the target architecture is a distributed system , implementing a ...
System level concurrency control for distributed database systems
A distributed database system is one in which the database is spread among several sites and application programs “move” from site to site to access and update the data they need. The concurrency control is that portion of the system that responds to ...
Comments