Client device configured to connect with a home network

A smart network may include a smart network host device as well as one or more client devices configured to connect to the smart network. Each of the client devices may implement one or more services that the client device exposes to other devices connected to the smart network. A client device configured to connect to the smart network may implement one or more modules configured to facilitate connecting to the smart network, registering the client device or services running on the client device with the smart network, diagnosing issues with the client device or the smart network, and upgrading the firmware of the client device. The client device may be configured to perform the various operations with minimal input from an owner of the smart network.

BACKGROUND

1. Technical Field

The present disclosure relates generally to wireless networks and, more specifically, to a client device configured to connect with a home network.

2. Description of the Related Art

Home networks, in which multiple computing and/or peripheral devices are communicatively linked together in a consumer's home, are becoming increasingly ubiquitous. A home environment may include one or more computers, a wireless router, a dsl modem, and one or more other devices capable of connecting to the home network. Conventionally, each device in the home network must be individually configured to connect to the network and, once configured, may then communicate with each of the other devices attached to the home network.

In practice, however, procedures for establishing and provisioning services on a home network are typically too involved for the majority of home network users to implement reliably. For example, a network user may need to manually reconfigure the home network router, determine a network IP address and/or hostname for each device, establish network credentials, register the various services for each device, etc. Furthermore, in order for a device to locate another device on the home network, a device must establish communication using a unique IP address of the other device. Such connections are typically defined as peer-to-peer connections. A user may be required to manually keep track of which address is associated with which device or service in order to configure the devices to communicate on the home network. The manual configuration procedures described above make it a challenge for unsophisticated users to reliably setup a home network and provision services on the home network.

Accordingly, there is a need in the art for systems and methods that reliably and conveniently enable the user of a home network to automatically configure and provision devices to connect to the home network.

For clarity, identical reference numbers have been used, where applicable, to designate identical elements that are common between figures. It is contemplated that features of one example embodiment may be incorporated in other example embodiments without further recitation.

DESCRIPTION OF EXAMPLE EMBODIMENTS

Overview

One example embodiment of the present invention sets forth a method comprising establishing a connection with a wireless access point that is associated with a wireless home network, transmitting information related to a client device to a network host machine that is associated with the wireless home network via the wireless access point, receiving an SSID (Service Set Identifier) corresponding to a new wireless access point that is to be associated with the wireless home network, wherein the new wireless access point is selected by the network host machine based on the transmitted information related to the client device, and establishing a new connection with the new wireless access point corresponding to the SSID. The method also includes the steps of transmitting a message to the network host machine requesting that the network host machine register the client device with the wireless home network, and receiving a response message from the network host machine specifying a fully qualified domain name that has been assigned to the client device by the network host machine. The method includes the further steps of transmitting diagnostic information related to the client device to the network host machine, querying the network host machine to request additional diagnostic information related to other devices also connected to the wireless home network, receiving a response message from the network host machine that includes the additional diagnostic information related to the other devices, and transmitting the diagnostic information and the additional diagnostic information to a service hosted on a machine that is connected to the wireless home network or to a machine that is connected to a remote network. The method includes yet the further steps of determining whether firmware installed on the client device is out of date by comparing a version number associated with the firmware to a version number associated with new firmware available on a machine associated with a remote network, and if the firmware installed on the client device is not out of date, then scheduling a future time to re-determine whether the firmware installed on the client device is out of date, or if the firmware installed on the client device is out of date, then downloading the new firmware from the machine associated with the remote network and installing the new firmware on the client device.

Another example embodiment of the present invention sets forth a client device comprising a network discovery module that is configured to establish a connection with a wireless access point that is associated with a wireless home network, transmit information related to the client device to a network host machine that is associated with the wireless home network via the wireless access point, receive an SSID (Service Set Identifier) corresponding to a new wireless access point that is to be associated with the wireless home network, wherein the new wireless access point is selected by the network host machine based on the transmitted information related to the client device, and establish a new connection with the new wireless access point corresponding to the SSID. The client device further includes a registration module configured to transmit a message to the network host machine requesting that the network host machine register the client device with the wireless home network, and receive a response message from the network host machine specifying a fully qualified domain name that has been assigned to the client device by the network host machine. The client device further includes a diagnostic module configured to transmit diagnostic information related to the client device to the network host machine, query the network host machine to request additional diagnostic information related to other devices also connected to the wireless home network, receive a response message from the network host machine that includes the additional diagnostic information related to the other devices, and transmit the diagnostic information and the additional diagnostic information to a service hosted on a machine that is connected to the wireless home network or to a machine that is connected to a remote network. The client device yet further includes a firmware upgrade module configured to determine whether firmware installed on the client device is out of date by comparing a version number associated with the firmware to a version number associated with new firmware available on a machine associated with a remote network, and if the firmware installed on the client device is not out of date, then schedule a future time to re-determine whether the firmware installed on the client device is out of date, or if the firmware installed on the client device is out of date, then download the new firmware from the machine associated with the remote network and install the new firmware on the client device.

