[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.5555/874064.875666guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Implementing Fault-Tolerant Applications Using Reflective Object-Oriented Programming

Published: 27 June 1995 Publication History

Abstract

Abstract: Shows how reflection and object-oriented programming can be used to ease the implementation of classical fault tolerance mechanisms in distributed applications. When the underlying runtime system does not provide fault tolerance transparently, classical approaches to implementing fault tolerance mechanisms often imply mixing functional programming with non-functional programming (e.g. error processing mechanisms). The use of reflection improves the transparency of fault tolerance mechanisms to the programmer and more generally provides a clearer separation between functional and non-functional programming. The implementations of some classical replication techniques using a reflective approach are presented in detail and illustrated by several examples, which have been prototyped on a network of Unix workstations. Lessons learnt from our experiments are drawn and future work is discussed.

References

[1]
G. Agha, S. Frølund, R. Panwar and D. Sturman, "A Linguistic Framework for Dynamic Composition of Dependability Protocols". Proc. DCCA-3, pp. 197-207, 1993.
[2]
Arjuna, The Arjuna System Programmer's Guide, Dept. of Comp. Science, Univ. of Newcastle-upon-Tyne, UK, July 1992.
[3]
G. Attardi, C. Bonini, M. R. Boscotrecase, T. Flagella and M. Gaspari, "Metalevel Programming in CLOS", Proc. ECOOP'89, pp. 243-56, 1989.
[4]
P. A. Barrett, A. M. Hilborne, P. G. Bond, D. T. Seaton, P. Veríssimo, L. Rodrigues and N. A. Speirs, "The Delta-4 Extra Performance Architecture (XPA)", Proc. FTCS-20, (Newcastle upon Tyne, UK), pp. 481-8, 1990.
[5]
J. F. Bartlett, "A Non-Stop (TM) Kernel", Proc. SOSP-8, (Pacific Grove, CA, USA), pp. 22-9, 1981.
[6]
K. P. Birman, "Replication and Fault-Tolerance in the ISIS System", ACM Operating Systems Review, 19 (5), pp. 79-86, 1985.
[7]
K. P. Birman and T. A. Joseph, "Exploiting Virtual Synchrony in Distributed Systems", ACM Operating Systems Review, 21 (5), pp. 123-8, 1987.
[8]
M. Chérèque, D. Powell, P. Reynier, J.-L. Richier and J. Voiron, "Active Replication in Delta-4", Proc. FTCS-22, (Boston, MA, USA), pp. 28-37, 1992.
[9]
S. Chiba and T. Masuda, "Designing an Extensible Distributed Language with Meta-Level Architecture", Proc. ECOOP'93, LNCS 707, (O. Nierstrasz, Ed.), (Kaiserslautern, Germany), pp. 482-501, 1993.
[10]
D. L. Detlefs, M. P. Herlihy and J. M. Wing, "Inheritance of Synchronization and Recovery Properties in Avalon/C++", Computer, pp. 57-69, December 1988.
[11]
Y. Huang and C. Kintala, "Software Implemented Fault Tolerance: Technologies and Experience", Proc. FTCS-23, (Toulouse, France), pp. 2-9, 1993.
[12]
The Isis Distributed Toolkit -- User Reference Manual, Isis Distributed Systems, Inc., 1992.
[13]
G. Kiczales, J. d. Rivières and D. G. Bobrow, The Art of the Metaobject Protocol, MIT Press, 1991.
[14]
P. Maes, "Concepts and Experiments in Computational Reflection", Proc. OOPSLA '87, pp. 147-55, 1987.
[15]
S. Matsuoka, T. Watanabe and A. Yonezawa, "Hybrid Group Reflective Architecture for Object-Oriented Concurrent Reflective Programming", Proc. ECOOP'91, pp. 213-50, Springer-Verlag, 1991.
[16]
A. Paepcke, "PCLOS: Stress Testing CLOS", Proc. OOPSLA'90, ACM SIGPLAN Notices, pp. 194-211, 1990.
[17]
D. Powell (Ed.), Delta-4: A Generic Architecture for Dependable Distributed Computing, Research Reports ESPRIT, 484p., Springer-Verlag, Berlin, Germany, 1991.
[18]
D. Powell, "Failure Mode Assumptions and Assumption Coverage", Proc. FTCS-22 (Boston, MA, USA), pp. 386-95, 1992.
[19]
D. Powell, "Distributed Fault-Tolerance -- Lessons Learnt from Delta-4", in Hardware and Software Architecture for Fault Tolerance: Experiences and Perspectives (M. Banâtre and P. A. Lee, Eds.), LNCS 774, pp. 199-217, New York: Springer Verlag, 1994.
[20]
L. Rodrigues and P. Veríssimo, "xAMp: A Protocol Suite for Group Communication", Proc. SRDS-11, pp. 112-21, 1992.
[21]
M. Rozier, V. Abrossimov, F. Armand, I. Boule, M. Gien, M. Guillemont, F. Herrmann, C. Kaiser, S. Langlois, P. Léonard and W. Neuhauser, Overview of the CHORUS® Distributed Operating Systems, Chorus Systèmes, Report, NoCS/TR-90-25, April 1990.
[22]
S. K. Shrivastava, G. N. Dixon and G. D. Parrington, "An Overview of the Arjuna Distributed Programming System", IEEE Software, 8 (1), pp. 66-73, January 1991.
[23]
B. C. Smith, "Reflection and Semantics in Lisp", in 11th Annual ACM Symposium on Principles of Programming Languages, pp. 23-35, 1984.
[24]
N. A. Speirs and P. A. Barrett, "Using Passive Replicates in Delta-4 to provide Dependable Distributed Computing", Proc. FTCS-19, (Chicago, IL, USA), pp. 184-90, 1989.
[25]
R. J. Stroud, "Transparency and Reflection in Distributed Systems", ACM Operating Systems Review, 22 (2), pp. 99-103, April 1993.

Cited By

View all
  • (2016)Runtime controller synthesis for self-adaptationProceedings of the 11th International Symposium on Software Engineering for Adaptive and Self-Managing Systems10.1145/2897053.2903381(1-3)Online publication date: 14-May-2016
  • (2012)Supervised Workpools for Reliable Massively Parallel ComputingProceedings of the 2012 Conference on Trends in Functional Programming - Volume 782910.1007/978-3-642-40447-4_16(247-262)Online publication date: 12-Jun-2012
  • (2004)Basic Concepts and Taxonomy of Dependable and Secure ComputingIEEE Transactions on Dependable and Secure Computing10.1109/TDSC.2004.21:1(11-33)Online publication date: 1-Jan-2004
  • Show More Cited By
  1. Implementing Fault-Tolerant Applications Using Reflective Object-Oriented Programming

      Recommendations

      Comments

      Please enable JavaScript to view thecomments powered by Disqus.

      Information & Contributors

      Information

      Published In

      cover image Guide Proceedings
      FTCS '95: Proceedings of the Twenty-Fifth International Symposium on Fault-Tolerant Computing
      June 1995

      Publisher

      IEEE Computer Society

      United States

      Publication History

      Published: 27 June 1995

      Author Tags

      1. Unix
      2. Unix workstation network
      3. distributed applications
      4. distributed processing
      5. error processing mechanisms
      6. fault tolerance mechanisms
      7. functional programming
      8. nonfunctional programming
      9. object-oriented programming
      10. reflective approach
      11. reflective object-oriented programming
      12. replication techniques
      13. runtime system
      14. software fault tolerance
      15. transparency

      Qualifiers

      • Article

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)0
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 10 Dec 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2016)Runtime controller synthesis for self-adaptationProceedings of the 11th International Symposium on Software Engineering for Adaptive and Self-Managing Systems10.1145/2897053.2903381(1-3)Online publication date: 14-May-2016
      • (2012)Supervised Workpools for Reliable Massively Parallel ComputingProceedings of the 2012 Conference on Trends in Functional Programming - Volume 782910.1007/978-3-642-40447-4_16(247-262)Online publication date: 12-Jun-2012
      • (2004)Basic Concepts and Taxonomy of Dependable and Secure ComputingIEEE Transactions on Dependable and Secure Computing10.1109/TDSC.2004.21:1(11-33)Online publication date: 1-Jan-2004
      • (2003)Partial behavioral reflectionACM SIGPLAN Notices10.1145/949343.94930938:11(27-46)Online publication date: 26-Oct-2003
      • (2003)Partial behavioral reflectionProceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications10.1145/949305.949309(27-46)Online publication date: 26-Oct-2003
      • (2000)Concurrent Exception Handling and Resolution in Distributed Object SystemsIEEE Transactions on Parallel and Distributed Systems10.1109/71.88864211:10(1019-1032)Online publication date: 1-Oct-2000
      • (1998)A Configurable Membership ServiceIEEE Transactions on Computers10.1109/12.67724447:5(573-586)Online publication date: 1-May-1998
      • (1998)A Metaobject Architecture for Fault-Tolerant Distributed SystemsIEEE Transactions on Computers10.1109/12.65608847:1(78-95)Online publication date: 1-Jan-1998
      • (1997)XeptProceedings of the Eighth International Symposium on Software Reliability Engineering10.5555/851010.856081Online publication date: 2-Nov-1997
      • (1997)Adaptive Fault-Tolerant Systems and Reflective ArchitecturesProceedings of the Workshops on Object-Oriented Technology10.5555/646777.706058(80-88)Online publication date: 9-Jun-1997
      • Show More Cited By

      View Options

      View options

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media