Method and system for seamlessly accessing remotely stored files
First Claim
1. A system comprising:
- a storage device storing a local file hierarchy having a plurality of cache files, each of the plurality of cache files corresponding to one of a plurality of remote files stored remotely in association with web servers running a distributed authoring and versioning enabled hypertext transfer protocol (HTTP) coupled to internet;
a memory device storing an application program, a network access application program, an operating system (OS) including a file system, and a system plug-in for extending the file system; and
a processor coupled to the storage device and the memory device, the processor executing the application program to send a file system request involving one or more of the plurality of remote files to the file system, the processor executing the file system to direct the file system request to the system plug-in, wherein the plurality of cache files correspond to local files cached for the plurality of remote files, the file system request including a pathname for a URI (Uniform Resource Identifier) in a name space associated with a domain name registry, the processor executing the network access application program coupled to the internet, the network access application program to create the local file hierarchy in parallel with the pathname for the URI, the local file hierarchy including persistent directories present in the name space, the processor executing the system plug-in to;
determine if the one or more of the plurality of remote files are locally cached in the local file hierarchy,determine, if the one or more of the plurality of remote files are locally cached, if the file system request belongs to a predetermined group of requests including at least one of a file read, a file write and a directory listing commands;
forward the file system request to the network access application program via API (Application Programming Interface) over a socket connection, the network access application program sending the file system request as an HTTP protocol based request to one of the web servers, if the file system requests belongs to the predetermined group of requests, andsend responsive information to the application program, the responsive information being received in response to the file system request,wherein the network access application program receives the responsive information from the one of the web servers according to the HTTP based protocol request, wherein the network access application program updates the plurality of local files according to the responsive information and wherein the file system request includes a name associated with the plurality of remote files.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method by which users via programs on one computer may seamlessly access files remotely stored on other computers that run a well known file access protocol. An operating system extension and an application level network access program are provided. The operating system extension receives file system requests for remote files from the operating system that were issued according to a well known application program interface. The operating system extension forwards the remote file system request to the network access program. The network access program reformats the request according to a well known application level network protocol extension and sends it over a network to a remote computer system.
51 Citations
26 Claims
-
1. A system comprising:
-
a storage device storing a local file hierarchy having a plurality of cache files, each of the plurality of cache files corresponding to one of a plurality of remote files stored remotely in association with web servers running a distributed authoring and versioning enabled hypertext transfer protocol (HTTP) coupled to internet; a memory device storing an application program, a network access application program, an operating system (OS) including a file system, and a system plug-in for extending the file system; and a processor coupled to the storage device and the memory device, the processor executing the application program to send a file system request involving one or more of the plurality of remote files to the file system, the processor executing the file system to direct the file system request to the system plug-in, wherein the plurality of cache files correspond to local files cached for the plurality of remote files, the file system request including a pathname for a URI (Uniform Resource Identifier) in a name space associated with a domain name registry, the processor executing the network access application program coupled to the internet, the network access application program to create the local file hierarchy in parallel with the pathname for the URI, the local file hierarchy including persistent directories present in the name space, the processor executing the system plug-in to; determine if the one or more of the plurality of remote files are locally cached in the local file hierarchy, determine, if the one or more of the plurality of remote files are locally cached, if the file system request belongs to a predetermined group of requests including at least one of a file read, a file write and a directory listing commands; forward the file system request to the network access application program via API (Application Programming Interface) over a socket connection, the network access application program sending the file system request as an HTTP protocol based request to one of the web servers, if the file system requests belongs to the predetermined group of requests, and send responsive information to the application program, the responsive information being received in response to the file system request, wherein the network access application program receives the responsive information from the one of the web servers according to the HTTP based protocol request, wherein the network access application program updates the plurality of local files according to the responsive information and wherein the file system request includes a name associated with the plurality of remote files. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer implemented method, comprising:
-
receiving a file system request for a remote file at a file system of an operating system associated with a local file hierarchy having a plurality of cache files, each of the plurality of cache files corresponding to one of a plurality of remote files stored remotely over the Internet in a distributed authoring and versioning enabled hypertext transfer protocol (HTTP) server, the file system request being received as an ordinary file system request in a format other than a HTTP, the file system request including a pathname for a URI (Uniform Resource Identifier) in a name space associated with a domain name registry; creating the local file hierarchy in parallel with the pathname for the URI, the local file hierarchy including persistent directories present in the name space; determining if the remote file is locally cached in the local file hierarchy; if the remote file is locally cached, determining if the file system request belongs to a predetermined group of requests including at least one of a file read, a file write and a directory listing commands; forwarding the file system request via API (Application Programming Interface) over a local socket connection to create an HTTP formatted request based on the file system request, if the file system request belongs to the predetermined group of requests; forwarding the HTTP formatted request to the HTTP server; receiving a response from the HTTP server; updating the plurality of cache files according to the received response; and presenting the received response as an ordinary file system response. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13)
-
-
14. A machine-readable medium having stored thereon instructions which when executed by a processor cause the machine to perform a method, the method comprising:
-
receiving a file system request for a remote file at a file system of an operating system associated with a local file hierarchy having a plurality of cache files, each of the plurality of cache files corresponding to one of a plurality of remote files stored remotely over the Internet in a distributed authoring and versioning enabled hypertext transfer protocol (HTTP) sewer, the file system request being received as an ordinary file system request in a format other than a HTTP, the file system request including a pathname for a URI (Uniform Resource Identifier) in a name space associated with a domain name registry; creating the local file hierarchy in parallel with the pathname for the URI, the local file hierarchy including persistent directories present in the name space; determining if the remote file is locally cached in the local file hierarchy; determining, if the remote file is locally cached, if the file system request belongs to a predetermined group of requests including at least one of a file read, a file write and a directory listing commands; forwarding the file system request via API (Application Programming Interface) over a local socket connection to create an HTTP formatted request based on the file system request, if the file system request belongs to the predetermined group of requests; forwarding the HTTP formatted request to the HTTP server; receiving a response from the HTTP server; updating the plurality of cache files according to the received response; and presenting the received response as an ordinary file system response. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
-
22. A computer system comprising:
-
a memory storing instructions including at least one application program, an operating system, a system plug-in and a network access application program; a network access unit coupled with a remote storage device storing a plurality of remote files; a local storage device storing a plurality of cache files; and a processor coupled with the memory, the network access unit and the local storage device, the processor being configure to execute the instructions from the memory to; provide, according to the operation system, a file system associated with a local file hierarchy having the plurality of cache files to receive from the at least one application program a request involving the plurality of remote files stored remotely over the Internet in a hypertext transfer protocol (HTTP) server, each of the plurality of cache files corresponding to one of the plurality of remote files, the request including a pathname corresponding to a URI (Uniform Resource Identifier) in a name space associated with a domain name registry, the local file hierarchy including persistent directories present in the name space, extend, according to the system plug-in, the file system of the operating system to receive the request, the system plug-in determining if the plurality of remote files are locally cached in the local file hierarchy, the system plug-in determining, if the plurality of remote files are locally cached, if the request belongs to a predetermined group of requests including at least one of a file read, a file write and a directory listing commands, the system plug-in receiving responsive information in response to the request, the system plug-in forwarding the responsive information to the file system for replying to the at least one application program with the information received, and receive, according to the network access application program locally coupled with the system plug-in over a socket connection, the request from the system plug-in over API (Application Programming Interface), the network access application program to create the local file hierarchy in parallel with the pathname for the URI, the network access application program to update the plurality of cache files according to the responsive information, to translate a file name information specified in the request from a local file system syntax to a remote server syntax, and to package the request according to a distributed authoring and versioning enabled HTTP request to update the property of the plurality of remote files of the HTTP server over the Internet, and to receive the responsive information as an HTTP response from the HTTP server in response to the HTTP request.
-
-
23. A computer system apparatus, comprising:
-
a memory storing instructions; a local storage device storing a plurality of cache files; and a processor coupled with the memory and the local storage device, the processor being configured to execute the instructions from the memory to; receive a file system request for a remote file at a file system of an operating system associated with a local file hierarchy having the plurality of cache files, each of the plurality of cache files corresponding to one of a plurality of remote files stored remotely over the Internet in a distributed authoring and versioning enabled hypertext transfer protocol (HTTP) server, the file system request being received f as an ordinary file system request in a format other than an HTTP, the file system request including a pathname corresponding to a URI (Uniform Resource Identifier) in a name space associated with a domain name registry, create the local file hierarchy in parallel with the pathname for the URI, the local file hierarchy including persistent directories present in the name space, determine if the remote file is locally cached in the local file hierarchy, determine, if the remote file is locally cached, if the file system request belongs to a predetermined group of requests including at least one of a file read, a file write and a directory listing commands, forward the file system request via API (Application Programming Interface) over a local socket connection to create an HTTP formatted request based on the file system request, if the file system request belongs to the predetermined group of requests, forward the HTTP formatted request to the HTTP server for updating the property of the plurality of remote files, receive a response from the HTTP server, update the plurality of cache files according to the received response, and present the received response as an ordinary file system response.
-
-
24. A computer implemented method, comprising:
-
receiving, at a system plug-in extending a file system within an operating system running within a computer system including a local file hierarchy having a plurality of cache files, a file system request to update the plurality of remote files stored remotely in Web server over the Internet from an application program, each of the plurality of cache files corresponding to one of the plurality of remote files, the file system request including a pathname for a URI (Uniform Resource Identifier) in a name space associated with a domain name registry, the local file hierarchy including persistent directories present in the name space, and the system plug-in being locally coupled to a network access application program over a socket connection; the network access application program creating the local file hierarchy in parallel with the pathname for the URI; the system plug-in determining if the plurality of remote files are locally cached in the local file hierarchy; the system plug-in determining, if the plurality of remote files are locally cached, if the file system request belongs to a predetermined group of requests including at least one of a file read, a file write and a directory listing commands; and if the file system request is determined to belong to the predetermined group of requests, the system plug-in forwarding the file system request to the network access application via API (Application Programming Interface) to be transformed into a network communications request conforming to a communications protocol acceptable by the Web server over the Internet, the file system receiving responsive information in response to the file system request, the system plug-in transferring the responsive information retrieved to the application program, the information being presented as an ordinary file system response, wherein the transforming, forwarding, and transferring are performed transparently with respect to the application program, wherein the plurality of cache files is updated according to the responsive information received.
-
-
25. A machine-readable medium having stored thereon instructions which when executed by a processor cause the machine to perform a method, the method comprising:
-
receiving, at a system plug-in extending a file system within an operating system running within a computer system including a local file hierarchy having a plurality of ache files, a file system request to update the plurality of remote files stored remotely in a Web server over the Internet from an application program, each of the plurality of cache files corresponding to one of the plurality of remote files, the file system request including a pathname for a URI (Uniform Resource Identifier) in a name space associated with a domain name registry, the local file hierarchy including persistent directories present in the name space, and the system plug-in being locally coupled to a network access application program over a socket connection; the network access application program creating the local file hierarchy in parallel with the pathname for the URI; the system plug-in determining if the plurality of remote files are locally cached in the local file hierarchy; the system plug-in determining, if the plurality of remote files are locally cached, if the file system request belongs to a predetermined group of requests including at least one of a file read, a file write and a directory listing commands; and if the file system request is determined to belong to the predetermined group of requests, the system plug-in forwarding the file system request to the network access application via API (Application Programming Interface) to be transformed into a network communications request conforming to a communications protocol acceptable by the Web server over the Internet, the file system receiving responsive information in response to the file system request, the system plug-in transferring the responsive information retrieved to the application program , the information being presented as an ordinary file system response, wherein the transforming, forwarding, and transferring are performed transparently with respect to the application program, wherein the plurality of cache files is updated according to the responsive information.
-
-
26. An apparatus, comprising:
-
means for receiving, at a system plug-in extending a file system within an operating system running within a computer system including a local file hierarchy having a plurality of cache files, a file system request to update the plurality of remote files stored remotely in a Web sewer over the Internet from an application program, each of the plurality of cache files corresponding to one of the plurality of remote files, the file system request including a pathname for a URI (Uniform Resource Identifier) in a name space associated with a domain name registry, the local file hierarchy including persistent directories present in the name space, and the system plug-in being locally coupled to a network access application program over a socket connection; means for creating, at the network access application program, the local file hierarchy in parallel with the pathname for the URI; means for determining, at the system plug-in, if the plurality of remote files are locally cached in the local file hierarchy; means for determining, at the system plug-in, if the plurality of remote files are locally cached, if the file system request belongs to a predetermined group of requests including at least one of a file read, a file write and a directory listing commands; and if the file system request is determined to belong to the predetermined group of requests, means for forwarding, at the system plug-in, the file system request to the network access application via API (Application Programming Interface) to be transformed into a network communications request conforming to a communications protocol acceptable by the Web server over the Internet, the system plug-in receiving responsive information in response to the file system request, the file system transferring the responsive information received to the application program , the information being presented as an ordinary file system response, wherein the transforming, forwarding, and transferring are performed transparently with respect to the application program, wherein the plurality of cache files is updated according to the responsive information received.
-
Specification