Yet another example embodiment of the present invention sets forth a computer-readable medium including instructions that, when executed by a processing unit, cause the processing unit to perform the steps of establishing a connection with a wireless access point that is associated with a wireless home network, transmitting information related to a client device to a network host machine that is associated with the wireless home network via the wireless access point, receiving an SSID (Service Set Identifier) corresponding to a new wireless access point that is to be associated with the wireless home network, wherein the new wireless access point is selected by the network host machine based on the transmitted information related to the client device, and establishing a new connection with the new wireless access point corresponding to the SSID. The computer readable medium also includes instructions for performing the steps of transmitting a message to the network host machine requesting that the network host machine register the client device with the wireless home network, and receiving a response message from the network host machine specifying a fully qualified domain name that has been assigned to the client device by the network host machine. The computer readable medium also includes further instructions for performing the steps of transmitting diagnostic information related to the client device to the network host machine, querying the network host machine to request additional diagnostic information related to other devices also connected to the wireless home network, receiving a response message from the network host machine that includes the additional diagnostic information related to the other devices, and transmitting the diagnostic information and the additional diagnostic information to a service hosted on a machine that is connected to the wireless home network or to a machine that is connected to a remote network. The computer readable medium includes yet further instructions for performing the steps of determining whether firmware installed on the client device is out of date by comparing a version number associated with the firmware to a version number associated with new firmware available on a machine associated with a remote network, and if the firmware installed on the client device is not out of date, then scheduling a future time to re-determine whether the firmware installed on the client device is out of date, or if the firmware installed on the client device is out of date, then downloading the new firmware from the machine associated with the remote network and installing the new firmware on the client device.

DETAILED DESCRIPTION OF THE FIGURES

FIG. 1Ais an exemplary illustration of an overarching network system100configured to implement one or more aspects of the present invention. The network system100comprises a smart network102, an external network110, and an applet store116. The external network110may comprise the well-known Internet or any other data network system. The smart network102includes a smart network host device120configured to transmit network data packets between the external network110and connected devices within the smart network102, such as computer170and client devices130. Any technically feasible wireless or wired physical transport technology may be implemented to transmit the network data packets. The smart network host device120maintains a network state model178that represents the different entities and related services operating within the smart network102. For example, if client device130(0) implements a printer with an integrated scanner and flash memory reader, then the network state model178would include an entry for client device130(0), and related attributes for a printer service, scanner service, and file (or block device) service. New devices register with the smart network host device120, which then updates the network state model178to include the new device.

A portal application172, residing within the computer170, is configured to access the network state model178to determine which client devices130are available within the smart network102, which services the client devices130provide, and to access and use the services. The portal application172may include one or more applets174, configured to extend functionality of the portal application172. A given applet174may be associated with a specific client device130and may facilitate specific usage models for the client device130via the extended functionality. When a new client device130registers with the smart network102, a most recent version of a corresponding applet174may not be available within the portal application172. However, the portal application172may retrieve the corresponding applet174or version of the corresponding applet174from the applet store116.

The applet store116is configured to facilitate access to applets174by the portal application172. The applet store116provides storage for applets174corresponding to client devices130and makes the applets174available for download to the portal application172via the external network110. In one embodiment, the applet store116occupies a well-known location, such as a universal resource locator (URL) associated with the external network110. Any technically feasible technique may be used to identify a particular applet174as corresponding to a particular client device130. Furthermore, any technically feasible technique may be used to download the particular applet174an incorporate the functionality of the applet174to the portal172.

FIG. 1Billustrates the smart home network102ofFIG. 1A, according to one example embodiment of the present invention. As shown, the smart network102comprises a smart network host device120, one or more client devices130, and a wide area network (WAN) interface device112, coupled to the external network110ofFIG. 1A. The WAN interface device112may implement a cable modem, digital subscriber line (DSL) modem, fiber to the home interface, or any other technically feasible device that provides digital network connectivity to the external network110. The WAN interface device112is coupled to the smart network host device120via a network interface118. In one embodiment, the network interface118implements the well-known Ethernet standard.

The smart network host device120implements a wireless network interface coupled to antenna122, which is configured to convert electrical signals to electromagnetic signals for transmitting data packets, and electromagnetic signals to electrical signals for receiving data packets. The antenna122may comprise plural independent radiator structures, each having a separate radiation pattern for implementing spatial multiplexing. In one embodiment, the wireless network interface implements one or more well-known standards, such as the Institute of Electrical and Electronics Engineers (IEEE) standard 802.11, which defines a system for wireless local area networking. The antenna122is configured establish wireless client links134to antennas132coupled to corresponding client devices130. The smart network host device120implements layer2forwarding (bridging) for wireless data packets forwarded among client devices130as well as internet protocol (IP) layer3routing between an IP domain associated with the smart network102and the external network110. In this configuration, the smart network host device120provides related services and protocols, such as dynamic host configuration protocol (DHCP), network address translation (NAT), and the like.

