An Interference-Free Programming Model for Network Objects

  • Mischael Schill
  • Christopher M. Poskitt
  • Bertrand Meyer
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9686)

Abstract

Network objects are a simple and natural abstraction for distributed object-oriented programming. Languages that support network objects, however, often leave synchronization to the user, along with its associated pitfalls, such as data races and the possibility of failure. In this paper, we present D-Scoop, a distributed programming model that allows for interference-free and transaction-like reasoning on (potentially multiple) network objects, with synchronization handled automatically, and network failures managed by a compensation mechanism. We achieve this by leveraging the runtime semantics of a multi-threaded object-oriented concurrency model, directly generalizing it with a message-based protocol for efficiently coordinating remote objects. We present our pathway to fusing these contrasting but complementary ideas, and evaluate the performance overhead of the automatic synchronization in D-Scoop, finding that it comes close to—or outperforms—explicit locking-based synchronization in Java RMI.

References

  1. 1.
    Agha, G.: ACTORS: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge (1986)Google Scholar
  2. 2.
    Birrell, A., Nelson, G., Owicki, S.S., Wobber, E.: Network objects. In: Proceedings of SOSP 1993, pp. 217–230. ACM (1993)Google Scholar
  3. 3.
    Birrell, A., et al.: Distributed garbage collection for network objects. Technical report, Systems Research Center (1993)Google Scholar
  4. 4.
    Caromel, D., Henrio, L., Serpette, B.P.: Asynchronous sequential processes. Inf. Comput. 207(4), 459–495 (2009)MathSciNetCrossRefMATHGoogle Scholar
  5. 5.
    Corrodi, C., Heußner, A., Poskitt, C.M.: A graph-based semantics workbench for concurrent asynchronous programs. In: Stevens, P., et al. (eds.) FASE 2016. LNCS, vol. 9633, pp. 31–48. Springer, Heidelberg (2016)CrossRefGoogle Scholar
  6. 6.
    Dedecker, J., Van Cutsem, T., Mostinckx, S., D’Hondt, T., De Meuter, W.: Ambient-oriented programming in AmbientTalk. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 230–254. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  7. 7.
    Distributed SCOOP website. http://cme.ethz.ch/scoop/dscoop/
  8. 8.
    Eiffel Documentation: Concurrent Eiffel with SCOOP. https://www.eiffel.org/doc/solutions/Concurrent%20programming%20with%20SCOOP. Accessed April 2016
  9. 9.
    Eugster, P., Vaucouleur, S.: Composing atomic features. Sci. Comput. Program. 63(2), 130–146 (2006)MathSciNetCrossRefMATHGoogle Scholar
  10. 10.
  11. 11.
    Henrio, L., Huet, F., István, Z.: Multi-threaded active objects. In: De Nicola, R., Julien, C. (eds.) COORDINATION 2013. LNCS, vol. 7890, pp. 90–104. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  12. 12.
    Johnsen, E.B., Owe, O., Yu, I.C.: Creol: a type-safe object-oriented model for distributed concurrent systems. Theor. Comput. Sci. 365(1–2), 23–66 (2006)MathSciNetCrossRefMATHGoogle Scholar
  13. 13.
    Johnsen, E.B., Blanchette, J.C., Kyas, M., Owe, O.: Intra-object versus inter-object: concurrency and reasoning in Creol. Proc. TTSS 2008. ENTCS 243, 89–103 (2009)Google Scholar
  14. 14.
    Lavender, R.G., Schmidt, D.C.: Active object: an object behavioral pattern for concurrent programming. In: Vlissides, J.M., Coplien, J.O., Kerth, N.L. (eds.) Pattern Languages of Program Design, vol. 2, pp. 483–499. Addison-Wesley (1996)Google Scholar
  15. 15.
    Liskov, B.: Distributed programming in Argus. Commun. ACM (CACM) 31(3), 300–312 (1988)MathSciNetCrossRefGoogle Scholar
  16. 16.
    Miller, M.S., Tribble, E.D., Shapiro, J.S.: Concurrency among strangers. In: De Nicola, R., Sangiorgi, D. (eds.) TGC 2005. LNCS, vol. 3705, pp. 195–229. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  17. 17.
    Morandi, B., Schill, M., Nanz, S., Meyer, B.: Prototyping a concurrency model. In: Proceedings of ACSD 2013, pp. 170–179. IEEE (2013)Google Scholar
  18. 18.
    Morandi, B., Nanz, S., Meyer, B.: Safe and efficient data sharing for message-passing concurrency. In: Kühn, E., Pugliese, R. (eds.) COORDINATION 2014. LNCS, vol. 8459, pp. 99–114. Springer, Heidelberg (2014)CrossRefGoogle Scholar
  19. 19.
    Nanz, S., Torshizi, F., Pedroni, M., Meyer, B.: Design of an empirical study for comparing the usability of concurrent programming languages. In: Proceedings of ESEM 2011, pp. 325–334. IEEE Computer Society (2011)Google Scholar
  20. 20.
    Nienaltowski, P.: Practical framework for contract-based concurrent object-oriented programming. Doctoral dissertation, ETH Zürich (2007)Google Scholar
  21. 21.
    Schäfer, J., Poetzsch-Heffter, A.: JCoBox: generalizing active objects to concurrent components. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 275–299. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  22. 22.
    Schill, M., Nanz, S., Meyer, B.: Handling parallelism in a concurrency model. In: Lourenço, J.M., Farchi, E. (eds.) MUSEPAT 2013 2013. LNCS, vol. 8063, pp. 37–48. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  23. 23.
    Shavit, N., Touitou, D.: Software transactional memory. Distributed Comput. 10(2), 99–116 (1997)CrossRefGoogle Scholar
  24. 24.
    Torshizi, F.A., Ostroff, J.S., Paige, R.F., Chechik, M.: The SCOOP concurrency model in Java-like languages. In: Proceedings of CPA 2009. Concurrent Systems Engineering Series, vol. 67, pp. 7–27. IOS Press (2009)Google Scholar
  25. 25.
    West, S., Nanz, S., Meyer, B.: Efficient and reasonable object-oriented concurrency. In: Proceedings of ESEC/FSE 2015, pp. 734–744. ACM (2015)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2016

Authors and Affiliations

  • Mischael Schill
    • 1
  • Christopher M. Poskitt
    • 2
  • Bertrand Meyer
    • 3
    • 4
    • 5
  1. 1.Department of Computer ScienceETH ZürichZürichSwitzerland
  2. 2.Singapore University of Technology and DesignSingaporeSingapore
  3. 3.Politecnico di MilanoMilanItaly
  4. 4.Innopolis UniversityKazanRussia
  5. 5.Université Paul SabatierToulouseFrance

Personalised recommendations