Fault in the Future

  • Einar Broch Johnsen
  • Ivan Lanese
  • Gianluigi Zavattaro
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6721)


In this paper we consider the problem of fault handling inside an object-oriented language with asynchronous method calls whose results are returned inside futures. We present an extension for those languages where futures are used to return fault notifications and to coordinate error recovery between the caller and callee. This can be exploited to ensure that invariants involving many objects are restored after faults.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  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, Cambridge (1987)Google Scholar
  2. 2.
    Agha, G., Ziaei, R.: Security and fault-tolerance in distributed systems: an actor-based approach. In: Proc. of CSDA 1998, pp. 72–88. IEEE Computer Society Press, Los Alamitos (1998)Google Scholar
  3. 3.
    Ahrendt, W., Dylla, M.: A system for compositional verification of asynchronous objects. Science of Computer Programming (2010) (in press)Google Scholar
  4. 4.
    Armstrong, J.: Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf (2007)Google Scholar
  5. 5.
    Baduel, L., et al.: Programming, Composing, Deploying, for the Grid. In: Grid Computing: Software Environments and Tools. Springer, Heidelberg (2006)Google Scholar
  6. 6.
    Bruni, R., Melgratti, H., Montanari, U.: Theoretical foundations for compensations in flow composition languages. In: Proc. of POPL 2005, pp. 209–220. ACM Press, New York (2005)Google Scholar
  7. 7.
    Caires, L., Ferreira, C., Vieira, H.T.: A process calculus analysis of compensations. In: Kaklamanis, C., Nielson, F. (eds.) TGC 2008. LNCS, vol. 5474, pp. 87–103. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  8. 8.
    Caromel, D.: Service, Asynchrony, and Wait-By-Necessity. Journal of Object Oriented Programming, 12–22 (November 1989)Google Scholar
  9. 9.
    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
  10. 10.
    Guidi, C., Lanese, I., Montesi, F., Zavattaro, G.: Dynamic error handling in service oriented applications. Fundam. Inform. 95(1), 73–102 (2009)MATHMathSciNetGoogle Scholar
  11. 11.
    Haller, P., Odersky, M.: Scala actors: Unifying thread-based and event-based programming. Theoretical Computer Science 410(2-3), 202–220 (2009)CrossRefMATHMathSciNetGoogle Scholar
  12. 12.
    Halstead Jr., R.H.: Multilisp: A language for concurrent symbolic computation. ACM Trans. Prog. Lang. Syst. 7(4), 501–538 (1985)CrossRefMATHGoogle Scholar
  13. 13.
  14. 14.
    International Telecommunication Union. Open Distributed Processing — Reference Model parts 1–4. Technical report, ISO/IEC, Geneva (July 1995)Google Scholar
  15. 15.
    Johnsen, E.B., Kyas, M., Yu, I.C.: Dynamic classes: Modular asynchronous evolution of distributed concurrent objects. In: Cavalcanti, A., Dams, D.R. (eds.) FM 2009. LNCS, vol. 5850, pp. 596–611. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  16. 16.
    Johnsen, E.B., Owe, O.: An asynchronous communication model for distributed concurrent objects. Software and Systems Modeling 6(1), 35–58 (2007)CrossRefGoogle Scholar
  17. 17.
  18. 18.
    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., Amsterdam (1996)Google Scholar
  19. 19.
    Liskov, B.H., Shrira, L.: Promises: Linguistic support for efficient asynchronous procedure calls in distributed systems. In: Proc. of PLDI 1988, pp. 260–267. ACM Press, New York (1988)Google Scholar
  20. 20.
    Meseguer, J.: Conditional rewriting logic as a unified model of concurrency. Theoretical Computer Science 96, 73–155 (1992)CrossRefMATHMathSciNetGoogle Scholar
  21. 21.
    Morris, B.: CActive and Friends. Symbian Developer Network (November 2007), http://developer.symbian.com/main/downloads/papers/CActiveAndFriends/CActiveAndFriends.pdf
  22. 22.
    Nienaltowski, P.: Practical framework for contract-based concurrent object-oriented programming. PhD thesis, Department of Computer Science, ETH Zurich (2007)Google Scholar
  23. 23.
    Oasis. Web Services Business Process Execution Language Version 2.0, http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.html
  24. 24.
    Plotkin, G.D.: A structural approach to operational semantics. Journal of Logic and Algebraic Programming 60-61, 17–139 (2004)CrossRefMATHMathSciNetGoogle Scholar
  25. 25.
    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
  26. 26.
    Venkatasubramanian, N., Talcott, C.L.: Reasoning about meta level activities in open distributed systems. In: Proc. PODC 1995, pp. 144–152. ACM Press, New York (1995)Google Scholar
  27. 27.
    Yonezawa, A.: ABCL: An Object-Oriented Concurrent System. MIT Press, Cambridge (1990)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2011

Authors and Affiliations

  • Einar Broch Johnsen
    • 1
  • Ivan Lanese
    • 2
  • Gianluigi Zavattaro
    • 2
  1. 1.Department of InformaticsUniversity of OsloNorway
  2. 2.Focus TeamUniversità di Bologna/INRIAItaly

Personalised recommendations