The smart network host device120acts as a central authentication authority for the smart network102and implements authentication services for devices registering with the smart network102. In one embodiment, authentication is implemented via Identification (ID) devices136that are uniquely paired with corresponding client devices130. For example, client device130(0) may be uniquely paired with ID device136(0) by a manufacturer of the client device130(0). An ID device136(0) is physically presented to the smart network host device120as an authentication credential to allow a client device130(0) paired to the ID device136(0) to join the smart network102. Furthermore, the client device130(0) is able to authenticate the smart network102as a trusted network by accessing credentials for the corresponding ID device136(0) specifically via the smart network102. In one embodiment, the ID devices136are implemented as near field radio frequency identification (RFID) tags. Each one of the RFID tags is configured to retain authentication credentials necessary to uniquely associate the one RFID tag with one instance of the client device130. In this way, an RFID tag may be paired with a given client device130. Persons skilled in the art will recognize that any technique may be implemented to generate and represent authentication credentials without departing the scope and spirit of the present invention. For example, in another embodiment, the ID devices136could be implemented as a physical token that includes a printed bar code on a face of the token. The bar code may encode authentication credentials for a corresponding client device130. In such an embodiment, the smart network host device120may include an optical scanner capable of reading the printed bar code from the physical token. In alternative embodiments, other forms of ID devices136may implement storage of the authentication credentials. For example, a universal serial bus (USB) storage device may be used to present authentication credentials to the smart network host device120for authenticating a related device, such as the computer170. In other alternative embodiments, a user may manually authenticate a client device130with the smart network host device120. For example, the user may log onto a management web page generated by the smart network host device120and manually enter authentication credentials, such as a printed code associated with the client device130.

In one usage scenario involving ID device136, the user wishes to add a new device, such as a smart network-enabled printer to the smart network102. The printer includes an ID device136implemented as an RFID tag that is paired to the printer. The user places the ID device136in close physical proximity to the smart network host device120, which is the able to read the ID device136and authenticate the printer. The printer registers with the smart network host device120and is then available for use by devices connected within the smart network102. Upon successfully reading the ID device136, the smart network host device120may indicate success to the user by flashing a light-emitting diode (LED), or by generating any technically feasible indication.

FIG. 10illustrates the smart home network102ofFIG. 1A, according to another example embodiment of the present invention. Here, the smart network102comprises a smart network host device120, a smart network extender device140, one or more client devices130, and a wide area network (WAN) interface device112, coupled to the external network110ofFIG. 1A. The WAN interface device112, smart network host device120, and one or more client devices130are configured to operate as previously described inFIG. 1B.

In addition to previously described functionality, the smart network host device120is also configured to detect one or more smart network extender devices140and to establish a bridge link128to each of the one or more smart network extender devices140. Each smart network extender device140is configured to act as a network bridge between a client device130and the smart network host device120. For example, client devices130(1) through130(N) may be physically located such that they are able to connect to the smart network extender device140, but not to the smart network host device120. Furthermore, the smart network extender device140is able to connect to the smart network host device120via bridge link128. Data packets transmitted by client devices130(1) through130(N) and destined to the external network110are received by the smart network extender device140and retransmitted by the smart network extender device140via bridge link128to the smart network host device120, which then forwards the data packets to the external network110. Similarly, data packets from the external network110that are destined to any of the client devices130(1) through130(N) are transmitted via bridge link128to the smart network extender device140, which retransmits the data packets via wireless client links134(1)-134(N). Persons skilled in the art will understand that wireless client links134(1)-134(N) may each be configured to operate on a separate channel or band, or a common channel or band. Furthermore, bridge link128may operate on a separate channel or band with respect to the wireless client links134.

In one embodiment, each smart network extender device140is paired to an ID device136, which is presented as an authentication credential to the smart network host device120to enable the smart network extender device140to participate within the smart network102.

FIG. 1Dillustrates the smart home network102ofFIG. 1A, according to yet another example embodiment of the present invention. Here, the smart network102comprises a smart network host device120, a smart network extender device140, one or more client devices130, a smart network connector device150, and a wide area network (WAN) interface device112, coupled to the external network110ofFIG. 1A. The WAN interface device112, smart network extender device140, and one or more client devices130are configured to operate as previously described inFIGS. 1B and 1C.

In this embodiment, the smart network host device120is configured to operate similarly with respect toFIGS. 1B and 1C. However, upon detecting the smart network connector device150, the smart network host device120is configured to operate as a bridge rather than a router, and the smart network connector device150is configured to operate as a router. A backhaul link158is established between the smart network host device120and the smart network connector device150.

Network data traffic between client device130(N) and the external network110traverses wireless client link134(N), bridge link128, and backhaul link158. This network data traffic is also forwarded by smart network extender device140, smart network host device120, and smart network connector device150. A client device130may connect directly to any one of the network extender device140, smart network host device120, or smart network connector device150. As shown, client device130(0) is connected to smart network connector device150via wireless client link134(0), client device130(1) is connected to smart network host device120via wireless client link134(1), and client device130(N) is connected to smart network extender device140via wireless client link134(N).

