Virtual client file systems and methods within remote sessions
A method is provided that includes establishing, by an application server, a remote access session with a client device, and creating, by a file system agent running on the application server, a metadata-only virtual file system associated with the remote access session, wherein the virtual file system only comprises file metadata associated with a plurality of files residing in a local file system of the client device. The method further includes responsive to receiving, by the virtual file system, a request to access content of a file referenced by the virtual file system, redirecting the request to a file system driver implementing at least a sub-tree of the local file system of the client device.
1 . A local client device comprising:
a memory for storing instructions that are executed by a processing device; and
the processing device forming part of the remote local device being coupled to the memory, the processing device configured to:
establish a remote access session with a remote server in communication with the local client device via a network;
establish upon the local client device to create a metadata-only virtual file system within another memory accessible to the local client device;
receive with the virtual file system a request to access content of a file referenced by the virtual file system with a remote application in execution upon the local client device as part of the remote access session; and
redirect the request to access content of the file referenced by the virtual file system to a file system driver implementing at least a sub-tree of the local file system of the remote server; wherein
the virtual file system is associated with the remote access session and allows a plurality of remote applications to access one or more physical file systems in a uniform manner;
the virtual file system comprises file metadata associated with a plurality of files residing in a local file system of the remote server comprising the one or more physical file systems;
the virtual file system is established in dependence upon data transmitted by a virtual file system client application in execution upon the remote server upon a remote desktop protocol (RDP) channel established between the local client device and the remote server via another network or the network;
the RDP channel is the same RDP channel or a different RDP channel to that established between the local client device and the remote server associated with the remote access session;
the virtual file system client application transmits metadata relating to files within the local file system using a metadata transfer methodology of a plurality of metadata transfer methodologies;
the metadata transfer methodology of the plurality of metadata transfer methodologies is established in dependence upon one or more factors of the local file system of the remote server;
the one or more factors are selected from the group comprising a size of a file share, a number of folders within the file share, and the number of files within the time share; and
the file share on the remote server is associated with a user associated with the remote access session.
2 . A local client device comprising:
a memory for storing instructions that are executed by a processing device; and
the processing device forming part of the local client device being coupled to the memory, the processing device configured to:
establish a remote access session with a remote server in communication with the local client device via a network;
establish upon the local client device to create a metadata-only virtual file system within another memory accessible to the local client device;
receive, by the virtual file system, a request to access content of a file referenced by the virtual file system with a remote application in execution upon the local client device as part of the remote access session; and
redirect the request to access content of the file referenced by the virtual file system to a file system driver implementing at least a sub-tree of the local file system of the remote server; wherein
the virtual file system is associated with the remote access session and allows a plurality of remote applications to access one or more physical file systems in a uniform manner;
the virtual file system comprises file metadata associated with a plurality of files residing in a local file system of the remote server comprising the one or more physical file systems;
the virtual file system is established in dependence upon data transmitted from the remote server to the local client device using a metadata transfer methodology of a plurality of metadata transfer methodologies;
the metadata transfer methodology of the plurality of metadata transfer methodologies is established in dependence upon one or more factors of the local file system of the device remote server;
the file share on the remote server is associated with a user associated with the remote access session;
a first metadata transfer methodology of the plurality of metadata transfer methodologies transfers a folder within the file share in its entirety prior to transferring another folder within the file share; and
a second metadata transfer methodology of the plurality of metadata transfer methodologies transfers the file share comprising a plurality of hierarchal levels from a top level down such that each hierarchal level is transferred in its entirety prior to transferring a lower hierarchal level.
3 . A local client device comprising:
a memory for storing instructions that are executed by a processing device; and
the processing device forming part of the local client device being coupled to the memory, the processing device configured to:
establish a remote access session with a remote server in communication with the local client device via a network;
establish upon the local client device to create a metadata-only virtual file system within another memory accessible to the local client device;
receive, by the virtual file system, a request to access content of a file referenced by the virtual file system with a remote application in execution upon the local client device as part of the remote access session; and
redirect the request to access content of the file referenced by the virtual file system to a file system driver implementing at least a sub-tree of the local file system of the remote server; wherein
the virtual file system is associated with the remote access session and allows a plurality of remote applications to access one or more physical file systems in a uniform manner;
the virtual file system comprises file metadata associated with a plurality of files residing in a local file system of the remote server comprising the one or more physical file systems;
the virtual file system is established by a virtual file system agent in execution upon the local client device;
the virtual file system agent reads data transmitted by a virtual file system client application in execution upon the remote server upon a remote desktop protocol (RDP) channel established between the local client device and the remote server via another network;
the RDP channel is one of a different RDP channel to that established between the local client device and the remote server via the network associated with the remote access session and the same RDP channel or a different RDP channel to that established between the local client device and the remote server associated with the remote access session;
the virtual file system client application transmits the data via the RDP channel upon the remote access session being established;
the virtual file system client application transmits metadata relating to folders within a client share of the remote server associated with a user establishing the remote access session using a metadata transfer methodology of a plurality of metadata transfer methodologies; and
the metadata transfer methodology of the plurality of metadata transfer methodologies is established in dependence upon one or more factors of the local file system of the remote server.
4 . The local client device according to claim 3 , wherein
the one or more factors are selected from the group comprising a size of a file share, a number of folders within the file share, and the number of files within the file share; and
the file share on the remote server is associated with a user associated with the remote access session.
5 . A local client device comprising:
a memory for storing instructions that are executed by a processing device; and
the processing device forming part of the remote local device being coupled to the memory, the processing device configured to:
establish a remote access session with a remote server in communication with the local client device via a network;
establish upon the local client device to create a metadata-only virtual file system within another memory accessible to the local client device;
receive with the virtual file system a request to access content of a file referenced by the virtual file system with a remote application in execution upon the local client device as part of the remote access session; and
redirect the request to access content of the file referenced by the virtual file system to a file system driver implementing at least a sub-tree of the local file system of the remote server; wherein
the virtual file system is associated with the remote access session and allows a plurality of remote applications to access one or more physical file systems in a uniform manner;
the virtual file system is established in dependence upon data transmitted from the remote server to the local client device using a metadata transfer methodology;
the metadata transfer methodology employs statistical information such that a frequently accessed predetermined portion of the local file system is populated initially within the virtual file system;
the statistical information relates to at least one of the single client share, multiple client shares where each client share of the multiple client shares is associated with a different user of the remote server; and multiple client shares upon multiple client devices where each client share of the multiple client shares on each client device of the multiple client devices is associated with a different user of a client device of the multiple client devices; and
one of:
the frequently accessed predetermined portion of the local file system is a single client share associated with a user of the remote server;
the frequently accessed predetermined portion of the local file system is multiple client shares where each client share of the multiple client shares is associated with a different user of the remote server; and
the frequently accessed predetermined portion of the local file system is multiple client shares upon multiple client devices where each client share of the multiple client shares on each client device of the multiple client devices is associated with a different user of a client device of the multiple client devices.
6 . A local client device comprising:
a memory for storing instructions that are executed by a processing device; and
the processing device forming part of the remote local device being coupled to the memory, the processing device configured to:
establish a remote access session with a remote server in communication with the local client device via a network;
establish upon the local client device to create a metadata-only virtual file system within another memory accessible to the local client device;
receive with the virtual file system a request to access content of a file referenced by the virtual file system with a remote application in execution upon the local client device as part of the remote access session; and
redirect the request to access content of the file referenced by the virtual file system to a file system driver implementing at least a sub-tree of the local file system of the remote server; wherein
the virtual file system is associated with the remote access session and allows a plurality of remote applications to access one or more physical file systems in a uniform manner;
the virtual file system is established in dependence upon data transmitted from the remote server to the local client device using a metadata transfer methodology;
the metadata transfer methodology employs statistical information such that a frequently accessed predetermined portion of the local file system is populated initially within the virtual file system;
the transmission of data from the remote server to the local client device is terminated prior to the transfer of all the metadata if a user associated with the remote access session selects one of a file or folder within that portion of a client share already transferred; and
the client share is that portion of the local file system associated with the user.
7 . A local client device comprising:
a memory for storing instructions that are executed by a processing device; and
the processing device forming part of the remote local device being coupled to the memory, the processing device configured to:
establish a remote access session with a remote server in communication with the local client device via a network;
establish upon the local client device to create a metadata-only virtual file system within another memory accessible to the local client device;
receive with the virtual file system a request to access content of a file referenced by the virtual file system with a remote application in execution upon the local client device as part of the remote access session; and
redirect the request to access content of the file referenced by the virtual file system to a file system driver implementing at least a sub-tree of the local file system of the remote server; wherein
the virtual file system is associated with the remote access session and allows a plurality of remote applications to access one or more physical file systems in a uniform manner;
the virtual file system is established in dependence upon data transmitted from the remote server to the local client device using a metadata transfer methodology;
the metadata transfer methodology employs statistical information such that a frequently accessed predetermined portion of the local file system is populated initially within the virtual file system;
the transmission of data from the remote server to the local client device is terminated prior to the transfer of all the metadata if a user associated with the remote access session selects one of a file or folder within a portion of a client share of a set of client shares already transferred;
a first client share of the set of client shares is that portion of the local file system associated with the user; and
the remaining client shares of the set of client shares are those portions of the local file system associated with one or more other users.