WO2004085622A2 - Network-enabled software logic providing discovery and configuration of network appliances coupled to a lan - Google Patents

Network-enabled software logic providing discovery and configuration of network appliances coupled to a lan Download PDF

Info

Publication number
WO2004085622A2
WO2004085622A2 PCT/US2004/008905 US2004008905W WO2004085622A2 WO 2004085622 A2 WO2004085622 A2 WO 2004085622A2 US 2004008905 W US2004008905 W US 2004008905W WO 2004085622 A2 WO2004085622 A2 WO 2004085622A2
Authority
WO
WIPO (PCT)
Prior art keywords
appliance
area network
operably coupled
local area
applet
Prior art date
Application number
PCT/US2004/008905
Other languages
French (fr)
Other versions
WO2004085622A3 (en
Inventor
Jeffrey I. Robinson
Original Assignee
Netfabric Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netfabric Corporation filed Critical Netfabric Corporation
Publication of WO2004085622A2 publication Critical patent/WO2004085622A2/en
Publication of WO2004085622A3 publication Critical patent/WO2004085622A3/en

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/253Telephone sets using digital voice transmission
    • H04M1/2535Telephone sets using digital voice transmission adapted for voice communication over an Internet Protocol [IP] network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72445User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality for supporting Internet browser applications

Definitions

  • This invention relates broadly to the management and configuration of network appliances. More particularly, this invention relates to network-enabled mechanisms for configuration of network appliances coupled to a Local Area Network.
  • IP-enabled devices including one or more IP telephony devices (such as an IP-enabled telephone, IP-enabled answering machine or IP- enabled voice router) 12, an HVAC control system 14 (such as a heating and/or air NETF-001CIP PCT conditioning system), one or more access control devices 16 (such as a door locks, gate and door bell), an irrigation control system 18, a lighting control system 20, audio/video components 22 (such as a television, home theatre unit, home stereo unit, entertainment system, etc), an electrical power supply component 24 (such as power management controller, power conditioning system, UPS system, etc), a gateway router 26 that provides a communication interface to the Internet and/or a wide area network (WAN), a home security control system 28, an IP-enabled storage device 30 that provides storage of data, one or more IP-enabled computer peripherals 32 (such as a printer, plotter, scanner, fax), a networked personal computer system 34 that has a web browser application installed thereon, a health monitoring system (not
  • IP-enabled devices are networked together over the local area network (LAN), which is typically realized by a star topology whereby communication links (such as wired Ethernet links or wireless RF links) couple the IP-enabled devices to one another through one or more central networking elements (such as a switch or hub).
  • LAN local area network
  • communication links such as wired Ethernet links or wireless RF links
  • central networking elements such as a switch or hub
  • IP-enabled devices such as IP-enabled telephony phones, gateway routers, and some high-end printers
  • Web server software that executes on an embedded microprocessor.
  • the Web server software supports standardized protocols (such as HTTP) that enable the transfer of data between the device and a Web browser client machine (e.g., the PC 34 executing a Web Browser such as Microsoft Internet Explorer as shown in Fig. 1).
  • This Web-based interface is typically used to configure and/or update the operational settings of the device as follows. First, the current operational settings of the device are encoded in a Web page that is served to the Web browser client machine.
  • the Web browser client machine displays the current operational settings using a variety of rich textual and graphical means, and identifies requested updates to the current operational settings in response to user input commands. Finally, these requested updates are communicated back to the Web server software, which takes actions to implement the requested updates to the operational settings of the device.
  • Fig. 2 illustrates an exemplary system architecture of a Web server embedded within an IP-enabled device 37.
  • the IP-enabled device 37 can be any one of the devices shown in NETF-001CIP PCT Fig. 1, including the IP telephony device 12, HVAC system 14, access control devices 16, etc.
  • the embedded Web server includes a hardware platform 38 (e.g., a microprocessor and associated memory, typically realized by one or more non- volatile Flash memory modules and one or more volatile DRAM modules) and a network adapter 40 that interface to one another over a system bus 42.
  • the system bus 42 is shown as single bus; however, the system bus may be a hierarchical organization of multiple buses as is well known in the arts.
  • the hardware platform may also include a hard disk drive (not shown), and/or some other form of persistent storage, as is well known.
  • the network adapter 40 provides a bi-directional communication link to other devices coupled to the LAN, preferably via a communication link (such a wired Ethernet link or a wireless 802.11(a) link or a wireless 802.11(b) link) to a switching device (such as a wired Ethernet switch/hub or wireless switch) as is well known in the networking arts.
  • the embedded Web server also includes software (including an operating system kernel 44, a TCP/IP network stack 46, and an Appliance Web Server Module 48) that is persistently stored by the hardware platform 38 (e.g., such as in flash memory or on a hard disk drive), and that is loaded into memory for execution by the microprocessor(s) of the hardware platform 38.
  • the Appliance Web Server Module 48 serves up one or more Web pages 50 that are persistently stored by the hardware platform 38 (e.g., such as in flash memory or on a hard disk drive) in response to requests (which typically conform to a standard protocol such as HTTP) received at an assigned IP address and port number as is well known.
  • a browser-based client machine communicates with the Appliance Web Server Module 48 over the LAN to access and interact with the Web pages 50 to provide for the update of various system parameters of the IP-enabled appliance 37 by the browser-based client machine, which thereby enables configuration of the IP- enabled appliance 37.
  • IP address which may be a default static IP address or a dynamic IP address assigned by a DHCP server
  • URL Uniform Resource Locator
  • DNS Domain Name Service
  • IP-enabled devices In order to minimize the costs of such IP-enabled devices, it is common to utilize lower cost microprocessor platforms to realize the Web server functionality embedded in the IP-enabled device. Although such cost savings can be passed along to the consumer, the limited computational resources and memory provided by a lower cost microprocessor platform can limit the ability of the embedded Web server to take advantage of technological improvements that would make configuration of the IP-enabled device easier.
  • An example of such a technological improvement is VoiceXML, which is an extensible markup language (XML) that has been extended to include speech synthesis and speech recognition. With VoiceXML, users can now use a phone or similar audio device to interact with a web page instead of the traditional keyboard and screen.
  • XML extensible markup language
  • VoiceXML platform The functionality required to provide the voice-enabled services specified by a Web page written in VoiceXML, including the logic that executes the commands specified by the VoiceXML Web page in addition to the required speech processing capabilities (e.g., speech recognition, text-to-speech, voice authentication) is provided by a VoiceXML platform.
  • voice processing capabilities e.g., speech recognition, text-to-speech, voice authentication
  • a VoiceXML platform There are a large number of commercially-available VoiceXML platforms on the market today. Indeed, Microsoft is bundling this functionality with the latest releases of Windows XP Server, there are also many third party distributions such as those distributed by VoiceGenie Technologies Inc. of Toronto, Canada.
  • these VoiceXML platforms require a large amount of computational resources and memory, and thus cannot be effectively realized on a low cost microprocessor platform embedded within an IP-enabled device.
  • IP Internet Protocol
  • a low cost microprocessor platform which take advantage of technological improvements (such as VoiceXML) that make it easier to access and configure such IP- enabled devices, thereby retaining the cost advantages of the low cost microprocessor platform.
  • a network-based appliance management mechanism performs operations that automatically discover IP- enabled devices that are operably coupled to a local area network and that automatically generate a graphical user interface depicting a directory of such devices. A user interacts with the graphical user interface to select one (or more) of such devices and to update the operational settings of the selected device(s).
  • the operations supported by the network-based mechanism can act as a proxy for the selected device in carrying out advanced configuration services as well as other services that require interaction with the device.
  • the appliance management mechanism (or portions thereof) may be implemented as part of an applet that is downloaded from a remote web server.
  • the appliance management mechanism may be implemented as part of a web-based application/server that is accessible to computing devices on the local area network.
  • the device directory includes one or more links that enable the user to easily and efficiently access the Web page(s) associated with the IP-enabled devices on the local area network. These Web pages provide for Web-based configuration and use of such IP-enabled devices.
  • Fig. 1 is a schematic illustration of a LAN with various IP-enabled devices coupled thereto.
  • Fig. 2 is a functional block diagram of an exemplary prior art IP-enabled device having a Web server module embedded therein.
  • NETF-001CIP PCT NETF-001CIP PCT
  • Fig. 3 is a functional block diagram of an exemplary computing system that embodies the appliance management application in accordance with the present invention, and which includes an appliance discovery module and an appliance management Web server module.
  • Figs. 4A, 4B and 4C together provide a flow chart illustrating the operations of the appliance discovery module of Fig. 3 in automatically discovering IP-enabled devices on the LAN and automatically building the directory Web page.
  • Fig. 5 A is a flow chart illustrating extensions to the operations of the appliance discovery module of Fig. 3 that support proxy services associated with a given device.
  • Fig. 5B is a flow chart illustrating extensions to the appliance management Web server module of Fig. 3 that support exemplary proxy services associated with a given device that enable update of the operational settings of the given device.
  • Fig. 6 is a pictorial illustration of an exemplary directory Web page that is generated by the operations of Figs. 4A through 4C and Fig. 5 A.
  • Fig. 7 is a schematic illustration of a LAN with various IP-enabled devices coupled thereto in addition to a gateway connection to a WAN/Internet and a remote web server that supports management of one or more of the IP-enabled devices on the LAN.
  • Fig. 8A is a functional block diagram of an exemplary remote web server that embodies an Appliance Management applet in accordance with the present invention.
  • Fig. 8B is a functional block of a local computing system that is operably coupled to a LAN, wherein the local computing system includes a web browser that is controlled to retrieve the Appliance Management applet from the remote web server of Fig. 8 A and to execute the Appliance Management applet in accordance with the present invention.
  • Fig. 8C is a functional block of an IP-enabled device that is operably coupled to a LAN, wherein the device includes a network-enabled routine that cooperates with the web browser of the local computer system of Fig. 8B to provide for user-friendly and efficient configuration of the system parameters of the device over the LAN.
  • Figs. 9A and 9B together, are a flow chart that describes the operations of the remote web server, the local computer system and the local IP-enabled device of Figs. 8A, 8B and 8C, respectively, in communicating the Appliance Management applet from the remote web server to the local web server where the Appliance Management applet is used to provide for NETF-001CIP PCT user-friendly and efficient configuration of the system parameters of the device over the LAN.
  • an appliance management application (described in more detail hereinafter with reference to Figs. 3 through 5B) is provided that is loaded onto a networked computer system 36 operably coupled to a LAN as shown in Fig 1.
  • the appliance management application provides for automatic discovery of devices that are actively coupled to the LAN in addition to the automatic generation and update of a directory Web page.
  • the directory Web page (an example of which is shown in Fig. 6) provides a link to one or more Web pages associated with each discovered device.
  • the directory Web page is persistently stored and served up by the appliance management application for access by a browser-based client machine operably coupled thereto over the LAN.
  • the browser-based client machine e.g., the Personal Computer 34 of Fig.
  • the appliance management application provides a dynamically compiled list of the active devices on the LAN. From this dynamically compiled list, a user can be redirected to one or more Web pages associated with a given device in a simple straightforward manner.
  • a link that makes up the directory Web page may refer to one or more Web pages served by a Web server embedded in given device.
  • such link may refer to one or more locally-stored Web pages that provide proxy services for the given device.
  • This configuration allows low cost devices (with limited computational resources) to take advantage of technological improvements (such as VoiceXML) that provide for quick and easy access, configuration, and use of such low cost devices; yet, because such services are provided by the appliance management application as a proxy for the device, this configuration avoids the costs and expense of adding the computational resources to such devices required to support such improvements.
  • the computing system 36' includes a hardware platform 52 (e.g., a microprocessor and associated memory, NETF-001CIP PCT typically realized by one or more non- volatile Flash memory modules and one or more volatile DRAM modules) and a network adapter 54 that interface to one another over a system bus 56.
  • a hardware platform 52 e.g., a microprocessor and associated memory, NETF-001CIP PCT typically realized by one or more non- volatile Flash memory modules and one or more volatile DRAM modules
  • a network adapter 54 that interface to one another over a system bus 56.
  • the system bus 56 is shown as a single bus; however, the system bus may be a hierarchical organization of multiple buses as is well known in the arts.
  • the hardware platform 52 may also include a hard disk drive (not shown), and/or some other form of persistent storage, and possibly other components commonly integrated into modern PC-based systems as is well known.
  • the network adapter 54 provides a bi-directional communication link to other devices coupled to the LAN, preferably via a communication link (such a wired Ethernet link or a wireless 802.11(a) link or a wireless 802.11(b) link) to a switching device (such as a wired Ethernet switch/hub or wireless switch) as is well known in the networking arts.
  • a communication link such as a wired Ethernet link or a wireless 802.11(a) link or a wireless 802.11(b) link
  • a switching device such as a wired Ethernet switch/hub or wireless switch
  • the computer system 36' also includes software (including an operating system kernel 58, a TCP/IP network stack 60, and the appliance management application 62) that is persistently stored by the hardware platform 52 (e.g., such as on a hard disk drive), and that is loaded into memory for execution by the microprocessor(s) of the hardware platform 52.
  • software including an operating system kernel 58, a TCP/IP network stack 60, and the appliance management application 62
  • the hardware platform 52 e.g., such as on a hard disk drive
  • the appliance management application 62 includes an appliance discovery module 64a and an appliance management Web server module 64b.
  • the appliance discovery module 64a operates to automatically discover devices that are actively coupled to the LAN.
  • appliance discovery module 64a operates to automatically generate, update, and persistently store (for example, on the hard disk drive of the hardware platform 52) a directory Web page 66.
  • the directory Web page (an example of which is shown in Fig. 6) provides a link to one or more Web pages associated with each given discovered device.
  • the directory Web page 66 is then served up by Appliance management Web server module 64b in response to requests (which typically conform to a standard protocol such as HTTP) received at an assigned IP address and port number as is well known.
  • a browser-based client machine e.g., the Personal Computer 34 of Fig. 1
  • Setting up the Web-based interface between the Web browser executing on the client machine and the Appliance management Web server module 64b may involve typing in an IP address (which may be a default static IP address or a dynamic IP address assigned by a DHCP server) as the URL to be accessed by the Web browser, or by typing in a name associated with the device as the URL.
  • IP address which may be a default static IP address or a dynamic IP address assigned by a DHCP server
  • a name associated with the device as the URL typically needs to be performed only once and then saved by the user, for example, by assigning a "Favorites" name (sometimes referred to as a "Bookmark" name) to the appropriate URL of the Appliance management Web server module 64b.
  • the Appliance Management Application 62 provides a dynamically compiled list of the active devices on the LAN. From this dynamically compiled list, a user can select and be redirected to one or more Web pages associated with a given device in a simple straightforward manner. These features enable quick and easy access, configuration and use of the devices active on a network, and thereby contributes to wide-spread acceptance of these devices by the general public.
  • Figs. 4A through 4C there is shown a flow chart illustrating exemplary operations carried out by the Appliance discovery module 64a of Fig. 3. Such operations automatically scan over a range of IP addresses to automatically discover active devices on the LAN.
  • identity data data that identifies the given active device
  • Such identification data is then used to generate a link to a Web page served by the given active device, and this new link is added to the directory Web page 66.
  • An IP address includes a network address (e.g., 192.168.1) followed by a host address.
  • the length of the network address and host address is defined by a subnet mask (e.g., a subnet mask of 255.255.255.0 defines a 24-bit network address and an 8-bit host address).
  • a subnet mask e.g., a subnet mask of 255.255.255.0 defines a 24-bit network address and an 8-bit host address.
  • the devices on the local area network share the same network address.
  • the exemplary scanning operations of Figs. 4A - 4C take advantage of this fact to scan only 254 host addresses (e.g., the 256 identified by the range of an 8-bit host address less the IP address assigned to module 46b and less the multicast IP address).
  • the operations begin in block BIO whereby the IP address and Subnet mask assigned to the Appliance management Web server module 46b are identified. This is achieved by interrogating the operating system.
  • the system call ifconfig () can NETF-001CIP PCT be used to identify these parameters.
  • the system call ipconfig () can be used to identify these parameters.
  • a range of IP addresses corresponding to the IP address and Subnet Mask assigned to Module 46b are identified. Preferably, this is accomplished by masking the IP address with the Subnet Mask to identify a network address.
  • This network address is a base address upon which a range of 256 different host addresses are appended to thereby generate a range of 256 IP addresses.
  • the operations then continue to blocks B14 through block B34 to scan over the range of 256 IP addresses identified in block B12.
  • the scanning operations are skipped for the IP address assigned to module 46b and the multicast address, respectively.
  • the operations of blocks B20 through B30 are performed.
  • the operations attempt to connect to a Web server (e.g., an Appliance Web Server Module 48) at the current IP address. Because the majority of IP protocols are delivered through well-known TCP or UDP ports - for example, the HTTP Service is typically delivered through TCP port 80 - this may involve issuing an Open TCP port command at port 80 of the current IP address.
  • the operations then continue to block B22 to determine if a connection has been made. If so, the operations continue to block B24; otherwise the operations end for the current IP address and continue to block B32 to process the next IP address in the range.
  • the open connection is used to get data that identifies the connected-to device. For example, this may be accomplished by downloading the home page served by the connected-to device utilizing an HTTP GET command, or by downloading other data that identifies this device.
  • a link includes a destination anchor (i.e., a URL that is downloaded upon selection of the link) along with textual information (and/or graphical information) that is rendered when displaying the link.
  • the link generated in block B26 utilizes a reference to the home page served by the device as the destination anchor along with the title field of the home page as textual information that is rendered when displaying the link.
  • the title field of the home page can be readily obtained by parsing the downloaded home page for the ⁇ title> HTML tag.
  • the identification data obtained from the device may include a reference (such as a URL) to textual information (and/or graphical information) that is associated with the device.
  • a reference such as a URL
  • the operations of block B26 would use this reference to download this information, and integrate it into the link as the textual information (and/or graphical > information) that is rendered when displaying the link.
  • the link generated in block B26 is added to the directory Web page(s) 66 that is served by the appliance management Web server module 46b.
  • the connection to the device is closed and the operations continue at block B32 where a determination is made as to whether the last IP Address in the range has been scanned. If all the IP addresses in the range have been scanned, the scanning ends in block B32; otherwise the operations continue to block B34 and B 14 (Fig. 4A) to scan the next IP address in the range.
  • the directory Web page(s) contains a listing of links to all IP-enabled devices on the network. An exemplary directory Web page is shown in Fig. 6.
  • the scanning and link building operations of the Appliance discovery module 64a as described above with respect to blocks BIO through B34 is continuous, i.e., if the last IP address in the range has been scanned, the program returns back to block B14. This ensures that as new devices are actively coupled (e.g., plugged into) to the LAN, a corresponding entry in the directory Web page will be automatically built.
  • the embedded Web server of a given IP-enabled device may utilize a non-standard port. This may occur, for example, if the device has multiple Web servers executing therein.
  • the operations of blocks B20 may be modified to attempt to open up a connection to multiple ports on the device. In order to avoid trying to connect to all possible ports (e.g., there are 2 16 or 65,536 of them), such operations may utilize an agent that executes on the IP-enabled device to serve up the port numbers for all embedded Web servers at the particular IP address assigned to the device.
  • the auto discovery module 64a would then attempt to open up a connection to each one of these port numbers and download the prospective home page as described above.
  • the embedded Web server of a given IP-enabled device may utilize one or more security mechanisms (such as name and password) to limit access to the given IP-enabled device to only authorized users.
  • security mechanisms such as name and password
  • One scheme is to not include a link to the device in the directory Web page(s) 66. This is similar to the concept of a "hidden file" that is commonplace in most operating systems.
  • Another scheme is to save the information that provides access to the device (e.g., the user name and password) and include functionality that utilizes such stored information to automatically access the device when the corresponding link is selected, thus bypassing the security mechanism provided by the device.
  • These schemes are essentially two ends of a spectrum. There are many schemes in the middle ground, such as "graying out" the device on the list and continuing to require that users provide the required information for access.
  • the IP scanning operations can be replaced (or augmented) by a process that monitors transactions (such as BOOTP transactions and/or DHCP transactions) that typically take place when a new device is actively coupled to the LAN. Such transactions can be used to identify the IP address assigned to the new device and may minimize any delay due to the scanning operations.
  • transactions such as BOOTP transactions and/or DHCP transactions
  • the auto-discovery processes performed by a conventional DHCP server may be combined with the link building processes performed by the Appliance discovery module 64b as described above. In this case, there would be no need to separately monitor BOOTP transactions and/or separately scan IP addresses.
  • the IP scanning operations can be replaced (or augmented) by the auto-discovery processes described below with respect to Figs. 9A and 9B.
  • the auto-discovery process may utilize a central directory service (sometimes referred to as a lookup service) to which devices communicate to thereby advertise their presence on the network and possibly describe the services that they provide.
  • a central directory service is common in many modem network architectures, such as in the JiniTM Architecture as proposed by Sun Microsystems, Inc.
  • the IP NETF-001CIP PCT address, possibly the port number, and possibly a description of the services provided by a given device may be provided by the central directory service, and such information is used to automatically build the directory Web page(s) 66 served by the appliance management Web server module 64b.
  • the Appliance Management Application 62 of the present invention can also include means to deliver sophisticated services (such as voice- activated interfaces based on VoiceXML) to low cost devices to provide for quick and easy access, configuration and use of such low cost devices without requiring that such low cost devices have the significant computational resources required to support such services.
  • these sophisticated services are delivered to a low-cost device via proxy services provided by the Appliance management Web server module 64b.
  • the links that make up the directory Web page(s) 66 served by the Appliance Management Web Server 64b refer to one or more locally stored Web pages (as shown in the exemplary directory Web page of Fig. 6), which provide the necessary sophisticated services as a proxy for the given low cost device.
  • the resultant operational parameters that result from such proxy services is then communicated to the low cost device for configuration and/or use of the device.
  • FIG. 5 A illustrates the operations of the Appliance discovery module 64a that automatically discover an IP-enabled device on the LAN for which such proxy services is to be used, automatically build one or more Web pages that provide such proxy services and store such pages locally, and automatically add a link to such locally- stored Web pages to the directory Web page(s) 66 served by the Appliance Management Web Server 64b.
  • the Appliance discovery module 64a that automatically discover an IP-enabled device on the LAN for which such proxy services is to be used, automatically build one or more Web pages that provide such proxy services and store such pages locally, and automatically add a link to such locally- stored Web pages to the directory Web page(s) 66 served by the Appliance Management Web Server 64b.
  • FIG. 5B illustrates exemplary operations of the Appliance management Web server module 64b in serving the Directory Web page(s) 66 and locally-stored Web pages referenced therein to NETF-001CIP PCT enable users to access the locally stored Web pages (and the proxy services encoded therein) for quick and easy configuration of the associated IP-enabled device through the proxy services provided by the Appliance Management Web Server 64b.
  • Fig. 5 A assume that the network scanning operations of blocks BIO to B22 (or a suitable alternate discovery process) has been used to identify an IP-enabled device on the LAN and that a connection to the IP-enabled device has been opened.
  • a predetermined proxy key such as the character sequence "@@@"
  • the operations begin in block B36 wherein the connection is used to retrieve information from the IP-enabled device.
  • it is determined if the predetermined proxy key is found in the information provided by the IP-enabled device. If the proxy key is not found in block B38, the operations continue to blocks B46 and B48 as described below. However, if the proxy key is found in block B38, the operations continue to blocks B40 through B44.
  • one or more Web pages are built that provide the proxy services for the given IP-enabled device, and such Web pages are stored in local files that are accessible by the Appliance management Web server module.
  • these locally-stored Web pages are based upon a template provided by (or referred to by) Web page data supplied by the given IP-enabled device.
  • the locally-stored Web pages may be based upon additional data provided by the given IP-enabled device.
  • additional data may include the current operational settings of the device that are communicated between module 64a and the device using TFTP services that perform a GET of the current operational settings of the device.
  • a link to the locally-stored Web page(s) built in block B40 is added to the directory Web page(s) 66.
  • the link generated in block B42 utilizes a reference to the locally-stored file(s) as the destination anchor along with the title field of the home page of the device as textual information that is rendered when displaying the link.
  • the title field of the home page can be readily obtained by parsing the device's home page for the ⁇ title> HTML tag.
  • the identification data obtained from the device may include a reference (such a URL) to textual information (and/or graphical information) that is NETF-001CIP PCT associated with the device. In this case, the operations of block B42 would use this reference to download this information, and integrate it into the link as the textual information (and/or graphical information) that is rendered when displaying the link.
  • block B44 the link generated in block B42 is added to the directory Web page(s) 66 that is served by the Appliance management Web server module 46b, and the connection to the device is closed.
  • the operations then continue to blocks B33 and B34 of Fig. 4C to scan the next IP address in the range.
  • the operations continue to blocks B46 and B48.
  • the identification data obtained in block B36 is used to generate a link to the Web ⁇ age(s) served by this device.
  • the link generated in block B46 utilizes a reference to the home page served by the device as the destination anchor along with the title field of the home page as textual information that is rendered when displaying the link as described above with respect to block B26 of Fig. 4B.
  • the link generated in block B46 is added to the directory Web page(s) 66 that is served by the Appliance management Web server module 46b, and the connection to the device is closed. The operations then continue to blocks B33 and B34 of Fig. 4C to scan the next IP address in the range.
  • the scanning ends in block B32.
  • the directory Web page(s) contains a listing of links to all IP-enabled devices on the network.
  • An exemplary directory Web page is shown in Fig. 6. Note that the link for Device #3 refers to locally-stored Web pages that provide proxy services for the quick and easy configuration and use of Device #3.
  • Fig. 5B illustrates the operations of the Appliance management Web server module 64b in serving the Directory Web page(s) 66 and locally-stored Web pages referenced therein to enable users to access the locally-stored Web pages (and the proxy services encoded therein).
  • proxy services provide quick and easy configuration of the associated IP- enabled device through sophisticated services (such as voice-activated interfaces based on VoiceXML) provided by the Appliance Management Web Server 64b.
  • the operations assume that a user has requested access to the locally-stored Web pages which provide the proxy services for the device.
  • such a request may occur through user NETF-001CIP PCT interaction with the corresponding link in the directory Web page(s) 66 via a browser-based client machine or via a voice-activated interface provided by the Appliance management Web server module 64b.
  • the operations begin in block B50 to open up a connection to the embedded Web server of the device and retrieve the current operational settings of the device.
  • the current operational settings of the device can be retrieved from the device using TFTP services that perform a GET of the current operational settings of the device.
  • the locally-stored Web pages are updated with the current operational settings of the device that were retrieved in block B50, if need be.
  • the Appliance management Web server module 64b serves up the locally-stored pages (as requested) to enable update of the current operational settings of the device.
  • User interaction with the locally-stored Web pages served by module 64b may occur through user interaction with the corresponding link in the directory Web page(s) 66 via a browser-based client machine or via a voice-activated interface provided by the Appliance management Web server module 64b.
  • the proxy services related to a low cost device need not be confined to textual and graphical forms of HTTP.
  • the proxy services may build upon a voice-activated interface based upon VoiceXML that provides support for voice input (speech recognition) and voice output (speech synthesis).
  • voice input speech recognition
  • voice output speech synthesis
  • user interaction with the locally-stored VoiceXML Web page(s) occur through two-way voice communication between a telephone device and the VoiceXML interface/platform whereby the user listens to spoken prompts and jingles (speech synthesis) and provides spoken input controls (speech recognition).
  • the Appliance Management Application 62 provides these VoiceXML capabilities to a broad range of devices as an extension to the services described above.
  • VoiceXML platforms there are a large number of commercially-available VoiceXML platforms on the market today, including those distributed by VoiceGenie Technologies Inc. of Toronto, Canada, which can be used to provide VoiceXML capabilities as part of the Appliance Management Application 62.
  • NETF-001CIP PCT It is contemplated that a user might access these voice-activated services through a phone by calling a local extension number (for example, the number "100" might be a logical choice).
  • the Appliance Management Application 62 Upon receipt of the call, the Appliance Management Application 62 scans all of the Web page links listed in the directory page(s) 66 for those that contain VoiceXML commands. It then lists, through speech synthesis, the devices that support a voice interface.
  • An exemplary low cost device might be a doorbell. In this example, assume that the locally-stored VoiceXML Web page(s) for the doorbell provides a voice-activated interface to set the following operation settings:
  • the volume (e.g., levels 0 through 9);
  • the Appliance Management Application 62 delivers a greeting and asks "What chimes do you want; your choices are Riverside,". The user then responds via spoken input. The Appliance Management Application 62 then asks "What volume level do you want, your choices are a number between zero-silent and nine-loudest”. The user then responds via spoken input. As one can see, this interface is very simple and very convenient. In addition, because the Appliance Management Application 62 provides VoiceXML proxy services for the device, the device itself can use a lower cost microprocessing platform.
  • an Appliance Management applet is provided that is loaded onto a remote web server platform 72 as shown in Fig 7.
  • the Appliance Management applet is a program designed to be executed from within another suitable application, such as a web browser.
  • the application e.g., web browser application
  • the application provides supporting application logic (which can be built-in to the application or plugged-in to the application) that cooperates with the Appliance Management applet during its execution within the application.
  • Such supporting application logic preferably provides user interface features, built-in security features (e.g., which can be used for authentication of the Appliance Management applet), cross-platform support (e.g., which enables the Appliance Management applet to be executed across multiple operating system environments), and/or storage optimization features which limit the use of storage space by relying on temporary NETF-001CIP PCT storage of the Appliance Management applet.
  • the Appliance Management applet when executed from within the application (e.g., web browser application) on a computing machine coupled to a LAN (e.g., the PC system 34 of Fig. 7), provides for discovery of one or more IP-enabled devices that are actively coupled to the LAN in addition to the automatic generation and update of a directory of such devices.
  • the Appliance Management applet also provides a graphical user interface that displays this directory of such active devices and enables efficient configuration of the operational settings (e.g., configuration parameters, firmware, etc) of one or more of these devices.
  • the Appliance Management applet is persistently stored and served up by the remote web server 72 for access by LAN-based computer systems operably coupled thereto over the Internet/WAN.
  • a LAN-based computer system e.g., the browser-based Personal Computer 34
  • the LAN-based computer system stores the Appliance Management applet for execution by the LAN-based computer system.
  • Such execution provides for discovery of devices that are actively coupled to the LAN (shown in the dotted lines labeled "3" and "4") in addition to the automatic generation and update of a directory of such devices.
  • Such execution also provides a graphical user interface that displays this directory of devices on the LAN-based computer system. From this dynamically compiled list, a user can efficiently configure and/or update the operational settings of one or more of the active devices. Such updates are communicated over the LAN to the active device(s) (shown in the dotted line labeled "5") where such updates are performed internally to the active device(s).
  • the IP- enables devices on the LAN can perform a variety of functions as described above with respect to Fig. 1.
  • this system enables updates to the operational settings of IP-enabled devices on the LAN to be accomplished in a simple and straight forward manner.
  • low cost IP-enabled devices (with limited computational resources) on the LAN can take advantage of technological improvements (such as VoiceXML) that provide for quick and easy access, configuration, and use of such low cost devices; yet, because such services are provided by the appliance management logic for the device, this configuration avoids the costs and expense of adding the computational resources required to support such NETF-001CIP PCT improvements to such devices.
  • this system provides a simple and efficient mechanism for distribution and installation of software updates (such as firmware updates) for such IP-enabled devices.
  • the remote web server 72 includes a hardware platform 102 (e.g., a microprocessor and associated memory, typically realized by one or more non- volatile Flash memory modules and one or more volatile DRAM modules) and a network adapter 104 that interface to one another over a system bus 106.
  • the system bus 106 is shown as single bus; however, the system bus may be a hierarchical organization of multiple buses as is well known in the arts.
  • the hardware platform 102 may also include a hard disk drive (not shown), and/or some other form of persistent storage, and possibly other components commonly integrated into modem PC-based systems as is well known.
  • the network adapter 104 provides a bi-directional communication link to other devices coupled to the Internet/WAN, preferably via a communication link (such a wired Ethernet link) to an IP routing device as is well known in the networking arts.
  • the remote web server 72 also includes software (including an operating system kernel 108, a TCP/IP network stack 110, and a web server module 112) that is persistently stored by the hardware platform 102 (e.g., such as on a hard disk drive), and that is loaded into memory for execution by the microprocessor(s) of the hardware platform 102.
  • the web server module 112 includes an Appliance Management applet 114a and one or more web pages 114b.
  • the Appliance Management applet 114a when executed from within a suitable application (e.g., web browser application) on a computing machine coupled to a LAN (e.g., the PC system 34 of Fig.
  • the Appliance Management applet provides for discovery of one or more IP-enabled devices that are actively coupled to the LAN in addition to the automatic generation and update of a directory of such devices.
  • the Appliance Management applet also provides a graphical user interface that displays a directory of such devices and that enables efficient configuration and/or update of the operational settings of one or more of these devices.
  • the web page(s) 114b are used in conjunction with the Appliance Management applet 114a to carry out the configuration and/or update of the operational settings of the device(s) on the LAN.
  • the Appliance Management applet 114a and the web ⁇ age(s) 114b are persistently stored and served by the remote web server 72 in response to requests (which typically conform to a • NETF-001CIP PCT standard protocol such as HTTP) received at an assigned IP address and port number as is well known.
  • requests which typically conform to a • NETF-001CIP PCT standard protocol such as HTTP
  • a browser-based computing device e.g., the Personal Computer 34 of Fig. 7
  • Fig. 8B there is shown an exemplary system architecture of the LAN-based personal computer 34' with a web browser application 132 executing thereon.
  • the Appliance Management applet 114a and web pages 114b are downloaded from the remote web server 72 and stored by the LAN-based personal computer 34' for processing by the web browser 132.
  • the LAN-base personal computer 34' includes a hardware platform 122 (e.g., a microprocessor and associated memory, typically realized by one or more nonvolatile Flash memory modules and one or more volatile DRAM modules) and a network adapter 124 that interface to one another over a system bus 126.
  • a hardware platform 122 e.g., a microprocessor and associated memory, typically realized by one or more nonvolatile Flash memory modules and one or more volatile DRAM modules
  • network adapter 124 that interface to one another over a system bus 126.
  • system bus 126 is shown as a single bus; however, the system bus may be a hierarchical organization of multiple buses as is well known in the arts.
  • the hardware platform 126 may also include a hard disk drive (not shown), and/or some other form of persistent storage, and possibly other components commonly integrated into modem PC- based systems as is well known.
  • the network adapter 124 provides a bi-directional communication link to other devices coupled to the LAN (or to other devices, such as the remote web server 72, coupled to the Internet/WAN via the gateway router 26), preferably via a communication link (such a wired Ethernet link or a wireless 802.11(a) link or a wireless 802.11(b) link) to a switching device (such as a wired Ethernet switch/hub or wireless switch) as is well known in the networking arts.
  • a communication link such as a wired Ethernet link or a wireless 802.11(a) link or a wireless 802.11(b) link
  • a switching device such as a wired Ethernet switch/hub or wireless switch
  • the LAN-based computer system 34' also includes software (including an operating system kernel 128, a TCP/IP network stack 130, and the web browser application 132. Under user control, the web browser application 132 interacts with the remote web server 72 to retrieve the Appliance Management applet 114a and the web page(s) 114b served by the remote web server 72. The applet 114a and the web page(s) 114b are stored by the hardware platform 122 for processing within the web browser application.
  • the applet 114a may comprise a JAVA® applet that is executable by a Java® Virtual Machine that is part of web browser application, a .NET application that is executable within a compatible web browser NETF-001CIP PCT application, or application code that conforms to some other standard (or non-standard) interface that is supported by a web browser application.
  • the Appliance Management applet 114a discovers zero or more devices that are actively coupled to the LAN and automatically generates and update of a directory of such devices.
  • the execution of the Appliance Management applet 114a also provides a graphical user interface which displays this directory of active devices and which provides for selection of one or more of the active devices in the directory and efficient configuration of the system parameters of the selected device(s) in a simple and straightforward manner.
  • a hardware platform 132 e.g., a microprocessor and associated memory, typically realized by one or more non- volatile Flash memory modules and one or more volatile DRAM modules
  • a network adapter 134 that interface to one another over a system bus 136.
  • the system bus 136 is shown as a single bus; however, the system bus may be a hierarchical organization of multiple buses as is well known in the arts.
  • the hardware platform 136 may also include a hard disk drive (not shown), and/or some other form of persistent storage, and possibly other components commonly integrated into modem PC-based systems as is well known.
  • the network adapter 134 provides a bi-directional communication link to other devices coupled to the LAN (or possibly to other devices coupled to the Intemet/WAN via the gateway router 26), preferably via a communication link (such a wired Ethernet link or a wireless 802.11(a) link or a wireless 802.11(b) link) to a switching device (such as a wired Ethernet switch hub or wireless switch) as is well known in the networking arts.
  • the device 37" also includes software (including an operating system kernel 138, a TCP/IP network stack 140, and a network-enabled configuration module 142.
  • the network- enabled configuration module 142 cooperates with the LAN-based computer 34' during its processing of the Appliance Management applet 114a (and possibly during its processing of the web page(s) 114b) to support the appliance discovery functions and appliance configuration functions carried out by the Appliance Management applet 114a and the web page(s) 114b as described above.
  • NETF-001CIP PCT Setting up the web-based interface between the web browser 132 executing on the LAN-based client machine 34' and the remote web server 72 may involve typing in an IP address as the URL to be accessed by the Web browser, or typing in a name associated with the device as the URL.
  • such configuration typically needs to be performed only once and then saved by the user, for example, by assigning a "Favorites" name (sometimes referred to as a "Bookmark" name) to the appropriate URL of the remote web server 72.
  • FIGs. 9A and 9B there is shown a flow chart that describes the operations of the remote web server, the LAN-based computer system and the local IP- enabled device of Figs. 8 A, 8B and 8C, respectively, in communicating the Appliance Management applet from the remote web server 72 to the LAN-based computer system 34', wherein the applet is executed within the web browser application 132 to provide for automatic device discovery as well as user-friendly and efficient configuration of the operational settings of the IP-enabled device 37" over the LAN.
  • the operations begin in block B 100 whereby the remote web server 72 stores the Appliance Management applet 114a in addition to one or more web pages (or templates) 114b.
  • the Appliance Management applet 114 a provides for discovery of one or more devices that are actively coupled to the LAN in addition to the automatic generation and update of a directory of such devices.
  • the execution of the applet 114a also provides a graphical user interface that displays this directory of active devices and enables efficient configuration of the system parameters of one or more of the active devices in a simple and straightforward manner.
  • the web page(s) 114b are used in conjunction with the Appliance Management applet 114a to carry out the configuration and/or update of the system parameters of the device(s) on the LAN.
  • a user interacting with the web browser application 132 of the LAN- based computer system 34' requests one or more of the web pages from the remote web server 72. Such requests are routed over the LAN to the Gateway router 126, which forwards such requests over the Intemet/WAN to the remote web server 72.
  • the remote web server 72 receives this request (block B 104) and communicates the requested web page(s) back to the computer system 34' (block B106).
  • the computer system receives the requested web page(s) (block B108) and displays the requested web page(s) (block Bl 10).
  • the web browser application of the computer system 34' requests the downloading of the Appliance Management applet 114a from the remote web server 72 (block Bl 12). This request is routed over the LAN to the Gateway router 126, which forwards such request over the Intemet/WAN to the remote web server 72.
  • the remote web server 72 receives this request (block Bl 14) and communicates the requested appliance discovery applet 114a back to the computer system 34' (block Bl 16).
  • the computer system 34' receives the requested Appliance Management applet 114a and stores the applet locally (block Bl 18).
  • block B 120 the computer system 34' verifies that the execution of the applet has been authorized. Such verification can be accomplished by a pop-up window that requests user authorization, by matching the domain of the remote server to a list of trusted sites and/or through any other verification scheme. If the verification of Block B 120 fails, the operation ends. However, if such verification is successful, the operations continue to block B122 for execution of the Appliance Management applet 114a.
  • the Appliance Management applet 114a transmits an IP broadcast message to a predetermined IP address and port on the LAN.
  • the predetermined IP address e.g., 255.255.255.255
  • the IP broadcast message is communicated over the LAN from the computer system 36' to the device 37" (and possibly to other local devices on the LAN).
  • the network-based configuration routine 142 of the device 37" receives the IP broadcast message communicated by the LAN-based computing machine 36', and communicates a return message over the LAN to the Appliance Management applet executing on the computer 34' (block B 126).
  • the return message identifies the local address and port assigned to the configuration routine 142 of the device 37".
  • the Appliance Management applet 114a receives the return message (block B 128) and adds the local address and port number of the device 37" to a list of LAN-based devices. More than one return message may be received. Therefore, the list may include a set of local addresses and port numbers corresponding to multiple LAN-based IP-enabled devices.
  • NETF-001CIP PCT NETF-001CIP PCT
  • the Appliance Management applet 114a uses the local address and port identified in the return message to request product information (e.g., a product name, manufacturer, model number) from the configuration routine 142 of the device 37" (block B130).
  • product information e.g., a product name, manufacturer, model number
  • the configuration routine 142 receives this request (block B132) and communicates the requested information back to the Appliance Management applet 114a in one or more messages (block B 134).
  • Such data communications may utilize well known protocols, such as TFTP, HTTP, or SNMP services.
  • the Appliance Management applet 114a receives the information from the device 37" (block B136), and updates a graphical user interface displayed on the computer system 34' to display a list of LAN-based devices (block B 138).
  • This list of LAN-based devices which can be derived from a web page similar to that shown in Fig. 6, is constructed from the information provided in the message(s) received in block B136.
  • the user selects one of the LAN-based devices in the displayed list.
  • the graphical user interface displayed on the local computer 34' is updated to provide the user with the ability to specify (or update) the operational settings of the selected device.
  • the selected device is the gateway router 26
  • the graphical user interface can provide the ability to request an update to the WAN address of the router (e.g., release the current address for renewal), to update the DHCP settings supported by the device, to update the password of the device, to update the port forwarding settings of the device, or to update the firmware of the device.
  • Such operational settings are well known in modem routers.
  • the graphical user interface displayed in block 142 may display the current operational settings of the device. Such information may be retrieved from the device using any one of a number of well known data communication services, such as TFTP services that perform a GET of the current operational settings of the selected device.
  • the updates to the operational settings of the selected device are communicated over the LAN to the network-enabled configuration routine 142 of the selected device.
  • the updates may be derived from data and/or program code that is automatically retrieved from the remote web server 72 or some other network-accessible source.
  • the network-enabled configuration routine 142 of the selected device receives the updates to its operational settings, and internally updates its operational settings in accordance with the received information.
  • the Appliance Management applet is readily accessible by the execution of a well-know web browser application.
  • JAVA® applet when implemented as a JAVA® applet, it takes advantage of the features of JAVA®, including a rich user interface, built-in security features (e.g., which can be used for authentication of the applet), cross- platform support (e.g., the applet can be executed across multiple operating system environments - including Windows, Mac OS X, Linux, and Unix), and limited use of storage space by relying on temporary storage of the applet.
  • the auto-discovery functionality and device configuration functionality of the Appliance Management applet enables quick and easy access, configuration and use of one or more devices on a network. These features will contribute to wide spread acceptance of these devices by the general public.
  • the Appliance Management applet can also leverage advanced technologies (such as VoiceXML) that provide for quick and easy configuration of the LAN-based devices as described above with respect to the IP-enabled doorbell.
  • advanced technologies such as VoiceXML
  • an OEM product manufacturer or service provider of a given LAN-based device can efficiently distribute updates for the given device by updating the Appliance Management applet served by the remote web server.
  • the Appliance Management applet can be tailored for different service providers (or other entities) to convey branding information that is unique to a particular service provide, or to configure the operational settings for LAN-based devices in a manner that that is unique to a particular service provider.
  • the auto-discovery functionality and the device configuration functionality executing on the LAN-based computer can be controlled remotely by a user at a remote computer system 74 as shown in Fig. 7 utilizing well known remote control software technology (such as the remote control functionality built into Windows XP, the GotoMyPC application, and the Timbukto application).
  • the functionality of the Appliance Management applet as described above can be extended (or modified) to provide proxy services for interaction with the IP-enabled devices on the LAN during use of such IP-enabled devices.
  • the applet can generate a directory of contact information (e.g., similar to that provided in NETF-001CIP PCT modem personal information management applications). User interaction with the directory triggers interaction with an IP-enabled telephony device on the LAN to dial one of the numbers listed in the directory.
  • the applet can provide for call transfer between telephones on the LAN.

Abstract

A network-based (figure 1) appliance management mechanism (figure 1, #36) performs operations (figure 4A) that automatically discover IP-enabled devices (figure 4A, #B14) that are operably coupled to a local area network (figure 3, #54) and that automatically generate a graphical user interface depicting a directory of such devices (figure 3, #66). A user interacts with the graphical user interface (figure 9A, #B112) to select one (or more) of such devices (figure 3, #62) and to update the operational settings of the selected device(s) (figure 9B, #B144). The appliance management mechanism (or portions thereof) may be implemented as part of an applet (figure 8B, #144a) that is downloaded from a remote web server (figure 9A, #B118). Alternatively, it can be part of a web-based application/server that is accessible to computing devices on the local area network (figure 7, #34). The operations supported by the network-based mechanism can act as a proxy for the selected device in carrying out advanced configuration services and other services requiring interaction with the device (figure 5A, #B38).

Description

NETF-001CIP PCT NETWORK-ENABLED SOFTWARE LOGIC PROVIDING DISCOVERY AND CONFIGURATION OF NETWORK APPLIANCES COUPLED TO A LAN
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates broadly to the management and configuration of network appliances. More particularly, this invention relates to network-enabled mechanisms for configuration of network appliances coupled to a Local Area Network.
2. State of the Art
Although the Internet has been in place since the 1970s, it was not widely used by the general public until the mid 1990s. This can be attributed to the development of the World Wide Web and the Web browsers (e.g., from NSCA Mosaic to the currently popular Netscape Communication and Microsoft Internet Explorer) combined with graphically oriented operating systems, which make accessing the World Wide Web sufficiently easy to do, productive and even fun. The World Wide Web has now become an important part of our everyday life. More specifically, e-mail and now instant messaging are technologies that rely on the World Wide Web to provide mechanisms widely used for business and personal communication. In addition, Web-based e-commerce has become an important part of the retail chain and the supply chain of many modern businesses.
It has taken an enormous amount of time, effort and investment to take what was in the beginning highly complex application software that few could use, and transform it into something that everyday non- technical members of the general public find straightforward. Yet, as impressive as the impact of the World Wide Web and its technologies has been to date, the practical applications of this technology extends way beyond its current uses. For example, it is widely predicted that one will see the introduction of a rapidly increasing number of Internet-enabled devices (usually called IP-enabled devices) into homes and workplaces. Fig. 1 illustrates examples of such IP-enabled devices, including one or more IP telephony devices (such as an IP-enabled telephone, IP-enabled answering machine or IP- enabled voice router) 12, an HVAC control system 14 (such as a heating and/or air NETF-001CIP PCT conditioning system), one or more access control devices 16 (such as a door locks, gate and door bell), an irrigation control system 18, a lighting control system 20, audio/video components 22 (such as a television, home theatre unit, home stereo unit, entertainment system, etc), an electrical power supply component 24 (such as power management controller, power conditioning system, UPS system, etc), a gateway router 26 that provides a communication interface to the Internet and/or a wide area network (WAN), a home security control system 28, an IP-enabled storage device 30 that provides storage of data, one or more IP-enabled computer peripherals 32 (such as a printer, plotter, scanner, fax), a networked personal computer system 34 that has a web browser application installed thereon, a health monitoring system (not shown), and possibly other devices. These IP-enabled devices are networked together over the local area network (LAN), which is typically realized by a star topology whereby communication links (such as wired Ethernet links or wireless RF links) couple the IP-enabled devices to one another through one or more central networking elements (such as a switch or hub). For the introduction of these IP-enabled devices to be widely successful, it is necessary that the ease of use and configuration of such IP-enable devices be comparable to that which is enjoyed today with e-mail clients and browser clients.
The current generation of IP-enabled devices (such as IP-enabled telephony phones, gateway routers, and some high-end printers) include Web server software that executes on an embedded microprocessor. The Web server software supports standardized protocols (such as HTTP) that enable the transfer of data between the device and a Web browser client machine (e.g., the PC 34 executing a Web Browser such as Microsoft Internet Explorer as shown in Fig. 1). This Web-based interface is typically used to configure and/or update the operational settings of the device as follows. First, the current operational settings of the device are encoded in a Web page that is served to the Web browser client machine. Second, the Web browser client machine displays the current operational settings using a variety of rich textual and graphical means, and identifies requested updates to the current operational settings in response to user input commands. Finally, these requested updates are communicated back to the Web server software, which takes actions to implement the requested updates to the operational settings of the device.
Fig. 2 illustrates an exemplary system architecture of a Web server embedded within an IP-enabled device 37. The IP-enabled device 37 can be any one of the devices shown in NETF-001CIP PCT Fig. 1, including the IP telephony device 12, HVAC system 14, access control devices 16, etc. The embedded Web server includes a hardware platform 38 (e.g., a microprocessor and associated memory, typically realized by one or more non- volatile Flash memory modules and one or more volatile DRAM modules) and a network adapter 40 that interface to one another over a system bus 42. For simplicity of illustration, the system bus 42 is shown as single bus; however, the system bus may be a hierarchical organization of multiple buses as is well known in the arts. The hardware platform may also include a hard disk drive (not shown), and/or some other form of persistent storage, as is well known. The network adapter 40 provides a bi-directional communication link to other devices coupled to the LAN, preferably via a communication link (such a wired Ethernet link or a wireless 802.11(a) link or a wireless 802.11(b) link) to a switching device (such as a wired Ethernet switch/hub or wireless switch) as is well known in the networking arts.
The embedded Web server also includes software (including an operating system kernel 44, a TCP/IP network stack 46, and an Appliance Web Server Module 48) that is persistently stored by the hardware platform 38 (e.g., such as in flash memory or on a hard disk drive), and that is loaded into memory for execution by the microprocessor(s) of the hardware platform 38. When executing on the hardware platform, the Appliance Web Server Module 48 serves up one or more Web pages 50 that are persistently stored by the hardware platform 38 (e.g., such as in flash memory or on a hard disk drive) in response to requests (which typically conform to a standard protocol such as HTTP) received at an assigned IP address and port number as is well known. A browser-based client machine communicates with the Appliance Web Server Module 48 over the LAN to access and interact with the Web pages 50 to provide for the update of various system parameters of the IP-enabled appliance 37 by the browser-based client machine, which thereby enables configuration of the IP- enabled appliance 37.
Setting up the Web-based interface between the Web browser executing on the client machine and the embedded Web server of the IP-enabled device typically involves typing in an IP address (which may be a default static IP address or a dynamic IP address assigned by a DHCP server) as the Uniform Resource Locator (URL) to be accessed by the Web browser, or by typing in a name associated with the device as the URL. Typing in the name requires the configuration of a Domain Name Service (DNS) server that operates to translate the name NETF-001CIP PCT to the IP address assigned to the device. These mechanisms are suitable for technical experts. However, they are much too complex for non-technical users, and thus are unsuitable for wide spread acceptance by the general public.
Thus, there remains a need in the art for a Web-based mechanism that provides for simple and efficient access to the Web server executing on an IP-enabled device such that non-technical users can configure and use the IP-enabled device, thereby enabling widespread acceptance of the IP-enabled device by the general public.
In order to minimize the costs of such IP-enabled devices, it is common to utilize lower cost microprocessor platforms to realize the Web server functionality embedded in the IP-enabled device. Although such cost savings can be passed along to the consumer, the limited computational resources and memory provided by a lower cost microprocessor platform can limit the ability of the embedded Web server to take advantage of technological improvements that would make configuration of the IP-enabled device easier. An example of such a technological improvement is VoiceXML, which is an extensible markup language (XML) that has been extended to include speech synthesis and speech recognition. With VoiceXML, users can now use a phone or similar audio device to interact with a web page instead of the traditional keyboard and screen. The functionality required to provide the voice-enabled services specified by a Web page written in VoiceXML, including the logic that executes the commands specified by the VoiceXML Web page in addition to the required speech processing capabilities (e.g., speech recognition, text-to-speech, voice authentication) is provided by a VoiceXML platform. There are a large number of commercially-available VoiceXML platforms on the market today. Indeed, Microsoft is bundling this functionality with the latest releases of Windows XP Server, there are also many third party distributions such as those distributed by VoiceGenie Technologies Inc. of Toronto, Canada. However, these VoiceXML platforms require a large amount of computational resources and memory, and thus cannot be effectively realized on a low cost microprocessor platform embedded within an IP-enabled device.
Thus, there remains a need in the art for a mechanism that allows an IP-enabled device realized with a low cost microprocessor platform to take advantage of technological improvements (such as VoiceXML) that make it easier to access and configure the IP- NETF-001CIP PCT enabled device, thereby retaining the cost advantages of the low cost microprocessor platform.
Another complex and computationally demanding area is security. As more and more individuals and service providers employ IP for everyday services and remote access, it becomes essential that these communications are secure. This is another example of a service or facility that is best off loaded from the embedded device.
SUMMARY OF THE INVENTION
It is therefore an object of the invention to provide a network-enabled mechanism that provides for simple and efficient access to configuration parameters of an IP-enabled device such that non-technical users can configure and use the IP-enabled device.
It is a further object of the invention to provide a network-enabled mechanism that automatically discovers one or more IP-enabled devices on a network and automatically builds a directory of these devices.
It is a further object of the invention to provide such a network-enabled mechanism that enables a user to easily and efficiently select a device from the directory of devices and configure the operational parameters of the selected device.
It is another object of the invention to enable a wide variety of IP-enabled devices that are realized with a low cost microprocessor platform which take advantage of technological improvements (such as VoiceXML) that make it easier to access and configure such IP- enabled devices, thereby retaining the cost advantages of the low cost microprocessor platform.
It is a further object of the invention to provide a network-enabled mechanism that automatically discovers IP-enabled devices on a network for which proxy services are to be used, that supplies Web pages that provide such proxy services, and that provides for user- interaction with such Web pages.
It is still another object of the invention to provide a network-enabled mechanism that interacts with a remote server to download software logic for discovering IP-enabled devices on a network and for automatically building a directory of these devices. NETF-001CIP PCT
It is a further object of the invention to provide such a network-enabled mechanism that enables a user to easily and efficiently select a device from the directory of devices and configure the operational parameters of the selected device.
In accord with these objects, which will be discussed in detail below, a network-based appliance management mechanism performs operations that automatically discover IP- enabled devices that are operably coupled to a local area network and that automatically generate a graphical user interface depicting a directory of such devices. A user interacts with the graphical user interface to select one (or more) of such devices and to update the operational settings of the selected device(s). The operations supported by the network-based mechanism can act as a proxy for the selected device in carrying out advanced configuration services as well as other services that require interaction with the device.
According to one embodiment, the appliance management mechanism (or portions thereof) may be implemented as part of an applet that is downloaded from a remote web server.
According to another embodiment, the appliance management mechanism may be implemented as part of a web-based application/server that is accessible to computing devices on the local area network. In this configuration, it is preferable that the device directory includes one or more links that enable the user to easily and efficiently access the Web page(s) associated with the IP-enabled devices on the local area network. These Web pages provide for Web-based configuration and use of such IP-enabled devices.
Additional objects and advantages of the invention will become apparent to those skilled in the art upon reference to the detailed description taken in conjunction with the provided figures.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 is a schematic illustration of a LAN with various IP-enabled devices coupled thereto.
Fig. 2 is a functional block diagram of an exemplary prior art IP-enabled device having a Web server module embedded therein. NETF-001CIP PCT
Fig. 3 is a functional block diagram of an exemplary computing system that embodies the appliance management application in accordance with the present invention, and which includes an appliance discovery module and an appliance management Web server module.
Figs. 4A, 4B and 4C together provide a flow chart illustrating the operations of the appliance discovery module of Fig. 3 in automatically discovering IP-enabled devices on the LAN and automatically building the directory Web page.
Fig. 5 A is a flow chart illustrating extensions to the operations of the appliance discovery module of Fig. 3 that support proxy services associated with a given device.
Fig. 5B is a flow chart illustrating extensions to the appliance management Web server module of Fig. 3 that support exemplary proxy services associated with a given device that enable update of the operational settings of the given device.
Fig. 6 is a pictorial illustration of an exemplary directory Web page that is generated by the operations of Figs. 4A through 4C and Fig. 5 A.
Fig. 7 is a schematic illustration of a LAN with various IP-enabled devices coupled thereto in addition to a gateway connection to a WAN/Internet and a remote web server that supports management of one or more of the IP-enabled devices on the LAN.
Fig. 8A is a functional block diagram of an exemplary remote web server that embodies an Appliance Management applet in accordance with the present invention.
Fig. 8B is a functional block of a local computing system that is operably coupled to a LAN, wherein the local computing system includes a web browser that is controlled to retrieve the Appliance Management applet from the remote web server of Fig. 8 A and to execute the Appliance Management applet in accordance with the present invention.
Fig. 8C is a functional block of an IP-enabled device that is operably coupled to a LAN, wherein the device includes a network-enabled routine that cooperates with the web browser of the local computer system of Fig. 8B to provide for user-friendly and efficient configuration of the system parameters of the device over the LAN.
Figs. 9A and 9B, together, are a flow chart that describes the operations of the remote web server, the local computer system and the local IP-enabled device of Figs. 8A, 8B and 8C, respectively, in communicating the Appliance Management applet from the remote web server to the local web server where the Appliance Management applet is used to provide for NETF-001CIP PCT user-friendly and efficient configuration of the system parameters of the device over the LAN.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
In accordance with the present invention, an appliance management application (described in more detail hereinafter with reference to Figs. 3 through 5B) is provided that is loaded onto a networked computer system 36 operably coupled to a LAN as shown in Fig 1. The appliance management application provides for automatic discovery of devices that are actively coupled to the LAN in addition to the automatic generation and update of a directory Web page. The directory Web page (an example of which is shown in Fig. 6) provides a link to one or more Web pages associated with each discovered device. The directory Web page is persistently stored and served up by the appliance management application for access by a browser-based client machine operably coupled thereto over the LAN. The browser-based client machine (e.g., the Personal Computer 34 of Fig. 1) accesses and interacts with the directory Web page, whose links enable the user to easily and efficiently access the Web page(s) associated with the active devices on the network. In this manner, the appliance management application provides a dynamically compiled list of the active devices on the LAN. From this dynamically compiled list, a user can be redirected to one or more Web pages associated with a given device in a simple straightforward manner.
As shown in Fig. 6, a link that makes up the directory Web page may refer to one or more Web pages served by a Web server embedded in given device. Alternatively, such link may refer to one or more locally-stored Web pages that provide proxy services for the given device. This configuration allows low cost devices (with limited computational resources) to take advantage of technological improvements (such as VoiceXML) that provide for quick and easy access, configuration, and use of such low cost devices; yet, because such services are provided by the appliance management application as a proxy for the device, this configuration avoids the costs and expense of adding the computational resources to such devices required to support such improvements.
Turning now to Fig. 3, there is shown an exemplary system architecture of the appliance management application loaded onto a computing system 36'. The computing system 36' includes a hardware platform 52 (e.g., a microprocessor and associated memory, NETF-001CIP PCT typically realized by one or more non- volatile Flash memory modules and one or more volatile DRAM modules) and a network adapter 54 that interface to one another over a system bus 56. For simplicity of illustration, the system bus 56 is shown as a single bus; however, the system bus may be a hierarchical organization of multiple buses as is well known in the arts. The hardware platform 52 may also include a hard disk drive (not shown), and/or some other form of persistent storage, and possibly other components commonly integrated into modern PC-based systems as is well known. The network adapter 54 provides a bi-directional communication link to other devices coupled to the LAN, preferably via a communication link (such a wired Ethernet link or a wireless 802.11(a) link or a wireless 802.11(b) link) to a switching device (such as a wired Ethernet switch/hub or wireless switch) as is well known in the networking arts.
The computer system 36' also includes software (including an operating system kernel 58, a TCP/IP network stack 60, and the appliance management application 62) that is persistently stored by the hardware platform 52 (e.g., such as on a hard disk drive), and that is loaded into memory for execution by the microprocessor(s) of the hardware platform 52.
The appliance management application 62 includes an appliance discovery module 64a and an appliance management Web server module 64b. When executing on the hardware platform, the appliance discovery module 64a operates to automatically discover devices that are actively coupled to the LAN. In addition, appliance discovery module 64a operates to automatically generate, update, and persistently store (for example, on the hard disk drive of the hardware platform 52) a directory Web page 66. As described above, the directory Web page (an example of which is shown in Fig. 6) provides a link to one or more Web pages associated with each given discovered device. The directory Web page 66 is then served up by Appliance management Web server module 64b in response to requests (which typically conform to a standard protocol such as HTTP) received at an assigned IP address and port number as is well known. A browser-based client machine (e.g., the Personal Computer 34 of Fig. 1) communicates with the appliance management Web server module 64b over the LAN to access and interact with the directory Web page 66 served by module 64b, whose links enable the user to easily and efficiently access the Web page(s) associated with the active devices on the network. NETF-001CIP PCT
Setting up the Web-based interface between the Web browser executing on the client machine and the Appliance management Web server module 64b may involve typing in an IP address (which may be a default static IP address or a dynamic IP address assigned by a DHCP server) as the URL to be accessed by the Web browser, or by typing in a name associated with the device as the URL. However, such configuration typically needs to be performed only once and then saved by the user, for example, by assigning a "Favorites" name (sometimes referred to as a "Bookmark" name) to the appropriate URL of the Appliance management Web server module 64b.
Advantageously, the Appliance Management Application 62 provides a dynamically compiled list of the active devices on the LAN. From this dynamically compiled list, a user can select and be redirected to one or more Web pages associated with a given device in a simple straightforward manner. These features enable quick and easy access, configuration and use of the devices active on a network, and thereby contributes to wide-spread acceptance of these devices by the general public.
Turning now to Figs. 4A through 4C, there is shown a flow chart illustrating exemplary operations carried out by the Appliance discovery module 64a of Fig. 3. Such operations automatically scan over a range of IP addresses to automatically discover active devices on the LAN. When a connection is made to a given active device, data that identifies the given active device ("identification data") is retrieved from a Web page served by the given active device. Such identification data is then used to generate a link to a Web page served by the given active device, and this new link is added to the directory Web page 66. An IP address includes a network address (e.g., 192.168.1) followed by a host address. The length of the network address and host address is defined by a subnet mask (e.g., a subnet mask of 255.255.255.0 defines a 24-bit network address and an 8-bit host address). In the majority of local area networks, the devices on the local area network share the same network address. The exemplary scanning operations of Figs. 4A - 4C take advantage of this fact to scan only 254 host addresses (e.g., the 256 identified by the range of an 8-bit host address less the IP address assigned to module 46b and less the multicast IP address).
The operations begin in block BIO whereby the IP address and Subnet mask assigned to the Appliance management Web server module 46b are identified. This is achieved by interrogating the operating system. In a UNIX-based system, the system call ifconfig () can NETF-001CIP PCT be used to identify these parameters. In a Windows-based system, the system call ipconfig () can be used to identify these parameters. In block B 12, a range of IP addresses corresponding to the IP address and Subnet Mask assigned to Module 46b are identified. Preferably, this is accomplished by masking the IP address with the Subnet Mask to identify a network address. This network address is a base address upon which a range of 256 different host addresses are appended to thereby generate a range of 256 IP addresses. The operations then continue to blocks B14 through block B34 to scan over the range of 256 IP addresses identified in block B12. In block B16 and block B18, the scanning operations are skipped for the IP address assigned to module 46b and the multicast address, respectively. At each of the other 254 IP addresses (referred to as the "current IP address"), the operations of blocks B20 through B30 are performed.
In block B20, the operations attempt to connect to a Web server (e.g., an Appliance Web Server Module 48) at the current IP address. Because the majority of IP protocols are delivered through well-known TCP or UDP ports - for example, the HTTP Service is typically delivered through TCP port 80 - this may involve issuing an Open TCP port command at port 80 of the current IP address. The operations then continue to block B22 to determine if a connection has been made. If so, the operations continue to block B24; otherwise the operations end for the current IP address and continue to block B32 to process the next IP address in the range.
In block B24, the open connection is used to get data that identifies the connected-to device. For example, this may be accomplished by downloading the home page served by the connected-to device utilizing an HTTP GET command, or by downloading other data that identifies this device.
In block B26, the identification data obtained in block B24 is used to generate a link to the Web page(s) served by this device. As is well known, a link includes a destination anchor (i.e., a URL that is downloaded upon selection of the link) along with textual information (and/or graphical information) that is rendered when displaying the link. Preferably, the link generated in block B26 utilizes a reference to the home page served by the device as the destination anchor along with the title field of the home page as textual information that is rendered when displaying the link. The title field of the home page can be readily obtained by parsing the downloaded home page for the <title> HTML tag. NETF-001CIP PCT Alternatively, the identification data obtained from the device may include a reference (such as a URL) to textual information (and/or graphical information) that is associated with the device. In this case, the operations of block B26 would use this reference to download this information, and integrate it into the link as the textual information (and/or graphical > information) that is rendered when displaying the link.
In block B28, the link generated in block B26 is added to the directory Web page(s) 66 that is served by the appliance management Web server module 46b. In block B30, the connection to the device is closed and the operations continue at block B32 where a determination is made as to whether the last IP Address in the range has been scanned. If all the IP addresses in the range have been scanned, the scanning ends in block B32; otherwise the operations continue to block B34 and B 14 (Fig. 4A) to scan the next IP address in the range. When the scanning operation ends in block B32, the directory Web page(s) contains a listing of links to all IP-enabled devices on the network. An exemplary directory Web page is shown in Fig. 6.
Preferably, the scanning and link building operations of the Appliance discovery module 64a as described above with respect to blocks BIO through B34 is continuous, i.e., if the last IP address in the range has been scanned, the program returns back to block B14. This ensures that as new devices are actively coupled (e.g., plugged into) to the LAN, a corresponding entry in the directory Web page will be automatically built.
Note that during the network scanning operations of blocks BIO to B34, the embedded Web server of a given IP-enabled device may utilize a non-standard port. This may occur, for example, if the device has multiple Web servers executing therein. In this case, the operations of blocks B20 may be modified to attempt to open up a connection to multiple ports on the device. In order to avoid trying to connect to all possible ports (e.g., there are 216 or 65,536 of them), such operations may utilize an agent that executes on the IP-enabled device to serve up the port numbers for all embedded Web servers at the particular IP address assigned to the device. The auto discovery module 64a would then attempt to open up a connection to each one of these port numbers and download the prospective home page as described above. If failure to successfully open up a connection to an IP-enabled device becomes protracted, a connection attempt be made to all possible ports; NETF-001CIP PCT however, once discovered, the port numbers are saved and used for future access to the embedded Web server(s) of the device.
Also note that during the network scanning operations of blocks BIO to B34, the embedded Web server of a given IP-enabled device may utilize one or more security mechanisms (such as name and password) to limit access to the given IP-enabled device to only authorized users. There are many possible schemes to deal with such devices. One scheme is to not include a link to the device in the directory Web page(s) 66. This is similar to the concept of a "hidden file" that is commonplace in most operating systems. Another scheme is to save the information that provides access to the device (e.g., the user name and password) and include functionality that utilizes such stored information to automatically access the device when the corresponding link is selected, thus bypassing the security mechanism provided by the device. These schemes are essentially two ends of a spectrum. There are many schemes in the middle ground, such as "graying out" the device on the list and continuing to require that users provide the required information for access.
In alternate embodiments, the IP scanning operations can be replaced (or augmented) by a process that monitors transactions (such as BOOTP transactions and/or DHCP transactions) that typically take place when a new device is actively coupled to the LAN. Such transactions can be used to identify the IP address assigned to the new device and may minimize any delay due to the scanning operations.
In yet another alternative embodiment, the auto-discovery processes performed by a conventional DHCP server may be combined with the link building processes performed by the Appliance discovery module 64b as described above. In this case, there would be no need to separately monitor BOOTP transactions and/or separately scan IP addresses.
In yet another alternative embodiment, the IP scanning operations can be replaced (or augmented) by the auto-discovery processes described below with respect to Figs. 9A and 9B.
In yet other embodiments, the auto-discovery process may utilize a central directory service (sometimes referred to as a lookup service) to which devices communicate to thereby advertise their presence on the network and possibly describe the services that they provide. Such a central directory service is common in many modem network architectures, such as in the Jini™ Architecture as proposed by Sun Microsystems, Inc. In this embodiment, the IP NETF-001CIP PCT address, possibly the port number, and possibly a description of the services provided by a given device may be provided by the central directory service, and such information is used to automatically build the directory Web page(s) 66 served by the appliance management Web server module 64b.
Having described an Application Management Application 62 with means for automatic discovering of IP-enabled devices that are actively coupled to an LAN and means for automatic building of a directory of devices such that users need not remember the IP addresses of such devices or otherwise be technically aware of the underlying technical complexity of interfacing to such devices, the Appliance Management Application 62 of the present invention can also include means to deliver sophisticated services (such as voice- activated interfaces based on VoiceXML) to low cost devices to provide for quick and easy access, configuration and use of such low cost devices without requiring that such low cost devices have the significant computational resources required to support such services. In accordance with the present invention, these sophisticated services are delivered to a low-cost device via proxy services provided by the Appliance management Web server module 64b. In this configuration, the links that make up the directory Web page(s) 66 served by the Appliance Management Web Server 64b refer to one or more locally stored Web pages (as shown in the exemplary directory Web page of Fig. 6), which provide the necessary sophisticated services as a proxy for the given low cost device. The resultant operational parameters that result from such proxy services is then communicated to the low cost device for configuration and/or use of the device.
Turning now to Figs. 5 A and 5B, there are shown flow charts illustrating exemplary operations carried out by the modules 64a and 64b of Fig. 3 which provide sophisticated proxy services that enable quick and easy configuration and use of a low cost IP-enabled device. Fig. 5 A illustrates the operations of the Appliance discovery module 64a that automatically discover an IP-enabled device on the LAN for which such proxy services is to be used, automatically build one or more Web pages that provide such proxy services and store such pages locally, and automatically add a link to such locally- stored Web pages to the directory Web page(s) 66 served by the Appliance Management Web Server 64b. Fig. 5B illustrates exemplary operations of the Appliance management Web server module 64b in serving the Directory Web page(s) 66 and locally-stored Web pages referenced therein to NETF-001CIP PCT enable users to access the locally stored Web pages (and the proxy services encoded therein) for quick and easy configuration of the associated IP-enabled device through the proxy services provided by the Appliance Management Web Server 64b.
The operations of Fig. 5 A assume that the network scanning operations of blocks BIO to B22 (or a suitable alternate discovery process) has been used to identify an IP-enabled device on the LAN and that a connection to the IP-enabled device has been opened. In addition, the operations assume that a predetermined proxy key (such as the character sequence "@@@") is to be supplied by the IP-enabled device to the Appliance discovery module 64a to thereby provide an indication that proxy services should be provided for this device. The operations begin in block B36 wherein the connection is used to retrieve information from the IP-enabled device. In block B38, it is determined if the predetermined proxy key is found in the information provided by the IP-enabled device. If the proxy key is not found in block B38, the operations continue to blocks B46 and B48 as described below. However, if the proxy key is found in block B38, the operations continue to blocks B40 through B44.
In block B40, one or more Web pages are built that provide the proxy services for the given IP-enabled device, and such Web pages are stored in local files that are accessible by the Appliance management Web server module. Preferably, these locally-stored Web pages are based upon a template provided by (or referred to by) Web page data supplied by the given IP-enabled device. In addition, the locally-stored Web pages may be based upon additional data provided by the given IP-enabled device. For example, such additional data may include the current operational settings of the device that are communicated between module 64a and the device using TFTP services that perform a GET of the current operational settings of the device.
In block B42, a link to the locally-stored Web page(s) built in block B40 is added to the directory Web page(s) 66. Preferably, the link generated in block B42 utilizes a reference to the locally-stored file(s) as the destination anchor along with the title field of the home page of the device as textual information that is rendered when displaying the link. The title field of the home page can be readily obtained by parsing the device's home page for the <title> HTML tag. Alternatively, the identification data obtained from the device may include a reference (such a URL) to textual information (and/or graphical information) that is NETF-001CIP PCT associated with the device. In this case, the operations of block B42 would use this reference to download this information, and integrate it into the link as the textual information (and/or graphical information) that is rendered when displaying the link.
In block B44, the link generated in block B42 is added to the directory Web page(s) 66 that is served by the Appliance management Web server module 46b, and the connection to the device is closed. The operations then continue to blocks B33 and B34 of Fig. 4C to scan the next IP address in the range.
If the proxy key is not found in block B38, the operations continue to blocks B46 and B48. In block B46, the identification data obtained in block B36 is used to generate a link to the Web ρage(s) served by this device. Preferably, the link generated in block B46 utilizes a reference to the home page served by the device as the destination anchor along with the title field of the home page as textual information that is rendered when displaying the link as described above with respect to block B26 of Fig. 4B. In block B48, the link generated in block B46 is added to the directory Web page(s) 66 that is served by the Appliance management Web server module 46b, and the connection to the device is closed. The operations then continue to blocks B33 and B34 of Fig. 4C to scan the next IP address in the range.
As described above with respect to the flow charts of Fig. 4A - 4C, if all the IP addresses in the range have been scanned, the scanning ends in block B32. At this point, the directory Web page(s) contains a listing of links to all IP-enabled devices on the network. An exemplary directory Web page is shown in Fig. 6. Note that the link for Device #3 refers to locally-stored Web pages that provide proxy services for the quick and easy configuration and use of Device #3.
Fig. 5B illustrates the operations of the Appliance management Web server module 64b in serving the Directory Web page(s) 66 and locally-stored Web pages referenced therein to enable users to access the locally-stored Web pages (and the proxy services encoded therein). Such proxy services provide quick and easy configuration of the associated IP- enabled device through sophisticated services (such as voice-activated interfaces based on VoiceXML) provided by the Appliance Management Web Server 64b. The operations assume that a user has requested access to the locally-stored Web pages which provide the proxy services for the device. For example, such a request may occur through user NETF-001CIP PCT interaction with the corresponding link in the directory Web page(s) 66 via a browser-based client machine or via a voice-activated interface provided by the Appliance management Web server module 64b. The operations begin in block B50 to open up a connection to the embedded Web server of the device and retrieve the current operational settings of the device. For example, the current operational settings of the device can be retrieved from the device using TFTP services that perform a GET of the current operational settings of the device.
In block B52, the locally-stored Web pages are updated with the current operational settings of the device that were retrieved in block B50, if need be.
In block B54, the Appliance management Web server module 64b serves up the locally-stored pages (as requested) to enable update of the current operational settings of the device. User interaction with the locally-stored Web pages served by module 64b may occur through user interaction with the corresponding link in the directory Web page(s) 66 via a browser-based client machine or via a voice-activated interface provided by the Appliance management Web server module 64b.
Finally, in block B56, the updates to the current operational settings (as provided by the proxy services performed in block B54) are communicated to the device (for example, using a CGI program) and the connection to the device is closed.
Note that the proxy services related to a low cost device need not be confined to textual and graphical forms of HTTP. For example, the proxy services may build upon a voice-activated interface based upon VoiceXML that provides support for voice input (speech recognition) and voice output (speech synthesis). In this configuration, user interaction with the locally-stored VoiceXML Web page(s) occur through two-way voice communication between a telephone device and the VoiceXML interface/platform whereby the user listens to spoken prompts and jingles (speech synthesis) and provides spoken input controls (speech recognition). Preferably, the Appliance Management Application 62 provides these VoiceXML capabilities to a broad range of devices as an extension to the services described above. There are a large number of commercially-available VoiceXML platforms on the market today, including those distributed by VoiceGenie Technologies Inc. of Toronto, Canada, which can be used to provide VoiceXML capabilities as part of the Appliance Management Application 62. NETF-001CIP PCT It is contemplated that a user might access these voice-activated services through a phone by calling a local extension number (for example, the number "100" might be a logical choice). Upon receipt of the call, the Appliance Management Application 62 scans all of the Web page links listed in the directory page(s) 66 for those that contain VoiceXML commands. It then lists, through speech synthesis, the devices that support a voice interface. An exemplary low cost device might be a doorbell. In this example, assume that the locally-stored VoiceXML Web page(s) for the doorbell provides a voice-activated interface to set the following operation settings:
- the type of chime (melody selection, e.g. Westminster);
- the volume (e.g., levels 0 through 9);
- start time and end time for a do-not-disturb period
(typically used to prevent people from waking you up at night). In this case, when the user requests access to the doorbell, the Appliance Management Application 62 delivers a greeting and asks "What chimes do you want; your choices are Westminster,...". The user then responds via spoken input. The Appliance Management Application 62 then asks "What volume level do you want, your choices are a number between zero-silent and nine-loudest". The user then responds via spoken input. As one can see, this interface is very simple and very convenient. In addition, because the Appliance Management Application 62 provides VoiceXML proxy services for the device, the device itself can use a lower cost microprocessing platform.
In another embodiment of the present invention, an Appliance Management applet is provided that is loaded onto a remote web server platform 72 as shown in Fig 7. The Appliance Management applet is a program designed to be executed from within another suitable application, such as a web browser. The application (e.g., web browser application) provides supporting application logic (which can be built-in to the application or plugged-in to the application) that cooperates with the Appliance Management applet during its execution within the application. Such supporting application logic preferably provides user interface features, built-in security features (e.g., which can be used for authentication of the Appliance Management applet), cross-platform support (e.g., which enables the Appliance Management applet to be executed across multiple operating system environments), and/or storage optimization features which limit the use of storage space by relying on temporary NETF-001CIP PCT storage of the Appliance Management applet. The Appliance Management applet, when executed from within the application (e.g., web browser application) on a computing machine coupled to a LAN (e.g., the PC system 34 of Fig. 7), provides for discovery of one or more IP-enabled devices that are actively coupled to the LAN in addition to the automatic generation and update of a directory of such devices. The Appliance Management applet also provides a graphical user interface that displays this directory of such active devices and enables efficient configuration of the operational settings (e.g., configuration parameters, firmware, etc) of one or more of these devices. The Appliance Management applet is persistently stored and served up by the remote web server 72 for access by LAN-based computer systems operably coupled thereto over the Internet/WAN. A LAN-based computer system (e.g., the browser-based Personal Computer 34) accesses the remote web server 72 over its LAN and Internet/WAN (shown in the dotted line labeled " 1 ") to retrieve the Appliance Management applet served by the web server 36 (shown in the dotted line labeled "2"). The LAN-based computer system stores the Appliance Management applet for execution by the LAN-based computer system. Such execution provides for discovery of devices that are actively coupled to the LAN (shown in the dotted lines labeled "3" and "4") in addition to the automatic generation and update of a directory of such devices. Such execution also provides a graphical user interface that displays this directory of devices on the LAN-based computer system. From this dynamically compiled list, a user can efficiently configure and/or update the operational settings of one or more of the active devices. Such updates are communicated over the LAN to the active device(s) (shown in the dotted line labeled "5") where such updates are performed internally to the active device(s). The IP- enables devices on the LAN can perform a variety of functions as described above with respect to Fig. 1.
Advantageously, this system enables updates to the operational settings of IP-enabled devices on the LAN to be accomplished in a simple and straight forward manner. In addition, low cost IP-enabled devices (with limited computational resources) on the LAN can take advantage of technological improvements (such as VoiceXML) that provide for quick and easy access, configuration, and use of such low cost devices; yet, because such services are provided by the appliance management logic for the device, this configuration avoids the costs and expense of adding the computational resources required to support such NETF-001CIP PCT improvements to such devices. In addition, this system provides a simple and efficient mechanism for distribution and installation of software updates (such as firmware updates) for such IP-enabled devices.
Turning now to Fig. 8 A, there is shown an exemplary system architecture of the remote web server 72. The remote web server 72 includes a hardware platform 102 (e.g., a microprocessor and associated memory, typically realized by one or more non- volatile Flash memory modules and one or more volatile DRAM modules) and a network adapter 104 that interface to one another over a system bus 106. For simplicity of illustration, the system bus 106 is shown as single bus; however, the system bus may be a hierarchical organization of multiple buses as is well known in the arts. The hardware platform 102 may also include a hard disk drive (not shown), and/or some other form of persistent storage, and possibly other components commonly integrated into modem PC-based systems as is well known. The network adapter 104 provides a bi-directional communication link to other devices coupled to the Internet/WAN, preferably via a communication link (such a wired Ethernet link) to an IP routing device as is well known in the networking arts.
The remote web server 72 also includes software (including an operating system kernel 108, a TCP/IP network stack 110, and a web server module 112) that is persistently stored by the hardware platform 102 (e.g., such as on a hard disk drive), and that is loaded into memory for execution by the microprocessor(s) of the hardware platform 102. The web server module 112 includes an Appliance Management applet 114a and one or more web pages 114b. The Appliance Management applet 114a, when executed from within a suitable application (e.g., web browser application) on a computing machine coupled to a LAN (e.g., the PC system 34 of Fig. 7), provides for discovery of one or more IP-enabled devices that are actively coupled to the LAN in addition to the automatic generation and update of a directory of such devices. The Appliance Management applet also provides a graphical user interface that displays a directory of such devices and that enables efficient configuration and/or update of the operational settings of one or more of these devices. The web page(s) 114b are used in conjunction with the Appliance Management applet 114a to carry out the configuration and/or update of the operational settings of the device(s) on the LAN. The Appliance Management applet 114a and the web ρage(s) 114b are persistently stored and served by the remote web server 72 in response to requests (which typically conform to a NETF-001CIP PCT standard protocol such as HTTP) received at an assigned IP address and port number as is well known. A browser-based computing device (e.g., the Personal Computer 34 of Fig. 7) communicates with the remote web server module 112 over the Internet/WAN to retrieve (e.g., download) the Appliance Management applet 114a and the web page(s) 114b when needed.
Turning now to Fig. 8B, there is shown an exemplary system architecture of the LAN-based personal computer 34' with a web browser application 132 executing thereon. The Appliance Management applet 114a and web pages 114b are downloaded from the remote web server 72 and stored by the LAN-based personal computer 34' for processing by the web browser 132. The LAN-base personal computer 34' includes a hardware platform 122 (e.g., a microprocessor and associated memory, typically realized by one or more nonvolatile Flash memory modules and one or more volatile DRAM modules) and a network adapter 124 that interface to one another over a system bus 126. For simplicity of illustration, the system bus 126 is shown as a single bus; however, the system bus may be a hierarchical organization of multiple buses as is well known in the arts. The hardware platform 126 may also include a hard disk drive (not shown), and/or some other form of persistent storage, and possibly other components commonly integrated into modem PC- based systems as is well known. The network adapter 124 provides a bi-directional communication link to other devices coupled to the LAN (or to other devices, such as the remote web server 72, coupled to the Internet/WAN via the gateway router 26), preferably via a communication link (such a wired Ethernet link or a wireless 802.11(a) link or a wireless 802.11(b) link) to a switching device (such as a wired Ethernet switch/hub or wireless switch) as is well known in the networking arts.
The LAN-based computer system 34' also includes software (including an operating system kernel 128, a TCP/IP network stack 130, and the web browser application 132. Under user control, the web browser application 132 interacts with the remote web server 72 to retrieve the Appliance Management applet 114a and the web page(s) 114b served by the remote web server 72. The applet 114a and the web page(s) 114b are stored by the hardware platform 122 for processing within the web browser application. The applet 114a may comprise a JAVA® applet that is executable by a Java® Virtual Machine that is part of web browser application, a .NET application that is executable within a compatible web browser NETF-001CIP PCT application, or application code that conforms to some other standard (or non-standard) interface that is supported by a web browser application. When executed within the web browser application 132, the Appliance Management applet 114a discovers zero or more devices that are actively coupled to the LAN and automatically generates and update of a directory of such devices. The execution of the Appliance Management applet 114a also provides a graphical user interface which displays this directory of active devices and which provides for selection of one or more of the active devices in the directory and efficient configuration of the system parameters of the selected device(s) in a simple and straightforward manner.
Turning now to Fig. 8C, there is shown an exemplary system architecture of a LAN- based appliance device 37" (which can be any one of the IP-enabled devices of Fig. 7). The device 37" includes a hardware platform 132 (e.g., a microprocessor and associated memory, typically realized by one or more non- volatile Flash memory modules and one or more volatile DRAM modules) and a network adapter 134 that interface to one another over a system bus 136. For simplicity of illustration, the system bus 136 is shown as a single bus; however, the system bus may be a hierarchical organization of multiple buses as is well known in the arts. The hardware platform 136 may also include a hard disk drive (not shown), and/or some other form of persistent storage, and possibly other components commonly integrated into modem PC-based systems as is well known. The network adapter 134 provides a bi-directional communication link to other devices coupled to the LAN (or possibly to other devices coupled to the Intemet/WAN via the gateway router 26), preferably via a communication link (such a wired Ethernet link or a wireless 802.11(a) link or a wireless 802.11(b) link) to a switching device (such as a wired Ethernet switch hub or wireless switch) as is well known in the networking arts.
The device 37" also includes software (including an operating system kernel 138, a TCP/IP network stack 140, and a network-enabled configuration module 142. The network- enabled configuration module 142 cooperates with the LAN-based computer 34' during its processing of the Appliance Management applet 114a (and possibly during its processing of the web page(s) 114b) to support the appliance discovery functions and appliance configuration functions carried out by the Appliance Management applet 114a and the web page(s) 114b as described above. NETF-001CIP PCT Setting up the web-based interface between the web browser 132 executing on the LAN-based client machine 34' and the remote web server 72 may involve typing in an IP address as the URL to be accessed by the Web browser, or typing in a name associated with the device as the URL. However, such configuration typically needs to be performed only once and then saved by the user, for example, by assigning a "Favorites" name (sometimes referred to as a "Bookmark" name) to the appropriate URL of the remote web server 72.
Turning now to Figs. 9A and 9B, there is shown a flow chart that describes the operations of the remote web server, the LAN-based computer system and the local IP- enabled device of Figs. 8 A, 8B and 8C, respectively, in communicating the Appliance Management applet from the remote web server 72 to the LAN-based computer system 34', wherein the applet is executed within the web browser application 132 to provide for automatic device discovery as well as user-friendly and efficient configuration of the operational settings of the IP-enabled device 37" over the LAN. The operations begin in block B 100 whereby the remote web server 72 stores the Appliance Management applet 114a in addition to one or more web pages (or templates) 114b. As described above, the Appliance Management applet 114 a provides for discovery of one or more devices that are actively coupled to the LAN in addition to the automatic generation and update of a directory of such devices. The execution of the applet 114a also provides a graphical user interface that displays this directory of active devices and enables efficient configuration of the system parameters of one or more of the active devices in a simple and straightforward manner. The web page(s) 114b are used in conjunction with the Appliance Management applet 114a to carry out the configuration and/or update of the system parameters of the device(s) on the LAN.
In block B 102, a user interacting with the web browser application 132 of the LAN- based computer system 34' requests one or more of the web pages from the remote web server 72. Such requests are routed over the LAN to the Gateway router 126, which forwards such requests over the Intemet/WAN to the remote web server 72. The remote web server 72 receives this request (block B 104) and communicates the requested web page(s) back to the computer system 34' (block B106). The computer system receives the requested web page(s) (block B108) and displays the requested web page(s) (block Bl 10). NETF-001CIP PCT
In response to user interaction with the displayed web page(s) (e.g., the user selecting a button for the configuration of a particular type of device), the web browser application of the computer system 34' requests the downloading of the Appliance Management applet 114a from the remote web server 72 (block Bl 12). This request is routed over the LAN to the Gateway router 126, which forwards such request over the Intemet/WAN to the remote web server 72. The remote web server 72 receives this request (block Bl 14) and communicates the requested appliance discovery applet 114a back to the computer system 34' (block Bl 16). The computer system 34' receives the requested Appliance Management applet 114a and stores the applet locally (block Bl 18).
In block B 120, the computer system 34' verifies that the execution of the applet has been authorized. Such verification can be accomplished by a pop-up window that requests user authorization, by matching the domain of the remote server to a list of trusted sites and/or through any other verification scheme. If the verification of Block B 120 fails, the operation ends. However, if such verification is successful, the operations continue to block B122 for execution of the Appliance Management applet 114a.
In block B122, the Appliance Management applet 114a transmits an IP broadcast message to a predetermined IP address and port on the LAN. The predetermined IP address (e.g., 255.255.255.255) indicates that all other nodes on the LAN should pick up the IP broadcast message. In this manner, the IP broadcast message is communicated over the LAN from the computer system 36' to the device 37" (and possibly to other local devices on the LAN).
In block B 124, the network-based configuration routine 142 of the device 37" receives the IP broadcast message communicated by the LAN-based computing machine 36', and communicates a return message over the LAN to the Appliance Management applet executing on the computer 34' (block B 126). The return message identifies the local address and port assigned to the configuration routine 142 of the device 37".
The Appliance Management applet 114a receives the return message (block B 128) and adds the local address and port number of the device 37" to a list of LAN-based devices. More than one return message may be received. Therefore, the list may include a set of local addresses and port numbers corresponding to multiple LAN-based IP-enabled devices. NETF-001CIP PCT
In block B130, the Appliance Management applet 114a uses the local address and port identified in the return message to request product information (e.g., a product name, manufacturer, model number) from the configuration routine 142 of the device 37" (block B130). The configuration routine 142 receives this request (block B132) and communicates the requested information back to the Appliance Management applet 114a in one or more messages (block B 134). Such data communications may utilize well known protocols, such as TFTP, HTTP, or SNMP services.
The Appliance Management applet 114a receives the information from the device 37" (block B136), and updates a graphical user interface displayed on the computer system 34' to display a list of LAN-based devices (block B 138). This list of LAN-based devices, which can be derived from a web page similar to that shown in Fig. 6, is constructed from the information provided in the message(s) received in block B136.
In block B 140, the user selects one of the LAN-based devices in the displayed list. In block B 142, the graphical user interface displayed on the local computer 34' is updated to provide the user with the ability to specify (or update) the operational settings of the selected device. For example, if the selected device is the gateway router 26, the graphical user interface can provide the ability to request an update to the WAN address of the router (e.g., release the current address for renewal), to update the DHCP settings supported by the device, to update the password of the device, to update the port forwarding settings of the device, or to update the firmware of the device. Such operational settings are well known in modem routers. The graphical user interface displayed in block 142 may display the current operational settings of the device. Such information may be retrieved from the device using any one of a number of well known data communication services, such as TFTP services that perform a GET of the current operational settings of the selected device.
In block B 144, the updates to the operational settings of the selected device, which are dictated by the user's operation in block B 142, are communicated over the LAN to the network-enabled configuration routine 142 of the selected device. The updates may be derived from data and/or program code that is automatically retrieved from the remote web server 72 or some other network-accessible source. NETF-001CIP PCT
Finally, in block B 146, the network-enabled configuration routine 142 of the selected device receives the updates to its operational settings, and internally updates its operational settings in accordance with the received information.
Advantageously, the Appliance Management applet is readily accessible by the execution of a well-know web browser application. Moreover, when implemented as a JAVA® applet, it takes advantage of the features of JAVA®, including a rich user interface, built-in security features (e.g., which can be used for authentication of the applet), cross- platform support (e.g., the applet can be executed across multiple operating system environments - including Windows, Mac OS X, Linux, and Unix), and limited use of storage space by relying on temporary storage of the applet. In addition, the auto-discovery functionality and device configuration functionality of the Appliance Management applet enables quick and easy access, configuration and use of one or more devices on a network. These features will contribute to wide spread acceptance of these devices by the general public. The Appliance Management applet can also leverage advanced technologies (such as VoiceXML) that provide for quick and easy configuration of the LAN-based devices as described above with respect to the IP-enabled doorbell. In addition, an OEM product manufacturer or service provider of a given LAN-based device can efficiently distribute updates for the given device by updating the Appliance Management applet served by the remote web server. Finally, the Appliance Management applet can be tailored for different service providers (or other entities) to convey branding information that is unique to a particular service provide, or to configure the operational settings for LAN-based devices in a manner that that is unique to a particular service provider.
It is contemplated that the auto-discovery functionality and the device configuration functionality executing on the LAN-based computer can be controlled remotely by a user at a remote computer system 74 as shown in Fig. 7 utilizing well known remote control software technology (such as the remote control functionality built into Windows XP, the GotoMyPC application, and the Timbukto application).
It is also contemplated that the functionality of the Appliance Management applet as described above can be extended (or modified) to provide proxy services for interaction with the IP-enabled devices on the LAN during use of such IP-enabled devices. For example, the applet can generate a directory of contact information (e.g., similar to that provided in NETF-001CIP PCT modem personal information management applications). User interaction with the directory triggers interaction with an IP-enabled telephony device on the LAN to dial one of the numbers listed in the directory. Similarly, the applet can provide for call transfer between telephones on the LAN.
There have been described and illustrated herein several embodiments of a Web- based Appliance Management Mechanism that provides quick and easy configuration of a wide variety of IP-enabled devices. While particular embodiments of the invention have been described, it is not intended that the invention be limited thereto, as it is intended that the invention be as broad in scope as the art will allow and that the specification be read likewise. Thus, while particular address scanning schemes have been disclosed, it will be appreciated that other automatic device discovery schemes can be used as well. In addition, while particular types of protocols and services (such as HTTP and TFTP) have been disclosed, it will be understood that other protocols (including non-proprietary and proprietary protocols) can be used to communicate between the local devices on the LAN and between local device on the LAN and remote devices on the Intemet/WAN. Moreover, while particular hardware and software configurations have been disclosed in reference to the exemplary embodiments described herein, it will be appreciated that other configurations could be used as well. For example, the software logic described herein can readily be adapted to utilize advanced data structures (such as XML data structures) as well as object oriented messaging services (such as SOAP). It will therefore be appreciated by those skilled in the art that yet other modifications could be made to the provided invention without deviating from its spirit and scope as claimed.

Claims

NETF-001CIP PCT What is claimed is:
1. A method for configuring at least one appliance operably coupled to a local area network, said at least one appliance having an embedded Web server that serves up a first group of Web pages in response to requests supplied thereto, the method comprising the steps of: automatically discovering that said at least one appliance is operably coupled to said local area network; for each given appliance discovered on the local area network, generating a link associated with said given appliance, said link pointing to one of said first group of Web pages, and adding said link to a directory Web page; and serving said directory Web page in response to requests supplied thereto to thereby provide access to said first group of Web pages referred to by said link included in said directory Web page.
2. A method for configuring at least one appliance according to claim 1, wherein: the step of automatically discovering that said at least one appliance is operably coupled to said local area network includes operations that scan over a range of IP addresses.
3. A method for configuring at least one appliance according to claim 2, wherein: the step of automatically discovering that said at least one appliance is operably coupled to said local area network includes operations that attempt to comiect to a Web server at a given IP address.
4. A method for configuring at least one appliance according to claim 1, wherein: the step of generating said link includes operations that get identification data from the embedded Web server of the associated appliance.
5. A method for configuring at least one appliance according to claim 4, wherein: said identification data is retrieved from said first group of Web pages served by the embedded Web server of the associated appliance. NETF-001CIP PCT
6. A method for configuring at least one appliance according to claim 5, wherein: said linlc comprises textual information derived from said identification data.
7. A method for configuring at least one appliance according to claim 4, wherein: said link points to a home page served by the embedded Web server of the associated appliance.
8. An apparatus for configuring at least one appliance operably coupled to a local area network, said at least one appliance having an embedded Web server that serves up a first group of Web pages in response to requests supplied thereto, the apparatus comprising: a computer processing platform operably coupled to said local area network; a first module that includes a sequence of instructions that, when executed on said computer processing platform, perform the following operations: automatically discovering that said at least one appliance is operably coupled to said local area network, and for each given appliance discovered on the local area network, generating a linlc associated with said given appliance, said link pointing to one of said first group of Web pages, and adding said link to a directory Web page; and a second module that includes a sequence of instructions that, when executed on said computer processing platform, serve said directory Web page in response to requests supplied thereto to thereby provide access to said first group of Web pages referred to by said linlc included in said directory Web page.
9. The apparatus according to claim 8, wherein: the operations of automatically discovering that said at least one appliance is operably coupled to said local area network includes operations that scan over a range of IP addresses.
10. The apparatus according to claim 9, wherein: the operations of automatically discovering that said at least one appliance is operably coupled to said local area network includes operations that attempt to connect to a Web server at a given IP address. NETF-001CIP PCT
11. The apparatus according to claim 8, wherein: the operations of generating said link includes operations that get identification data from the embedded Web server of the associated appliance.
12. The apparatus according to claim 11, wherein: said identification data is retrieved from said first group of Web pages served by the embedded Web server of the associated appliance.
13. The apparatus according to claim 12, wherein: said link comprises textual information derived from said identification data.
14. The apparatus according to claim 11, wherein: said link points to a home page served by the embedded Web server of the associated appliance.
15. A method for configuring at least one appliance operably coupled to a local area network, said at least one appliance having an embedded Web server that serves up a first group of Web pages in response to requests supplied thereto, the method comprising the steps of: automatically discovering that said at least one appliance is operably coupled to said local area network; for a given appliance discovered on the local area network, building a second group of Web pages associated with said given appliance and storing said second group of Web pages in at least one local file, generating a linlc associated with said given appliance, said link pointing to one of said second group of Web pages, and adding said link to a directory Web page; and serving said directory Web page in response to requests supplied thereto to thereby provide access to said second group of Web pages referred to by said link included in said directory Web page. NETF-001CIP PCT
16. A method for configuring at least one appliance according to claim 15, wherein: the step of automatically discovering that said at least one appliance is operably coupled to said local area network includes operations that scan over a range of IP addresses.
17. A method for configuring at least one appliance according to claim 16, wherein: the step of automatically discovering that said at least one appliance is operably coupled to said local area network includes operations that attempt to connect to a Web server at a given IP address.
18. A method for configuring at least one appliance according to claim 15, wherein: the step of building said second group of Web pages includes operations that get data from the embedded Web server of the associated appliance.
19. A method for configuring at least one appliance according to claim 15, wherein: the step of generating said link includes operations that get identification data from the embedded Web server of the associated appliance.
20. A method for configuring at least one appliance according to claim 19, wherein: said identification data is retrieved from said first group of Web pages served by the embedded Web server of the associated appliance.
21. A method for configuring at least one appliance according to claim 19, wherein: said linlc comprises textual information derived from said identification data.
22. A method of configuring at least one appliance according to claim 15, wherein: receipt of predetermined data from the embedded Web server of said given appliance triggers the steps of building said second group of Web pages associated with said given appliance, generating said link to said second group of Web pages, and adding said link to said directory Web. NETF-001CIP PCT
23. A method of configuring at least one appliance according to claim 22, wherein: said predetermined data comprises a proxy key encoded in a Web page served by the embedded Web server of the given appliance.
24. A method for configuring at least one appliance according to claim 15, wherein: said second group of Web pages include VoiceXML commands and logic that enable voice-activate configuration of said appliance over an IP telephone operably coupled to said local area network.
25. An apparatus for configuring at least one appliance operably coupled to a local area network, said at least one appliance having an embedded Web server that serves up a first group of Web pages in response to requests supplied thereto, the apparatus comprising: a computer processing platform operably coupled to said local area network; a first module that includes a sequence of instructions that, when executed on said computer processing platform, perform the following operations: automatically discovering that said at least one appliance is operably coupled to said local area network; for a given appliance discovered on the local area network, building a second group of Web pages associated with said given appliance and storing said second group of Web pages in at least one local file, generating a link associated with said given appliance, said linlc pointing to one of said second group of Web pages, and adding said link to a directory Web page; and a second module that includes a sequence of instructions that, when executed on said computer processing platform, serve said directory Web page in response to requests supplied thereto to thereby provide access to said second group of Web pages referred to by said linlc included in said directory Web page.
26. An apparatus according to claim 25, wherein: the operations of automatically discovering that said at least one appliance is operably coupled to said local area network includes operations that scan over a range of IP addresses. NETF-001CIP PCT
27. An apparatus according to claim 26, wherein: the operations of automatically discovering that said at least one appliance is operably coupled to said local area network includes operations that attempt to connect to a Web server at a given IP address.
28. An apparatus according to claim 25, wherein: the operations of building said second group of Web pages includes operations that get data from the embedded Web server of the associated appliance.
29. An apparatus according to claim 25, wherein: the operations of generating said link includes operations that get identification data from the embedded Web server of the associated appliance.
30. An apparatus according to claim 29, wherein: said identification data is retrieved from said first group of Web pages served by the embedded Web server of the associated appliance.
31. An apparatus according to claim 30, wherein: said link comprises textual information derived from said identification data.
32. An apparatus according to claim 25, wherein: receipt of predetermined data from the embedded Web server of said given appliance triggers the operations of building said second group of Web pages associated with said given appliance, generating said linlc to said second group of Web pages, and adding said link to said directory Web.
33. An apparatus according to claim 32, wherein: said predetermined data comprises a proxy key encoded in a Web page served by the embedded Web server of the given appliance. NETF-001CIP PCT
34. An apparatus according to claim 25, wherein: said second group of Web pages include VoiceXML commands and logic that enable voice-activate configuration of said appliance over a telephone operably coupled to said local area network.
35. A method for configuring at least one device operably coupled to a local area network, said at least one device having a plurality of operational settings, the method comprising: providing a computing system operably coupled to a local area network, said computing system executing an application; controlling said application to download an applet from a remote web server; and executing said applet within said application, wherein execution of said applet automatically discovers that said at least one device is operably coupled to said local area network and generates a graphical user interface, said graphical user interface providing for selection of said at least one device and providing for update of said plurality of operational settings of said at least one device.
36. A method for configuring at least one device according to claim 35, wherein: the execution of the applet automatically discovers that said at least one device is operably coupled to said local area network by transmitting an IP broadcast message.
37. A method for configuring at least one device according to claim 35, wherein: the execution of the applet communicates updates to said plurality of operational settings over the local area network to said at least one device for internal update operations performed therein.
38. A method for configuring at least one device according to claim 35, wherein: said application comprises a web browser application. NETF-001CIP PCT
39. A method for configuring at least one device according to claim 38, wherein: said application includes support logic that provides at least one of user interface functionality for use by said applet, security functionality for use by said applet, cross-platform support, and limited use of storage space by relying on temporary storage of said applet.
40. A method for configuring at least one device according to claim 35, further comprising: controlling execution of said application and said applet from a remote computer system.
41. In a system including a local computing machine and at least one device operably coupled to one another over a local area network, said local computing machine having an application that is executed on the local computing machine, and said at least one device having a plurality of operational settings, a method supporting configuration of the at least one device comprising: providing a web server operably coupled to a wide area network, said web server communicating an applet to said local computing machine operably coupled thereto over the wide area network, said applet being adapted for execution within the application that is executed on the local computing machine, wherein execution of said applet automatically discovers that the at least one device is operably coupled to the local area network and generates a graphical user interface, said graphical user interface providing for selection of the at least one device and providing for update of the plurality of operational settings of the at least one device.
42. A method supporting configuration of the at least one device according to claim 41, wherein: the execution of said applet automatically discovers that said at least one device is operably coupled to the local area network by transmitting an IP broadcast message. NETF-001CIP PCT
43. A method supporting configuration of the at least one device according to claim 41, wherein: the execution of said applet communicates updates to said plurality of operational settings over the local area network to the at least one device for internal update operations performed therein.
44. A method supporting configuration of the at least one device according to claim 41, wherein: said application comprises a web browser application.
45. A method supporting configuration of the at least one device according to claim 41, wherein: said wide area network comprises the Internet.
46. A method supporting configuration of the at least one device according to claim 1, wherein: said application includes support logic that provides at least one of user interface functionality for use by said applet, security functionality for use by said applet, cross-platform support, and limited use of storage space by relying on temporary storage of said applet.
47. In a system including a local computing machine and at least one device operably coupled to one another over a local area network, said local computing machine having an application that is executed on the local computing machine, and said at least one device having a plurality of operational settings, an apparatus supporting configuration of the at least one device comprising: a computer processing platform operably coupled to a wide area network; a web server module, executing in said computer processing platform, that communicates an applet to said local computing machine operably coupled thereto over the wide area network, said applet being adapted for execution within the application that is executed on the local computing machine, wherein execution of said applet automatically NETF-001CIP PCT discovers that the at least one device is operably coupled to the local area network and generates a graphical user interface, said graphical user interface providing for selection of the at least one device and providing for update of the plurality of operational settings of the at least one device.
48. An apparatus supporting configuration of the at least one device according to claim 47, wherein: the execution of said applet automatically discovers that said at least one device is operably coupled to the local area network by transmitting an IP broadcast message.
49. An apparatus supporting configuration of the at least one device according to claim 47, wherein: the execution of said applet communicates updates to said plurality of operational settings over the local area network to the at least one device for internal update operations performed therein.
50. An apparatus supporting configuration of the at least one device according to claim 47, wherein: said application comprises a web browser application.
51. An apparatus supporting configuration of the at least one device according to claim 47, wherein: said wide area network comprises the Internet.
52. An apparatus supporting configuration of the at least one device according to claim 47, wherein: said application includes support logic that provides at least one of user interface functionality for use by said applet, security functionality for use by said applet, cross-platform support, and limited use of storage space by relying on temporary storage of said applet NETF-001CIP PCT
53. In a system including a local computing machine and at least one device operably coupled to one another over a local area network, said local computing machine having an application that is executed on the local computing machine, and said at least one device having a plurality of operational settings, an apparatus comprising: a computer processing platform operably coupled to a wide area network; a web server module, executing in said computer processing platform, that communicates an applet to said local computing machine operably coupled thereto over the wide area network, said applet being adapted for execution within the application that is executed on the local computing machine, wherein execution of said applet provides proxy services for interaction with the at least one device during its use.
54. An apparatus according to claim 53, wherein: the execution of said applet automatically discovers that said at least one device is operably coupled to the local area network.
55. An apparatus according to claim 53, wherein: the execution of said applet generates a graphical user interface, said graphical user interface providing proxy services for interaction with the at least one device during its use.
56. An apparatus according to claim 53, wherein: said application comprises a web browser application.
57. An apparatus according to claim 53, wherein: said wide area network comprises the Internet.
PCT/US2004/008905 2003-03-24 2004-03-24 Network-enabled software logic providing discovery and configuration of network appliances coupled to a lan WO2004085622A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US45702203P 2003-03-24 2003-03-24
US60/457,022 2003-03-24

Publications (2)

Publication Number Publication Date
WO2004085622A2 true WO2004085622A2 (en) 2004-10-07
WO2004085622A3 WO2004085622A3 (en) 2005-01-06

Family

ID=33098186

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2004/008905 WO2004085622A2 (en) 2003-03-24 2004-03-24 Network-enabled software logic providing discovery and configuration of network appliances coupled to a lan

Country Status (1)

Country Link
WO (1) WO2004085622A2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7873153B2 (en) 2006-03-29 2011-01-18 Microsoft Corporation Priority task list
US7899892B2 (en) 2006-03-28 2011-03-01 Microsoft Corporation Management of extensibility servers and applications
DE202015003152U1 (en) * 2015-04-29 2016-08-01 Johann Kasper remote control
US10735514B2 (en) * 2017-08-29 2020-08-04 Western Digital Technologies, Inc. Remote application configuration on network-attached storage
EP3836043A1 (en) * 2019-12-11 2021-06-16 Carrier Corporation A method and an equipment for configuring a service

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6301584B1 (en) * 1997-08-21 2001-10-09 Home Information Services, Inc. System and method for retrieving entities and integrating data
US6651066B2 (en) * 1998-12-30 2003-11-18 American Management Systems, Inc. Content management system
US6707889B1 (en) * 1999-08-24 2004-03-16 Microstrategy Incorporated Multiple voice network access provider system and method
US6711618B1 (en) * 1999-09-03 2004-03-23 Cisco Technology, Inc. Apparatus and method for providing server state and attribute management for voice enabled web applications
US6738803B1 (en) * 1999-09-03 2004-05-18 Cisco Technology, Inc. Proxy browser providing voice enabled web application audio control for telephony devices
US6748569B1 (en) * 1999-09-20 2004-06-08 David M. Brooke XML server pages language
US6798867B1 (en) * 1999-09-13 2004-09-28 Microstrategy, Incorporated System and method for the creation and automatic deployment of personalized, dynamic and interactive voice services, with real-time database queries

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6301584B1 (en) * 1997-08-21 2001-10-09 Home Information Services, Inc. System and method for retrieving entities and integrating data
US6651066B2 (en) * 1998-12-30 2003-11-18 American Management Systems, Inc. Content management system
US6707889B1 (en) * 1999-08-24 2004-03-16 Microstrategy Incorporated Multiple voice network access provider system and method
US6711618B1 (en) * 1999-09-03 2004-03-23 Cisco Technology, Inc. Apparatus and method for providing server state and attribute management for voice enabled web applications
US6738803B1 (en) * 1999-09-03 2004-05-18 Cisco Technology, Inc. Proxy browser providing voice enabled web application audio control for telephony devices
US6798867B1 (en) * 1999-09-13 2004-09-28 Microstrategy, Incorporated System and method for the creation and automatic deployment of personalized, dynamic and interactive voice services, with real-time database queries
US6748569B1 (en) * 1999-09-20 2004-06-08 David M. Brooke XML server pages language

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7899892B2 (en) 2006-03-28 2011-03-01 Microsoft Corporation Management of extensibility servers and applications
US7873153B2 (en) 2006-03-29 2011-01-18 Microsoft Corporation Priority task list
DE202015003152U1 (en) * 2015-04-29 2016-08-01 Johann Kasper remote control
US10735514B2 (en) * 2017-08-29 2020-08-04 Western Digital Technologies, Inc. Remote application configuration on network-attached storage
EP3836043A1 (en) * 2019-12-11 2021-06-16 Carrier Corporation A method and an equipment for configuring a service
US11790905B2 (en) 2019-12-11 2023-10-17 Carrier Corporation Method and an equipment for configuring a service

Also Published As

Publication number Publication date
WO2004085622A3 (en) 2005-01-06

Similar Documents

Publication Publication Date Title
EP2266255B1 (en) Method &amp; system for configuring a network communications device
US8850024B2 (en) Discovering network services
US8089953B2 (en) Method and system for network entity configuration
KR100633712B1 (en) Establishing connections between remote devices with a hypertext transfer protocol
US9363709B2 (en) Method, system and device for automatically configuring a communications network
KR100830940B1 (en) Remote control system for home network using universal plug and play
CN102077546B (en) Remote access between UPnP devices
JP2003337772A (en) Device for providing remote control service through communication network, system using the same, and method therefor
US20120096152A1 (en) Method, apparatus, and computer program for processing information
WO2003062999A2 (en) Apparatus and method for controlling devices
JP2005341237A (en) Network setting method and program, and its storage medium
US7899912B2 (en) Pervasive, personal data interactivity over voice-grade circuit-switched cellular networks
JP2006121533A (en) Relay device, communication terminal, communication system
WO2004085622A2 (en) Network-enabled software logic providing discovery and configuration of network appliances coupled to a lan
KR100585669B1 (en) Network device controlling method using internet
KR100548265B1 (en) Device controlling system and method for network based to privately internet protocol
KR20050046998A (en) Remote controlling method and system for device in home network
KR100565205B1 (en) Device dynamic controlling method and system for distributed network based to universal plug and play
KR20040091368A (en) Remote controlling method and system for device in home network
JP2003281005A (en) Calling server device and terminal device
JP4435462B2 (en) Remote device control access point server and remote device control system
KR20040110941A (en) Remote controlling method for device in home network
JP2003069729A (en) Communication method, information terminal, information management server device and program
JP2007037072A (en) Connection destination switching communication network system
KR20050027500A (en) Remote controlling method and system for device in home network

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase
DPEN Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed from 20040101)