In one embodiment, the smart network connector device150is paired to an ID device136, which is presented as an authentication credential to the smart network host device120to enable the smart network connector device150to participate within the smart network102. In an alternative embodiment, the smart network connector device150and the smart network host device120are paired during a manufacturing step, eliminating the need for a separate ID device136.

FIG. 1Eis a more detailed illustration of the smart network host device120ofFIG. 1A, according to one example embodiment of the present invention. As shown, the smart network host device120comprises a processor complex,160, a wireless network interface162, an ID device reader164, and a wired network interface166. An interconnect165is configured to transmit data among the processor complex160, wireless network interface162, ID device reader164, and wired network interface166. The wired network interface166is configured transmit data packets via network interface118, based on data received via the interconnect165. The wired network interface166is also configured to receive data packets from the network interface118and transmit contents of the received data packets to the processor complex160via the interconnect165. The wireless network interface162is configured to transmit data packets, based on data received via the interconnect165, to one or more network devices within range. The wireless network interface162is also configured to receive data packets from the one or more network devices and then transmit contents of the received packets to the processor complex160. The wireless network interface162is coupled to an antenna122.

The processor complex160comprises a central processing unit (CPU), non-volatile memory for storing persistent programs, program state, and configuration information, random access memory (RAM) for storing temporary or volatile data, and an interface to the interconnect165. In one embodiment, the processor complex160is configured to execute an operating system and applications that provide routing services. The routing services may include, for example, data packet forwarding between the network interface118and the wireless network interface162. The packet forwarding services may include, without limitation, bridging among the one or more network devices via the wireless network interface162.

The ID device reader164is configured to read data from an associated ID device136. In one embodiment, the ID device reader164is configured to read data from RFID tags comprising the ID device136. The ID device reader164may also include a USB reader. In another embodiment, the ID device reader164may be implemented as an optical scanner for reading ID devices136that encode data via a printed bar code. In yet other embodiments, the ID device reader164may be configured to read data from other types of interfaces, such as other types of flash memories like an SD flash card.

In certain embodiments, the smart network host device120comprises one or more integrated circuits that implement respective functions of the smart network host device120. For example, the processor complex160, wired network interface166, and wireless network interface162may be integrated into a single integrated circuit.

Persons skilled in the art will recognize that the smart network extender device140may be implemented using the basic architecture of the smart network host device120, with the exception that the ID device reader164and wired network interface166are not required for the smart network extender device140. Similarly, the smart network connector device150may be implemented using the basic architecture of the smart network host device120, with the exception that the ID device reader164is not required for the smart network connector device150.

FIG. 1Fillustrates a system software architecture for the smart network host device ofFIG. 1E, according to one example embodiment of the present invention. As shown, the software architecture104includes several software modules within the smart network host device120. Programming instructions stored within the processor complex160implement a portion of the system software architecture104that includes a runtime server180, a product solution space190, and a network solution space196. The product solution space190comprises an object model192and one or more solution applications194. The object model192provides a standard, consistent abstraction of different network elements and related services within the smart network102. Exemplary network elements include devices coupled to the smart network102, such as printers, cameras, and display devices. Exemplary services include device and service discovery, event tracking and generation, and state presentation for the different elements. In one embodiment, the object model192includes a network interface based on the well-known extensible markup language (XML). One or more solution applications194provide specific functionality, such as a specific view of a storage system, or a specific technique for presenting certain data. The network solution space196includes software modules configured to provide management of network elements and network services, including device services, local area network services within the smart network102, and wide area network services related to connectivity management of the external network110.

The runtime server180comprises a network provisioning module182, a service and discovery provisioning (SDP) module184, an event module186, and a network configuration module188. The event module186tracks different network events, such as a network device advertising presence or updating status within the smart network102. The SDP module184maintains a persistent view of different network devices and related services, based on data from the event module186and on data from the network devices. The network provisioning module182provides authentication and authorization for network devices within the smart network102. Authentication credentials may be presented via a given ID device136. The network provisioning module182may also facilitate certain network services, such as DHCP leases. The network configuration module188includes hardware platform-specific implementation methods for network configuration and management. The persistent view comprises the network state model178ofFIG. 1A.

Persons skilled in the art will recognize that the smart network connector device150and smart network extender device140may be implemented using an appropriate subset of the system software architecture104described above in conjunction withFIG. 1F.

FIG. 2illustrates a device architecture for a client device130(N) configured to connect with the smart network host device120, according to one example embodiment of the present invention. One or more client devices130may be connected to the smart network host device120. In one embodiment, each client device130(N) may include one or more processors and a memory for storing one or more software modules configured to implement the device architecture. Programming instructions stored within the memory of the client device130(N), when executed on the one or more processors of the client device130(N), may implement at least a portion of the device architecture. In other embodiments, portions of the device architecture may be implemented in hardware units.

