A Linguistic Framework for Dynamic Composition of Dependability Protocols

  • Gul Agha
  • Svend Frølund
  • Rajendra Panwar
  • Daniel Sturman
Part of the Dependable Computing and Fault-Tolerant Systems book series (DEPENDABLECOMP, volume 8)


We present a language framework for describing dependable systems which emphasizes modularity and composition. Dependability and functionality aspects of an application may be described separately providing a separation of design concerns. Futhermore, 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 dependability and supports the construction of general 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 critical phase of execution, it may be installed during that period only.


Base Object Runtime System Incoming Message Original Server 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, M. Young. Mach: a new kernel foundation for UNIX development. Proc. USENIX 1986 Summer Conference, 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), September 1990, pp. 125–141.CrossRefGoogle Scholar
  4. [4]
    G. Agha, W. Kim. Compilation of a highly parallel Actor-based language. Proc. Workshop on Languages and Compilers for Parallel Computing, U. Banerjee, D. Gelernter, A. Nicolau, and D. Padua, editors, Yale University, Springer-Verlag, 1992. Lecture Notes in Computer Science, to be published.Google Scholar
  5. [5]
    P. A. Bernstein, V. Hadzilacos, N. Goodman. Concurrency control and recovery in database systems. Addison-Wesley, 1987.Google Scholar
  6. [6]
    K. P. Birman, T. A. Joseph. Communication support for reliable distributed computing. Fault-tolerant Distributed Computing, Springer-Verlag, 1987.Google Scholar
  7. [7]
    E. Cooper. Programming language support for multicast communication in distributed systems. Tenth International Conference on Distributed Computer Systems, 1990.Google Scholar
  8. [8]
    D. L. Detlefs, M. P. Herlihy, J. M. Wing. Inheritance of synchronization and recovery properties in Avalon/C++. IEEE Computer, 21(12), December 1988, pp. 57–69.CrossRefGoogle Scholar
  9. [9]
    J. Ferber, J-P Briot. Design of a concurrent language for distributed artificial intelligence. Proc. International Conference on Fifth Generation Computer Systems, vol. 2, Institute for New Generation Computer Technology, 1988, pp. 755-762.Google Scholar
  10. [10]
    C. Houck, G. Agha. HAL: a high-level actor language and its distributed implementation. Proc. 21st International Conference on Parallel Processing (ICPP’92), vol. 2, St. Charles, IL, August 1992, pp. 158–165.Google Scholar
  11. [11]
    S. Jajodia, C. D. McCollum. Using two-phase commit for crash recovery in federated multilevel secure database management systems. Proc. 3rd IFIP Working Conference on Dependable Computing for Critical Applications, Mondello, Sicily, Italy, September 1992, pp. 209-218. Preprint.Google Scholar
  12. [12]
    B. Liskov, R. Scheifler. Guardians and Actions: linguistic support for robust, distributed programs. Conference Record of the Ninth Annual ACM Symposium on Principles of Programming Languages, Albuquerque, New Mexico, January 1982, pp. 7-19.Google Scholar
  13. [13]
    P. Maes. Computational reflection. Technical Report 87-2, Artificial Intelligence Laboratory, Vrije University, 1987.Google Scholar
  14. [14]
    S. Mishra, L. L. Peterson, R. D. Schlichting. Consul: a communication substrate for fault-tolerant distributed programs. Technical report, University of Arizona, Tucson, 1991.Google Scholar
  15. [15]
    M. H. Olsen, E. Oskiewicz, J. P. Warne. A model for interface groups. Tenth Symposium on Reliable Distributed Systems, Pisa, Italy, 1991.Google Scholar
  16. [16]
    G. D. Parrington, S. K. Shrivastava. Implementing concurrency control in reliable distributed object-oriented systems. Proc. Second European Conference on Object-Oriented Programming, ECOOP88, Springer-Verlag, 1988.Google Scholar
  17. [17]
    F. B. Schneider. The State Machine approach: a tutorial. Lecture Notes in Computer Science, 448, 1990, pp. 18–41.CrossRefGoogle Scholar
  18. [18]
    B. C. Smith. Reflection and semantics in a procedural language. Technical Report 272, Massachusetts Institute of Technology, Laboratory for Computer Science, 1982.Google Scholar
  19. [19]
    C. Tomlinson, V. Singh. Inheritance and synchronization with enabled-sets. Proc. OOPSLA, 1989.Google Scholar
  20. [20]
    N. Venkatasubramanian, C. Talcott. A MetaArchitecture for distributed resource management. Proc. Hawaii International Conference on System Sciences, IEEE Computer Society Press, January 1993. To appear.Google Scholar
  21. [21]
    C. T. Wilkes, R. J. LeBlanc. Distributed Locking: a mechanism for constructing highly available objects. Seventh Symposium on Reliable Distributed Systems, Ohio State University, Columbus, Ohio, 1988.Google Scholar
  22. [22]
    T. Watanabe, A. Yonezawa. An Actor-Based metalevel architecture for group-wide reflection. Foundations of Object-Oriented Languages, J. W. deBakker, W. P. deRoever, and G. Rozenberg, editors, Springer-Verlag, pp. 405-425, 1990. LNCS 489.Google Scholar
  23. [23]
    Y. Yokote, A. Mitsuzawa, N. Fujinami, M. Tokoro. The Muse object architecture: a new operating system structuring concept. Technical Report SCSL-TR-91-002, Sony Computer Science Laboratory Inc., February 1991.Google Scholar
  24. [24]
    A. Yonezawa, editor. ABCL An Object-Oriented Concurrent System, chapter Reflection in an Object-Oriented Concurrent Language, MIT Press, Cambridge, Mass., 1990, pp. 45-70.Google Scholar

Copyright information

© Springer-Verlag Wien 1993

Authors and Affiliations

  • Gul Agha
    • 1
  • Svend Frølund
    • 1
  • Rajendra Panwar
    • 1
  • Daniel Sturman
    • 1
  1. 1.Department of Computer ScienceUniversity of Illinois at Urbana-ChampaignUrbanaUSA

Personalised recommendations