The present invention relates generally to the field of terminal architecture. More particularly, the present invention relates to terminal architecture when implementing Universal Plug and Play (UPnP) protocol on limited devices having energy constraints.
Network architectures, such as UPnP systems, have become increasingly popular in recent years. UPnP networks are used to connect and permit communication between a wide variety of electronic devices, including but not limited to desktop and laptop computers, portable and cellular telephones, computer printers, monitors, stereos, personal digital assistants, video game devices and other products. When a device is within the coverage of such a home network, it is capable of communicating with any other devices that are within the network. This allows for the sharing of a wide variety of types of information.
UPnP technology defines an architecture for pervasive peer-to-peer network connectivity of intelligent appliances, wireless devices, and PCs of all form factors. It is designed to bring easy-to-use, flexible, standards-based connectivity to ad-hoc or unmanaged networks whether in the home, in a small business, public spaces, or attached to the Internet. UPnP technology provides a distributed, open networking architecture that leverages TCP/IP and the Web technologies to enable seamless proximity networking in addition to control and data transfer among networked devices.
A Mobile/Handheld Network (MHN) is formed by all devices that by their nature are constrained by power supply, processing power or bearer capabilities. Mobile handheld devices (MH) such as mobile phones, PDAs or laptop computers running on batteries may be considered constrained devices. These devices can use Bluetooth, LAN or Wireless LAN as bearers.
A home network (HN) is formed by devices that, during normal operation, are attached to an AC power supply. Usually these devices possess good computing power, implementing the required functionality in software or hardware. Consumer electronics (i.e. networked TV sets, networked stereo systems and PVRs) and computers (i.e. desktop computers, laptop computers plugged into docking station) are considered home network devices.
A network connectivity function (NCF) is the logical function that links home networks and mobile/handheld networks together. In addition to the basic bridge functionality, the network connectivity function can implement additional services like UPnP Filtering. UPnP filtering is implemented in the network connectivity function and involves the snooping the IP traffic and blocking UPnP multicast messages generated in the home network from reaching the Mobile/Handheld Network.
UPnP Device Architecture is designed to support zero-configuration, “invisible” networking, and automatic discovery for a breadth of device categories from a wide range of vendors. This permits a device to dynamically join a network, obtain an IP address, convey its capabilities, and learn about the presence and capabilities of other devices. UPnP device architecture defines the steps that must be followed by a device in order to participate in the UPnP network. The UPnP phases or steps in a stand alone UPnP device are depicted generally in
UPnP Device Architecture can be implemented in a wide range of devices. Some of these devices are more suited than others to support the networking technologies employed in UPnP Device Architecture. For devices such as mobile phones or PDAs that are battery powered and used for connectivity wireless technology, the UPnP Device Architecture is much more than is actually required for the respective mobile devices. The high amount of network traffic and the pattern of this traffic drains the battery very quickly, adversely affecting the overall user experience.
One of the main limitations of the UPnP Device Architecture v1.0 is that, during the design phase, the designers did not consider the special requirements of constrained, mobile devices that have definite energy reserves. This makes it difficult to run UPnP v1.0 based services on mobile devices, such as mobile phones, because the UPnP protocols will drain the battery very quickly. Furthermore, the UPnP theory of operations does not allow devices to go to sleep, as it assumes by default the UPnP devices are always online. From a power saving point of view, the discovery and description steps depicted in
The above-identified problems and others were previously recognized and some steps have been taken to reduce the network traffic in UPnP DA v1.1. For example, a number of potential improvements have been discussed in Finland Patent Application No. 20040179, filed on Feb. 6, 2004 and incorporated herein by reference. However, these steps were not sufficient to solve the particular problems with mobile devices because the steps reduced only the network traffic but not the traffic pattern. For example, under this system UPnP control points in the home network still are not capable of searching for UPnP root/embedded devices and services available on the mobile handheld network. Furthermore, UPnP root/embedded devices and services are not able to advertise themselves to UPnP control points available on the mobile handheld network. Both of these limitations have an impact on how the user of a mobile device perceives the UPnP network, making it different than for a user on a home network device. For example, there might be delays as long as ten to fifteen minutes between the moment a new device appears in the home network and the moment the device is discovered.
The present invention addresses the above-identified issues by enabling a constrained UPnP device to fully maintain its presence in the UPnP network while at the same time conserving power. The present invention involves the delegating of the discovery and description steps of the UPnP device architecture to another device that does not have the power constraints of the constrained device, while maintaining the remaining functionality of the constrained device.
The present invention involves the use of a low power proxy (LPP) that acts as an aggregator of the root/embedded devices and services for mobile handheld network and home network mechanisms by which the low power proxy interacts with mobile handheld network devices and home network devices. The present invention can also be applied to other nonmobile devices that are designed to save energy. The present invention also extends the functionality of the UPnP simple service discovery protocol (SSDP) and UPnP generic event and notification architecture (GENA) by adding new meanings to existing header fields.
The present invention is directed to the method in which the network infrastructure device with low power proxy interacts with the other UPnP entities in the network. The present invention involves the addition of two new variables to the network infrastructure device in order to add the low power proxy functionality to the existing network infrastructure device functionality. The present invention also adds a new field in the device/service description, with the new field containing a pointer to the network infrastructure device with low power proxy that handles the respective device or service. The present invention also discloses a generic system and method that allows a device to wake up a constrained device in a bearer-independent manner.
The present invention possess a number of significant advantages over the prior art. For example, but without limitation, the present invention provides a generic UPnP solution that works with any existing UPnP profiles. The system is also “backward compatible”, meaning that UPnP DA v1.0 and v1.1 devices work without modifications with devices implementing the present invention. The present invention also enables home network devices to advertise to mobile handheld network control points and home network control points to query mobile handheld network devices, thus rectifying the limitation that exists in the prior art. The present invention additionally enables UPnP discovery between two mobile handheld network devices and also creates a lightweight solution to existing issues, while also saving power consumption and resulting in faster discovery in the UPnP environment. The present invention can be incorporated into virtually any mobile phone having UPnP/(digital home working group (DHWG) support.
Furthermore, the present invention takes advantage of the existing services provided by network infrastructure device and the work done for IGDv2. The invention does not require changes to UPnP Device Architecture other than the ones required by the IGDv2 (which have already been provided by UPnP v1.1), and the design is modular as the functionality required is implemented as a service.
The present invention involves delegating the discovery and description steps of the architecture of a mobile device or another form of a constrained device to another device, referred to herein as a low power proxy, that does not have the power constraints of the constrained device, while maintaining the remaining functionality of the constrained device.
A low power proxy is a UPnP service that aggregates the information about root/embedded devices and services from the mobile device Network and makes it available in the home network. At the same time, the low power proxy provides methods for the mobile devices to “register” for particular root/embedded devices and services available in home network and informs the mobile devices when those services becomes available using an energy efficient mechanism. The low power proxy is a new element in the network architecture.
In an exemplary embodiment of the present invention, a low power proxy is built into a network infrastructure device that also implements the network connectivity function. The network architecture elements according to this embodiment are shown in
Conventionally, the wireless local area network access point and the Bluetooth Access Point configuration services contains a state variable named associatedDevice that keeps information about the MAC Address, the IP Address and authentication state. There is one associatedDevice structure for each device that is associated with the network infrastructure device. The following is an example of this structure for a wireless LAN Access Point:
In order to add the power states control functionality to the network infrastructure device, a state variable is added as an element of the associatedDevice. The devicePowerState variable keeps track of the power state of the link. According to one embodiment of the invention, four values for devicePowerState could be used: “on”, “light sleep”, “deep sleep” and “off”. Each bearer has its own specific link configuration service and that enables a network infrastructure device to map the specific characteristics of the bearer to the four possible states. Because this variable is part of the associatedDevice, the network infrastructure device can maintain the power state for each individual associated device. The power state control functionality is not dependent upon the number of available power states and allows the addition of additional power states in order to enhance the functionality of the system.
In order to add the low power proxy functionality to the network infrastructure device, another state variable is required as an element of the associatedDevice. This second state variable is named deviceLowPowerProxy. This state variable is a placeholder that includes all the information needed to proxy the devices/services and control points hosted by the associated device.
The structure of the associatedDevice in a network infrastructure device with low power proxy incorporating the above variables is as follows:
It should be noted that, although the power states control and low power proxy functions are identified herein as distinct functional events, their operation is closely linked to each other. For example, changes in the power states control immediately triggers the low power proxy to take the appropriate action in order to reflect the change in the proxied device.
A constrained device that requires a low power proxy can also include an additional element in the description XML document that points to the low power proxy:
A control point that does not support the low-power functionality will ignore this element and will continue functioning without taking advantage of the low-power features.
The theory of operation of the system described above is generally as follows, using a situation where there exists a Bluetooth device that hosts a UPnP service. When this device joins the network, it contacts a Bluetooth access point (or access device) in order to establish an association with the access point and to gain access to the network. When the association is established, the network infrastructure device with low power proxy has all the relevant information related to the attached device in an associatedDevice state variable.
The next step in the process is to actually initiate the UPnP service. The first phase in this process is to discover which network infrastructure device is the one to which the device is attached. The Internet gateway device, version 2 (IGDv2) includes extension headers to the simple service discovery protocol that allows the device to discover the particular network infrastructure device. In this case, the device will search for a network infrastructure device that has an association with a device that has its own MAC/IP address. Only one network infrastructure device will respond to this query. The UPnP device/service therefore discovers which is its network infrastructure device that will play also the role of the low power proxy.
When a device has discovered its network infrastructure device with low power proxy functionality, the device can start feeding the appropriate information (i.e. device universal unique identifier (UUID), device description) into the deviceLowPowerProxy state variable of the respective network infrastructure device. When a control point has discovered its network infrastructure device with low power proxy functionality, it can start feeding the appropriate information (i.e. devices of interest) into the deviceLowPowerProxy state variable of the respective network infrastructure device. The low power proxy handles both discovery and description on behalf of the device.
When the device is in an active state, the device would handle the discovery function itself and would delegate the description function to the low power proxy. In this situation, an announcement would be transmitted in a form such as is shown below:
When the device is in a deeper sleep mode and the low power proxy is handling both the discovery and the description functions, the announcement is sent by the low power proxy itself.
When a control point has discovered a network infrastructure device with low power proxy functionality, it can begin transmitting the appropriate information, such as device of interest, into the deviceLowPowerProxy state variable of the respective network infrastructure device. When relevant services appear in the network, the low power proxy informs the control point by transmitting a unicast advertisement, which may be formatted as follows:
The meaning of the “CACHE-CONTROL: max-age=−1” is that the advertisement never expires. The low power proxy takes care to inform the control point when the correspondent device or service leaves the network. Alternatively the low power proxy can inform the control point that a device/service of interest appeared in the network by sending an event. Regardless of the method that is used, the low power proxy must send only one announcement per service-constrained control point tuple.
When an UPnP device/service has discovered its network infrastructure device, the device/service can include a pointer to this low power proxy in the device description. Interested control points can subscribe to the low power proxy to receive events when the devicePowerState is changing. In this way, the control points have the latest information about the power state of the devices that are relevant to their operation. Additionally, by having a pointer to the low power proxy of the device, a control point can change the power state of a device (i.e. wake up the device) in an independent way, without having to be concerned with the particularities of the specific bearer of the device. To accomplish this task, the control point asks the low power proxy to wake the device, and the proxy performs the task. For example, in a situation where there is a Bluetooth constrained device that is sleeping and a control point (which can be from a home network device or a mobile handheld network device) that is aware of the lower-power proxy that is handling the constrained device, if the control point desires to wake up the constrained device, it will send a UPnP SOAP message (a wake up instruction to the lower power proxy with the constrained device's universal unique identifier). The low power proxy knows that the device that has the specified universal unique identifier in the wake-up message is a Bluetooth device with a Bluetooth device address “BD_ADDR” and will initiate the Bluetooth-specific wake-up mechanism (i.e., a Bluetooth search for the device BD-ADDR, initiate the Bluetooth PAN with the device BD_ADDR.
In an alternate embodiment of the invention, a stand alone low power proxy is used instead of a built in low power proxy. The network architecture elements for such a system are shown in
The deployment system for the embodiment of the invention shown in
In some situations, multicast search queries from home network control points do not reach the mobile devices because the network connectivity function is filtering the UPnP multicast messages. In this situation, the low power proxy acts on behalf of the mobile device and sends a response to the search query. This process is represented in
All of the information contained in this message is similar with the information received in the original message except the LOCATION header is replaced with a URL to the local cached XML device description. It is important to note that the low power proxy does not change the universal unique identifier. Instead, the low power proxy preserves the universal unique identifier of the original device.
Registration of services of interest can be achieved using an enhanced eventing service. A mobile device control point has to renew its subscriptions and unsubscribe when it leaves the network. The low power proxy maintains the status of each mobile device control point based on eventing subscriptions, renewals and unsubscriptions. When a device representing control point fails to renew its subscription or unsubscribe, it means that it has left the network and the low power proxy will clean up the association with the respective control point. Alternatively, this functionality can be implemented by extending generic event and notification architecture; however, enhanced eventing is a preferred method of implementation. The mobile device control point registers its “services of interest” to the low power proxy and there is no need for further simple service discovery protocol queries.
Device and service advertisements generated in the home network are often not able to reach mobile device control points because the network connectivity function is filtering the UPnP multicast messages. The low power proxy compensates for this limitation. As described above, the low power proxy listens to all UPnP multicast messages. The low power proxy collects this information and stores it in a directory. Additionally, mobile device control points can register their interest for specific services. This process is represented in
When a home network device “gracefully” leaves the network by sending an “ssdp: byebye”, represented in
The low power proxy described herein can be used in conjunction with a new field and new variables to add to the existing network infrastructure device functionality and the low power proxy functionality, such as the systems represented in
While preferred embodiments have been shown and described herein, it should be understood that changes and modifications can be made to the invention without departing from the invention in its broader aspects. For example, but without limitation, the individual devices within the network can use a wide variety of connection mechanisms, such as implementing wireless LAN (WLAN)/Bluetooth access points, as well as Ethernet switches to serve as contact points. Various features of the invention are defined in the following Claims.