As also shown inFIG. 2, the smart network host device120includes an SDP module184that implements one or more services within the runtime server180executing on the smart network host device120. As described above in connection withFIG. 1F, the SDP module184maintains a persistent view of different network devices and related services, based on data from the event module186and on data from the different client devices130. In one embodiment, the SDP module184includes a registrar server220, which implements an application programming interface (API) that enables a client device130(N) to register with the smart network host device120and discover other client devices130and services250connected to the smart network102.

The device architecture includes a runtime client260and a device solution space270. The device solution space270includes an object model272, similar to object model192discussed above, and one or more services250that may be registered with the smart network host device120and made available to one or more other client devices130connected to the smart network102. Services250may provide device-specific functionality to a client device130(N), such as decoding streaming media transmitted to the client device130(N) from the external network110and displaying the streaming media on a display associated with the client device130(N). In one embodiment, the services250registered with the smart network host device120may be made available to one or more remote devices (not shown) connected to the smart network102via the external network110.

In one embodiment, services250implement inter-process communications by transmitting XML messages via a network interface of a client device130(N). A service250(K) may be defined as a set of zero or more simple object access protocol (SOAP) actions and zero or more service events and may be implemented as a set of software instructions that are executed on one or more processors included in the client device130(N). A service250(K) may be configured to send or receive XML-SOAP messages via a network interface of the client device130(N) in order to communicate with other client devices130or services250connected to the smart network102. Each service250(K) running on a client device130(N) may be accessible through a different port of a network interface implemented on the client device130(N), and multiple instances of the same service250(K) may be accessible through different ports of the host device as well. Each service250(K) may be associated with a version number that identifies the particular set of operations defined by the service, which may be used to detect and prompt for updates to be downloaded to the client device130(N) by querying a server made available on the smart network102or on a portal located on the external network110.

The runtime client260includes a network discovery module262, a registration module264, a diagnostic module266, and a firmware upgrade module268. It will be appreciated that the network discovery module262, the registration module264, the diagnostic module266, and the firmware upgrade module268may be implemented in either hardware or software on the client device130(N).

The network discovery module262is configured to implement operations that enable the client device130(N) to discover and connect to the smart network102. For example, the network discovery module262may include a DHCP client for requesting an IP address to be assigned to the client device130(N) and a DNS client that enables the client device130(N) to resolve domain names for different devices or services into an IP address on the smart network102or the external network110. In one embodiment, the network discovery module262may be configured to receive broadcast data packets on an antenna132(N) of the client device130(N) that indicate one or more SSIDs of various wireless networks within range of the client device130(N). The client device130(N) may determine which wireless access point to connect to based on one or more selection criteria included in the network discovery module262. For example, the client device130(N) may be configured to connect to the wireless access point with the strongest signal which may indicate the wireless access point in closest proximity to the client device130(N). In another embodiment, the client device130(N) may be configured to connect to a wireless network configured with a well-known SSID, such as homenetwork.

In yet another embodiment, the client device130(N) may connect to the smart network102via a wired interface such as the wired network interface166of the smart network host device120. For example, the client device130(N) may be connected to the smart network host device120via an Ethernet cable. In other embodiments, the client device130(N) may connect to the smart network102via a wired interface of a smart network extender device140or a wired interface of a smart network connector device150.

For example, the smart network host device120may be configured as a wireless access point that hosts multiple virtual access points. A first virtual access point is configured with a well-known SSID that provides basic connectivity for a client device130(N) to attempt to connect to the smart network102. Each client device130(N) may be configured to attempt to connect to any available access points associated with the well-known SSID. A second virtual access point may be configured with an SSID unique to the smart network host device120. A client device130(N) may not know the SSID associated with the second virtual access point the first time the client device130(N) attempts to connect to the smart network host device120. Thus, the client device130(N) may be configured to connect to the first virtual access point in order to attempt to authenticate the client device130(N) with the smart network102using network credentials passed to the smart network host device120via an ID device136(N) associated with the client device130(N). In one embodiment, the client device130(N) and the smart network host device120are configured to perform an authentication procedure based on the Extensible Authentication Protocol where a handshake is performed between the client device130(N) and the smart network host device120to authenticate the network credentials without broadcasting the network credentials on the wireless link established via the first virtual access point. Based on the successful authentication of the client device130(N) with the smart network host device120, the smart network host device120may transmit the SSID associated with the second virtual access point to the client device130via the link established with the first virtual access point. The client device130(N) may store the SSID of the second virtual access point in a memory of the client device130(N) so that the client device can re-connect directly to the second virtual access point at a subsequent time without having to authenticate itself over the first virtual access point. A third virtual access point may be configured manually by an owner of the smart network host device120, creating a unique SSID and credentials for the third virtual access point. The owner may establish a password to access the third virtual access point via well-known wireless security protocols such as WPA or WEP. The client device130(N) may store the SSID and the credentials for the third virtual access point in the memory to facilitate re-connection to the third virtual access point on subsequent attempts to connect to the smart network102. In one embodiment, the first and second virtual access points are transparent to the owner and are configured to perform background functions for automatic discovery, connection, and provisioning of the smart network with an associated client device130(N).

