Smart Clients provide a very flexible mechanism for implementing service-specific transparency. The Smart Client director provides the illusion of a single, highly-available machine to the programmer of the client interface applet. Requests made by the Smart Client client interface applet are written to operate on a single machine. The director applet chooses the destination server based on service-specific information such as load, availability, processor speed, or connection speed.
The director accepts arbitrary requests of the form ``perform this action on a server node''. The director applet sends the request to the server determined to deliver the best performance to the client. If the request fails, the next server in the director applet's ranked list is contacted with the request. In this way, the director applet provides transparent access to arbitrary server groups. As a result of the well-defined interface between the client interface applet and the director applet (as described in Section 3.3), individual director applets are easily interchanged for many different services. For example, the director applet providing transparent Telnet access to a cluster of workstations can also be used for services such as chat or FTP.