Using smart clients to build scalable services

Individual machines are no longer sufficient to handle the offered load to many Internet sites. To use multiple machines for scalable performance, load balancing, fault transparency, and backward compatibility with URL naming must be addressed. A number of approaches have been developed to provide transparent access to multi-server Internet services including HTTP redirect, DNS aliasing, Magic Routers, and Active Networks. Recently however, portable Java code and lightly loaded client machines allow the migration of certain service functionality onto the client. In this paper, we argue that in many instances, a client-side approach to providing transparent access to Internet services provides increased flexibility and performance over the existing solutions. We describe the design and implementation of Smart Clients and show how our system can be used to provide transparent access to scalable and/or highly available network services, including prototypes for: telnet, FTP, and an Internet chat application.

[1]  Roy T. Fielding,et al.  Hypertext Transfer Protocol - HTTP/1.0 , 1996, RFC.

[2]  Chandramohan A. Thekkath,et al.  Petal: distributed virtual disks , 1996, ASPLOS VII.

[3]  P BirmanKenneth The process group approach to reliable distributed computing , 1993 .

[4]  James A. Gosling,et al.  The java language environment: a white paper , 1995 .

[5]  Amin Vahdat,et al.  Turning the Web Into a Computer , 1996 .

[6]  Jarkko Oikarinen,et al.  Internet Relay Chat Protocol , 1993, RFC.

[7]  David A. Nichols,et al.  Using idle workstations in a shared computing environment , 1987, SOSP '87.

[8]  Liuba Shrira,et al.  Providing high availability using lazy replication , 1992, TOCS.

[9]  Eric Brewer,et al.  The Inktomi Search Engine , 1995 .

[10]  David E. Culler,et al.  A case for NOW (networks of workstation) , 1995, PODC '95.

[11]  V. Rich Personal communication , 1989, Nature.

[12]  Amin Vahdat,et al.  GLUix: a global layer unix for a network of workstations , 1998 .

[13]  Fred Douglis,et al.  Transparent process migration: Design alternatives and the sprite implementation , 1991, Softw. Pract. Exp..

[14]  Roy T. Fielding,et al.  Hypertext Transfer Protocol - HTTP/1.1 , 1997, RFC.

[15]  Tim Berners-Lee,et al.  Hypertext transfer protocol--http/i , 1993 .

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

[17]  Mahadev Satyanarayanan,et al.  Scale and performance in a distributed file system , 1987, SOSP '87.

[18]  Thomas P. Brisco DNS Support for Load Balancing , 1995, RFC.

[19]  Anupam Bhide,et al.  A Highly Available Network File Server , 1991, USENIX Winter.

[20]  Jingwen Wang,et al.  Utopia: A load sharing facility for large, heterogeneous distributed computer systems , 1993, Softw. Pract. Exp..

[21]  Kenneth P. Birman,et al.  Deceit: a flexible distributed file system , 1990, [1990] Proceedings. Workshop on the Management of Replicated Data.

[22]  Michelle Butler,et al.  A Scalable HTTP Server: The NCSA Prototype , 1994, Comput. Networks ISDN Syst..