Patent Publication Number: US-9419848-B1

Title: System for and method of providing a document sharing service in combination with remote access to document applications

Description:
TECHNICAL FIELD 
     Various inventive embodiments disclosed herein relate generally to document sharing systems. In particular, embodiments disclosed herein relate to a system for and methods of providing a document sharing service in combination with remote access to document editor and/or viewer applications. 
     BACKGROUND 
     Currently, web-based file hosting services exist in which cloud storage is used to enable users to create, store, and share files and folders with others across the Internet using file synchronization. In such a system, the service allows users to upload and save documents to the cloud. Then the documents that are in the cloud can be access from the users&#39; computers. Users can also share documents with other users. 
     Current document sharing systems work well until a user tries to access a document using a client device (e.g., any computing device) that does not have the document editor and/or viewer application needed for the document format of interest. For example, if a user is attempting to edit/view an AutoCAD® document through a document sharing system and the user&#39;s computer does not have the AutoCAD® application installed and running natively thereon, the user will be unable to open the AutoCAD® document. Therefore, for conventional document sharing systems to work, it is required that the user&#39;s client device have the needed document application installed and running locally. This is of particular limitation on certain types of client devices, such as tablet computing devices, handheld computing devices, and mobile phones, which may not support any application that can view or edit a particular document format. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Various inventive embodiments disclosed herein, both as to its organization and manner of operation, together with further objectives and advantages, may be best understood by reference to the following description, taken in connection with the accompanying drawings as set forth below: 
         FIG. 1  illustrates a block diagram of a client-server computing system for providing a document sharing service in combination with remote access to document editor and/or viewer applications, according to the present disclosure; 
         FIGS. 2A, 2B, and 2C  illustrate block diagrams of examples of a class I client device, a class II client device, and a class III client device, respectively, of the client-server computing system, according to the present disclosure; 
         FIG. 3  illustrates an example of a flow diagram of a method of creating a document and saving to the document sharing service of the client-server computing system, according to the present disclosure; 
         FIG. 4  illustrates an example of a flow diagram of a method of a user accessing a document available through the document sharing service of the client-server computing system, according to the present disclosure; 
         FIG. 5  illustrates a flow diagram of a method of selecting a computer of the client-server computing system on which to launch the requested document editor/viewer application, according to the present disclosure; 
         FIG. 6  illustrates an example of a flow diagram of a method of providing a document sharing service in combination with remote access to document editor and/or viewer applications, according to a minimum configuration of the present disclosure; 
         FIG. 7  illustrates an example of a flow diagram of a method of using a client device to create a document and save the document to the document sharing service of the client-server computing system, according to the present disclosure; 
         FIG. 8  illustrates an example of a flow diagram of a method of using a client device to access a document that is available through the document sharing service of the client-server computing system, according to the present disclosure; and 
         FIG. 9  illustrates an example of a flow diagram of a business method of providing the document sharing service in combination with remote access to document editor and/or viewer applications, according to the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     The disclosure is a system for and methods of providing a document sharing service in combination with remote access to document editor and/or viewer applications. The document sharing service of the disclosure allows users to access a document from a centralized document database using his/her client device (e.g., any computing device) even when the client device does not have the document editor/viewer application needed for the document format of interest. Namely, if a user is attempting to edit/view a document of a certain file format through the document sharing service and the user&#39;s client device does not support the particular file format, the document sharing service (1) selects a computer in the system that has the needed document editor/viewer application (2), if necessary, moves the document to the selected computer, and (3) “remotes” the user interface for the document editor/viewer application to the user&#39;s client device. 
     For example, if a user is attempting to edit/view an computer-aided design (CAD) drawing through the document sharing service of the disclosure and the user&#39;s client device does not have the AutoCAD® application installed and running natively on his/her client device, the document sharing service (1) selects a computer in the system that is running the AutoCAD® application (2) if necessary, moves the CAD drawing to the selected computer, and then (3) remotes the user interface for the AutoCAD® application to the user&#39;s client device. 
     Further, the document sharing service of the disclosure supports three classes of client devices, meaning three classes of user devices, by which a user may access documents:
         (1) a class I client device that has a certain set of document editor/viewer applications installed thereon and that includes a remote access service that allows the class I client device to act as an application host computer;   (2) a class II device that has a certain set of document editor/viewer applications installed thereon, but that does not include a remote access service; and   (3) a class III client device that has no or a limited set of document editor/viewer applications installed thereon.       

     Accordingly, the class I client device has the greatest amount of functionality, the class II client device has a lower amount of functionality than the class I client device, and the class III client device has a yet lower amount of functionality than the class II client device. The document sharing service of the disclosure provides advantage over conventional document sharing systems in that conventional document sharing systems only support the equivalent of the class II and class III client devices, and do not support class I client devices. 
       FIG. 1  illustrates a block diagram of a client-server computing system  100  for providing a document sharing service in combination with remote access to document editor and/or viewer applications. Client-server computing system  100  includes a hosting service  105 , which is a cluster of computing resources that support a document sharing service for users who are accessing hosting service  105  remotely. Namely, users may create documents and store the documents in centralized storage of hosting service  105 . Additionally, users may create and store documents on class I devices. In both cases, documents may be shared between users via hosting service  105 . 
     In one example, hosting service  105  includes a network of one or more host computers  110 , i.e., host computers  110 - 1  through  110 - n ; a document server  120 ; a document database  130 ; and a user database  140 . Host computers  110 - 1  through  110 - n  may be connected to document server  120  and user database  140  via, for example, a TCP connection. The TCP connection may be a standard TCP connection with no encryption or a TCP connection with encryption. 
     One or more users  150  are associated with client-server computing system  100 . Users  150  may be individual users and/or groups of users and, thus, hereafter it may be understood that any reference to users  150  means individual users or user groups (i.e., groups of users  150 ). Users  150  may access hosting service  105  via any combination of one or more classes of client devices  160 , which are connected to hosting service  105  via a network  170 . For example, client devices  160  may include any combinations of class I client devices  160 , class II client devices  160 , and class III client devices  160 , which are described in more detail with reference to  FIGS. 2A, 2B, and 2C , respectively. 
     Network  170  may be, for example, a local area network (LAN) and/or a wide area network (WAN) for connecting to the Internet. Entities of client-server computing system  100  may connect to network  170  by any wired and/or wireless means. Client-server computing system  100  may be implemented using standard client-server architecture between hosting service  105  and client devices  160 . 
     Each host computer  110  is a computer on which document editor and/or document viewer applications run. For example, in a remote access system, such as client-server computing system  100 , the “remoting” software is installed and executing (i.e., “running”) on each host computer  110 , which is software that allows users  150  to remotely access document editor and/or document viewer applications that are installed on each host computer  110 . By way of example, a set of document editors  112  and/or a set of document viewers  114  are installed on each host computer  110 . Namely, individual instances and/or types of document editor and/or document viewer applications on each host computer  110  is represented by document editors  112  and document viewers  114 . Document editors  112  may include any types of document editors, such as, but not limited to, a plain text editor, such as Notepad; the Microsoft® Office suite of programs, such as Microsoft® Word, Microsoft® Excel, Microsoft® PowerPoint; Microsoft® Visio; computer-aided design (CAD) applications, such as Autodesk® AutoCAD® and Cadence® Virtuoso®; photo editors, such as Microsoft® Paint and Adobe® Photoshop®; and Adobe® Illustrator®. Document viewers  114  may include any types of document viewers, such as, but not limited to, the Microsoft® PowerPoint viewer, the Microsoft® Visio viewer; the AutoCAD® viewer, the Adobe® Acrobat Reader, and any type of image viewer. 
     Using an example of three host computers  110 - 1 ,  110 - 2 , and  110 - 3 , instances of the same or different types of document editors  112  and document viewers  114  may be installed and running on each of the host computers  110 - 1 ,  110 - 2 , and  110 - 3 . For example, the Microsoft® Office suite of programs may be installed and running on all three host computers  110 - 1 ,  110 - 2 , and  110 - 3 . Adobe® Acrobat Reader may be installed and running on host computers  110 - 2  and  110 - 3 , but not on host computer  110 - 1 . Autodesk® AutoCAD® and the AutoCAD® viewer may be installed and running only on host computer  110 - 2 . Microsoft® Visio and the Microsoft® Visio viewer may be installed and running on host computers  110 - 1  and  110 - 3 , but not on host computer  110 - 2 , and so on. 
     Each host computer  110  further includes a remote access service  116 . Remote access service  116  is the application or process that manages the user access process at the host computer  110  whenever a document editor/viewer access request is received from a client device  160  of a certain user  150  via document server  120 . Additionally, remote access service  116  provides an application publishing service. Namely, at each host computer  110 , remote access service  116  is used to publish its document editors  112  and document viewers  114  to users  150 . The remote access service  116  is an application running on each host computer  110  that is capable of starting a remote session in which applications can be run and displayed to a user  150  at his/her client device  160 , which is a remote device. The remote access service  116  application manages the communication of each host computer  110  with the client device  160  with respect to creating and displaying host sessions on behalf of users  150 . 
     Document server  120  is used as the gateway into hosting service  105 . Namely, document server  120  provides the interface between client devices  160  and host computers  110 . As such, document editors  112  and document viewers  114  of host computers  110 - 1  through  110 - n  is delivered to client devices  160  via document server  120 . More specifically, document server  120  includes a document sharing service  122 . Document sharing service  122  may be implemented as a web application that is accessible by client devices  160  via, for example, the Internet (e.g., network  170 ). Document sharing service  122  controls access to host computers  110  and any other entities of hosting service  105 . More particularly, under the control of document sharing service  122 , document editors  112  and document viewers  114  of host computers  110  shall be visible to and accessible by client devices  160  via network  170 . For example, users  150  authenticate to document server  120  using document sharing service  122 . Once authenticated, based on access rights and permissions, users  150  are allowed access to document editors  112  and document viewers  114  of host computers  110 - 1  through  110 - n  that are connected to document server  120 . 
     Each client device  160  includes a client application  162 . Client application  162  is used to provide a user interface to document sharing service  122  of document server  120 . Namely, client application  162  is the component that is the counterpart to document sharing service  122  of document server  120 . Client application  162  may be implemented as a web application and run in a web browser, such as Internet Explorer. However, client application  162  may be implemented by other means, such as a .NET application, a light weight desktop application, a mobile app, and the like. 
     Document sharing service  122  of document server  120  is the first process that client application  162  of client devices  160  connects to. The purpose of document sharing service  122  is to authenticate users  150  and keep track of what each individual user  150  is allowed to access. Namely, document sharing service  122  is used to enforce the access rights and limitations that a system administrator (not shown) has defined. 
     Document database  130  provides a centralize document storage means in hosting service  105 . Namely, document database  130  is used for storing a repository of documents  132 . Documents  132  may be any documents created and/or processed using document editors  112  and document viewers  114 . Examples of types of documents  132  may include, but are not limited to, .txt files, .rtf files, .wpd files, .wps files, .doc files, .ppt files, .xls files, .htm files, .html files, .pdf files, .jpg files, .tiff files, .gif files, .bmp files, .vsd files, .xml file, .ai files, .dwg files, and .dxf files, to name a few. Using client devices  160 , documents  132  may be created by users  150 , then saved to document database  130  and shared with other users  150 . 
     User/group information  142  may be stored in user database  140 . A system administrator (not shown) creates and defines user/group information  142 . Additionally, if allowed by the administrator, users may create their own accounts and groups. User/group information  142  may contain, for example, account information, user names, group names, user/group credentials, locations of user/group profiles (e.g., file paths), and the like. 
     Client-server computing system  100 , and more particularly hosting service  105 , may support a cloud computing environment. In a cloud computing environment, document server  120  is the cloud server. Further, hosting service  105  of client-server computing system  100  is not limited to one document server  120  only. Hosting service  105  may include any number of document servers  120  (or cloud servers). 
       FIGS. 2A, 2B, and 2C  illustrate block diagrams of examples of a class I client device  160 , a class II client device  160 , and a class III client device  160 , respectively, of the client-server computing system. Class I client device  160 , class II client device  160 , and class III client device  160  are used by users  150  to access hosting service  105  remotely. A class I client device  160  has the greatest amount of functionality, a class II client device  160  has a lower amount of functionality than the class I client device  160 , and a class III client device  160  has a yet lower amount of functionality than that of a class II client device  160 . 
     For example, a class I client device  160  is a computing device that includes an instance of client application  162 . Further, installed and running natively on a class I client device  160  are instances of certain types of document editors  112  and/or document viewers  114 , which are described with reference to  FIG. 1 . Additionally, a class I client device  160  includes a remote access service  164  that allows the class I client device  160  to act as an application server in substantially the same way that host computers  110  serve as application servers. Accordingly, remote access service  164  of a class I client device  160  is substantially the same as remote access service  116  of host computers  110 , as described in  FIG. 1 . One difference between class I client devices  160  and host computers  110  is that documents can be stored permanently on class I client devices  160 . This makes it possible for users  150  to share documents without having the source document ever leave their own computer. Remote users  150  may view and edit the document via remote control, but the document and all legal rights associated with it remain with its owner. In summary, a class I client device  160  may provide document editing and viewing capability via document editors  112  and document viewers  114 , as well as application server capability via remote access service  164  and document storage via the computer&#39;s file system. Examples of class I client devices  160  may include, but are not limited to, desktop computers and laptop computers. 
     A class II client device  160  is substantially the same as a class I client device  160  except that it does not include remote access service  164 . Consequently, a class II client device  160  can not act as an application server. In summary, a class II client device  160  may provide document editing and viewing capability via document editors  112  and document viewers  114 , but without application server capability. Examples of class II client devices  160  may include, but are not limited to, desktop computers and laptop computers. 
     Finally, a class III client device  160  has limited or no document editing and viewing capability and no application server capability. Consequently, a class III client device  160  mainly provides a remote connection (via client application  162 ) to document sharing service  122  of hosting service  105 . Examples of class III client devices  160  may include, but are not limited to, handheld computing devices, mobile phones, and tablet devices. 
     Referring to  FIGS. 1, 2A, 2B, and 2C , a user&#39;s class I client device  160  is registered with document sharing service  122  and may be used as the first option for hosting document editor/viewer applications for the particular user  150  who is the owner of the class I client device  160 . For example, a particular user  150  has both a class III client device  160  and a class I client device  160 ; however, the user  150  chooses to authenticate to document sharing service  122  using his/her class III client device  160 . Then using the class III client device  160 , the user  150  attempts to create a Microsoft® Word document. However, the user&#39;s class III client device  160  does not have Microsoft® Word running natively thereon. Client application  162  of the class III client device  160  detects the absence of Microsoft® Word on the class III client device  160  and issues an application request to document sharing service  122 . In response, document sharing service  122  determines what other computers of hosting service  105  have Microsoft® Word. 
     In one example, if the user&#39;s class I client device  160  is registered with document sharing service  122  and has Microsoft® Word, document sharing service  122  selects the class I client device  160  to host the application on behalf of the user&#39;s class III client device  160 , rather than selecting one of the host computers  110 . Then, document sharing service  122  “remotes” the interface for Microsoft® Word to the user&#39;s class III client device  160  and, using remote access service  164  of the user&#39;s class I client device  160 , the document may be created. In this scenario, the user  150  is essentially hosting his/her own document editor/viewer applications (via document editors  112  and/or document viewers  114  of the class I client device  160 ) and the amount of data that is routed through document sharing service  122  is minimized. In addition, the documents and content that the user  150  creates remains on the user  150 &#39;s own computers. 
     The client-server computing system  100  of the disclosure is not limited to a particular user  150  hosting his/her own document editor/viewer applications via his/her class I client device  160 . A first user  150  may grant access to other users  150  to use the first user  150 &#39;s class I client device  160 . In this way, a first user  150  may provide hosting services to other users  150 , which is another way of minimizing data that is routed through document sharing service  122 . For example, multiple users  150  may establish relationships to one another in similar fashion to social networking methods. Namely, users  150  may have “contacts” lists or “friends” lists with selectable permissions that allow users  150  to host document editor/viewer applications for each other using their respective class I client devices  160 . Multiple users  150  may simultaneously access a class I client device  160  and work independently in private sessions. 
     In another example, if none of the user&#39;s client devices  160  (regardless of class) have Microsoft® Word running natively thereon, document sharing service  122  selects one of the host computers  110  to host the application on behalf of the user&#39;s client device  160 . In this scenario, hosting service  105  is hosting the document editor/viewer application and all data is routed through document sharing service  122 . 
     Because of the three different classes of client devices  160 , three different levels of service with different price points may be offered to users  150  of hosting service  105  of client-server computing system  100 . For example, hosting service  105  of the disclosure provides a base level of service that supports class II client devices  160  only, which is essentially the capability of conventional document sharing systems. However, hosting service  105  of the disclosure provides another level of service (beyond that of conventional document sharing systems) that supports class II client devices  160  and that also allows a user  150  to host his/her own application via his/her class I client device  160 . Namely, document sharing service  122  facilitates the use of a class I client device  160  as a host. Hosting service  105  of the disclosure provides yet another level of service (again beyond that of conventional document sharing systems) that supports both the capability of a user  150  to host his/her own document editor/viewer applications via his/her class I client device  160  and the capability of a user  150  to access host computers  110 . The three levels of service may be offered at three different price points because each level of service is more expensive to provide. Namely, the more data that is routed through document sharing service  122 , the higher the cost.  FIGS. 3 through 9  describe examples of methods to facilitate, among other things, the aforementioned operations. 
       FIG. 3  illustrates an example of a flow diagram of a method  300  of creating a document and saving the document to document sharing service  122  of client-server computing system  100 , by which the document may be shared. Method  300  may include, but is not limited to, the following steps. 
     At step  310 , using any class I client device  160 , class II client device  160 , or class III client device  160 , the user  150  determines whether the desired document editor  112  exists on his/her client device  160 . In one example, if the user  150  desires to create a CAD drawing (i.e., a .dwg file) the user  150  determines whether an AutoCAD® application exists on his/her client device  160 . 
     At a decision step  312 , if the user  150  determines that the desired document editor  112  (e.g., the AutoCAD® application) exists on his/her client device  160 , method  300  proceeds to step  314 . However, if the user  150  determines that the desired document editor  112  (e.g., the AutoCAD® application) does not exist on his/her client device  160 , then method  300  proceeds to step  326 . 
     At a step  314 , the user  150  starts the desired document editor  112  on his/her client device  160  and the interface of the particular type of document editor  112  is displayed on the client device  160 . Continuing the example, the user  150  starts the AutoCAD® application on his/her client device  160  and the interface of the AutoCAD® application is displayed on the client device  160 . 
     At a step  316 , using a class I client device  160 , class II client device  160 , or class III client device  160 , the user  150  creates a new document  132  using the document editor  112  that is on his/her client device  160 . The user  150  then saves the document  132  on his/her client device  160 . Continuing the example, the user  150  creates a new CAD drawing (i.e., .dwg file) using the AutoCAD® application that is on his/her client device  160 . The user  150  then saves the CAD drawing on his/her client device  160 . 
     At a step  318 , using client application  162  of the user&#39;s class I client device  160 , class II client device  160 , or class III client device  160 , the user  150  signs into the document sharing service  122  and a standard authentication process is performed that allows the user  150  to access document editors  112  of host computers  110 - 1  through  110 - n  and document database  130 . User-sign in may occur a number of ways. In one example, the user  150  may manually browse to the website of document sharing service  122  and enter credentials (e.g., username and password). In another example, the user sign-in process may occur automatically when the user  150  starts his/her client device  160 . Namely, as part of the setup process to use document sharing service  122 , the user  150  creates an account with the service and enters credentials. The account information and credentials is saved locally on the user&#39;s client device  160 . Then the user  150  may select the option to automatically start document sharing service  122  when the client device  160  is started. 
     At step  320 , user  150  selects the storage location for document  132 . This selection is either made via client application  162  or via document editor  112 &#39;s file dialog, in which the dialog displays the computer&#39;s local file system, network shares, and, optionally, a mapped drive or directory that provides access to document database  130  via document sharing service  122  and client application  162 . In one example, user  150  chooses to store the document  132  (e.g., the CAD drawing) on document database  130 . In another example, user  150  chooses to store the document  132  (e.g., the CAD drawing) locally on his/her client device  160 . The capability that allows a user  150  to store documents  132  locally on his/her client device  160  and then share these documents with other users  150  is an advantage that hosting service  105  of the disclosure provides over conventional document sharing systems. 
     At a step  322 , based on the user&#39;s selection at step  320 , the document  132  is either uploaded to document database  130  or stored locally on the user  150 &#39;s client device  160 . For example, if at step  320  user  150  selects document database  130 , client application  162  initiates the document upload process and document sharing service  122  uploads the document  132  (e.g., the CAD drawing) to document database  130  and the document  132  is now available for sharing. Alternatively, if at step  320  the user  150  chooses to store the document  132  (e.g., the CAD drawing) locally on his/her client device  160 , document editor  112  saves the document to the selected location. From this step, method  300  may end or proceed to optional step  324 . 
     At an optional step  324 , the user  150  grants other users  150  access to the document  132  (e.g., the CAD drawing) that is stored in document database  130  or stored locally on his/her client device  160 . Namely, the user  150  enters the access control entries for the document  132 . For example, in an enterprise environment, a given user  150  may be granted visibility to certain other users  150 . To facilitate this, document sharing service  122  may provide a user interface by which a user  150  may select a certain document  132  and then select users  150  (and/or groups) that may have access to the selected document  132 . Additionally, the user  150  may make the document  132  public so that any user  150  can access it. Method  300  ends. 
     At a step  326 , using client application  162  of the user&#39;s class I client device  160 , class II client device  160 , or class III client device  160 , the user  150  signs into the document sharing service  122  and a standard authentication process is performed that allows the user  150  to access document editors  112  of host computers  110 - 1  through  110 - n  and document database  130 . The user sign-in process may be as described with reference to step  318 . 
     At a step  328 , client-server computing system  100  displays the document editors  112  and document viewers  114  that are available to the authenticated user  150 . More specifically, a list of document editors  112  and document viewers  114  to which the user  150  has rights and privileges is published by document sharing service  122  and displayed on the user&#39;s class I client device  160 , class II client device  160 , or class III client device  160 . 
     These document editors  112  may exist on any of the host computers  110 - 1  through  110 - n  of hosting service  105  and any class I client devices  160  on which the user has rights to create documents. The capability that allows a particular user  150  to host his/her own document editors  112  and document viewers  114  is an advantage that hosting service  105  of the disclosure provides over conventional document sharing systems. 
     At a step  330 , using client application  162  of the user&#39;s class I client device  160 , class II client device  160 , or class III client device  160 , the user  150  selects a certain type of document editor  112  that corresponds to the type of document the user  150  wishes to create. If user  150  wants to create a document on a specific class I client device  160 , the user may explicitly choose a document editor  112  that is installed on the desired client device  160 . Continuing the example, if the user  150  desires to create a CAD drawing (i.e., a .dwg file) the user  150  may select an AutoCAD® application, which is one of the listed document editors  112 . 
     At a step  332 , if the user  150  has not, at step  330 , explicitly or implicitly selected a specific class I client device  160  on which to start document editor  112 , document sharing service  122  selects the computer on which to start the document editor  112  selected in step  330 . The choice of computers includes host computers  110 - 1  through  110 - n  of hosting service  105  and any class I client device  160  on which the user has rights to create documents. The capability that allows class I client devices  160  to be included in the choices for hosting an application is an advantage that hosting service  105  of the disclosure provides over conventional document sharing systems. More specifically, in this step, the computer is selected according to a method  500  of  FIG. 5 . Continuing the example, according to method  500  of  FIG. 5 , document sharing service  122  selects host computer  110 - 2  for running the AutoCAD® application on behalf of the user&#39;s class I client device  160 , class II client device  160 , or class III client device  160 . 
     At a step  334 , document sharing service  122  issues commands to the computer selected in step  332  to start the document editor  112  selected in step  330 . Continuing the example, document sharing service  122  issues commands to host computer  110 - 2  to start the AutoCAD® application. 
     At a step  336 , remote access service  116  of the computer selected in step  332  starts the document editor  112  selected in step  330  and client-server computing system  100  “remotes” the user interface to the client device  160 . Continuing the example, remote access service  116  of host computer  110 - 2  starts the AutoCAD® application and the user interface thereof is displayed on the user&#39;s class I client device  160 , class II client device  160 , or class III client device  160 . 
     At a step  338 , using a class I client device  160 , class II client device  160 , or class III client device  160 , the user  150  creates a new document  132  using the document editor  112  that is being accessed remotely. Continuing the example, the user  150  creates a new CAD drawing (i.e., .dwg file) using the AutoCAD® application of host computer  110 - 2  that is being accessed remotely. Method returns to step  320 . 
       FIG. 4  illustrates an example of a flow diagram of a method  400  of a user  150  accessing a document  132  that is available through document sharing service  122  of hosting service  105  of client-server computing system  100 . Method  400  may include, but is not limited to, the following steps. 
     At a step  410 , using client application  162  of the user&#39;s class I client device  160 , class II client device  160 , or class III client device  160 , the user  150  signs into the document sharing service  122  and a standard authentication process is performed that allows the user  150  to access document editors  112  of host computers  110 - 1  through  110 - n  and document database  130 . The user sign-in process may be as described with reference to step  318  of method  300  of  FIG. 3 . 
     At a step  412 , client-server computing system  100  displays the documents  132  as well as the document editors  112  and document viewers  114  that are available to the authenticated user  150 . More specifically, a list of documents  132  in document database  130  and/or documents  132  on class I client devices  160  to which the user  150  has rights and privileges is published by document sharing service  122  and displayed on the user&#39;s class I client device  160 , class II client device  160 , or class III client device  160 . These may be documents  132  the user  150  has created as well as documents  132  that other users  150  are sharing. The list of documents  132  may be presented in a hierarchical file structure by which the user  150  can browse files and folders, such as a virtual file structure. 
     Similarly, a list of document editors  112  and document viewers  114  to which the user  150  has rights and privileges is published by document sharing service  122  and displayed on the user&#39;s class I client device  160 , class II client device  160 , or class III client device  160 . 
     At a step  414 , user  150  selects a certain document  132  from the list presented in step  412 . 
     At a decision step  416 , the user  150  chooses to open the selected document  132  in a view mode (i.e., read-only mode) or in edit mode (i.e., read/write mode). In some cases, predetermined access rights for the user  150  may automatically dictate view-only rights vs. edit rights to the selected document  132 . If the user  150  selects view mode, method  400  proceeds to step  418 . However, if the user  150  selects edit mode, then method  400  proceeds to step  426 . 
     At a step  418 , document sharing service  122  selects a certain type of document viewer  114  that corresponds to the type of document  132  that the user  150  selected in step  414 . Document sharing service  122  is tracking the document viewers  114  that are available to the user  150 , both locally on the user&#39;s client device  160  and remotely on host computers  110  and class I client devices  160 . In one example, if the user  150  desires to view a Microsoft® PowerPoint file, document sharing service  122  selects a PowerPoint viewer application, which is one of the listed document viewers  114 . 
     At a step  420 , document sharing service  122  selects the computer on which to start the document viewer  114  selected in step  418 . The choice of computers includes host computers  110 - 1  through  110 - n  of hosting service  105 , any class I client devices  160  to which the user  150  has access rights, and any class II client device  160 . Again, the capability that allows class I client devices  160  to be included in the choices for hosting an application is an advantage that hosting service  105  of the disclosure provides over conventional document sharing systems. More specifically, in this step, the computer is selected according to method  500  of  FIG. 5 . Continuing the example, according to method  500  of  FIG. 5 , document sharing service  122  selects host computer  110 - 2  for running the PowerPoint viewer application on behalf of the user&#39;s class I client device  160 , class II client device  160 , or class III client device  160 . 
     At an optional step  422 , if the document  132  selected in step  414  is stored in document database  130  or if the document  132  is not stored on the computer selected in step  420 , the document  132  is moved to the computer selected in step  420  and client application  162  or remote access service  116  creates a read-only copy of the selected document  132  on the selected computer. Continuing the example, if the Microsoft® PowerPoint file (e.g., .ppt file) is stored in document database  130  or if the Microsoft® PowerPoint file is not stored on host computer  110 - 2 , the Microsoft® PowerPoint file is moved to host computer  110 - 2  and remote access service  116  creates a read-only copy of the Microsoft® PowerPoint file on host computer  110 - 2 . 
     At a step  424 , client application  162  or remote access service  116  opens the document  132  selected in step  414  in the document viewer  114  selected in step  418 . Continuing the example, remote access service  116  displays the interface of the Microsoft® PowerPoint viewer (or in the full version of Microsoft® PowerPoint) on the user&#39;s client device  160  via client application  162 , then displays the Microsoft® PowerPoint file (e.g., .ppt file) in read-only mode to the user  150  on the user&#39;s client device  160 . Method  400  ends. 
     At a step  426 , document sharing service  122  selects a certain type of document editor  112  that corresponds to the type of document  132  that the user  150  selected in step  414 . Document sharing service  122  is tracking the document editors  112  that are available to the user  150 , both locally on the user&#39;s client device  160  and remotely on host computers  110 . In one example, if the user  150  desires to edit a Microsoft® PowerPoint file, document sharing service  122  selects a PowerPoint editor application, which is one of the listed document editors  112 . 
     At a step  428 , document sharing service  122  selects the computer on which to start the document editor  112  selected in step  426 . The choice of computers includes host computers  110 - 1  through  110 - n  of hosting service  105 , any class I client devices  160  to which the user  150  has access rights, and any class II client device  160 . Again, the capability that allows class I client devices  160  to be included in the choices for hosting an application is an advantage that hosting service  105  of the disclosure provides over conventional document sharing systems. More specifically, in this step, the computer is selected according to method  500  of  FIG. 5 . Continuing the example, according to method  500  of  FIG. 5 , document sharing service  122  selects host computer  110 - 2  for running the PowerPoint application on behalf of the user&#39;s class I client device  160 , class II client device  160 , or class III client device  160 . 
     At an optional step  430 , if the document  132  selected in step  414  is stored in document database  130  or on a computer other than the computer selected in step  428 , the document  132  is moved to the computer selected in step  428  and client application  162  or remote access service  116  creates a read/write copy of the selected document  132  on the selected computer. Continuing the example, if the Microsoft® PowerPoint file (e.g., .ppt file) is stored in document database  130  or stored on a computer other than host computer  110 - 2 , client-server computing system  100  moves the Microsoft® PowerPoint file to host computer  110 - 2  and remote access service  116  creates a read/write copy of the Microsoft® PowerPoint file on host computer  110 - 2 . 
     At a step  432 , client application  162  or remote access service  116  opens the document  132  selected in step  414  in the document editor  112  selected in step  426 . Continuing the example, remote access service  116  opens the Microsoft® PowerPoint file (e.g., .ppt file) in the PowerPoint editor application and displays the file to the user  150  on the user&#39;s client device  160 . 
     At a step  434 , using a class I client device  160 , class II client device  160 , or class III client device  160 , the user  150  edits the document  132  selected in step  414 . The user  150  then saves the document  132  on the computer selected in step  428 . Continuing the example, the user  150  edits the Microsoft® PowerPoint file using the PowerPoint editor application of host computer  110 - 2  that is being accessed remotely. The user  150  then saves the Microsoft® PowerPoint file (e.g., .ppt file) on host computer  110 - 2 . 
     At a step  436 , document  132  is saved to its original location. Client-server computing system  100  may overwrite the original document, retain the original document or save only the differences from the original document. If the computer selected in step  428  is a class I client device  160  or class II client device  160  and the document was obtained from the document database  130 , remote access service  116  or client application  162  transmits the document  132  to document sharing service  122 . Then, document sharing service  122  saves document  132  (e.g., the PowerPoint file or .ppt file) from the class I client device  160  or class II client device  160  to document database  130 . However, if the computer selected in step  428  is a host computer  110  (e.g., host computer  110 - 2 ), remote access service  116  of the host computer  110  automatically transmits document  132  (e.g., the PowerPoint file) from the host computer  110  to document sharing service  122 , which then saves document  132  in document database  130 . 
     At a step  438 , document sharing service  122  saves the metadata of the document  132  in document database  130 . Continuing the example, document sharing service  122  saves the metadata associated with PowerPoint file (e.g., .ppt file) in document database  130 . The metadata may include, for example, the username of the user  150  who edited the document  132 , a timestamp, a record of the original source document  132 , document version information, any other relevant information, and the like. Method  400  ends. 
       FIG. 5  illustrates a flow diagram of a method  500  of selecting a computer of client-server computing system  100  on which to launch the requested document editor/viewer application. In the process of selecting a computer, the lowest cost option is to select a class I client device  160  to host document editor/viewer applications ahead of selecting a host computer  110 . This is because selecting a class I client device  160  minimizes the amount of data routed through the document sharing service  122 . Method  500  is used to facilitate this process. Method  500  may include, but is not limited to, the following steps. 
     At a step  510 , document sharing service  122  determines the type of document editor  112  or document viewer  114  needed for the type of document  132  to be processed. For example, if the document  132  to be processed is a Microsoft® Word document (i.e., a .doc file), document sharing service  122  determines the type of document editor  112  to be the Microsoft® Word application. 
     At a decision step  512 , document sharing service  122  determines whether the document  132  of interest (e.g., the Microsoft® Word document) is stored on any class I client device  160  to which the user  150  has access rights. If the document  132  of interest is stored on a class I client device  160 , method  500  proceeds to step  520 . However, if the document  132  of interest is not stored on a class I client device  160 , method  500  proceeds to step  514 . 
     At a decision step  514 , client application  162  of the client device  160  from which the request originates determines whether the document editor  112  or document viewer  114  determined in step  510  is installed on the request-originating client device  160 . Continuing the example, client application  162  determines whether the Microsoft® Word application is installed on the request-originating client device  160 . If yes, method  500  proceeds to step  516 . However, if no, then method  500  proceeds to step  518 . 
     At a step  516 , document sharing service  122  selects the request-originating client device  160 , which may be a class I client device  160 , class II client device  160 , or class III client device  160 . Method  500  ends. 
     At a decision step  518 , document sharing service  122  determines whether a class I client device  160  is available to the user  150  that has the document editor  112  or document viewer  114  determined in step  510  installed thereon. The class I client device  160  may be the user  150 &#39;s own client device or another user  150 &#39;s class I client device  160  to which the requesting user has access. If a class I client device  160  is available to the user  150 , method  500  proceeds to step  520 . However, if no class I client device  160  is available to the user  150 , then method  500  proceeds to step  522 . 
     At a step  520 , document sharing service  122  selects the class I client device  160 . Method  500  ends. 
     At a step  522 , document sharing service  122  selects one of the host computers  110  of hosting service  105 . For example, if the user  150  has a session already running on a certain host computer  110 , that particular host computer  110  may be selected. However, if the user  150  does not already have a session running on any host computer  110 , a load-balancing algorithm may be used to select a particular host computer  110  that has the lightest load. Method  500  ends. 
       FIG. 6  illustrates an example of a flow diagram of a method  600  of providing a document sharing service in combination with remote access to document editor and/or viewer applications, according to a minimum configuration of the present disclosure. Namely, if a user  150  is attempting to edit/view a document of a certain file format through document sharing service  122  and the user&#39;s client device  160  does not support the particular file format, method  600  is performed according to the following steps. 
     At a step  610 , document sharing service  122  selects a certain host computer  110  or a certain class I client device  160  in client-server computing system  100  that has the document editor  112  or document viewer  114  that is needed to process a certain type of document  132  (i.e., to process a certain file type). 
     At an optional step  612 , if the document  132  is stored in the document database  130  or on a computer other than the computer selected at step  610 , document sharing service  122  moves the document  132  to the host computer  110  or class I client device  160  selected at step  610 . 
     At a step  614 , document sharing service  122  “remotes” the user interface for the document editor  112  or document viewer  114  to the user&#39;s client device  160 . 
       FIG. 7  illustrates an example of a flow diagram of a method  700  of using a client device  160  to create a document and save the document to document sharing service  122  of client-server computing system  100 . Method  700  may include, but is not limited to, the following steps. 
     At step  710 , using any class I client device  160 , class II client device  160 , or class III client device  160 , the user  150  determines whether the desired document editor  112  exists on his/her client device  160 . In one example, if the user  150  desires to create a CAD drawing (i.e., a .dwg file) the user  150  determines whether an AutoCAD® application exists on his/her client device  160 . 
     At a decision step  712 , if the user  150  determines that the desired document editor  112  (e.g., the AutoCAD® application) exists on his/her client device  160 , method  700  proceeds to step  714 . However, if the user  150  determines that the desired document editor  112  (e.g., the AutoCAD® application) does not exist on his/her client device  160 , then method  700  proceeds to step  724 . 
     At a step  714 , the user  150  starts the desired document editor  112  on his/her client device  160  and the interface of the particular type of document editor  112  is displayed on the client device  160 . Continuing the example, the user  150  starts the AutoCAD® application on his/her client device  160  and the interface of the AutoCAD® application is displayed on the client device  160 . 
     At a step  716 , using a class I client device  160 , class II client device  160 , or class III client device  160 , the user  150  creates a new document  132  using the document editor  112  that is on his/her client device  160 . The user  150  then saves the document  132  on his/her client device  160 . Continuing the example, the user  150  creates a new CAD drawing (i.e., .dwg file) using the AutoCAD® application that is on his/her client device  160 . The user  150  then saves the CAD drawing on his/her client device  160 . 
     At a step  718 , using client application  162  of the user&#39;s class I client device  160 , class II client device  160 , or class III client device  160 , the user  150  signs into the document sharing service  122  and a standard authentication process is performed that allows the user  150  to access document editors  112  of host computers  110 - 1  through  110 - n  and document database  130 . The user sign-in process may be as described with reference to step  318  of method  300  of  FIG. 3 . 
     At step  720 , user  150  selects the storage location for document  132 . This selection is either made via client application  162  or via document editor  112 &#39;s file dialog, in which the dialog displays the computer&#39;s local file system, network shares, and, optionally, a mapped drive or directory that provides access to document database  130  via document sharing service  122  and client application  162 . In one example, user  150  chooses to store the document  132  (e.g., the CAD drawing) on document database  130 . In another example, user  150  chooses to store the document  132  (e.g., the CAD drawing) locally on his/her client device  160 . The capability that allows a user  150  to store documents  132  locally on his/her client device  160  and then share these documents with other users  150  is an advantage that hosting service  105  of the disclosure provides over conventional document sharing systems. 
     At a step  722 , based on the user&#39;s selection at step  720 , the document  132  is either uploaded to document database  130  or stored locally on the user  150 &#39;s client device  160 . For example, if at step  720  user  150  selects document database  130 , client application  162  initiates the document upload process and document sharing service  122  uploads the document  132  (e.g., the CAD drawing) to document database  130  and the document  132  is now available for sharing. Alternatively, if at step  720  the user  150  chooses to store the document  132  (e.g., the CAD drawing) locally on his/her client device  160 , document editor  112  saves the document to the selected location. From this step, method  700  may end or proceed to optional step  724 . 
     At an optional step  724 , the user  150  grants other users  150  access to the document  132  (e.g., the CAD drawing) that is stored in document database  130  or stored locally on his/her client device  160 . Namely, using his/her client device  160 , the user  150  enters the access control entries for the document  132 . Method  700  ends. 
     At a step  726 , using client application  162  of the user&#39;s class I client device  160 , class II client device  160 , or class III client device  160 , the user  150  signs into the document sharing service  122 . The user sign-in process may be as described with reference to step  318  of method  300  of  FIG. 3 . 
     At a step  728 , the document editors  112  and document viewers  114  that are available to the authenticated user  150  are displayed on the user&#39;s client device  160 . More specifically, a list of document editors  112  and document viewers  114  to which the user  150  has rights and privileges is displayed on the user&#39;s class I client device  160 , class II client device  160 , or class III client device  160 . 
     At a step  730 , using client application  162  of the user&#39;s class I client device  160 , class II client device  160 , or class III client device  160 , the user  150  selects and starts a certain type of document editor  112  that corresponds to the type of document the user  150  wishes to create. Continuing the example, if the user  150  desires to create a CAD drawing (i.e., a .dwg file) the user  150  may select and start an AutoCAD® application, which is one of the listed document editors  112 . 
     At a step  732 , the interface of the document editor  112  selected in step  730  is displayed on the user&#39;s client device  160 . Continuing the example, the AutoCAD® application is displayed on the user&#39;s class I client device  160 , class II client device  160 , or class III client device  160 . 
     At a step  734 , using a class I client device  160 , class II client device  160 , or class III client device  160 , the user  150  creates a new document  132  using the document editor  112  that is being accessed remotely. Continuing the example, the user  150  creates a new CAD drawing (i.e., .dwg file) using the AutoCAD® application. Method  700  proceeds to step  720 . 
       FIG. 8  illustrates an example of a flow diagram of a method  800  of using a client device  160  to access a document  132  that is available through document sharing service  122  of hosting service  105  of client-server computing system  100 . Method  800  may include, but is not limited to, the following steps. 
     At a step  810 , using client application  162  of the user&#39;s class I client device  160 , class II client device  160 , or class III client device  160 , the user  150  signs into the document sharing service  122 . The user sign-in process may be as described with reference to step  318  of method  300  of  FIG. 3 . 
     At a step  812 , documents  132 , document editors  112 , and document viewers  114  that are available to the authenticated user  150  are display on his/her client device  160 . More specifically, a list of documents  132  in document database  130  and/or documents  132  on class I client devices  160  to which the user  150  has rights and privileges is displayed on the user&#39;s class I client device  160 , class II client device  160 , or class III client device  160 . Similarly, a list of document editors  112  and document viewers  114  to which the user  150  has rights and privileges is displayed on the user&#39;s class I client device  160 , class II client device  160 , or class III client device  160 . 
     At a step  814 , using his/her client device  160 , the user  150  selects a certain document  132  from the list presented in step  812 . 
     At a decision step  816 , using his/her client device  160 , the user  150  chooses to open the selected document  132  in a view mode (i.e., read-only mode) or in edit mode (i.e., read/write mode). If the user  150  selects view mode, method  800  proceeds to step  818 . However, if the user  150  selects edit mode, then method  800  proceeds to step  820 . 
     At a step  818 , the document  132  selected in step  814  is opened in the document viewer  114  that corresponds to the file format of the document  132 . Continuing the example, the Microsoft® PowerPoint file (e.g., .ppt file) is displayed on the user&#39;s client device  160  in read-only mode in the Microsoft® PowerPoint viewer interface. Method  400  ends. 
     At a step  820 , the document  132  selected in step  814  is opened in the document editor  112  that corresponds to the file format of the document  132 . Continuing the example, the Microsoft® PowerPoint file (e.g., .ppt file) is displayed on the user&#39;s client device  160  in edit mode in the Microsoft® PowerPoint interface. 
     At a step  822 , using a class I client device  160 , class II client device  160 , or class III client device  160 , the user  150  edits the document  132  selected in step  814 . The user  150  then saves the document  132 . Continuing the example, the user  150  edits the Microsoft® PowerPoint file using the PowerPoint editor application that is being accessed remotely. The user  150  then saves the Microsoft® PowerPoint file (e.g., .ppt file). 
       FIG. 9  illustrates an example of a flow diagram of a business method  900  of providing a document sharing service in combination with remote access to document editor and/or viewer applications. The subscription price points may be based on various factors. For example, the subscription price points may be based on the amount bandwidth consumed at hosting service  105 ; infrastructure and software licenses required to run applications on host computers  110 ; the level of support for class I client devices  160 , class II client devices  160 , and class III client devices  160 ; and any combinations thereof. By way of one example, business method  900  of  FIG. 9  is based on the level of support for class I client devices  160 , class II client devices  160 , and class III client devices  160  and the amount of access to hosting service  105 . Business method  900  may include, but is not limited to, the following steps. 
     At a step  910 , a service provider (not shown) implements document sharing service  122  of hosting service  105  that supports three types of client devices at various user price points. For example, because of the three different classes of client devices  160  (e.g., class I client devices  160 , class II client devices  160 , and class III client devices  160 ), three different levels of service with different price points may be offered to users  150  of hosting service  105  of client-server computing system  100 . For example, hosting service  105  of the disclosure provides:
         (1) a lowest level of service that supports class II client devices  160  only for accessing host computers  110  and document database  130 ;   (2) a medium level of service that supports class I client devices  160 , class II client devices  160 , and class III client devices  160  and that also allows a user  150  to host his/her own application via his/her class I client device  160 . Namely, document sharing service  122  facilitates the use of a class I client device  160  as a host; and   (3) a highest level of service that supports class I client devices  160 , class II client devices  160 , and class III client devices  160  and supports both the capability of a user  150  to host his/her own document editor/viewer applications via his/her class I client device  160  and the capability of a user  150  to access host computers  110 .       

     At a step  912 , the service provider offers users  150  a subscription to document sharing service  122 . The three levels of service described in step  910  may be offered at three different price points because each level of service is more expensive to provide. Namely, the more data that is routed through document sharing service  122 , the higher the cost. For example, a subscription to the lowest service level may be offered to users  150  at a price of $10 per month, a subscription to the medium service level may be offered to users  150  at a price of $20 per month, and a subscription to the highest service level may be offered to users  150  at a price of $30 per month, 
     At a step  914 , a user  150  accepts a subscription to document sharing service  120  and then selects a certain level of service at a corresponding subscription price. 
     At a decision step  916 , if the user  150  selects the lowest service level of document sharing service  122 , business method  900  proceeds to step  918 . However, if the user  150  does not select the lowest level of document sharing service  122 , business method  900  proceeds to step  920 . 
     At a step  918 , the service provider collects payment from the user  150  for the lowest service level (e.g., $10 per month) and provides the lowest service level of document sharing service  1222 , which supports class II client devices  160  only. 
     At a decision step  920 , if the user  150  selects the medium service level of document sharing service  122 , business method  900  proceeds to step  922 . However, if the user  150  does not select the medium level of document sharing service  122 , business method  900  proceeds to step  924 . 
     At a step  922 , the service provider collects payment from the user  150  for the medium service level (e.g., $20 per month) and provides the medium service level of document sharing service  122 , which supports class I client devices  160 , class II client devices  160 , and class III client devices  160  and that also allows the user  150  to host his/her own document editor/viewer applications. 
     At a step  924 , the user  150  selects the highest service level of document sharing service  122 . Therefore, the service provider collects payment from the user  150  for the highest service level (e.g., $30 per month) and provides the highest service level of document sharing service  122 , which supports class I client devices  160 , class II client devices  160 , and class III client devices  160  and that (1) allows the user to host his/her own document editor/viewer applications and (2) allows the user to access host computers 
     Referring now to  FIGS. 1 through 9 , when a user  150  wishes to exit hosting service  105  of client-server computing system  100 , the user  150  signs out of document sharing service  122  of document server  120 . For example, using client application  162 , which may be launched in a web browser on his/her client device  160 , the user  150  selects certain logout controls (e.g., clicks on a logout button). In so doing, the connection to document server  120  of hosting service  105  is closed. The user  150  may then close the web browser on his/her client device  160 . Alternatively, the user&#39;s session times out and the connection to document server  120  of hosting service  105  is automatically closed. 
     Once the user  150  signs out of document sharing service  122  or the user&#39;s session times out, document sharing service  122  of document server  120  may delete the user  150 &#39;s host sessions on all host computers  110 . Alternatively, the user  150 &#39;s host sessions may remain running so that the user  150  can reconnect to them at a later time. 
     Various embodiments of the present invention allow for the method disclosed herein to be performed by an intermediary device (e.g., a cloud server), which may be associated with the host computer or reside elsewhere in the network (e.g., in the cloud). For example, a host computer of this disclosure may receive a request from a requesting client device, forward to a cloud server device, receive responsive data and forward to the client device, or visa-versa.