[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3079368.3079407acmotherconferencesArticle/Chapter ViewAbstractPublication PagesprogrammingConference Proceedingsconference-collections
research-article

Enriching the Internet By Acting and Reacting

Published: 03 April 2017 Publication History

Abstract

A recent trend in application development for the web is a move towards rich internet applications (RIAs). As more and more of the application logic is moved to the client, RIAs can benefit from concurrency in order to increase overall performance as well as responsiveness of the application. Additionally, RIAs are often written in an event-driven style of programming to react to incoming events of a multitude of services that are integrated within the application. In this paper we argue that, while individual technologies exist to tackle both concerns, these technologies cannot easily be integrated in an ad hoc way. To increase the modularisability and composability of RIAs we propose a new programming model based on actors and reactors that encapsulate different parts of the application. We show that our model is able to exploit some of the available concurrency while reducing the required amount of event-driven code. Both actors and reactors are modular components that can be glued together via a unified communication mechanism. We evaluate our approach by means of a motivating example of a collaborative code editor.

References

[1]
Engineer Bainomugisha, Andoni Lombide Carreton, Tom Van Cutsem, Stijn Mostinckx, and Wolfgang De Meuter. 2013. A survey on reactive programming. ACM Comput. Surv. 45, 4 (2013), 52:1--52:34.
[2]
Evan Czaplicki and Stephen Chong. 2013. Asynchronous functional reactive programming for GUIs. In ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '13, Seattle, WA, USA, June 16-19, 2013, Hans-Juergen Boehm and Cormac Flanagan (Eds.). ACM, 411--422.
[3]
Sigbjorn Finne, Daan Leijen, Erik Meijer, and Simon L. Peyton Jones. 1999. Calling Hell From Heaven and Heaven From Hell. In Proceedings of the fourth ACM SIGPLAN International Conference on Functional Programming (ICFP '99), Paris, France, September 27-29, 1999., Didier Rémi and Peter Lee (Eds.). ACM, 114--125.
[4]
Node.js Foundation. 2017. Node.js. (2017). http://web.archive.org/web/20170129014504/https://nodejs.org/en/ Accessed: 2017-01-30.
[5]
David Garlan and David Notkin. 1991. Formalizing Design Spaces: Implicit Invocation Mechanisms. In VDM '91 - Formal Software Development, 4th International Symposium of VDM Europe, Noordwijkerhout, The Netherlands, October 21-25, 1991, Proceedings, Volume 1: Conference Contributions (Lecture Notes in Computer Science), Søren Prehn and W. J. Toetenel (Eds.), Vol. 551. Springer, 31--44.
[6]
Facebook Inc. 2017. React: A JavaScript Library for Building User Interfaces. (2017). http://web.archive.org/web/20170117003017/https://facebook.github.io/react/ Accessed: 2017-01-16.
[7]
Ingo Maier and Martin Odersky. 2012. Deprecating the Observer Pattern with Scala.React. Technical Report. École Polytechnique Fédérale de Lausanne, EPFL-REPORT-176887.
[8]
Alessandro Margara and Guido Salvaneschi. 2014. We have a DREAM: distributed reactive programming with consistency guarantees. In The 8th ACM International Conference on Distributed Event-Based Systems, DEBS '14, Mumbai, India, May 26-29, 2014, Umesh Bellur and Ravi Kothari (Eds.). ACM, 142--153.
[9]
Mark S. Miller, Eric Dean Tribble, and Jonathan S. Shapiro. 2005. Concurrency Among Strangers. In Trustworthy Global Computing, International Symposium, TGC 2005, Edinburgh, UK, April 7-9, 2005, Revised Selected Papers (Lecture Notes in Computer Science), Rocco De Nicola and Davide Sangiorgi (Eds.), Vol. 3705. Springer, 195--229.
[10]
Florian Myter, Christophe Scholliers, and Wolfgang De Meuter. 2016. Many spiders make a better web: a unified web-based actor framework. In Proceedings of the 6th International Workshop on Programming Based on Actors, Agents, and Decentralized Control, AGERE 2016, Amsterdam, The Netherlands, October 30, 2016, Sylvan Clebsch, Travis Desell, Philipp Haller, and Alessandro Ricci (Eds.). ACM, 51--60.
[11]
ReactiveX. 2017. An API for asynchronous programming with observable streams. (2017). http://web.archive.org/web/20170128174958/http://reactivex.io/ Accessed:2017-01-31.
[12]
Guido Salvaneschi, Sven Amann, Sebastian Proksch, and Mira Mezini. 2014. An empirical study on program comprehension with reactive programming. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, (FSE-22), Hong Kong, China, November 16-22, 2014, Shing-Chi Cheung, Alessandro Orso, and Margaret-Anne D. Storey (Eds.). ACM, 564--575.

Cited By

View all
  • (2020)Dependency Graph-based Reactivity for Virtual Environments2020 IEEE Conference on Virtual Reality and 3D User Interfaces Abstracts and Workshops (VRW)10.1109/VRW50115.2020.00052(246-253)Online publication date: Mar-2020
  • (2019)Towards a Reactive Game Engine2019 SoutheastCon10.1109/SoutheastCon42311.2019.9020527(1-8)Online publication date: Apr-2019

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
Programming '17: Companion Proceedings of the 1st International Conference on the Art, Science, and Engineering of Programming
April 2017
193 pages
ISBN:9781450348362
DOI:10.1145/3079368
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

In-Cooperation

  • AOSA: Aspect-Oriented Software Association

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 03 April 2017

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Actors
  2. Distributed programming
  3. JavaScript
  4. Reactive programming
  5. Reactors
  6. Rich internet applications

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

Programming '17

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2020)Dependency Graph-based Reactivity for Virtual Environments2020 IEEE Conference on Virtual Reality and 3D User Interfaces Abstracts and Workshops (VRW)10.1109/VRW50115.2020.00052(246-253)Online publication date: Mar-2020
  • (2019)Towards a Reactive Game Engine2019 SoutheastCon10.1109/SoutheastCon42311.2019.9020527(1-8)Online publication date: Apr-2019

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media