In one embodiment, the network discovery module262may be configured to generate and transmit an XML-SOAP message to the smart network host device120that includes details about the services250and capabilities of the client device130(N). The smart network host device120may be configured to provide additional virtual access points associated with additional SSIDs for the smart network102. The runtime server180of the smart network host device120may be configured to determine, based on the information received from the client device130(N), a level of service the client device130(N) requests for proper operation, such as a minimum bandwidth of the wireless link. Then, the runtime server180may determine that the client device130(N) should connect to a particular virtual access point provided by the smart network host device120in order to provide the client device130(N) with a particular level of service. For example, the smart network host device120may be configured to provide different levels of service on different virtual access points. In this manner, the smart network host device120, which may operate on both the 2.4 GHz and 5 GHz bands specified by the IEEE 802.11n wireless protocol, may force a particular client device130(N) to connect via the 2.4 GHz band and not the 5 GHz band, as specified by different SSIDs.

The registration module264is configured to implement operations that enable the client device130(N) and any services250exposed to the smart network102by the client device130(N) to be registered with a central authority for the smart network102, such as the smart network host device120. In one embodiment, the registration module264may be configured to generate and transmit XML-SOAP messages to the smart network host device120requesting the smart network host device120to register the client device130(N) and services250on the smart network102. The registrar server220on the smart network host device120may assign a fully qualified domain name (FQDN) to the client device130(N) and transmit an XML-SOAP message to the client device130(N) that includes the assigned FQDN for the client device130(N). Similarly, the registrar server220may also assign FQDNs to each of the services250exposed to the smart network102by the client device130(N) and transmit each of the FQDNs assigned to the different services250back to the registration module264as well. Once the client device130(N) and services250are registered with the smart network host device120, the registration module264may enable the client device130(N) or services250to transmit data to or receive data from various devices connected to the smart network102. For example, the registration module264may be configured to discover other client devices130or services250that are available to a client device130(N) connected to the smart network102in response to a query sent from the registration module264to the smart network host device120.

In one embodiment, the registration module264is configured to transmit an XML-SOAP message to the registrar server220that provides the registrar server220with information about the client device130(N) such as manufacturer information, firmware information, status information, service information and the like. The registrar server220is configured to parse the XML-SOAP message to retrieve information necessary to register the client device130(N) with the smart network102. The registration module264may also be configured to retrieve details about the services250that are running on the client device130(N) and transmit the details in an XML-SOAP message to the smart network host device120. In another embodiment, the registration module264may be configured to update information stored by the registrar server220associated with the client device130(N) or services250. For example, a client device130(N) that is configured to provide a storage service250(1) to other client devices130or services250on the smart network102may exhaust the available storage space on the client device130(N). Thus, the client device130(N) may be configured to send an XML-SOAP message to the registrar server220that indicates that the service250(1) is no longer available on the smart network102.

The diagnostic module266is configured to implement operations that enable diagnostic services to be implemented for the client device130(N). For example, software executing on a processor in the client device130(N) may be configured to generate and transmit XML-SOAP messages to the smart network host device120that indicate the current status of the client device130(N) and/or one or more services250running on the client device130(N). The diagnostic module266may expose information about the configuration, network topology and historical connectivity of client devices130connected to the smart network102to aid in the debugging of network issues by a user of the smart network102or support staff associated with the manufacturer of the client device130(N).

In one embodiment, portal172running on a computer170connected to the smart network102may be configured to transmit an XML-SOAP message to the diagnostic module266that queries the client device130(N) for status updates. The client device130(N) may generate a corresponding XML-SOAP message to transmit to the portal172that includes information on the current status of the client device130(N) as well as zero or more services250running on the client device130(N). For example, the status may indicate that the client device130(N) is in a standby mode or some other power saving mode or the status may indicate that a service250is currently busy and cannot process a request from a different client device130. In another embodiment, the diagnostic module266may be configured to transmit XML-SOAP messages to the smart network host device120, which acts as a central repository for diagnostic information for all client devices130and services250connected to the smart network102. In yet another embodiment, the diagnostic module266may be configured to gather diagnostic reports from other client devices130connected to the smart network102, or from the smart network host device120, and forward the diagnostic reports to a portal on the external network110hosted by the manufacturer of the client device130(N) to aid in troubleshooting network problems experienced by the client device130(N).

The firmware upgrade module268is configured to implement operations that enable updates to the firmware of the client device130(N). In one embodiment, the firmware upgrade module268may be configured to receive XML-SOAP messages from the smart network host device120that request the client device130to connect to a portal on the external network110and download a firmware update for the client device130. The firmware upgrade module268may also be configured to transmit an XML-SOAP message to the smart network host device120that identifies the current version of the firmware installed on the client device130(N). The firmware upgrade module268may also be configured to determine whether updates to the firmware are available on the external network110, schedule an update of the firmware to be installed on the client device, and ensure that the firmware update does not interrupt a pending operation between the client device130(N) and a different client device130connected to the smart network102. In another embodiment, the firmware upgrade module268may enable the firmware to be updated automatically by the smart network host device120or a service provided on the external network110.

