A method and system for transparently combining remote and local storage
to provide an extended file system such as a virtual local drive for a
computer system client/user, e.g., a user of a pocket sized personal
computer or a cable set-top box. A client device may load file system
object data, storing the directories and files remotely, and retrieving
the files only when required. Via its local storage, the extended file
system handles unreliable connections and delays. When a connection to an
extended file system server is present, the extended file system provides
automatic downloading of information that is not locally cached, and
automatically uploading of information that has been modified on the
client. Extended file system attributes are employed to determine the
actual location of file system data, and a lightweight protocol is
defined to download or upload remote data by low-level components that
make the remote source transparent from the perspective of the
application. The system scales to large networks as it employs the
lightweight protocol and establishes a connection only to retrieve and
submit data.