Skip to main content Accessibility help
×
Home
Hostname: page-component-78dcdb465f-xl52z Total loading time: 0.427 Render date: 2021-04-19T10:31:58.893Z Has data issue: true Feature Flags: { "shouldUseShareProductTool": true, "shouldUseHypothesis": true, "isUnsiloEnabled": true, "metricsAbstractViews": false, "figures": false, "newCiteModal": false, "newCitedByModal": true }

Typed dataspace actors

Published online by Cambridge University Press:  24 August 2020

SAM CALDWELL
Affiliation:
Northeastern University, Boston, MA 02115, USA (e-mails: samc@ccs.neu.edu, tonyg@leastfixedpoint.com, matthias@ccs.neu.edu)
TONY GARNOCK-JONES
Affiliation:
Northeastern University, Boston, MA 02115, USA (e-mails: samc@ccs.neu.edu, tonyg@leastfixedpoint.com, matthias@ccs.neu.edu)
MATTHIAS FELLEISEN
Affiliation:
Northeastern University, Boston, MA 02115, USA (e-mails: samc@ccs.neu.edu, tonyg@leastfixedpoint.com, matthias@ccs.neu.edu)

Absatract

Actors collaborate via message exchanges to reach a common goal. Experience has shown, however, that pure message-based communication is limiting and forces developers to use design patterns. The recently introduced dataspace actor model borrows ideas from the tuple space realm. It offers a tightly controlled, shared storage facility for groups of actors. In this model, actors assert facts that they wish to share and interests in such assertions. The dataspace notifies interested parties of changes to the set of assertions that they are interested in. Although it is straightforward to add the dataspace model to untyped languages, adding a typed interface is both necessary and challenging. Without restrictions on exchanged data, a faulty actor may propagate erroneous data through a malformed assertion, causing an otherwise well-behaved actor to crash—violating the key principle of failure isolation. A properly designed type system can prevent this scenario and rule out other kinds of uncooperative actors. This paper presents the first structural type system for the dataspace model of actors; it does not address the question of behavioral types for assertion-oriented protocols.

Type
Research Article
Copyright
© The Author(s), 2020. Published by Cambridge University Press

Access options

Get access to the full version of this content by using one of the access options below.

References

