Programming Distributed Applications Transparently in C++: Myth or Reality?

Modern computing and networking hardware make the physical interconnection of many machines simple. However, programming an application to take even limited advantage of the interconnection is notoriously difficult due to the complexity of the protocols involved. Furthermore, real world demands insist that such applications need to be programmed in an existing, preferably widely available, language. One approach aimed at easing this difficulty is based upon the concept of transparency. By making the underlying distribution of the system transparent to the programmer it is hoped that the programming task becomes comparable with that of programming centralised applications. This paper describes mechanisms and tools that enable the various facets of transparency can be accomplished for the language C++ noting what level of transparency can be realistically attained.

[1]  Brian N. Bershad,et al.  A Remote Procedure Call Facility for Interconnecting Heterogeneous Computer Systems , 1987, IEEE Transactions on Software Engineering.

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

[3]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[4]  Santosh K. Shrivastava,et al.  An Overview of Arjuna: A Programming System for Reliable Distributed Computing , 1989 .

[5]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[6]  Jim Gray,et al.  Notes on Data Base Operating Systems , 1978, Advanced Course: Operating Systems.

[7]  Michael B. Jones,et al.  Matchmaker: an interface specification language for distributed processing , 1985, POPL.

[8]  Luiz Eduardo Buzato,et al.  Stabilis: A Case Study in Writing Fault-Tolerant Distributed Applications Using Persistent Objects , 1992, POS.

[9]  Larry Carter,et al.  Distrbution and Abstract Types in Emerald , 1987, IEEE Transactions on Software Engineering.

[10]  Mark Cameron Little,et al.  Object replication in a distributed system , 1991 .

[11]  Phillip B. Gibbons A Stub Generator for Multilanguage RPC in Heterogeneous Environments , 1987, IEEE Transactions on Software Engineering.

[12]  Maurice Herlihy,et al.  Inheritance of synchronization and recovery properties in Avalon/C++ , 1988, Computer.

[13]  Alfred Z. Spector,et al.  Camelot: a flexible, distributed transaction processing system , 1988, Digest of Papers. COMPCON Spring 88 Thirty-Third IEEE Computer Society International Conference.