Fault Model Design Space for Cooperative Concurrency

  • Ivan Lanese
  • Michael Lienhardt
  • Mario Bravetti
  • Einar Broch Johnsen
  • Rudolf Schlatte
  • Volker Stolz
  • Gianluigi Zavattaro
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8803)

Abstract

This paper critically discusses the different choices that have to be made when defining a fault model for an object-oriented programming language. We consider in particular the ABS language, and analyze the interplay between the fault model and the main features of ABS, namely the cooperative concurrency model, based on asynchronous method invocations whose return results via futures, and its emphasis on static analysis based on invariants.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Agha, G., Hewitt, C.: Actors: A conceptual foundation for concurrent object-oriented programming. In: Research Directions in Object-Oriented Programming, pp. 49–74. MIT Press (1987)Google Scholar
  2. 2.
    Armstrong, J.: Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf (2007)Google Scholar
  3. 3.
    Baduel, L., et al.: Programming, Composing, Deploying, for the Grid. In: Grid Computing: Software Environments and Tools. Springer (2006)Google Scholar
  4. 4.
    Beckert, B., Hähnle, R., Schmitt, P.H.: Verification of Object-oriented Software: The KeY Approach. Springer (2007)Google Scholar
  5. 5.
    Caromel, D.: Service, Asynchrony, and Wait-By-Necessity. Journal of Object Oriented Programming, 12–22 (1989)Google Scholar
  6. 6.
    Chen, K., Hudak, P., Odersky, M.: Parametric type classes. In: Proc. of LFP 1992, pp. 170–181. ACM (1992)Google Scholar
  7. 7.
    Cristian, F.: Understanding fault-tolerant distributed systems. Communications of the ACM 34(2), 56–78 (1991)CrossRefGoogle Scholar
  8. 8.
    de Boer, F.S., Clarke, D., Johnsen, E.B.: A complete guide to the future. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 316–330. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  9. 9.
    Din, C.C., Dovland, J., Johnsen, E.B., Owe, O.: Observable behavior of distributed systems: Component reasoning for concurrent objects. Journal of Logic and Algebraic Programming 81(3), 227–256 (2012)MathSciNetCrossRefMATHGoogle Scholar
  10. 10.
    Elnozahy, E.N., Alvisi, L., Wang, Y.-M., Johnson, D.B.: A survey of rollback-recovery protocols in message-passing systems. ACM Computing Surveys 34(3), 375–408 (2002)CrossRefGoogle Scholar
  11. 11.
    Goetz, B., Peierls, T., Bloch, J., Bowbeer, J., Holmes, D., Lea, D.: Java Concurrency in Practice. Addison-Wesley (2006)Google Scholar
  12. 12.
    Göri, G., Johnsen, E.B., Schlatte, R., Stolz, V.: Erlang-style error recovery for concurrent objects with cooperative scheduling. In: Margaria, T., Steffen, B. (eds.) ISoLA 2014, Part II. LNCS, vol. 8803, pp. 5–21. Springer, Heidelberg (2014)Google Scholar
  13. 13.
    Haller, P., Odersky, M.: Scala actors: Unifying thread-based and event-based programming. Theoretical Computer Science 410(2-3), 202–220 (2009)MathSciNetCrossRefMATHGoogle Scholar
  14. 14.
    Halstead Jr., R.H.: Multilisp: A language for concurrent symbolic computation. ACM Trans. Prog. Lang. Syst. 7(4), 501–538 (1985)CrossRefMATHGoogle Scholar
  15. 15.
    International Telecommunication Union. Open Distributed Processing — Reference Model parts 1–4. Technical report, ISO/IEC, Geneva (July 1995)Google Scholar
  16. 16.
    Jay, B.: Algebraic data types. In: Pattern Calculus, pp. 149–160. Springer (2009)Google Scholar
  17. 17.
    Johnsen, E.B., Hähnle, R., Schäfer, J., Schlatte, R., Steffen, M.: ABS: A core language for abstract behavioral specification. In: Aichernig, B.K., de Boer, F.S., Bonsangue, M.M. (eds.) FMCO 2010. LNCS, vol. 6957, pp. 142–164. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  18. 18.
    Johnsen, E.B., Lanese, I., Zavattaro, G.: Fault in the future. In: De Meuter, W., Roman, G.-C. (eds.) COORDINATION 2011. LNCS, vol. 6721, pp. 1–15. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  19. 19.
  20. 20.
    Kramer, J.: Is abstraction the key to computing? Communications of the ACM 50(4), 36–42 (2007)CrossRefGoogle Scholar
  21. 21.
    Lanese, I., Mezzina, C.A., Schmitt, A., Stefani, J.-B.: Controlling reversibility in higher-order pi. In: Katoen, J.-P., König, B. (eds.) CONCUR 2011. LNCS, vol. 6901, pp. 297–311. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  22. 22.
    Lavender, R.G., Schmidt, D.C.: Active object: an object behavioral pattern for concurrent programming. In: Pattern Languages of Program Design 2, pp. 483–499. Addison-Wesley Longman Publishing Co., Inc. (1996)Google Scholar
  23. 23.
    Liskov, B.H., Shrira, L.: Promises: Linguistic support for efficient asynchronous procedure calls in distributed systems. In: PLDI, pp. 260–267. ACM Press (1988)Google Scholar
  24. 24.
    Löh, A., Hinze, R.: Open data types and open functions. In: Proc. of PPDP 2006, pp. 133–144. ACM (2006)Google Scholar
  25. 25.
    Morris, B.: CActive and Friends. Symbian Developer Network (November 2007), http://developer.symbian.com/main/downloads/papers/CActiveAndFriends/CActiveAndFriends.pdf
  26. 26.
    Nienaltowski, P.: Practical framework for contract-based concurrent object-oriented programming. PhD thesis, Department of Computer Science, ETH Zurich (2007)Google Scholar
  27. 27.
    Pitt, E., McNiff, K.: Java.Rmi: The Remote Method Invocation Guide. Addison-Wesley Longman Publishing Co., Inc. (2001)Google Scholar
  28. 28.
    Ponge, J.: Better resource management with Java SE 7: Beyond syntactic sugar (May 2011), http://www.oracle.com/technetwork/articles/java/trywithresources-401775.html
  29. 29.
    Rémy, D.: Type checking records and variants in a natural extension of ml. In: Proc. of POPL 1989, pp. 77–88. ACM (1989)Google Scholar
  30. 30.
    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
  31. 31.
    Waldo, J., Wyant, G., Wollrath, A., Kendall, S.: A note on distributed computing. In: Vitek, J., Tschudin, C. (eds.) MOS 1996. LNCS, vol. 1222, pp. 49–64. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  32. 32.
    Yonezawa, A.: ABCL: An Object-Oriented Concurrent System. MIT Press (1990)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2014

Authors and Affiliations

  • Ivan Lanese
    • 1
  • Michael Lienhardt
    • 1
  • Mario Bravetti
    • 1
  • Einar Broch Johnsen
    • 2
  • Rudolf Schlatte
    • 2
  • Volker Stolz
    • 2
  • Gianluigi Zavattaro
    • 1
  1. 1.Focus TeamUniversità di Bologna/INRIAItaly
  2. 2.Department of InformaticsUniversity of OsloNorway

Personalised recommendations