Gigaspaces (2017). Gigaspaces. Accessed October 19, 2017. Available at: https://www.gigaspaces.com.Google Scholar
Javaspaces service specification (2017). Javaspaces service specification, version 2.3. Accessed January 24, 2017. Available at: https://river.apache.org/release-doc/current/specs/html/js-spec.html.Google Scholar
Agha, G. (1986) Actors: A Model of Concurrent Computation in Distributed Systems. Massachusetts: MIT.CrossRefGoogle Scholar
Armstrong, J. (1994) Programming Erlang. The Pragmatic Programmers.Google Scholar
Armstrong, J. (2003) Making Reliable Distributed Systems in the Presence of Software Errors. PhD dissertation, Stockholm: Royal Institute of Technology.Google Scholar
Caires, L. & Vieira, H. T. (2009) Conversation types. In ESOP, pp. 285300.CrossRefGoogle Scholar
Carriero, N. J., Gelernter, D., Mattson, T. G. & Sherman, A. H. (1994) The Linda alternative to message-passing systems. Parallel Comput. 20(4), 633655.CrossRefGoogle Scholar
Chang, S., Knauth, A. & Greenman, B. (2017) Type systems as macros. In POPL, pp. 694705.CrossRefGoogle Scholar
Clebsch, S., Drossopoulou, S., Blessing, S. & McNeil, A. (2015) Deny capabilities for safe, fast actors. In International Workshop on Programming Based on Actors, Agents, and Decentralized Control. AGERE! 2015.CrossRefGoogle Scholar
Clocksin, W. F. & Mellish, C. S. (1981) Programming in Prolog. Springer.Google Scholar
Crafa, S. (2012) Behavioural Types for Actor Systems. Technical report.Google Scholar
de’Liguoro, U. & Padovani, L. (2018) Mailbox types for unordered interactions. In ECOOP.Google Scholar
Dotty Compiler Team. (2019) Union types - more details. Accessed December 13, 2019. Available at: https://dotty.epfl.ch/docs/reference/new-types/union-types-spec.html.Google Scholar
ECMA. (2015) ECMA-262: ECMAScript 2015 Language Specification, 6th ed. ECMA International.Google Scholar
Englemore, R. & Morgan, A. (eds). (1988) Blackboard Systems. Addison-Wesley.Google Scholar
Eugster, P. Th., Felber, P. A., Guerraoui, R. & Kermarrec, A.-M. (2003) The many faces of publish/subscribe. ACM Comput. Surv. 35(2), 114131.CrossRefGoogle Scholar
Felleisen, M., Findler, R. B. & Flatt, M. (2009) Semantics Engineering with PLT Redex. MIT.Google Scholar
Flatt, M., Culpepper, R., Darais, D & Findler, R. B. (2012) Macros that work together: Compile-time bindings, partial expansion, and definition contexts. J. Funct. Program. 22(2), 181216.CrossRefGoogle Scholar
Flatt, M. & PLT. (2010) Reference: Racket. Technical report PLT-TR-2010-1. PLT Inc. http://racket-lang.org/tr1/.Google Scholar
Garnock-Jones, T. (2017). Conversational Concurrency. PhD dissertation, Northeastern University.Google Scholar
Garnock-Jones, T. & Felleisen, M. (2016) Coordinated concurrent programming in Syndicate. In ESOP, pp. 310336.CrossRefGoogle Scholar
Garnock-Jones, T., Tobin-Hochstadt, S. & Felleisen, M. (2014) The network as a language construct. In ESOP, pp. 473492.CrossRefGoogle Scholar
Gelernter, D. (1985) Generative communication in Linda. ACM Trans. Program. Lang. Syst.CrossRefGoogle Scholar
Girard, J.-Y. (1971) Une extension de l’interpretation de Gödel a l’analyse, et son application a l’elimination des coupures dans l’analyse et la theorie des types. Stud. Logic Foundat. Math. 63, 6392.CrossRefGoogle Scholar
Haller, P. & Loiko, A (2016) LaCasa: Lightweight affinity and object capabilities in Scala. In OOPSLA, pp. 272291.CrossRefGoogle Scholar
He, J., Wadler, P. & Trinder, P. (2014) Typecasting actors: From Akka to TAkka. In Proceedings of the Fifth Annual Scala Workshop, pp. 2333.CrossRefGoogle Scholar
Hewitt, C., Bishop, P. B., Greif, I., Smith, B. C., Matson, T. & Steiger, R. (1973) Actor induction and meta-evaluation. In POPL.CrossRefGoogle Scholar
Hoffmann, J. & Shao, Z. (2015) Automatic static cost analysis for parallel programs. In ESOP, pp. 132157.CrossRefGoogle Scholar
Honda, K., Vasconcelos, V. T. & Kubo, M. (1998) Language primitives and type discipline for structured communication-based programming. In ESOP, pp. 122138.CrossRefGoogle Scholar
Honda, K., Yoshida, N. & Carbone, M. (2008) Multiparty asynchronous session types. In POPL’08, pp. 273284.CrossRefGoogle Scholar
Jeuring, J. (1995) Polytypic pattern matching. In FPCA’95, pp. 238248.CrossRefGoogle Scholar
Leivant, D. (2001) Termination proofs and complexity certification. In Theoretical Aspects of Computer Software, pp. 183–200.CrossRefGoogle Scholar
Miller, M. S., Tribble, E. D. & Shapiro, J. (2005) Concurrency among strangers. In International Symposium on Trustworthy Global Computing, pp. 195229.CrossRefGoogle Scholar
Milner, R. (1999) Communicating and Mobile Systems: The PI Calculus. Cambridge University.Google Scholar
Mostinckx, S., Scholliers, C., Philips, E., Herzeel, C. & De Meuter, W. (2007) Fact spaces: Coordination in the face of disconnection. In Proceedings of COORDINATION 2007, pp. 268285.CrossRefGoogle Scholar
Mostrous, D. & Vasconcelos, V. T. (2011) Session typing for a featherweight erlang. In COORDINATION, pp. 95109.CrossRefGoogle Scholar
Murphy, A. L., Picco, G. P. & Roman, G.-C. (2006) Lime: A coordination model and middleware supporting mobility of hosts and agents. ACM Trans. Soft. Eng. Method. 15(3), 279328.CrossRefGoogle Scholar
Newell, A. & Simon, H. A. (1972) Human Problem Solving. Prentice Hall.Google Scholar
Picco, G. P., Balzarotti, D. & Costa, P. (2005) LighTS: A lightweight, customizable tuple space supporting context-aware applications. In Proceedings of SAC’05, pp. 413419.CrossRefGoogle Scholar
Pierce, B. C. (1991) Programming with Intersection Types, Union Types, and Polymorphism. Technical report CMU-CS-91-106, Carnegie Mellon University.Google Scholar
Pierce, B. C. & Turner, D. N. (1998) Local type inference. In POPL, pp. 252265.CrossRefGoogle Scholar
Scholliers, C., Harnie, D., Tanter, E., De Meuter, W. & D’Hondt, T. (2011) Ambient contracts: Verifying and enforcing ambient object compositions à la carte. Personal Ubiquitous Comput. 15(4), 341351.CrossRefGoogle Scholar
Srinivasan, S. & Mycroft, A. (2008) Kilim: Isolation-typed actors for Java. In ECOOP, pp. 104128.CrossRefGoogle Scholar
Strom, R. E. & Yemini, S. (1986) Typestate: A programming language concept for enhancing software reliability. IEEE Trans. Soft. Eng., 157–171.CrossRefGoogle Scholar
Summers, A. J. & Müller, P. (2016) Actor services: Modular verification of message passing programs. In ESOP.CrossRefGoogle Scholar
Tasharofi, S., Dinges, P. & Johnson, R. E. (2013) Why do scala developers mix the actor model with other concurrency models? In ECOOP.CrossRefGoogle Scholar
Tobin-Hochstadt, S. & Felleisen, M. (2008) The design and implementation of Typed Scheme. In POPL, pp. 395406.CrossRefGoogle Scholar
Toninho, B., Caires, L. & Pfenning, F. (2011) Dependent session types via intuitionistic linear type theory. In PPDP.CrossRefGoogle Scholar
Van Cutsem, T., Gonzalez Boix, E., Scholliers, C., Lombide Carreton, A., Harnie, D., Pinte, K. & De Meuter, W. (2014) AmbientTalk: Programming responsive mobile peer-to-peer applications with actors. Comput. Lang. Syst. Struct. 40(3–4), 112136.Google Scholar
van der Goot, R. (2000) High Performance Linda Using a Class Library. PhD dissertation, Erasmus University Rotterdam.Google Scholar
Vieira, H. T., Caires, L. & Seco, J. C. (2008) The conversation calculus: A model of service-oriented computation. In ESOP, pp. 269283.CrossRefGoogle Scholar
Wright, A. K. & Felleisen, M. (1994) A syntactic approach to type soundness. Inf. Comput. 115(1), 3894.CrossRefGoogle Scholar
Wyckoff, P., McLaughry, S. W., Lehman, T. J. & Ford, D. A. (1998) T Spaces. IBM Syst. J. 37(3), 454474.CrossRefGoogle Scholar
Submit a response

