Coordinated backward between client processes and data servers

The authors discuss backward error recovery for complex software systems, where different subsystems may belong to essentially different application areas. Such heterogeneous subsystems are naturally built according to different design ‘models’, namely the ‘object-action’ model (where the long-term state of the computation is encapsulated in data objects, and active processes invoke operations on these objects), and the ‘process-conversation’ model (where the state is contained in the processes, communicating via messages). To allow backward error recovery in these two ‘models’ of computation, two different schemes are most appropriate: atomic transactions for the object-action model, and conversations for the process-conversation model. Assuming that each of these two kinds of subsystem already has functioning mechanisms for backward error recovery, the authors describe the additional provisions needed for co-ordination between these heterogeneous subsystems. The solution involves altering the virtual machine on which the programs run, and programming conventions which seem rather natural and can be automatically enforced. The approach is demonstrated by a simple example.

[1]  E.B. Fernandez,et al.  Combined application/datafault recovery , 1990, COMPEURO'90: Proceedings of the 1990 IEEE International Conference on Computer Systems and Software Engineering@m_Systems Engineering Aspects of Complex Computerized Systems.

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

[3]  Andrea Clematis,et al.  Structuring Conversation in Operation/Procedure Oriented Programming Languages , 1993, Comput. Lang..

[4]  Butler W. Lampson,et al.  Atomic Transactions , 1980, Advanced Course: Distributed Systems.

[5]  John C. Knight,et al.  On the provision of backward error recovery in production programming languages , 1989, [1989] The Nineteenth International Symposium on Fault-Tolerant Computing. Digest of Papers.

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

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

[8]  Brian Randell,et al.  An Object-Oriented View of Fragmented Data Processing for Fault and Intrusion Tolerance in Distributed Systems , 1992, ESORICS.

[9]  A. Elmagarmid Database transaction models for advanced applications , 1992 .

[10]  Jerome H. Saltzer,et al.  The protection of information in computer systems , 1975, Proc. IEEE.

[11]  Brian Randell System Structure for Software Fault Tolerance , 1975, IEEE Trans. Software Eng..

[12]  Brian Randell,et al.  Object-Oriented Software Fault Tolerance: Framework, reuse and design diversity , 1993 .

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

[14]  John C. Knight,et al.  A Framework for Software Fault Tolerance in Real-Time Systems , 1983, IEEE Transactions on Software Engineering.