Nothing Special   »   [go: up one dir, main page]

skip to main content
10.5555/1764606.1764613guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Reactors: a data-oriented synchronous/asynchronous programming model for distributed applications

Published: 06 June 2007 Publication History

Abstract

Our aim is to define the kernel of a simple and uniform programming model--the reactor model--suitable for building and evolving internet-scale programs. A reactor consists of two principal components: mutable state, in the form of a fixed collection of relations, and code, in the form of a fixed collection of rules in the style of datalog. A reactor's code is executed in response to an external stimulus, which takes the form of an attempted update to the reactor's state. As in classical process calculi, the reactor model accommodates collections of distributed, concurrently executing processes. However, unlike classical process calculi, our observable behaviors are sequences of states, rather than sequences of messages. Similarly, the interface to a reactor is simply its state, rather than a collection of message channels, ports, or methods. One novel feature of our model is the ability to compose behaviors both synchronously and asynchronously. Also, our use of datalog-style rules allows aspect-like composition of separately-specified functional concerns in a natural way.

References

[1]
Agha, G.A., Mason, I.A., Smith, S.F., Talcott, C.L.: A foundation for actor computation. Journal of Functional Programming 7(1), 1-69 (January 1997).
[2]
Berry, G., Gonthier, G.: The ESTEREL synchronous programming language: design, semantics, implementation. Science of Computer Programming 19(2), 87-152 (1992).
[3]
Bonner, A.J.: Workflow, transactions and datalog. In: PODS '99: Proceedings of the eighteenth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems, New York, NY, USA, pp. 294-305. ACM Press, New York (1999).
[4]
Caspi, P., Pilaud, D., Halbwachs, N., Plaice, J.A.: LUSTRE: a declarative language for realtime programming. In: POPL '87: Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, New York, NY, USA, pp. 178-188. ACM Press, New York (1987).
[5]
Dong, G., Topor, R.W.: Incremental evaluation of datalog queries. In: Hull, R., Biskup, J. (eds.) ICDT 1992. LNCS, vol. 646, pp. 282-296. Springer, Heidelberg (1992).
[6]
Fielding, R.T.: Architectural Styles and the Design of Network-based Software Architectures. PhD thesis, University of California, Irvine (2000).
[7]
Gautier, T., Guernic, P.L.: SIGNAL:A declarative language for synchronous programming of real-time systems. In: Proceedings of the Functional Programming Languages and Computer Architecture, London, UK, pp. 257-277. Springer, Heidelberg (1987).
[8]
Harel, D., Pnueli, A.: On the development of reactive systems. In: Apt, K.R. (ed.) Logics and models of concurrent systems. NATO ASI Series F: Computer And Systems Sciences, vol. 13, pp. 477-498. Springer, Heidelberg (1989).
[9]
Harris, T., Marlow, S., Jones, S.P., Herlihy, M.: Composable memory transactions. In: ACM Conf. on Principles and Practice of Parallel Programming, Chicago, pp. 48-60 (June 2005).
[10]
Kiczales, G.: Aspect-oriented programming. ACM Computing Surveys 28, 4es, 154 (1996).
[11]
Maraninchi, F., Rémond, Y.: Argos: an automaton-based synchronous language. Computer Languages 27, 61-92 (2001).
[12]
Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, parts I-II. Information and Computation 100(1), 1-77 (1992).
[13]
Paton, N.W., Díaz, O.: Active database systems. ACM Comput. Surv. 31(1), 63-103 (1999).
[14]
Topor, R.: Safe database queries with arithmetic relations. In: Proceedings of the 14th Australian Computer Science Conference (1991).
[15]
Ullman, J.D.: Principles of Database and Knowledge-Base Systems, vol. 1. Computer Science Press, ch. 3 (1988).
[16]
Wang, X.: Negation in Logic and Deductive Databases. PhD thesis, University of Leeds (1999).

Cited By

View all
  • (2009)Coherent reactionProceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications10.1145/1639950.1640058(925-932)Online publication date: 25-Oct-2009
  1. Reactors: a data-oriented synchronous/asynchronous programming model for distributed applications

      Recommendations

      Comments

      Please enable JavaScript to view thecomments powered by Disqus.

      Information & Contributors

      Information

      Published In

      cover image Guide Proceedings
      COORDINATION'07: Proceedings of the 9th international conference on Coordination models and languages
      June 2007
      323 pages
      ISBN:9783540727934
      • Editors:
      • Amy L. Murphy,
      • Jan Vitek

      Publisher

      Springer-Verlag

      Berlin, Heidelberg

      Publication History

      Published: 06 June 2007

      Qualifiers

      • Article

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)0
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 05 Mar 2025

      Other Metrics

      Citations

      Cited By

      View all
      • (2009)Coherent reactionProceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications10.1145/1639950.1640058(925-932)Online publication date: 25-Oct-2009

      View Options

      View options

      Figures

      Tables

      Media

      Share

      Share

      Share this Publication link

      Share on social media