An implementation of service rebalancing

Service rebalancing is a method for designing programs that adhere to the client/server model. Decisions about the division of labor between client and server are made dynamically at runtime rather than at design time. Service rebalancing may improve performance, because the division of effort is based upon an evaluation of the current environment. Other benefits of service rebalancing include on-the-fly updating of modules, a degree of load balancing, sharing of code common to several clients, encouragement of neatly modularized programs, and the elimination of an absolute division of effort between client and server. In this paper we discuss the benefits, problems and issues of service rebalancing. Our implementation, Equanimity, is described in some detail. Finally, we compare service rebalancing with previous work and discuss future plans. Note: 191-91.dvi.tar.gz is a tar archive with the .dvi file and the postscript figures. This is not guaranteed to work with just any dvi2ps or dvips version.

[1]  David K. Gifford,et al.  Implementing Remote Evaluation , 1990, IEEE Trans. Software Eng..

[2]  Andrew Birrell Secure communication using remote procedure calls , 1985, TOCS.

[3]  James Gettys,et al.  The X window system , 1990 .

[4]  Klaus-Peter Löhr,et al.  Dynamic Restructuring in an Experimental Operating System , 1978, IEEE Transactions on Software Engineering.

[5]  Robert P. Cook,et al.  *MOD—A Language for Distributed Programming , 1980, IEEE Transactions on Software Engineering.

[6]  William I. Nowicki,et al.  NFS: Network File System Protocol specification , 1989, RFC.

[7]  Andrew R. Cherenson,et al.  The Sprite network operating system , 1988, Computer.

[8]  David D. Clark,et al.  The structuring of systems using upcalls , 1985, SOSP '85.

[9]  D. B. Davis,et al.  Sun Microsystems Inc. , 1993 .

[10]  Insup Lee,et al.  DYMOS: a dynamic modification system , 1983 .

[11]  David R. Cheriton,et al.  The V distributed system , 1988, CACM.

[12]  Patricia Florissi,et al.  On remote procedure call , 1992, CASCON.

[13]  David K. Gifford,et al.  Remote evaluation , 1990, TOPL.

[14]  Barton P. Miller,et al.  CLAM- an open system for graphical user interfaces , 1987, OOPSLA '87.

[15]  Robert S. Fabry,et al.  How to design a system in which modules can be changed on the fly , 1976, ICSE '76.

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

[17]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1986, PODC '86.