A Methodology for Adapting to Patterns of Faults

  • Gul Agha
  • Daniel C. Sturman
Part of the The Springer International Series in Engineering and Computer Science book series (SECS, volume 283)


In this paper, we present a language framework for describing dependable systems. Our framework emphasizes modularity and composition. The dependability and functionality aspects of an application may be described independently, providing separation of design concerns. Furthermore, the dependability protocols of an application may be constructed bottom-up as simple protocols that are composed into more complex protocols. Composition makes it easier to reason about the behavior of complex protocols and supports the construction of generic reusable dependability schemes. A significant aspect of our language framework is that dependability protocols may be loaded into a running application and installed dynamically. Dynamic installation makes it possible to impose additional dependability protocols on a server as clients with new dependability demands are integrated into a system. Similarly, if a given dependability protocol is only necessary during some particular phase of execution it may be installed during that period only.


Base Object Exception Handling Remote Procedure Call System Exception Dependability Protocol 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    M. Acceta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and M. Young, Mach: A New Kernel Foundation for UNIX Developement. In USENIX 1986 Summer Conference Proceedings, June 1986.Google Scholar
  2. [2]
    G. Agha. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, 1986.Google Scholar
  3. [3]
    G. Agha. Concurrent Object-Oriented Programming. Communications of the ACM, 33(9):125–141, September 1990.CrossRefGoogle Scholar
  4. [4]
    G. Agha, S. Frølund, R. Panwar, and D. Sturman. A Linguistic Framework for the Dynamic Composition of Dependability Protocols. In C.E. Landwehr, B. Randell, and L. Simoncini, editors, Dependable Computing for Critical Applications 3, volume VIII of Dependable Computing and Fault-Tolerant Systems, pages 345–363. IFIP Transactions, Springer-Verlag, 1993.Google Scholar
  5. [5]
    G. Agha, I. Mason, S. Smith, and C. Talcott. Towards a Theory of Actor Computation. In R. Cleaveland, editor, The Third International Conference on Concurrency Theory (CONCUR’ 92). Springer-Verlag, 1992. LNCS (forthcoming).Google Scholar
  6. [6]
    Gul Agha and Christian Callsen. ActorSpace: An Open Distributed Programming Paradigm. In Fourth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, San Diego, California, May 1993. Also published as a Special Issue of SIGPLAN Notices vol. 28, No. 7, pp23–32, July 1993.Google Scholar
  7. [7]
    K. P. Birman and T. A. Joseph. Communication Support for Reliable Distributed Computing. In Fault-tolerant Distributed Computing. Springer-Verlag, 1987.Google Scholar
  8. [8]
    Roy Campbell, Nayeem Islam, David Raila, and Peter Madany. Designing and Implementing Choices: An Object-Oriented System in C++. Communications of the ACM, pages 117–126, September 1993.Google Scholar
  9. [9]
    E. Cooper. Programming Language Support for Multicast Communication in Distributed Systems. In Tenth International Conference on Distributed Computer Systems, 1990.Google Scholar
  10. [10]
    Antonio Corradi, Paola Mello, and Antonio Natali. Error Recovery Mechanisms for Remote Procedure Call-Based Systems. In 8th Annual International Phoenix Conference on Computers and Communicaton Conference Proceedings, pages 502–507, Phoenix, Arizona, March 1989. IEEE Computer Society Press.Google Scholar
  11. [11]
    Flaviu Cristian. Understanding Fault-tolerant Distributed Systems. Communications of the ACM, 34(2):56–78, 1991.CrossRefGoogle Scholar
  12. [12]
    Quian Cui and John Gannon. Data-Oriented Exception Handling in Ada. IEEE Transactions on Software Engineering, 18:98–106, May 1992.Google Scholar
  13. [13]
    Christophe Dony. Improving Exception Handling with Object-Oriented Programming. In Proceedings of the 14th Annual International Computer Software and Applications Conference, pages 36–42, Chicago, 1990. IEEE Computer Society, IEEE.Google Scholar
  14. [14]
    Christophe Dony, Jan Purchase, and Russel Winder. Exception Handling in Object-Oriented Systems. OOPS Messanger, 3(2):17–29, April 1992.CrossRefGoogle Scholar
  15. [15]
    Jeffrey L. Eppinger, Lily B. Mummert, and Alfred Z. Spector, editors. CAMELOT AND AVALON: A Distributed Transaction Facility. Morgan Kaufmann Publishers, Inc., 1991.Google Scholar
  16. [16]
    Jacques Ferber and Jean-Pierre Briot. Design of a Concurrent Language for Distributed Artificial Intelligence. In Proceedings of the International Conference on Fifth Generation Computer Systems, volume 2, pages 755–762. Institute for New Generation Computer Technology, 1988.Google Scholar
  17. [17]
    S. Frølund. Inheritance of Synchronization Constraints in Concurrent Object-Oriented Programming Languages. In Proceedings of ECOOP 1992. Springer Verlag, 1992. LNCS 615.Google Scholar
  18. [18]
    S. Frølund and G. Agha. A Language Framework for Multi-Object Coordination. In Proceedings of ECOOP 1993. Springer Verlag, 1993. LNCS 707.Google Scholar
  19. [19]
    John B. Goodenough. Exception Handling: Issues and a Proposed Notation. Communications of the ACM, 18(12):683–696, December 1975.MATHCrossRefGoogle Scholar
  20. [20]
    Daniel T. Huang and Ronald A. Olsson. An Exception Handling Mechanism for SR. Computer Languages, 15(3):163–176, 1990.CrossRefGoogle Scholar
  21. [21]
    Yuuji Ichisugi and Akinori Yonezawa. Exception Handling and Real Time Features in an Object-Oriented Concurrent Language. In A. Yonezawa and T. Ito, editors, Concurrency: Theory, Language, and Architecture, pages 92–109. Springer-Verlag, Oxford, UK, September 1989. LNCS 491.Google Scholar
  22. [22]
    Wooyoung Kim and Gul Agha. Compilation of a Highly Parallel Actor-Based Language. In U. Banerjee, D. Gelernter, A. Nicolau, and D. Padua, editors, Proceedings of the 5th International Workshop on Languages and Compilers for Parallel Computing, volume 757 of Lecture Notes in Computer Science, pages 1–15. Springer-Verlag, 1992.Google Scholar
  23. [23]
    Barbara Liskov. Distributed Programming in Argus. Communications of the ACM, 31(3):300–312, March 1988.CrossRefGoogle Scholar
  24. [24]
    Barbara Liskov and Alan Snyder. Exception Handling in Clu. IEEE Transactions on Software Engineering, 5(6):546–558, November 1979.CrossRefGoogle Scholar
  25. [25]
    P. Maes. Computational Reflection. Technical Report 87-2, Artificial Intelligence Laboratory, Vrije University, 1987.Google Scholar
  26. [26]
    Carl Manning. ACORE: The Design of a Core Actor Language and its Compiler. Master’s thesis, MIT, Artificial Intelligence Laboratory, August 1987.Google Scholar
  27. [27]
    S. Mishra, L. L. Peterson, and R. D. Schlichting. Consul: A communication Substrate for Fault-Tolerant Distributed Programs. Technical report, University of Arizona, Tucson, 1991.Google Scholar
  28. [28]
    M. H. Olsen, E. Oskiewicz, and J. P. Warne. A Model for Interface Groups. In Tenth Symposium on Reliable Distributed Systems, Pisa, Italy, 1991.Google Scholar
  29. [29]
    Richard D. Schlichting, Flaviu Christian, and Titus D. M. Purdin. A Linguistic Approach to Failure Handling in Distributed Systems. In A. Avižienis and J.C. Laprie, editors, Dependable Computing for Critical Applications, pages 387–409. IFIP, Springer-Verlag, 1991.Google Scholar
  30. [30]
    Richard D. Schlichting and Titus D. M. Purdin. Failure Handling in Distributed Programming Languages. In Proceedings: Fifth Symposium on Reliability in Distributed Software and Database Systems, pages 59–66, Los Angeles, CA, January 1986. IEEE Computer Society Press.Google Scholar
  31. [31]
    Santosh Shrivastava, Graeme Dixon, and Graham Parrington. An Overview of the Arjuna Distributed Programming System. IEEE Software, pages 66–73, January 1991.Google Scholar
  32. [32]
    B. C. Smith. Reflection and semantics in a procedural language. Technical Report 272, Massachusetts Institute of Technology. Laboratory for Computer Science, 1982.Google Scholar
  33. [33]
    Bjarne Stroustrup. The C++ Programming Language. Addison-Wesley, second edition, 1991.Google Scholar
  34. [34]
    C. Tomlinson, P. Cannata, G. Meredith, and D. Woelk. The Extensible Services Switch in Carnot. IEEE Parallel and Distributed Technology: Systems and Applications, 1(2), May 1993.Google Scholar
  35. [35]
    C. Tomlinson and V. Singh. Inheritance and Synchronization with Enabled-Sets. In OOPSLA Proceedings, 1989.Google Scholar
  36. [36]
    Nalini Venkatasubramanian and Carolyn Talcott. A MetaArchitecture for Distributed Resource Management. In Proceedings of the Hawaii International Conference on System Sciences. IEEE Computer Society Press, January 1993.Google Scholar
  37. [37]
    T. Watanabe and A. Yonezawa. A Actor-Based Metalevel Arhitecture for Group-Wide Reflection. In J. W. de Bakker, W. P. de Roever, and G. Rozenberg, editors, Foundations of Object-Oriented Languages, pages 405–425. Springer-Verlag, 1990. LNCS 489.Google Scholar
  38. [38]
    C. T. Wilkes and R. J. LeBlanc. Distributed Locking: A Mechanism for Constructing Highly Available Objects. In Seventh Symposium on Reliable Distributed Systems, Ohio State University, Columbus, Ohio, 1988.Google Scholar
  39. [39]
    Y. Yokote, A. Mitsuzawa, N. Fujinami, and M. Tokoro. The Muse Object Architecture: A New Operating System Structuring Concept. Technical Report SCSL-TR-91-002, Sony Computer Science Laboratory Inc., Feburary 1991.Google Scholar
  40. [40]
    A. Yonezawa, editor. ABCL An Object-Oriented Concurrent System, chapter Reflection in an Object-Oriented Concurrent Language, pages 45–70. MIT Press, Cambridge, Mass., 1990.Google Scholar

Copyright information

© Kluwer Academic Publishers 1994

Authors and Affiliations

  • Gul Agha
    • 1
  • Daniel C. Sturman
    • 1
  1. 1.Department of Computer ScienceUniversity of Illinois at Urbana-ChampaignUrbanaUSA

Personalised recommendations