Extending conventional languages by distributed/concurrent exception resolution

The state of art in handling and resolving concurrent exceptions is discussed and a brief outline of all research in this area is given. Our intention is to demonstrate that exception resolution is a very useful concept which facilitates joint forward error recovery in concurrent and distributed systems. To do this, several new arguments are considered. We understand resolution as reaching an agreement among cooperating participants of an atomic action. It is provided by the underlying system to make it unified and less error prone, which is important for forward error recovery, complex by nature. We classify atomic action schemes into asynchronous and synchronous ones and discuss exception handling for schemes of both kinds. The paper also deals with introducing atomic action schemes based on exception resolution into existing concurrent and distributed languages, which usually have only local exceptions. We outline the basic approach and demonstrate its applicability by showing how exception resolution can be used in Ada 83, Ada 95 (for both concurrent and distributed systems) and Java. A discussion of ways to make this concept more object-oriented and, with the help of reflection, more flexible and useful, concludes the paper.

[1]  Jie Xu,et al.  Exception handling and resolution in distributed object-oriented systems , 1996, Proceedings of 16th International Conference on Distributed Computing Systems.

[2]  Brian Randell,et al.  Error recovery in asynchronous systems , 1986, IEEE Transactions on Software Engineering.

[3]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[4]  Alan Burns,et al.  Implementing Atomic Actions in Ada 95 , 1997, IEEE Trans. Software Eng..

[5]  Hermann Kopetz,et al.  Fault tolerance, principles and practice , 1990 .

[6]  Alan Burns,et al.  Real-time systems and their programming languages , 1986, International computer science series.

[7]  Roy H. Campbell,et al.  Atomic actions for fault-tolerance using CSP , 1986, IEEE Transactions on Software Engineering.

[8]  Ronald A. Olsson,et al.  An Exception Handling Mechanism for SR , 1990, Comput. Lang..

[9]  Valérie Issarny An exception handling mechanism for parallel object-oriented programming , 1992 .

[10]  Alan Burns,et al.  Concurrency in ADA , 1995 .

[11]  Gul A. Agha,et al.  Concurrent object-oriented programming , 1993, CACM.

[12]  Flaviu Cristian,et al.  Exception Handling and Tolerance of Software Faults , 1995 .

[13]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[14]  Cecília M. F. Rubira,et al.  Fault tolerance in concurrent object-oriented software through coordinated error recovery , 1995, Twenty-Fifth International Symposium on Fault-Tolerant Computing. Digest of Papers.

[15]  Lorenzo Strigini,et al.  Backward error recovery via conversations in Ada , 1995, Softw. Eng. J..

[16]  A. D. Stoyenko,et al.  Real-time Euclid: a language for reliable real-time systems , 1989 .

[17]  Alexander Romaovsky Practical Exception Handling and Resolution in Concurrent Programs , 1997, Comput. Lang..

[18]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[19]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[20]  S. S. Yau,et al.  Design of self-checking software , 1975 .