Object replacement using dynamic proxy updates

In a distributed environment, a client program bound to a server fails when the server changes (possibly due to the server being relocated, replicated or reconfigured). In this paper, we describe the design of an object-replacement scheme in a client-server environment. Our design addresses the problem of replacing a server and transparently updating the client handle so that no service interruption is experienced by the client. The programming environment, on which this work is based, provides shared objects, threads, and invocations as the building block for distributed applications. Our design takes into account the potential concurrency within clients and servers. Our task was relatively simplified by building the replacement mechanisms on top of an asynchronous event notification facility that handles events on a per-application basis, as opposed to per-task or per-thread basis. >

[1]  Andrew P. Black,et al.  Fine-grained mobility in the Emerald system , 1987, TOCS.

[2]  David L. Black,et al.  The mach exception handling facility , 1988, PADD '88.

[3]  Yogen K. Dalal,et al.  The clearinghouse: a decentralized agent for locating named objects in a distributed environment , 1983, TOIS.

[4]  Eric C. Cooper Replicated distributed programs , 1985, SOSP 1985.

[5]  Partha Dasgupta,et al.  Linking consistency with object/thread semantics: an approach to robust computation , 1989, [1989] Proceedings. The 9th International Conference on Distributed Computing Systems.

[6]  Barbara Liskov,et al.  Implementation of Argus , 1987, SOSP '87.

[7]  Partha Dasgupta,et al.  Asynchronous event handling in distributed object-based systems , 1993, [1993] Proceedings. The 13th International Conference on Distributed Computing Systems.

[8]  James M. Purtilo,et al.  Dynamic reconfiguration in distributed systems: adapting software modules for replacement , 1993, [1993] Proceedings. The 13th International Conference on Distributed Computing Systems.

[9]  Butler W. Lampson,et al.  Designing a global name service , 1986, PODC '86.

[10]  John R. Corbin The Art of Distributed Applications , 1991, Sun Technical Reference Library.

[11]  Marc Shapiro,et al.  Structure and Encapsulation in Distributed Systems: The Proxy Principle , 1986, ICDCS.

[12]  Partha Dasgupta,et al.  The Clouds distributed operating system: functional description, implementation details and related work , 1988, [1988] Proceedings. The 8th International Conference on Distributed.

[13]  David Goldberg,et al.  What every computer scientist should know about floating-point arithmetic , 1991, CSUR.

[14]  John R. Nicol,et al.  Object orientation in heterogeneous distributed computing systems , 1993, Computer.

[15]  David R. Cheriton,et al.  Decentralizing a global naming service for improved performance and fault tolerance , 1989, TOCS.

[16]  Partha Dasgupta,et al.  Distributed Programming with Objects and Threads in the Clouds System , 1991, Comput. Syst..

[17]  Samuel T. Chanson,et al.  Distributed, object-based programming systems , 1991, CSUR.