Advertisement

Exception Handling and Asynchronous Active Objects: Issues and Proposal

  • Christophe Dony
  • Christelle Urtado
  • Sylvain Vauttier
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4119)

Abstract

Asynchronous Active Objects (AAOs), primarily exemplified by actors [1], nowadays exist in many forms (various kinds of actors, agents and components) and are more and more used because they fit well the dynamic and asynchronous nature of interactions in many distributed systems. They raise various new issues regarding exception handling for which few operational solutions exist. More precisely, a need exists for a generic, simple and expressive, programmer level, exception handling system that appropriately handles the following main exception handling issues or requirements in the context of AAOs: encapsulation, object autonomy, coordination of concurrent collaborative entities [2], “caller contextualization” [3], asynchronous signaling and handler execution, resolution of concurrent exceptions [4,5], exception criticality [6] and object reactivity.

This paper presents the specification of an evolution of the Sage exception handling system [7], which provides solutions to those issues in the context of systems developed with active objects using one way asynchronous communications and interacting via the request / response protocol. Such a context, in which synchronizations constraints are, when needed, handled at the application level, allows for a very generic view of what could be done regarding exception handling in all systems that use active objects. The Sage solution is original and provides a good compromise between expressive-power and simplicity.

Keywords

active objects agents distributed components message driven components exception handling reliability asynchronous message-based communication 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Hewitt, C., Peter Bishop, R.S.: A universal modular actor formalism for artificial intelligence. In: Proceedings of the International Joint Conference on Artificial Intelligence, pp. 235–246 (1973)Google Scholar
  2. 2.
    Randell, B., Romanovsky, A., Rubira-Calsavara, C., Stroud, R., Wu, Z., Xu, J.: From recovery blocks to concurrent atomic actions. In: Predictably Dependable Computing Systems. ESPRIT Basic Research Series, pp. 87–101 (1995)Google Scholar
  3. 3.
    Dony, C.: Exception handling and object-oriented programming: towards a synthesis. ACM SIGPLAN Notices 25(10), 322–330 (1990); Meyrowitz, N. (ed.) OOPSLA ECOOP 1990 ProceedingsCrossRefGoogle Scholar
  4. 4.
    Issarny, V.: An exception handling model for parallel programming and its verification. In: Proceedings of the ACM SIGSOFT 1991 Conference on Software for Critical Systems, New Orleans, Louisianna, USA, pp. 92–100 (1991)Google Scholar
  5. 5.
    Romanovsky, A.: Practical exception handling and resolution in concurrent programs. Computer Languages 23(1), 43–58 (1997)CrossRefGoogle Scholar
  6. 6.
    Lacourte, S.: Exceptions in Guide, an object-oriented language for distributed applications. In: America, P. (ed.) ECOOP 1991. LNCS, vol. 512, pp. 268–287. Springer, Heidelberg (1991)CrossRefGoogle Scholar
  7. 7.
    Souchon, F., Dony, C., Urtado, C., Vauttier, S.: Improving exception handling in multi-agent systems. In: Lucena, C., Garcia, A., Romanovsky, A., Castro, J., Alencar, P.S.C. (eds.) SELMAS 2003. LNCS, vol. 2940, pp. 167–188. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  8. 8.
    Briot, J.-P., Guerraoui, R.: A classification of various approaches for object-based parallel and distributed programming. In: Padget, J.A. (ed.) Collaboration between Human and Artificial Societies 1997. LNCS, vol. 1624, pp. 3–29. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  9. 9.
    Lavender, R.G., Schmidt, D.C.: Active object: An object behavioral pattern for concurrent programming. In: Coplien, Vlissides, Kerth (eds.) Pattern Languages of Program Design. Addison-Wesley, Reading (1996)Google Scholar
  10. 10.
    FIPA: Foundation For Intelligent Physical Agents: Request Interaction Protocol Specification (2002)Google Scholar
  11. 11.
    Ferber, J.: Multi-Agent Systems: An Introduction to Distributed Artificial Intelligence, 1st edn. Addison-Wesley Publishing company, Reading (2005)Google Scholar
  12. 12.
    Clement Jonquet, S.A.C.: The strobe model: Dynamic service generation on the grid. Applied Artificial Intelligence Journal Special issue on Learning Grid Services 19(9-10), 967–1013 (2005)Google Scholar
  13. 13.
    Dedecker, J., Cutsem, T.V., Mostinckx, S., D’Hondt, T., Meuter, W.D.: Ambient-oriented programming in ambienttalk. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 230–254. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  14. 14.
    Romanovsky, A.B., Kienzle, J.: Action-oriented exception handling in cooperative and competitive concurrent object-oriented systems. In: Romanovsky, A., Dony, C., Knudsen, J.L., Tripathi, A.R. (eds.) ECOOP-WS 2000. LNCS, vol. 2022, pp. 147–164. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  15. 15.
    Theriault, D.: A primer for the Act-1 language. Technical Report AI Memo 672, MIT Artificial Intelligence Laboratory (1982)Google Scholar
  16. 16.
    Halstead, R., Loaiza, J.: Exception handling in multilisp. In: 1985 Int’l. Conf. on Parallel Processing, pp. 822–830 (1985)Google Scholar
  17. 17.
    Campbell, R., Randell, B.: Error recovery in asynchronous systems. IEEE Transactions on Software Engineering (SE) SE-12(8), 811–826 (1986)Google Scholar
  18. 18.
    Gärtner, F.C.: Fundamentals of fault tolerant distributed computing in asynchronous environments. ACMCS 31(1), 1–26 (1999)Google Scholar
  19. 19.
    Keen, A.W., Olsson, R.A.: Exception handling during asynchronous method invocation. In: Monien, B., Feldmann, R.L. (eds.) Euro-Par 2002. LNCS, vol. 2400, pp. 656–660. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  20. 20.
    Van Roy, P.: On the separation of concerns in distributed programming: Application to distribution structure and fault tolerance in Mozart. In: Fourth International Workshop on Parallel and Distributed Computing for Symbolic and Irregular Applications (PDSIA 1999), Tohoku University, Sendai, Japan. World Scientific, Singapore (1999)Google Scholar
  21. 21.
    Campéas, A., Dony, C., Urtado, C., Vauttier, S.: Distributed exception handling: ideas, lessons and issues with recent exception handling systems. In: Guelfi, N. (ed.) RISE 2004. LNCS, vol. 3475, pp. 82–92. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  22. 22.
    Carlsson, R., Gustavsson, B., Nyblom, P.: Erlang: Exception handling revisited. In: Proceedings of the Third ACM SIGPLAN Erlang Workshop (2004)Google Scholar
  23. 23.
    Iliasov, A., Romanovsky, A.: Exception handling in coordination-based mobile environments. In: Proceedings of 29th IEEE International Computer Software and Applications Conference (COMPSAC 2005), Edinburgh, Scotland, UK, July 25-28, pp. 341–350 (2005)Google Scholar
  24. 24.
    Klein, M., Dellarocas, C.: Exception handling in agent systems. In: Etzioni, O., Müller, J.P., Bradshaw, J.M. (eds.) Proceedings of the Third Annual Conference on Autonomous Agents (AGENTS 1999), pp. 62–68. ACM Press, New York (1999)CrossRefGoogle Scholar
  25. 25.
    Klein, M., Dellarocas, C.: Towards a systematic repository of knowledge about managing multi-agent system exceptions, ases working paper ases-wp-2000-01 (2000)Google Scholar
  26. 26.
    Tripathi, A., Miller, R.: Exception handling in agent oriented systems. In: Romanovsky, A., Dony, C., Knudsen, J.L., Tripathi, A.R. (eds.) ECOOP-WS 2000. LNCS, vol. 2022, pp. 128–146. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  27. 27.
    Miller, R., Tripathi, A.: The guardian model and primitives for exception handling in distributed systems. IEEE Trans. Software Eng. 30(12), 1008–1022 (2004)CrossRefGoogle Scholar
  28. 28.
    Dony, C.: An object-oriented exception handling system for an object-oriented language. In: Gjessing, S., Nygaard, K. (eds.) ECOOP 1988. LNCS, vol. 322, pp. 146–161. Springer, Heidelberg (1988)CrossRefGoogle Scholar
  29. 29.
    Issarny, V.: An exception handling mechanism for parallel object-oriented programming: Towards the design of reusable, and robust distributed software. Journal of Object-Oriented Programming 6(6), 29–39 (1993)Google Scholar
  30. 30.
    Souchon, F., Urtado, C., Vauttier, S., Dony, C.: Exception handling in component-based systems: a first study. In: Romanovsky, A., Dony, C., Knudsen, J., Tripathi, A. (eds.) ECOOP 2003. LNCS, vol. 2743, pp. 84–91. Springer, Heidelberg (2003)Google Scholar
  31. 31.
    Miller, R., Tripathi, A.R.: Issues with exception handling in object-oriented systems. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 85–103. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  32. 32.
    Dellarocas, C.: Toward exception handling infrastructures for component-based software. In: Proceedings of the International Workshop on Component-based Software Engineering, 20th International Conference on Software Engineering (ICSE), Kyoto, Japan, April 25-26 (1998)Google Scholar
  33. 33.
    Levin, R.: Program structures for exceptinal condition handling. Phd dissertation. Dept. Comput. Sci. Carnegie-Mellon University, Pittsburg (1977)Google Scholar
  34. 34.
    Knudsen, J.L.: Fault Tolerance and Exception Handling in BETA. In: Romanovsky, A., Dony, C., Knudsen, J.L., Tripathi, A.R. (eds.) ECOOP-WS 2000. LNCS, vol. 2022, p. 1. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  35. 35.
    Burns, A., Randell, B., Romanovsky, A., Stroud, R.J., Wellings, A.J., Xu, J.: Temporal constraints and exception handling in object-oriented distributed systems. Design for Validation (DeVa) - Third Year Report, Esprit LTR Project 20072 - DeVa (1998)Google Scholar
  36. 36.
    Tartanoglu, F., Issarny, V., Levy, N., Romanovsky, A.: Dependability in the web service architecture (2002)Google Scholar
  37. 37.
    Pitman, K.: Error/condition handling. Technical report, Contribution to WG16. Revision 18.Propositions for ISO-LISP. AFNOR, ISO/IEC JTC1/SC 22/WG 16N15 (April 1988)Google Scholar
  38. 38.
    Goodenough, J.B.: Exception handling: Issues and a proposed notation. Commun. ACM 18(12), 683–696 (1975)CrossRefMathSciNetzbMATHGoogle Scholar
  39. 39.
    Meyer, B.: Disciplined exceptions. Technical report tr-ei-22/ex, Interactive Software Engineering, Goleta, CA (1988)Google Scholar
  40. 40.
    Issarny, V.: Concurrent exception handling. In: Romanovsky, A., Dony, C., Knudsen, J.L., Tripathi, A.R. (eds.) ECOOP-WS 2000. LNCS, vol. 2022, pp. 111–127. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  41. 41.
    Randell, B., Romanovsky, A., Stroud, R.J., Xu, J., Zorzo, A.F.: Coordinated Atomic Actions: from Concept to Implementation. Technical Report 595, Department of Computing Science, University of Newcastle upon Tyne (1997)Google Scholar
  42. 42.
    Miller, R., Tripathi, A.: Primitives and mechanisms of the guardian model for exception handling in distributed systems. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743. Springer, Heidelberg (2003)Google Scholar
  43. 43.
    Caromel, D., Henrio, L., Serpette, B.: Asynchronous and deterministic objects. In: Proceedings of the 31st ACM Symposium on Principles of Programming Languages. ACM Press, New York (to appear 2004)Google Scholar
  44. 44.
    Rintala, M.: Handling multiple concurrent exceptions in C++ using futures, kokoelmassa romanovsky. In: Developing Systems that Handle Exceptions, Proceedings of ECOOP 2005 Workshop on Exception Handling in Object Oriented Systems. ACM Press, New York (2005)Google Scholar
  45. 45.
    Romanovsky, A.B.: Conversations of objects. Computer Languages 21(3/4), 147–163 (1995)CrossRefGoogle Scholar
  46. 46.
    Kienzle, J.: Open Multithreaded Transactions - A Transaction Model for Concurrent Object-Oriented Programming. Kluwer Academic Publishers, Dordrecht (2003)zbMATHGoogle Scholar
  47. 47.
    Guelfi, N., Razavi, R., Romanovsky, A., Vandenbergh, S.: Drip catalyst: An MDE/MDA method for fault-tolerant distributed software families development. In: Proceedings of the OOPSLA and GPCE Workshop on Best Practices for Model Driven Software Development (2004)Google Scholar
  48. 48.
    Pitman, K.M.: Condition handling in the lisp language family. In: Romanovsky, A., Dony, C., Knudsen, J.L., Tripathi, A.R. (eds.) ECOOP-WS 2000. LNCS, vol. 2022, pp. 39–59. Springer, Heidelberg (2001)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Christophe Dony
    • 1
  • Christelle Urtado
    • 2
  • Sylvain Vauttier
    • 2
  1. 1.LIRMMCNRS and Montpellier II UniversityMontpellierFrance
  2. 2.LGI2PEcole des Mines d’AlèsNîmesFrance

Personalised recommendations