Structuring Conversation in Operation/Procedure Oriented Programming Languages

Abstract The conversation scheme has been defined to design concurrent software which provides backward error recovery. Since presently no widespread programming language provides constructs for implementing conversations, we propose a methodology for structuring programs, following the conversation scheme. We analyze the use of conversation in languages which adopt the client-server model for processes interaction, pointing out solutions to problems arising from the use of operation and procedure oriented languages [1: Andrews and Schneider, ACM Comput. Surv. 15: 3–44; 1983], in which servers are implemented as remote procedures or monitors respectively. The features of a number of programming languages, which are the most suitable for structuring conversations are pointed out. The implementation of nested conversations is also discussed and finally, an industrial application in which our methodology has been profitably applied is presented.

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

[2]  Andrea Clematis,et al.  Implementing Reliable Conversation in Concurrent Software Systems , 1988 .

[3]  Lorenzo Strigini,et al.  Flexible schemes for application-level fault tolerance , 1991, [1991] Proceedings Tenth Symposium on Reliable Distributed Systems.

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

[5]  Gregory R. Andrews,et al.  Concepts and Notations for Concurrent Programming , 1983, CSUR.

[6]  Grady Booch,et al.  Software engineering with Ada , 1983 .

[7]  Philip A. Bernstein,et al.  The failure and recovery problem for replicated databases , 1983, PODC '83.

[8]  Andrea Clematis,et al.  Session D2: Fault tolerant parallel software , 1991 .

[9]  Brian Randell System structure for software fault tolerance , 1975 .

[10]  Algirdas Avizienis,et al.  Fault Tolerance by Design Diversity: Concepts and Experiments , 1984, Computer.

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

[12]  Narain H. Gehani,et al.  Rendezvous Facilities: Concurrent C and the Ada Language , 1988, IEEE Trans. Software Eng..