skip to main content
10.1145/2414639.2414644acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Domains: safe sharing among actors

Published:21 October 2012Publication History

ABSTRACT

The actor model has already proven itself as an interesting concurrency model that avoids issues such as deadlocks and race conditions by construction, and thus facilitates concurrent programming. While it has mainly been used in a distributed context it is certainly equally useful for modeling interactive components in a concurrent setting. In component based software, the actor model lends itself to naturally dividing the components over different actors and using message passing concurrency for implementing the interactivity between these components. The tradeoff is that the actor model sacrifices expressiveness and efficiency especially with respect to parallel access to shared state.

This paper gives an overview of the disadvantages of the actor model in the case of shared state and then formulates an extension of the actor model to solve these issues. Our solution proposes domains and synchronization views to solve the issues without compromising on the semantic properties of the actor model. Thus, the resulting concurrency model maintains deadlock-freedom and avoids low-level race conditions.

References

  1. Akka. http://akka.io/.Google ScholarGoogle Scholar
  2. Asyncobjects framework. http://tinyurl.com/ctg7zz9.Google ScholarGoogle Scholar
  3. G. Agha. Actors: a model of concurrent computation in distributed systems. AITR-844, 1985.Google ScholarGoogle Scholar
  4. G. Agha, I. A. Mason, S. F. Smith, and C. L. Talcott. A foundation for actor computation. Journal of Functional Programming, 7 (1): 1--72, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. J. Armstrong, R. Virding, C. Wikstrom, and M. Williams. Concurrent programming in erlang. 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. M. Astley. The actor foundry: A java-based actor programming environment. University of Illinois at Urbana-Champaign: Open Systems Laboratory, 1998.Google ScholarGoogle Scholar
  7. L. Baduel, F. Baude, D. Caromel, A. Contes, F. Huet, M. Morel, and R. Quilici. Grid Computing: Software Environments and Tools, chapter Programming, Deploying, Composing, for the Grid. Springer-Verlag, January 2006.Google ScholarGoogle Scholar
  8. R. Bocchino Jr, V. Adve, D. Dig, S. Adve, S. Heumann, R. Komuravelli, J. Overbey, P. Simmons, H. Sung, and M. Vakilian. A type and effect system for deterministic parallel Java. ACM SIGPLAN Notices, 44 (10): 97--116, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. E. Brewer. Towards robust distributed systems. In Proceedings of the Annual ACM Symposium on Principles of Distributed Computing, volume 19, pages 7--10, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. B. Demsky and P. Lam. Views: Object-inspired concurrency control. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume 1, pages 395--404. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. K. Gharachorloo, D. Lenoski, J. Laudon, P. Gibbons, A. Gupta, and J. Hennessy. Memory consistency and event ordering in scalable shared-memory multiprocessors. ACM SIGARCH Computer Architecture News, 18: 15--26, May 1990. ISSN 0163--5964. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. P. Haller and M. Odersky. Scala actors: Unifying thread-based and event-based programming. Theoretical Computer Science, 410 (2--3): 202--220, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. S. Halloway. Programming Clojure. Pragmatic Bookshelf, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. K. Hoffman, H. Metzger, and P. Eugster. Ribbons: a partially shared memory programming model. In Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications, pages 289--306. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. G. Hohpe. Programming Without a Call Stack--Event-driven Architectures. Objekt Spektrum, 2006.Google ScholarGoogle Scholar
  16. R. Karmani, A. Shali, and G. Agha. Actor frameworks for the jvm platform: A comparative analysis. In Proceedings of the 7th International Conference on Principles and Practice of Programming in Java, pages 11--20. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. }axumMicrosoft Corporation. Axum programming language. http://tinyurl.com/r5e558.Google ScholarGoogle Scholar
  18. M. S. Miller, E. D. Tribble, J. Shapiro, and H. P. Laboratories. Concurrency among strangers: Programming in e as plan coordination. In In Trustworthy Global Computing, International Symposium, TGC 2005, pages 195--229. Springer, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. C. Scholliers, É. Tanter, and W. De Meuter. Parallel actor monitors. Technical report, 2010. vub-tr-soft-10-05.Google ScholarGoogle Scholar
  20. S. Srinivasan and A. Mycroft. Kilim: Isolation-typed actors for java. ECOOP 2008--Object-Oriented Programming, pages 104--128, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. H. Sutter. Welcome to the jungle. http://herbsutter.com/welcome-to-the-jungle/, 2011.Google ScholarGoogle Scholar
  22. D. Ungar and R. Smith. Self: The power of simplicity, volume 22. ACM, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. T. Van Cutsem, S. Mostinckx, E. Gonzalez Boix, J. Dedecker, and W. De Meuter. Ambienttalk: Object-oriented event-driven programming in mobile ad hoc networks. In Chilean Society of Computer Science, 2007. SCCC'07. XXVI International Conference of the, pages 3--12. Ieee, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. C. Varela and G. Agha. Programming dynamically reconfigurable open systems with salsa. ACM SIGPLAN Notices, 36 (12): 20--34, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. A. Yonezawa, J. Briot, and E. Shibayama. Object-oriented concurrent programming ABCL/1. ACM SIGPLAN Notices, 21 (11): 268, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Domains: safe sharing among actors

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          AGERE! 2012: Proceedings of the 2nd edition on Programming systems, languages and applications based on actors, agents, and decentralized control abstractions
          October 2012
          150 pages
          ISBN:9781450316309
          DOI:10.1145/2414639

          Copyright © 2012 ACM

          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]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 21 October 2012

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          Overall Acceptance Rate19of35submissions,54%

          Upcoming Conference

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader