Abstract:
A system for diagnosing the configuration and use of devices in an interconnected network. The system may be used to analyze a network and/or discrete network devices, and then suggest steps that a user may take to improve the performance or usability of the network and/or device.

Description:
PRIORITY CLAIM 
       [0001]    This application claims priority from U.S. Provisional Patent Application No. 60/949,610 (Atty. Docket No. PURE-1-1006), filed Jul. 13, 2007, entitled “NETWORK ADVISOR,” which is hereby incorporated by reference in its entirety as if fully set forth herein. 
     
    
     FIELD OF THE INVENTION 
       [0002]    Aspects of the present invention are directed toward a system for providing information of interest to users of a network. Various aspects of the invention are particularly suitable for monitoring the configuration and usage of devices in a small network, and then providing information relevant to the network. 
       BACKGROUND OF THE INVENTION 
       [0003]    Computers have become commonplace tools in modern society, and many businesses and residences now have one or more computing devices. In a small business, for example, some employees may each use a desktop computer or laptop computer. Some employees may even use more portable computers such as personal digital assistants or “smart” wireless telephones. Similarly, with a family sharing a residence, each family member may have his or her personal computer, or the family members may share one or more computers. Further, both small businesses and personal residences may include various computing appliances that incorporate or otherwise interact with computers. For example, a home residence may include a refrigerator, a “Voice over Internet Protocol” telephone, a digital music server, a digital camera, or an environmental control system that includes or interacts with a computer. 
         [0004]    In order to optimize the use and flexibility of these computing devices, a business or family may link them together to form a small private network. Typically, each of the computing devices is connected to a router through a network adapter. The router then “routes” packets of data to and from each computing device. With this type of small private network, the router can in turn be connected to one or more larger private networks or a public network, such as the Internet. By sending and receiving messages through the router, each networked computing device may then communicate with computing devices outside of the private network. In this arrangement, the router serves as a “gateway” device that provides a gateway to the electronic world outside of the private network. 
         [0005]    While this type of small or “home” network can provide enhanced utility for its member computing devices, even a small network can be very difficult for a non-technical person to set up and maintain. Accordingly, various software developers have created tools to assist novice users in setting up or managing a small network. Conventionally, these tools were embedded in a larger software product, such as an operating system or a utility application. More recently, however, Pure Networks of Seattle, Wash. has developed a dedicated software application tool for managing small networks. This software application tool, available from Pure Networks under the name NETWORK MAGIC™, is described in detail in U.S. Provisional Patent Application No. 60/634,432, filed Dec. 7, 2004, entitled “Network Management” and naming Steve Bush et al. as inventors, and U.S. patent application Ser. No. 11/297,809, filed on Dec. 7, 2005, entitled “Network Management” and naming Steve Bush et al. as inventors, which applications, along with U.S. Provisional Patent Application No. 60/789,522, filed Apr. 4, 2006, entitled “Network Management,” U.S. patent application Ser. No. 10/916,642, filed on Aug. 10, 2004, entitled “Service Licensing And Maintenance For Networks,” U.S. patent application Ser. No. 11/457,783, filed on Jul. 14, 2006, entitled “Network Device Management,” and U.S. patent application Ser. No. 11/457,763, filed on Jul. 14, 2006, entitled “Network Device Setup Utility,” are incorporated entirely herein by reference. 
         [0006]    Because small network users may often be unsophisticated regarding computing devices, they may not be obtaining the most utility from their network. For example, while a network owner may employ a wireless router to establish the network, he or she may not fully appreciate the need for encryption to maintain the security of the network. Similarly, the network owner may not appreciate the need for virus protection or a firewall for the network. 
       BRIEF SUMMARY OF THE INVENTION 
       [0007]    An embodiment includes a system for diagnosing the configuration and use of devices in an interconnected network. The system may be used to analyze a network and/or discrete network devices, and then suggest steps that a user may take to improve the performance or usability of the network and/or device. 
       BRIEF DESCRIPTION OF THE DRAWING 
       [0008]    Preferred and alternative embodiments of the present invention are described in detail below with reference to the following figures: 
         [0009]      FIG. 1  is a functional block diagram of a network operating environment in which an embodiment of the present invention may be implemented; 
         [0010]      FIG. 2  is a functional block diagram of an operating environment in which an embodiment of the present invention may be implemented; 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWING 
         [0011]    Preferred and alternative embodiments of the present invention are described in detail below with reference to the following figures: 
           [0012]      FIG. 1  is a functional block diagram of a network operating environment in which an embodiment of the present invention may be implemented; 
           [0013]      FIG. 2  is a functional block diagram of an operating environment in which an embodiment of the present invention may be implemented; 
           [0014]      FIG. 3  is a functional block diagram of a component of an embodiment of the present invention in the operating environment of  FIG. 2 ; 
           [0015]      FIG. 4  is a functional block diagram of an embodiment of the present invention implemented in a network operating environment; 
           [0016]      FIG. 5  is an illustrative view of a user interface generated according to an embodiment of the invention; and 
           [0017]      FIG. 6  is a flowchart illustrating a process according to an embodiment of the invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0018]    An embodiment of the invention includes the power to gather information from a home network about the software and hardware environments therein and then dynamically apply on a server side filtering and heuristics that are very flexible and can be adjusted at any time, to render personally relevant results to the home-network user. 
         [0019]    Network Environment 
         [0020]    As previously noted, various aspects of the invention may be employed with a small network.  FIG. 1  illustrates an example of this type of small network. The network  101  may include a variety of different computing devices or “nodes”. For example, the network  101  may include one or more laptop computers  103 A, one or more desktop computers  103 B, and one or more personal digital assistants  103 C. In addition to these computers, the network  101  may also include one or more computing appliances, which are not as versatile as a conventional programmable computer, but which nonetheless may be configured to exchange data over a network. Such network appliances may include, for example, one or more printers  103 D and one or more cameras  103 E, as illustrated in  FIG. 1 . Other small networks that can be used with various aspects of the invention may include any suitable computing devices, such as telephones that exchange voice information in data packets (sometimes generically referred to as “Voice over Internet Protocol (VoIP) telephones), digital video recorders, televisions, streaming media players, and digital music servers, among others. 
         [0021]    Each of these networked devices  103  communicates, either directly or indirectly, with a gateway device  105 . In turn, the gateway device  105  typically can communicate with an external device or network. An external network may be another private network, or it may be a public network, such as the Internet  107 . Thus, a gateway device is a device that can steer electronic data from one network to another network. Typically, a gateway device serves as a node on two incompatible networks (i.e., networks that use different communication protocol formats) and it can convert data from one network&#39;s communication protocol format into the other network&#39;s communication protocol format. As used herein, the term “small network” refers to a network made up of networked devices that each employ the same network address to communicate with the same gateway device, together with the gateway device itself. 
         [0022]    The network devices  103  may be connected to the gateway device  105  using any suitable communication medium. For example, in the illustrated network  101 , the desktop computers  103 B are connected to the gateway device  105  through a hard-wired connection  109 A (such as an Ethernet cable), while the laptop computer  103 A is connected to the gateway device  105  through a IEEE 802.11 wireless connection  109 B and the personal digital assistant  103 C is connected to the gateway device  105  through a Bluetooth wireless connection  109 C. 
         [0023]    It should be appreciated that, as used throughout this application, the term “connect” and its derivatives (e.g., connection, connected, connects) includes both direct and indirect connections. Thus, with the network illustrated in  FIG. 1 , the laptop computer  103 A may be connected to the gateway device  105  using a wireless transceiver incorporated into the laptop computer  103 A and a wireless transceiver incorporated into the gateway device  105 . Alternately, the laptop computer  103 A may be connected to the gateway device  105  using a wireless transceiver external to the laptop computer  103 , the gateway device  105 , or both. 
         [0024]    Typically, the gateway device  105  can be a router. As will be appreciated by those of ordinary skill in the art, a router routes data packets from the networked devices  103  to an external device or network. With some networks, however, the gateway device  105  alternately may be a computer performing router functions, a hub, a bridge, or “layer-3” switch. As will also be appreciated by those of ordinary skill in the art, the computing devices or “nodes” making up the network  101  can communicate with the gateway device  105  using one or more defined communication protocols, such as the Transmission Control Protocol (TCP) and the Internet Protocol (IP). 
         [0025]    With these communication protocols, each computing device  103  and gateway device  105  in the network  101  can be assigned a logical address. For example, if the network  101  is connected to the Internet  107  through an Internet service provider, the Internet service provider can assign the gateway device  105  a logical Internet Protocol (IP) address. The Internet service provider may also provide the gateway device  105  with a block of logical Internet Protocol (IP) addresses for the gateway device  105  to reassign to each network device  103 . Alternatively, the gateway device  105  can itself assign a range of logical Internet Protocol (IP) addresses to each network device  103 , and then use a translation operation (e.g., a Network Address Translation (NAT) operation) to route data packets that it receives to the appropriate network device  103 . This type of logical address typically is unrelated to the particular computing device to which it is assigned. Instead, a logical address identifies the relationship of that computing device to other computing devices in the network. 
         [0026]    In addition to a logical address, each network device typically can also have a physical address. For example, most computing devices capable of communicating over a network, including routers, employ a network adapter with a media access control (MAC) address. This type of physical address is assigned to a network adapter according to standards (referred to as Project 802 or just 802 standards, which are incorporated entirely herein by reference) set forth by the Institute of Electrical and Electronic Engineers (IEEE). More particularly, these standards define a 48-bit and 64-bit physical address format for network devices. The first 14 bits of the address are assigned by the IEEE Registration Authority, and uniquely identify the manufacturer of the network adapter. The remaining bits are then assigned by the manufacturer to uniquely identify each network adapter produced by the manufacturer. Consequently, the physical address of a network adapter is unique across all networks unless manually changed by the user. The physical address is unique to the network adapter, and is independent of a computing device&#39;s relationship to other computing devices in a network. Thus, the physical address does not change over time or between uses in different networks. 
         [0027]    Network Device Environment 
         [0028]    A network may include both virtual devices and physical devices. Physical network devices can then include both computer devices and computing appliance devices. A “computer” may generally be characterized as a device that can be programmed to perform a number of different, unrelated functions. Examples of computers can thus include programmable personal computers, such as desktop computers and laptop computers. In addition, programmable media-purposed computers (e.g., “media adapters and servers”), network attached storage devices, programmable entertainment-purposed computers (e.g., video game consoles), some programmable personal digital assistants and some telephones (such as wireless “smart” telephones) may be characterized as computers in a network. A “computing appliance” then may generally be characterized as a device that is limited to primarily performing only specific functions. Examples of a computing appliance may thus include, for example, printers, cameras, telephones that exchange voice information in data packets (sometimes generically referred to as “Voice over Internet Protocol (VoIP) telephones or telephone adapters), digital video recorders, televisions, voice over Internet protocol (VoIP) adapters, print servers, media adapters, media servers, photo frames, data storage servers, routers, bridges and wireless access points. 
         [0029]    As will be appreciated by those of ordinary skill in the art, there may be no clear defining line between “computer” network devices and “computing appliance” network devices in a network. For example, a sophisticated print server may be programmable to additionally or alternately function as a data storage server, while a programmable media-purposed computer or programmable personal digital assistant may have restricted functionality due to limited memory, input devices or output devices. Accordingly, as used herein, the term “computer” can refer to any network device that is capable of implementing a network management tool according one or more aspects of the invention, such as a personal programmable computer. The term “computer appliance” then can refer to a network device that typically cannot implement a network management tool according to at least one aspect of the invention without additional augmentation. The term “computing device” is then used herein to include both computers and computing appliances. 
         [0030]    With conventional networks located in a home, small office or other local environment, a network management tool according to various aspects of the invention can be implemented on a programmable personal computer, such as a desktop or laptop computer. A general description of this type of computer will therefore now be described. 
         [0031]    An illustrative example of such a computer  201  is illustrated in  FIG. 2 . As seen in this figure, the computer  201  has a computing unit  203 . The computing unit  203  typically includes a processing unit  205  and a system memory  207 . The processing unit  205  may be any type of processing device for executing software instructions, but can conventionally be a microprocessor device. The system memory  207  may include both a read-only memory (ROM)  209  and a random access memory (RAM)  211 . As will be appreciated by those of ordinary skill in the art, both the read-only memory (ROM)  209  and the random access memory (RAM)  211  may store software instructions for execution by the processing unit  205 . 
         [0032]    The processing unit  205  and the system memory  207  are connected, either directly or indirectly, through a bus  213  or alternate communication structure to one or more peripheral devices. For example, the processing unit  205  or the system memory  207  may be directly or indirectly connected to additional memory storage, such as the hard disk drive  215 , the removable magnetic disk drive  217 , the optical disk drive  219 , and the flash memory card  221 . The processing unit  205  and the system memory  207  also may be directly or indirectly connected to one or more input devices  223  and one or more output devices  225 . The input devices  223  may include, for example, a keyboard, touch screen, a remote control pad, a pointing device (such as a mouse, touchpad, stylus, trackball, or joystick), a scanner, a camera or a microphone. The output devices  225  may include, for example, a monitor display, television, printer, stereo, or speakers. 
         [0033]    Still further, the computing unit  203  can be directly or indirectly connected to one or more network interfaces  227  for communicating with a network. This type of network interface  227 , also sometimes referred to as a network adapter or network interface card (NIC), translates data and control signals from the computing unit  203  into network messages according to a communication protocol, such as the Transmission Control Protocol (TCP), the Internet Protocol (IP), and the User Datagram Protocol (UDP). These protocols are well known in the art, and thus will not be described here in more detail. An interface  227  may employ any suitable connection agent for connecting to a network, including, for example, a wireless transceiver, a power line adapter, a modem, or an Ethernet connection. 
         [0034]    It should be appreciated that one or more of these peripheral devices may be housed with the computing unit  203  and bus  213 . Alternately or additionally, one or more of these peripheral devices may be housed separately from the computing unit  203  and bus  213 , and then connected (either directly or indirectly) to the bus  213 . Also, it should be appreciated that both computers and computing appliances may include any of the components illustrated in  FIG. 2 , may include only a subset of the components illustrated in  FIG. 2 , or may include an alternate combination of components, including some components that are not shown in  FIG. 2 . 
         [0035]    It should be noted that, while a general description of a programmable personal computer was provided above, various aspects of the invention may be implemented on any desired device capable of supporting the invention. For example, with some aspects of the invention, the network management tool may be implemented on special purposed programmable computers, such as a programmable media or entertainment-purposed computers, or personal digital assistants. Accordingly, the above description of a programmable personal computer should be understood as illustrative rather than limiting. 
         [0036]    A computing appliance may have any combination of the components of the computer  201  discussed above. More typically, however, a computing appliance can be simpler to optimize the performance of a specific function, and thus may have only a subset of these components. For example, a computing appliance may have only a computing unit  203 , an input device  223  or an output device  225 , and a network interface  227 . As will be apparent from the following description, however, a computing appliance can have sufficient computing resources to implement a desired embodiment of the invention in order to provide information to or receive information from a client operating on a separate computing device. 
         [0037]    Network Management Tool 
         [0038]      FIG. 3  illustrates an example of a network management tool that may be employed according to various aspects of the invention. In the illustrated example, the tool  301  is hosted by a programmable personal computer  201  of the type illustrated in  FIG. 2 . The network management tool  301  includes a gateway service module  303 , a network management services module  305 , and network management application module  307 . Both the gateway service module  303  and the network management services module  305  are connected, either directly or indirectly, to the network interface  227  of the computer  201 . As will be described in detail below, the gateway service module  303  and the network management services module  305  communicate with various network devices through the network interface  227 . The network management services module  305  provides a set of network services that are used by the network information service module  1004  and the network application module  307 . The network management application module  307  is then connected, either directly or indirectly, to the input device  223  and the output device  225  of the computer  201 . 
         [0039]    As will be described in further detail below, the network management tool  301  allows a user to monitor the status of devices on an electronic network, such as a network employing the Ethernet protocol located in a home or small business. The network management tool  301  may also allow a user to administer various tasks associated with the network or devices in the network. To perform these functions, the gateway service module  303  detects and identifies the gateway, which typically is a router, through which the network is connected to other networks. The gateway service module  303  also generates a unique name for the gateway. 
         [0040]    Once the gateway for the network has been detected, identified and named, the network management services module  305  obtains and stores information relating to the various devices in the network. More particularly, the network management services module  305  detects each device in the network. For example, the network management services module  305  can identify and detect other computers, networked printers and print servers, networked scanners, networked cameras, VoIP telephones and VoIP telephone adapters, networked digital video recorders, networked televisions, data storage servers, bridges, networked game consoles, media adapters, networked photo frames, wireless access points and network adapters for each of these other devices. It then queries those devices, to identify each network device and to collect information relating to each device. For example, the network management services module  305  may determine one or more properties for a network device, such as its Media Access Control (MAC) address, its Internet Protocol (IP) address, and the other network devices to which it is connected. The network management services module  305  also detects and identifies devices locally connected to the computer  201 , such as local printers, local cameras, local scanners, and local storage devices. 
         [0041]    After collecting this network information, the network management services module  305  constructs a network information data structure to organize and store the information collected by both the gateway service module  303  and the network management services module  305 . The network management services module  305  can use the network services in the network information services module  1004  to interact with the services provided by the local operating system for gathering device, network, and operation system status and other statuses. For example, with some aspects of the invention, the network management services module  305  creates a markup language file storing the collected network information. More particularly, the network management services module  305  can create a data object for each network device. The data object may be represented in a markup language, such as the extensible markup language (XML). A data object for a device may include an identifier for the device and the determined properties for that device. The data objects for each device can then be organized in a hierarchical fashion into a single data file. 
         [0042]    In addition to determining and storing the properties of network devices, the network management services module  305  also communicates with implementations of the network management tool  301  on other computers in the network. More particularly, the network management services module  305  detects instances of the network management tool  301  running on other computers in the network. The network management services module  305  then establishes a communication channel with those instances of the network management tool  301  that have the proper credentials. In this manner, the instances of the network management tool  301  sharing the proper credentials form an association of trusted network management tools  301 . The network management services modules  305  can then exchange determined device properties over the communication channels. By exchanging the device properties, each instance of the network management tool  301  can maintain a current copy of a data structure containing the device properties of all of the devices in the network. 
         [0043]    The network management application module  307  then coordinates the information managed by the gateway service module  303  and the network management services module  305 . More particularly, the network management application module  307  initiates a call to both the gateway service module  303  and to the network information service module  305  to begin their services. The network management application module  307  also provides one or more user interfaces displaying the information obtained and stored by the network management services module  305 . These services may or may not also be made available to other applications through programming interfaces. 
         [0044]    A user may employ such an interface to monitor the status of the network and the network devices. For example, with some aspects of the invention, the network management application module  307  employs the connection information stored in the network information data structure to create a graphical map of the network. The map may include a graphical icon representing each device, and another graphic to represent connections between the devices. It may, for example, use one type of icon to indicate a wired connection, and another type of icon to indicate a wireless connection. The map may also show the status of the various devices in the network, such as whether a device is presently connected to the network. 
         [0045]    With some aspects of the invention, the network management application module  307  may provide interfaces that allow the user to administer one or more functions related to the operation of the network. For example, the network management application module  307  may provide a user interface that permits a user to modify the contents in the network information data structure maintained by the network management services module  305 . As noted above, this change may subsequently be shared with other instances of the network management tool  301  in a trusted association, thereby propagating the change throughout the network. The network management application module  307  may also provide a user interface that allows a user to share one or more resources on the computer  201  with other computers in the network. For example, a user interface provided by the network management application module  307  may allow a user to share a data resource, such as a folder or data file. Alternately or additionally, a user interface provided by the network management application module  307  may allow a user to share a physical resource, such as a printer, scanner, or a storage device. 
         [0046]    With some aspects of the invention, the various monitoring and administration functionality available to the user may be provided through a single user interface, such a map of the network. Alternately, the network management application module  307  may provide this functionality through multiple user interfaces that can be selected by a user. 
         [0047]    Examples and aspects of network management tools that may be employed according to various implementations of the invention are discussed in more detail in, for example, U.S. patent application Ser. No. 11/467,534 filed on Aug. 25, 2006, entitled “Network Administration Tool Employing A Network Administration Protocol” and naming Brett Marl as inventor, which application in turn claims priority to U.S. patent application Ser. No. 11/297,809 filed on Dec. 7, 2005, entitled “Network Management” and naming Steve Bush et al. as inventors, which application in turn claims priority to U.S. Provisional Patent Application No. 60/634,432, filed Dec. 7, 2004, entitled “Network Management” and naming Steve Bush et al. as inventors, each of which applications are incorporated entirely herein by reference. U.S. patent application Ser. No. 11/457,783, filed Jul. 14, 2006, entitled “Network Device Management” and naming Brett Marl as inventor is incorporated entirely herein by reference as well. 
         [0048]    Advisor Module 
         [0049]    As shown in  FIG. 4 , with various embodiments of the invention a diagnostic system may include an advisory tool  401  that includes an advisor module  403  and a receiving module  405  implemented on a server computer  407  remote from the network  101 . 
         [0050]    As will be discussed more fully hereinafter, or as otherwise discussed in the patent applications incorporated by reference herein, one or more instantiations of a network management tool  301  implemented on computing devices (not shown in  FIG. 4 ) in the network  101  can provide network information to remote devices or entities, such as the reporting tool  401 . As illustrated in  FIG. 4 , the tool  301  may include an information collection module  409  and an information transmission module  411 , the functionality of each of which is provided by one or more of the gateway service module  303 , network management services module  305  and network management application module  307 . Using the techniques described herein, or otherwise in the patent applications incorporated by reference herein, the information collection module  409  of the network management tool  301  of a computing device can collect a wide variety of information from which useful reports and/or diagnostics can be prepared. 
         [0051]    In response to receiving information from the transmission module  411 , the advisor module  403  provides a set of services for recommending new products or services to the proprietor of the home or other small network  101 . Specifically, the advisor module  403  employs heuristics to recommend, via email, secure web site, or other appropriate presentation mode, new products or services based on the configuration and usage of resources within the network  101 . The heuristics utilized by the advisor module to recommend products or services may be downloaded by the advisory tool  401  from a third party on the Internet  107 . 
         [0052]    For example, the advisor module  403  may employ a set of heuristics to decide whether or not to provide the network owner with a recommendation to add a network media adapter to the network  101 . As known in the art, a network media adapter enables viewing and listening to music, photos, and videos located on a network device on the user&#39;s television or stereo. The advisor module  403  may execute one or more heuristics to analyze the network information collected and provided by the network management tools  301  and to determine whether or not the network  101  already includes a media adapter. Further, the advisor module  403  may analyze the collected network information to count the number of files the user has shared on the network  101 . If the user has a predetermined threshold number of files shared, and no media adapter exists on the network  101 , then the advisor module  403  may provide the network owner (via, e.g., a user interface  501  ( FIG. 5 ) generated by the network management tool  301 ) with a recommendation to add a media adapter to the network. 
         [0053]    Additionally, the advisor module  403  may analyze the product versions of the network devices ( FIG. 1 ) hosted on the network  101 . If there are newer versions of the network devices, then the advisor module  403  may employ heuristics to provide the network owner with a recommendation for upgrading the network device. The upgrade recommendation may also include instructions or computer code that displays the user interface  501  to assist the user in upgrading the network device. 
         [0054]    By way of further example, and as described in Table 1 below, the collection module  409  can determine real-time performance characteristics of the network  101  to enable the advisor module  403  to suggest hardware improvements to the network, determine existing software inventory installed on network devices to enable the advisor module to recommend supplementary/complementary software packages or services, determine an inventory of hardware devices on the network to enable the advisor module to recommend supplementary/complementary hardware devices, and/or determine local disk, resource or file system information associated with the network to enable the advisor module to recommend corresponding solutions. 
         [0000]    
       
         
               
               
               
             
           
               
                 TABLE 1 
               
               
                   
               
               
                   
                 Information 
                   
               
               
                   
                 Input to Advisor 
                 General 
               
               
                 Exemplary Scenario 
                 Module 403 
                 Recommendation 
               
               
                   
               
             
             
               
                 If advisor module 403 
                 WAN connection 
                 Upgrade to a better 
               
               
                 determines that the internet 
                 speed 
                 ISP connection. 
               
               
                 download speed associated 
               
               
                 with network 101 is slow 
               
               
                 and the network employs a 
               
               
                 DSL connection, advisor 
               
               
                 module may suggest a 
               
               
                 switch to a cable 
               
               
                 connection. 
               
               
                 If advisor module 403 
                 Network Card 
                 Upgrade Router and/or 
               
               
                 determines that a network 
                 Speed 
                 Network Card 
               
               
                 card is running on the older 
                 Router Speed 
               
               
                 802.11b standard and a 
               
               
                 router running on the 
               
               
                 802.11n standard, advisor 
               
               
                 module can suggest a 
               
               
                 hardware upgrade. 
               
               
                 If advisor module 403 
                 Devices (or lack 
                 Acquire a printer if 
               
               
                 determines that there is no 
                 thereof) on 
                 none found. 
               
               
                 printer associated with 
                 Network 
               
               
                 network 101, advisor 
               
               
                 module may suggest a 
               
               
                 printer be added. 
               
               
                 If advisor module 403 
                 Files on hard 
                 Acquire a photo 
               
               
                 determines that one or more 
                 disks 
                 printer to optimize 
               
               
                 devices on the network 101 
                 Devices on 
                 enjoyment of 
               
               
                 have stored thereon a large 
                 Network 
                 multimedia assets. 
               
               
                 number of photos but there 
               
               
                 is no photo printer 
               
               
                 associated with the network, 
               
               
                 suggest a photo printer be 
               
               
                 added. 
               
               
                 If advisor module 403 
                 Devices on 
                 Recommend purchase 
               
               
                 determines that network 101 
                 Network 
                 of supplementary/ 
               
               
                 includes an XBOX, but no 
                   
                 complementary 
               
               
                 Media PC, suggest a Media 
                   
                 hardware devices. 
               
               
                 PC be added (or vice- 
               
               
                 versa). 
               
               
                 When the iPhone launches, 
                 Devices on 
                 Recommend purchase 
               
               
                 advisor module 403 can 
                 Network 
                 of supplementary/ 
               
               
                 inform people who have 
                   
                 complementary 
               
               
                 Macs on their network, and 
                   
                 hardware devices. 
               
               
                 thus may be interested, of 
               
               
                 this event. 
               
               
                 If the user associates an 
                 Devices on 
                 If new device added to 
               
               
                 iPhone with network 101, 
                 Network 
                 network, recommend 
               
               
                 advisor module 403 
                   
                 corresponding 
               
               
                 recommends “cool” 
                   
                 accessories. 
               
               
                 accessories 
               
               
                 If advisor module 403 
                 Network-device 
                 Recommend NAS 
               
               
                 determines the network 101 
                 Status 
                 (network 
               
               
                 has a large number of files 
                   
                 attached storage). 
               
               
                 on constituent disks and 
               
               
                 available space is low, 
               
               
                 recommend more storage. 
               
               
                 If advisor module 403 
                 Software 
                 Recommend 
               
               
                 determines that network 101 
                 Inventory 
                 Backup Software 
               
               
                 has NAS device but no 
                 Devices on 
               
               
                 backup software, 
                 Network 
               
               
                 recommend a NAS backup 
               
               
                 solution 
               
               
                 If advisor module 403 
                 Software 
                 Recommend protection 
               
               
                 determines no PC 
                 Inventory 
                 software 
               
               
                 protection software present 
               
               
                 on one or more devices on 
               
               
                 network 101 (e.g., Anti- 
               
               
                 Virus, Anti-Spyware, Anti- 
               
               
                 Spam, Firewall) 
               
               
                 If advisor module 403 
                 File System Info 
                 Suggest mobile access 
               
               
                 determines a large number 
                 Devices on 
                 service. 
               
               
                 of music or picture files 
                 Network 
               
               
                 present on devices of 
               
               
                 network 101, suggest a 
               
               
                 mobile solution for remote 
               
               
                 access via device. 
               
               
                 If advisor module 403 
                 File System Info 
                 Inform user how to 
               
               
                 determines that there are no 
                   
                 create/access 
               
               
                 mp3 files stored on network 
                   
                 certain file types 
               
               
                 101, recommend methods 
                   
                 of potential interest. 
               
               
                 of mp3-file creation. 
               
               
                   
               
             
          
         
       
     
         [0055]    In an embodiment, the advisory tool  401  stores the heuristics information on the server  407  in an SQL database. This enables the advisor module  403  to build recommendation rules on the fly, which may involve construction of complex SQL queries to extract the data. 
         [0056]    In an embodiment of the invention, the user interface  501  providing the recommendation information may include branding of one or more manufacturers offering products that may be part of a solution to any deficiency in the network  101  diagnosed by the advisory tool  401 . Additionally, the recommendations may include the brand of the distributor of the network management tool  301 . Additionally, the advisor module  403  may track metrics pertaining to the effectiveness of a recommendation displayed to the proprietor of the network  101 . The metrics may include, for example, the number of impressions (i.e., views of the recommendation), the amount of time the user spent viewing the recommendation, and the number of times the user clicked on the recommendation. 
         [0057]    In addition to specific recommendations for products or services, the advisor module  403  may also provide more general information that may be of interest to the user of the network. For example, if the advisor module  403  determines that the network  101  does not include a wireless router, then the advisor module  403  may provide the user with one or more RSS feeds, online articles, or other information discussing the pros and cons of the use of wireless routers, and/or instructions for setting up a wireless router. Alternately or additionally, the advisor module  403  may provide the user with a link to one or more online catalogs that sell a recommended product or service. 
         [0058]    An embodiment of the interface  501  includes featured articles, related purchases, general RSS feeds and specific RSS feeds. When the interface  501  is being viewed, it may have a “keyword context.” This keyword may be the result of a user-supplied query, may have come from user selection of a featured article, or may pertain to one or more components that the advisor module  403  determines are included in or absent from the network  101 . For example, in the case where a user switches to the interface  501 , the advisor module  403  can select one of the recommendations in random rotating order (i.e., rotating recommendations). The interface  501  may thus display a featured article and/or some associated keywords pertaining to the recommendation. Alternatively or additionally, in the case where the user enters a search term into the search box, such as “printer” or “wireless network”, these keywords can be relevant for the context such that a featured article and/or some associated keywords are displayed. In addition to offering the user rotating recommendations based on their network, the advisory tool  401  has the ability to aggregate content from multiple online locations and show that content in the context in which the user is searching. 
         [0059]    This keyword context can then be applied to other content feeds, and these feeds can then be filtered on that context for relevant search results. For example, if the context is “network storage devices,” then the “Related Purchases” section can show a selection of products available for purchase; the General RSS Feeds section can show relevant industry articles or blog posts about network storage devices and such reviews; and finally the Specific RSS feeds can show content authored by a blog and/or support team associated with provision of the advisor module  403  and that may be relevant (e.g., in this case—how does the advisory tool  401  function with network storage devices). 
         [0060]      FIG. 6  illustrates a process  600 , according to an embodiment of the invention. The process  600  is illustrated as a set of operations shown as discrete blocks. The process  600  may be implemented in any suitable hardware, software, firmware, or combination thereof. As such the process  600  may be implemented in computer-executable instructions that can be transferred from one computer, such as server  407 , to a second computer, such as a device on network  101 , via a communications medium, such as Internet  107 . The order in which the operations are described is not to be necessarily construed as a limitation. 
         [0061]    At a block  610 , information characterizing a remote network is collected from the remote network. The remote network includes at least one electronic device, such as a computer. In an embodiment, this information collection involves providing to the remote network a network management tool executable on at least one electronic device of the remote network. For example, the administrators of the server  407  may provide the tool  301  to the user of the network  101 . As such, the tool  301  may cooperate with devices on the network  101  to collect data and information (e.g., network devices, software inventory, etc.) described herein. 
         [0062]    At a block  620 , a deficiency associated with the remote network is automatically determined based on the collected information. For example, and as discussed above, upon receiving data from the tool  301 , the advisor module  403  can determine hardware and/or software missing from the network  101  that would otherwise optimize the performance and/or utility of the network. 
         [0063]    At a block  630 , a report suggesting a remedy to the deficiency is automatically generated. For example, upon ascertaining any deficiencies in the network  101 , the advisor module  403  can prepare a report recommending hardware and/or software that would optimize the performance and/or utility of the network. In generating the report, the advisor module  403  may apply a set of heuristics to the collected information. 
         [0064]    At a block  640 , the report is automatically provided to a user. For example, once the report is prepared, the advisory tool  401  may send the report to a user&#39;s email address. In an embodiment, this report provision may involve providing the report to the user via a web page accessible by the user. In another embodiment, this report provision may involve providing the report to the user via a window generated by a desktop application, such as, for example, an interface similar to the interface  501  illustrated in  FIG. 5 . 
       CONCLUSION 
       [0065]    While the invention has been described with respect to specific examples including presently preferred modes of carrying out the invention, those skilled in the art will appreciate that there are numerous variations and permutations of the above described systems and techniques that fall within the spirit and scope of the invention as described herein.