Patent Publication Number: US-9891902-B2

Title: Performing administrative tasks associated with a network-attached storage system at a client

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This is a continuation of U.S. application Ser. No. 13/002,603, filed Jan. 4, 2011, which is a national stage application under 35 U.S.C. §371 of PCT/US2008/069021, filed Jul. 2, 2008, which are both hereby incorporated by reference in their entirety. 
    
    
     BACKGROUND 
     A network-attached storage (NAS) system is a system that can be attached to a network and that is specifically designed for data storage. Software residing on the NAS system usually provides functionality that is specific to data storage. Typically, the software on the NAS system does not include higher-level software such as database system management software, or other application software not specific to data storage. 
     Since a NAS system is typically dedicated to providing data storage, data storage performance can be enhanced since the NAS system does not have to be responsible for performing other types of processing. A NAS system is connected to a network to allow for host systems to access the NAS system. Moreover, a NAS system provides file-level data storage, rather than block-based data storage. 
     An enterprise (e.g., company, educational facility, government entity) can often have a large number of client devices (e.g., computers) that have to be configured to access NAS systems. Traditionally, a client install compact disk (CD) is provided to each client device to load NAS-related software onto the client device. Also, to properly install the NAS-related software, a network administrator typically has to perform the software installation. In a large enterprise that can have users located at many different geographic locations, installing NAS-related software at the client devices and setting up the client devices for NAS access can be time consuming and inefficient. Moreover, when installing NAS-related software, typically all software components on the client install CD are loaded onto the client device. Some of the software components loaded may never be used by a particular user, and therefore, installing such software components would be wasteful of resources at the client device. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Some embodiments of the invention are described, by way of example, with respect to the following figures. 
         FIG. 1A  is a block diagram of an exemplary arrangement including a network-attached storage (NAS) system that is accessible by client devices, in accordance with an embodiment. 
         FIG. 1B  is a block diagram of another exemplary arrangement in which an embodiment of the invention can be incorporated. 
         FIG. 2  is a block diagram of components in a client device, according to an embodiment. 
         FIG. 3  is a flow diagram of a process of performing administrative tasks associated with the NAS system at a client device, according to an embodiment. 
     
    
    
     DETAILED DESCRIPTION 
     In accordance with some embodiments, a technique or mechanism is provided to enable efficient performance, at a client device, of administrative tasks associated with a network-attached storage (NAS) system. A NAS system refers to a file-level based storage system that has software (including an operating system and other software) that provides functionality related to data storage and data access, as well as functionality related to management of such data storage/access. The NAS system is connected to a network, such as a local area network (LAN), wide area network (WAN), or other type of network to enable client devices to access the NAS system. The operating system provided on a NAS system is typically a reduced functionality operating system (such as an embedded operating system) that enables file transfer (storage of files or access of files). Various operating systems have been specifically designed for use on NAS systems; each such operating system is referred to as a NAS OS. 
     To enhance performance of selected administrative tasks associated with a NAS system at a client device, the NAS system is provided with installer code that can be downloaded by a client device through a web browser. The NAS system has a web interface that allows for convenient access by a web browser of the client device. The installer code, once downloaded and executed at the client device, then is able to present a user interface, such as a graphical user interface (GUI), with various menu items and fields to allow a user to select administrative tasks associated with the NAS system to perform. In one example, a series of questions can be provided in the GUI that the user can answer. Based on the answers provided by the user and/or based on other selections made by the user at the client device, the installer code at the client device will then perform selected administrative tasks. 
     The selected administrative tasks include setting up a user account at the NAS system, downloading selected software components (such as less than all of the software components associated with the NAS system) at the client, setting up shared folders at the NAS system, synchronizing user information between the client device and the NAS system, and so forth. 
       FIG. 1A  illustrates an exemplary arrangement that includes a NAS system  100  connected to a network  102  (e.g., LAN, WAN, etc.). Also connected to the network  102  are client devices  104 , where the client devices  104  can be computers (desktop or notebook computers), personal digital assistants (PDAs), network appliances, and so forth. Although depicted as a single network, it is noted that network  102  can actually include multiple networks in some implementations. In fact, the network  102  can represent a collection of networks, with client devices connected to such collection of networks possibly located geographically far apart from each other. For example,  FIG. 1B  shows client devices  104 A and  104 B connected over a wired home network  158  and through a router  152  to a server  150 , which can contain the NAS system  100  of  FIG. 1A . A client device  104 C is connected by a wireless link  154  to the router  152 . Also, client devices  104 D are connected over the Internet  156  and through the router  152  to the server  150 . 
     The NAS system  100  of  FIG. 1A  includes a NAS device  106  (sometimes referred to as a NAS head) that is accessed by a client device  104  for storing or retrieving data contained in one or more storage devices  108  connected to the NAS device  106 . The storage devices  108  can be disk-based storage devices or other types of storage devices. 
     The NAS device  106  contains a central processing unit (CPU)  110  and memory  112 . In accordance with some embodiments, the memory  112  stores installer code  114  that can be downloaded to a client device  104  through a web interface  116  in the NAS device  106 . For example, a user at the client device can simply type in a uniform resource locator (URL) at the client device to allow a web page containing a link to the installer code  114  to be presented at the client device  104 . The memory  112  can be the local temporary or volatile memory of the NAS device  106 . Alternatively, instead of the installer code  114  being stored in the memory  112 , the installer code  114  can be stored in one of the storage devices  108 . 
     The NAS device  106  also includes a NAS OS  118 , which as explained above, is a reduced functionality operating system with less features than a full-feature operating system such as a network operating system (NOS). Also, the NAS device  106  includes a file-based protocol module  120  to provide file-level access of data contained in the storage devices  108 . File-level access of data refers to the storage or retrieval of data one file at a time; this is contrasted with block-level access of data in which data is stored or retrieved a block at a time, where a block can be smaller than or larger than a file. Examples of the file-based protocol module  120  include an NFS (network file system) module, CIFS (common Internet file system) module, SMB (server message block) module, or others. 
     As further depicted in  FIG. 1A , a client device  104  includes a web browser  122  that is executable on a CPU  124  of the client device  104 . The CPU  124  is connected to a memory  126  of the client device  104 , where the memory  126  can be used to store installer code  114 A downloaded from the NAS device  106 . The other client devices  104  can include similar components. 
     By using the web browser  122 , a convenient mechanism is provided to a user to request the installer code  114  of the NAS system  100  to allow such installer code  114  to be downloaded from the NAS system  100  to the client device  104 . The installer code  114  can be an ActiveX component, where ActiveX is a technology developed by Microsoft Corporation. ActiveX controls (which are software modules) can be downloaded from a server computer and executed on a client computer outside of a web browser. Alternatively, instead of being an ActiveX component, the installer code  114  can be a Java applet, or some other type of code that can be downloaded from a server to client for execution on the client. 
       FIG. 2  shows execution of the installer code  114 A on the CPU  124  of the client device  104 . When executed, the installer code  114 A presents a GUI screen  202  in a display device  200  of the client device  104 . The GUI screen  202  can actually be presented in the web browser  122  user interface (not shown in  FIG. 2 ). The GUI screen  202  can include control icons and/or menus  204 , and fields  206  containing questions that can be answered by a user. The control icons and/or menus  204  allow a user to select one or more administrative tasks to perform with respect to the NAS system  100 . The fields containing questions  206  presented in the GUI screen  202  can be in response to activation of one or more of the control icons and/or menus  204 . Selections made at the control icons and/or menus  204 , as well as answers responsive to the fields containing questions  206 , can be stored as user selections/answers  208  in the memory  112  of the client device  104 . 
     Also, other user information  210  can be stored in the memory  112 , where such other user information can include user account information (e.g., account name and password) that was entered by the user when logging into the client device  104 . Other types of user information  210  can include, as examples, user profile information, user preferences, and so forth. 
     In accordance with some embodiments, synchronization of the user information  210  can be performed between the client device  104  and the NAS system  100 . For example, synchronizing the user information  210  allows an account to be set up at the NAS system  100  such that private information associated with the particular user can be protected at the NAS system  100 . Private user information protected by user account information can be accessed only by a client device at which the corresponding user has logged in. By synchronizing such user information  210 , the user would not have to re-enter account information to set up the user account at the NAS system  100 , which enhances convenience to the user. 
     Also, based on the user selections/answers  208  at the client device  104 , the installer code  114 A can perform selected administrative tasks relating to the user selections/answers  208 . Note that the selected administrative tasks performed can include a subset (less than all) of all possible administrative tasks associated with the NAS system  100 . 
     Examples of the administrative tasks include setting up a user account at the NAS system, installing a subset of software components on the client (such as installing a backup software component to perform backup from the client device  104  to the NAS system  100 , a control software component to manage the NAS system  100 , and other software components); setting up shared folders at the NAS system  100  to allow multiple users to access data contained in the shared folders; changing or setting up a security setting for the client device  104  at the NAS system; setting up one or more firewall ports at the NAS system  100 ; and so forth. Changing the security setting can involve reducing the security setting of one or more files such that more users can access such file(s) at the NAS system  100 , or increasing the security setting of one or more files. Setting up a firewall port refers to establishing firewall protection for a particular port of the NAS system  100  to prevent unauthorized access of that port. 
       FIG. 3  is a flow diagram that depicts various tasks performed at a client device  104  according to an embodiment. The client device  104  can request (at  302 ), with the web browser  122  ( FIG. 1A ), the installer code  114  contained in the NAS system  100 . For example, the user can enter the URL of the website associated with the web interface  116  ( FIG. 1A ) of the NAS system  100 , and a web page containing a link to the installer code  114  can be displayed. The user at the client device can click on the displayed link to cause download of the installer code  114  to the client device  104 . 
     In response to the user request, the installer code  114  is downloaded (at  304 ) to the client device  104 . The installer code is then executed (at  306 ) at the client device  104 . The executed installer code presents an administrative user interface (such as the GUI screen  202  of  FIG. 2 ). Selections made by the user in the administrative user interface, as well as answers provided to questions posed by the administrative user interface, are received (at  310 ) in the client device  104 . Based on the received selections/answers, the installer code is able to perform selected administrative tasks associated with the NAS system  100 . 
     In an alternative embodiment, it is possible that when the user makes the request to the NAS system  100  for the installer code  114 , information about the user as well as information regarding the client device  104  is provided to the NAS system  100 . Based on such information, the NAS system  100  can generate a recommendation, which can be downloaded with the installer code and displayed to the user in the administrative user interface, of what tasks should be performed by the user. This recommendation from the NAS system  100  can be used as a guide on selections to be made in response to answers provided by the installer code. 
     If later the user desires to change the selections that were previously made, the user can activate a “change” control element (which can be one of the control icons or menus  204  presented in the GUI screen  202  of  FIG. 2 ) to cause management software to be executed. The management software can display the selections previously made by the user, and can provide fields to enable the user to make changes to any of such selections. 
     In some embodiments, updates of the installer code are also possible. In one example, whenever the NAS system  100  determines that an installer code similarly sent to a client device has changed, the NAS system  100  can send a notification that updated installer code is available. For example, the NAS system  100  can send an e-mail to the user. The user can then request download of the updated version of the installer code. Alternatively, an automated update feature can be provided, where the client device is able to automatically detect or be notified of updates to the installer code (similar to update notifications provided with operating systems such as WINDOWS® operating systems from Microsoft. 
     Instructions of software described above (including the installer code  114 / 114 A, web browser  122 , NAS OS  118 , file-based protocol module  120 , etc. of  FIG. 1A ) are loaded for execution on a processor (such as one or more CPUs  110  or  124  in  FIG. 1A ). The processor includes microprocessors, microcontrollers, processor modules or subsystems (including one or more microprocessors or microcontrollers), or other control or computing devices. A “processor” can refer to a single component or to plural components. 
     Data and instructions (of the software) are stored in respective storage devices, which are implemented as one or more computer-readable or computer-usable storage media. The storage media include different forms of memory including semiconductor memory devices such as dynamic or static random access memories (DRAMs or SRAMs), erasable and programmable read-only memories (EPROMs), electrically erasable and programmable read-only memories (EEPROMs) and flash memories; magnetic disks such as fixed, floppy and removable disks; other magnetic media including tape; and optical media such as compact disks (CDs) or digital video disks (DVDs). Note that the instructions of the software discussed above can be provided on one computer-readable or computer-usable storage medium, or alternatively, can be provided on multiple computer-readable or computer-usable storage media distributed in a large system having possibly plural nodes. Such computer-readable or computer-usable storage medium or media is (are) considered to be part of an article (or article of manufacture). An article or article of manufacture can refer to any manufactured single component or multiple components. 
     In the foregoing description, numerous details are set forth to provide an understanding of the present invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these details. While the invention has been disclosed with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover such modifications and variations as fall within the true spirit and scope of the invention.