Discussions

No Discussions have been published for this article.

Altmetric attention score

Full text views

Full text views reflects PDF downloads, PDFs sent to Google Drive, Dropbox and Kindle and HTML full text views.

Total number of HTML views: 2
Total number of PDF views: 56 *
View data table for this chart

* Views captured on Cambridge Core between 24th August 2020 - 19th April 2021. This data will be updated every 24 hours.

Send article to Kindle

To send this article to your Kindle, first ensure no-reply@cambridge.org is added to your Approved Personal Document E-mail List under your Personal Document Settings on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part of your Kindle email address below. Find out more about sending to your Kindle. Find out more about sending to your Kindle.

Note you can select to send to either the @free.kindle.com or @kindle.com variations. ‘@free.kindle.com’ emails are free but can only be sent to your device when it is connected to wi-fi. ‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.

Find out more about the Kindle Personal Document Service.

Typed dataspace actors
Available formats
×

Send article to Dropbox

To send this article to your Dropbox account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your <service> account. Find out more about sending content to Dropbox.

Typed dataspace actors
Available formats
×

Send article to Google Drive

To send this article to your Google Drive account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your <service> account. Find out more about sending content to Google Drive.

Typed dataspace actors
Available formats
×
×

Reply to: Submit a response


Your details


Conflicting interests

Do you have any conflicting interests? *