Action-Oriented Exception Handling in Cooperative and Competitive Concurrent Object-Oriented Systems

The chief aim of this survey is to discuss exception handling models which have been developed for concurrent object systems. In conducting this discussion we rely on the following fundamental principles: exception handling should be associated with structuring techniques; concurrent systems require exception handling which is different from that used in sequential systems; concurrent systems are best structured out of (nested) actions; atomicity of actions is crucial for developing complex systems. In this survey we adhere to the well-known classification of concurrent systems, developed in the 70s by C.A.R. Hoare, J.J. Horning and B. Randell, into cooperative, competitive and disjoint ones. Competitive systems are structured using atomic transactions. Atomic actions are used for structuring cooperative systems. Complex systems in which components can compete and cooperate are structured using Coordinated Atomic actions. The focus of the survey is on outlining models and schemes which combine these action-based structuring approaches with exception handling. In conclusion we emphasise that exception handling models should be adequate to the system development paradigm and structuring approaches used.

[1]  Brian Randell,et al.  Process Structuring , 1973, CSUR.

[2]  Alexander Romanovsky,et al.  Conversations of Objects , 1995, Comput. Lang..

[3]  Barbara Liskov,et al.  Distributed programming in Argus , 1988, CACM.

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

[5]  C. A. R. Hoare,et al.  Parallel Programming: An Axiomatic Approach , 1975, Comput. Lang..

[6]  Reino Kurki-Suonio,et al.  Liberating Object-Oriented Modeling from Programming-Level Abstractions , 1997, ECOOP Workshops.

[7]  Eike Best,et al.  Semantics of sequential and parallel programs , 1996, Prentice Hall International series in computer science.

[8]  Andreas Reuter,et al.  Transaction Processing: Concepts and Techniques , 1992 .

[9]  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.

[10]  Santosh K. Shrivastava,et al.  The Design and Implementation of Arjuna , 1995, Comput. Syst..

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

[12]  Anand R. Tripathi,et al.  Object-oriented concurrent programming languages and systems , 1999 .

[13]  Francisco J. Ballesteros,et al.  TransLib: An Ada 95 Object Oriented Framework for Building Transactional Applications , 2000 .

[14]  Bruno Traverson,et al.  Object Management Group object transaction service based on an X/Open and International Organization for Standardization open systems interconnection transaction processing kernel , 1997, Distributed Syst. Eng..

[15]  Jie Xu,et al.  Concurrent Exception Handling and Resolution in Distributed Object Systems , 2000, IEEE Trans. Parallel Distributed Syst..

[16]  Peter Van Roy,et al.  Mobile objects in distributed Oz , 1997, TOPL.

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

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

[19]  John B. Goodenough,et al.  Exception handling: issues and a proposed notation , 1975, CACM.

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

[21]  D. Perry The Inscape Environment , 1989, 11th International Conference on Software Engineering.

[22]  Peter A. Buhr,et al.  Advanced Exception Handling Mechanisms , 2000, IEEE Trans. Software Eng..

[23]  K. H. Kim,et al.  Approaches to Mechanization of the Conversation Scheme Based on Monitors , 1982, IEEE Transactions on Software Engineering.

[24]  Alexander Romanovsky On Structuring Cooperative and Competitive Concurrent Systems , 1999, Comput. J..

[25]  J. Gregory Morrisett,et al.  Composing first-class transactions , 1994, TOPL.

[26]  Jörg Kienzle Combining Tasking and Transactions , 1999 .

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

[28]  Brian Randell,et al.  From Recovery Blocks to Concurrent Atomic Actions , 1995 .

[29]  Akinori Yonezawa,et al.  Exception Handling and Real Time Features in an Object-Oriented Concurrent Language , 1991, Concurrency: Theory, Language, And Architecture.

[30]  Jörg Kienzle Combining tasking and transaction , 1999 .

[31]  Jörg Kienzle,et al.  Combining tasking and transactions, part II: open multithreaded transactions , 2001 .

[32]  Brian Randell,et al.  Coordinated Atomic Actions: from Concept to Implementation , 1997 .

[33]  Avelino Francisco Zorzo,et al.  Rigorous development of a safety-critical system based on coordinated atomic actions , 1999, Digest of Papers. Twenty-Ninth Annual International Symposium on Fault-Tolerant Computing (Cat. No.99CB36352).

[34]  Brian Randell,et al.  System structure for software fault tolerance , 1975, IEEE Transactions on Software Engineering.