FIGS. 3A-3Eare a flowchart of method steps300for connecting a client device130(N) to a smart network102, according to one example embodiment of the present invention. Although the method steps are described in conjunction with the network system100and a client device130(N) ofFIGS. 1A-1Fand2, persons skilled in the art will understand that any client device130(N) configured to perform the method steps, in any order, is within the scope of the invention.

As shown, the method300begins at step302, where a client device130(N) connects to a wireless access point that provides connectivity to the smart network102. In one embodiment, client device130(N) includes a network discovery module262configured to attempt to connect to any wireless access point associated with a well-known SSID. If the network discovery module262detects that a wireless access point associated with the well-known SSID is in range, then the network discovery module262attempts to authenticate the client device130(N) with a smart network host device120configured to provide the wireless access point associated with the well-known SSID. In another embodiment, the network discovery module262may be configured to determine a plurality of wireless access points associated with the well-known SSID that are within range of the client device130(N). If there are no wireless access points associated with the well-known SSID within range of the client device130(N), then the client device130(N) may attempt to connect to any wireless access point that provides a connection to a wireless network. In such cases, the client device130(N) may disable certain functions of the client device130(N) that are optimized for use with a smart network host device120. If there are more than one wireless access point associated with the same well-known SSID within range of the client device130(N), then the client device130(N) may attempt to connect to the wireless access point that is both associated with the well-known SSID and has the strongest wireless signal, which may indicate that the selected wireless access point is the closest wireless access point in proximity to the client device.

At step304, the client device130(N) attempts to authenticate itself with the smart network host device120associated with the wireless network corresponding to the wireless access point that the client device130(N) successfully connected to in step302. In one embodiment, the network discovery module262performs a handshake operation with the smart network host device120to authenticate the client device130(N) with the smart network102. The handshake operation may pass EAP messages from the smart network host device120to the client device130(N) and from the client device130(N) to the smart network host device120. The EAP messages enable the client device130(N) to verify that the smart network host device120possesses network credentials associated with the client device130(N) and enables the smart network host device120to verify that the client device130(N) possesses the same network credentials that the smart network host device120associates with the client device130(N). The handshake operation allows such verification without ever transmitting the network credentials between the client device130(N) and the smart network host device120via the wireless link134. In one embodiment, the network credentials may be shared with the smart network host device120by physically placing an ID device136(N) associated with the client device130(N) in close proximity to the smart network host device120. In other embodiments, the network credentials may be shared in any other technically feasible manner, such as via a USB key or by prompting a user to manually enter the network credentials via a user interface associated with the smart network host device120.

At step306, the client device130(N) determines whether the authentication was successful. In one embodiment, if the client device130(N) determines that the smart network host device120does not possess the correct network credentials for the client device130(N) (i.e., the ID device136(N) has not been read by the smart network host device120), then the client device130(N) terminates the wireless link established with the smart network host device120, and method300returns to step302where the client device130(N) attempts to establish a connection with another wireless network. Returning to step306, if the client device130(N) determines that the authentication was successful, then method300proceeds to step308where the client device130(N) transmits data that includes information related to the client device130(N) such as capabilities of the client device130(N) or information about services250running on the client device130(N).

At step308, the client device130(N) receives a response message from the smart network host device120that indicates a new wireless access point to establish a secure connection between the smart network host device120and the client device130(N). At step310, the client device130(N) establishes a secure connection to the new wireless access point. In one embodiment, the client device130(N) re-connects to the new wireless access point and establishes a secure socket connection via any technically feasible protocol such as the secure socket layer (SSL), transport layer security (TLS), or X.509 protocols. Once the secure connection is established, method300proceeds to step312where the client device130(N) receives yet another SSID and associated network credentials for a user-level wireless access point. In one embodiment, an owner may establish the SSID and network credentials for the user-level wireless access point prior to step312, such as during the setup of the smart network host device120, which are then passed to the client device130(N) via the secure connection established in step310. Consequently, the client device130(N) uses the SSID and network credentials established by the owner for normal operation, whereas the lower level virtual access points are established by the smart network host device120to enable easy connection of the client device130(N) to the smart network102with little manual configuration required by the owner. For example, the owner may configure the smart network host device120during an initial setup routine, providing an SSID and network credentials that the owner establishes and that may be broadcast by the smart network host device120. However, each client device130(N) configured for use with the smart network that is introduced to the smart network will establish a secure connection to the smart network host device120via the paired ID device136(N), which only needs to be placed in proximity of the smart network host device120, and will automatically retrieve the owner's SSID and network credentials from the smart network host device120without requiring the owner of the smart network102to remember and re-enter the SSID and network credentials for each new device added to the smart network102. At step314, client device130(N) establishes a secure connection to the user-level wireless access point.

At step316and as shown inFIG. 3B, the client device130(N) may transmit information related to the client device130(N) to the smart network host device120, which determines whether the client device130(N) should connect to a different virtual access point established by the smart network host device120. At step318, the client device130(N) may receive a message from the smart network host device120that includes a new SSID and network credentials for a new virtual access point established by the smart network host device120and instructs the client device130(N) to re-connect to the new virtual access point. At step320, the client device130(N) may terminate the connection to the smart network host device120and re-connect to the new virtual access point using the new SSID and network credentials received in step314, and the method300proceeds to step316.

At step322and as shown inFIG. 3C, a client device130(N) transmits a registration message to the smart network host device120. In one embodiment, a client device130(N) includes a registration module264configured to transmit an XML-SOAP message to the smart network host device120that requests the client device130(N) to be registered with the smart network host device120. At step324, the client device130(N) receives a response message from the smart network host device120that includes an FQDN assigned to the client device130(N) by the smart network host device120. At step326, the client device130(N) determines whether the client device130(N) is configured to expose at least one service250to the smart network. If the client device130(N) is not configured to expose any services250, then method300proceeds to step332. Returning to step326, if the client device130(N) is configured to expose at least one service250, then method300proceeds to step328where client device130(N) transmits a registration message to the smart network host device120requesting the at least one service to be registered with the smart network102. At step330, the client device130(N) receives a response message from the smart network host device120that includes one or more FQDNs corresponding to each instance of the at least one service running on the client device130(N).

At step332and as shown inFIG. 3D, a client device130(N) transmits diagnostic information about the client device130(N) to the network host. In one embodiment, a client device130(N) includes a diagnostic module266configured to collect information such as status information related to the client device130(N), status information related to any services250running on the client device130(N), or any other type of relevant information that may be used to troubleshoot issues with the client device130(N) or smart network102. The smart network host device120may act as a central repository for all diagnostic information, and may track historical trends in diagnostic information. At step334, client device130(N) queries the smart network host device120to request additional diagnostic information related to other devices connected to the smart network102. At step336, the client device130(N) receives a response from the smart network host device120that includes at least some additional diagnostic information related to the smart network102. At step338, the client device130(N) may be configured to transmit the diagnostic information related to the client device130(N) as well as the additional diagnostic information related to other devices connected to the smart network102to a service configured to enable troubleshooting of the client device130(N) or smart network102. In one embodiment, the diagnostic service may be hosted by a computer170connected to the smart network102. In alternative embodiments, the diagnostic service may be hosted by a portal stored on a computer connected to the external network110, such as a service accessible on the manufacturer of the client device's130(N) website.

At step340and as shown inFIG. 3E, a client device130(N) may be configured to determine whether the firmware installed on the client device130(N) is out of date. In one embodiment, the client device130(N) may include a firmware upgrade module268configured to compare a version number associated with the firmware installed on the client device to a version number associated with new firmware available on a remote server of an external network. For example, a manufacturer may provide an applet174(J) to the applet store116that is configured to periodically check a manufacturer's server to determine if a new firmware version is available. If a new firmware version is available, the applet174(J), running on portal172on computer170, may be configured to download the new firmware to a memory in the computer170. The new firmware may include a version number that can be compared to a version number of firmware currently installed on the client device130(N) by the firmware upgrade module268.

If the firmware installed on the client device130(N) is not out of date, then the method300proceeds to step342where the client device130(N) may schedule a future time to re-determine whether the firmware installed on the client device130(N) is out of date. For example, the firmware upgrade module268may be configured to query the portal172to determine if new firmware for the client device is available. If new firmware is not available, then the firmware upgrade module268may set a reminder to query the portal172every 5 days to check for the availability of new firmware. Returning now to step340, if the firmware installed on the client device130(N) is out of date, then the method300proceeds to step344where the client device130(N) downloads the new firmware version and installs the new firmware version on the client device130(N). In one embodiment, the firmware upgrade module268may be configured to download the new firmware version from the portal172. In another embodiment, the firmware upgrade module268may be configured to download the new firmware version from a remote server located on the external network.

In sum, example embodiments of the invention provide systems and methods for connecting a client device to a wireless network. A client device may include various modules for connecting to and performing operations on the wireless network. A network discovery module facilitates establishing a secure connection between the client device and a central authority for the wireless network; a registration module facilitates exposing the client device and services to other devices connected to the wireless network; a diagnostic module facilitates sharing information about the wireless network with a diagnostic service configured to help with troubleshooting network issues; and a firmware upgrade module facilitates automatic updates of firmware installed on the client device.

Advantageously, the disclosed client device in combination with the central authority for the wireless network, enables seamless and automatic configuration of client devices introduced to a secure home wireless network without requiring manual configuration by a user. The modules described above enable a user to buy a product, plug it in, and substantially immediately enable the client device to collaborate with other devices connected to the smart network, such as by providing services or enabling other devices to access resources included in the client device, without any burdensome manual configuration by the user.

While the foregoing is directed to certain example embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof. Therefore, the scope of the present invention is determined by the claims that follow.