The present invention relates generally to Universal Plug and Play (UPnP) service discovery systems. More particularly, the present invention relates to the use of web syndication protocols to discover remote UPnP devices.
UPnP technology defines an architecture for pervasive peer-to-peer network connectivity of intelligent appliances, wireless devices, and personal computer devices of all types. UPnP 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 Web technologies in order to enable seamless proximity networking, in addition to control and data transfer among networked devices.
The UPnP Device Architecture (UDA) is designed to support zero-configuration, “invisible” networking and automatic discovery for a breadth of device categories from a wide range of vendors. In other words, UDA enables a device to be capable of dynamically joining a network, obtaining an IP address, conveying the device's capabilities, and learning about the presence and capabilities of other devices.
Web syndication is a form of syndication in which information from a website is made available for other sites or clients to use. Web syndication commonly refers to making Web feeds available from a site so that other visitors can obtain an updating list of content from it (for example, a person's latest blog postings, etc.). Web syndication originated with news and blog sites, but it is being increasingly used to syndicate virtually any type of information.
RSS is a family of XML file formats for web syndication that is used by news websites, weblogs and a wide variety of other entities. The technology behind RSS allows a person to subscribe to websites that have provided RSS feeds. Such sites are typically sites that change or add content regularly. To use this technology, one needs to set up an aggregation service. Once an aggregation service is established, one then has to subscribe to the sites from which updates are desired. The RSS formats provide web content or summaries of web content, together with links to the full versions of the content and other meta-data. This information is delivered as an XML file.
Atom is an XML-based document format for the syndication of web content, as well as an HTTP-based protocol for editing weblogs based on the format. Atom is a newer and more advanced protocol than RSS. Apart from the basic web syndication and feeds that are also provided by RSS, Atom supports more standardized meta-data information, along with the ability to make posts from an Atom client to an Atom server. This is in contrast to RSS, which only allows the client to obtain information from a server and not to post information.
The UDA describes the steps that are required in order to have a UPnP device/service or control point usable within the UPnP network. The first step involves IP addressing, where the device acquires an IP address from the DHCP sever or via Auto-IP. The second step, referred to as Discovery, involves control points searching for services or devices/services being advertised into the UPnP network. The third step, referred to as Description, involves the control points fetching the description documents. These first three steps need to occur in this precise order. Other steps, namely the Controlling, Eventing and Presentation steps, do not have such strict requirements.
Unfortunately, there are a number of situations where it is not possible to perform all the steps involved in normal UPnP operations. These situations are often due to limitations caused by the underlying network layer. For example, in a scenario that involves remote access to a UPnP Network, it may be difficult to perform the UPnP discovery step due to long delays caused by the bearer latency on some network segments such as radio access networks like GPRS, or due to a lack of support in tunneling multicast traffic inside VPN tunnels.
In addition to physical limitations, it is also possible that some operational issues may prevent the operation of UPnP discovery. For example, UPnP simple service discovery protocol (SSDP) uses multicast UDP messages to search and advertise devices in the UPnP network. When joining a UPnP network, a device is required to join the standard UPnP multicast group by sending Internet Group Management Protocol (IGMP) messages. Routers are listening to these messages and adding the devices to the multicast group, allowing the respective devices to receive the SSDP messages. UPnP Device architecture specifications note that the “Time to Live” (TTL) of the UPnP multicast message is 4 in UDA v1.0 and 2 in UDA v1.1, thus allowing UPnP messages to pass four hops. However, it possible that not all of the routers on the path are in the same administrative domain and the user does not have rights to join the multicast group on all these routers. Alternatively some routers may not support multicast traffic. Therefore, in more complex networks, there are many cases where multicast traffic might be lost, meaning that the UPnP SSDP cannot work and the whole UPnP concept becomes unusable.
UPnP Device Architecture versions 1.0, 1.0.1 and 1.1 specify that UPnP discovery can be performed using only SSDP. Attempts have been made to perform UPnP discover outside of SSDP. A Device Relay, which is discussed at http://www.intel .com/cd/ids/developer/asmo-na/eng/downloads/upnp/overview/index.htm, has the ability to mirror UPnP devices onto a different network that also has an instance of a running Device Relay. This mechanism effectively bridges two UPnP networks, although material that is out-of-band to UPnP is not bridged. Therefore, all the devices appear to be connected on the same network. The UPnP Relay is started on two different computers, and a WAN interface is used to connect one computer to the other. UPnP Relay automatically creates virtual devices that will mirror all UPnP devices from one network on to the other. Control points on the other network can interact with the virtual devices. However, this type of system requires two special proxies--one on each network--and replicates all of the UPnP traffic from one network to the other and vice versa, leading to UDP multicast “storms.” Additionally, because one virtual device is created for each mirrored device, the memory consumption in the UPnP Relay tool increases with each new device and its complexity. This issue prevents simple devices from playing this role. Currently, this system requires the UPnP Relay to run in a personal computer.
The present invention provides for an architecture where Web Syndication mechanisms such as RSS/Atom feeds can be used to discover remote UPnP devices for environments where the standard UPnP discovery mechanism (e.g. SSDP) does not work due to bearer-induced limitations or policy restrictions along the path. The present invention can be used to enable remote access to UPnP Networks.
The present invention allows for the extension of usage of UPnP protocols and services beyond the physical boundaries of the home network. The present invention does not involve the use of multicast messages, which are problematic over uncontrolled networks such as the Internet. The present invention also has a low level of complexity; as SSDP is the only portion of the UPnP stack is altered. Additionally, home UPnP devices do not require changes in order to interact with remote UPnP devices with the present invention. Furthermore, the level of complexity on the remote UPnP device is reduced compared to conventional systems such as the UPnP Relay described above.
The present invention is based on IETF standard protocols (e.g. ATOM), so no standardization overhead in forums other than UPnP is needed. The present invention also only selectively exposes home devices for remote access. The solution of the present invention also has proxy and firewall transversal capabilities, as it uses the HTTP standard port. Furthermore, the Atom SSDP plugin has low implementation overhead, as the required XML parser and HTTP support are already provided by standard UPnP stacks. The Atom XML parser is quite simple. Lastly, with the present invention, there is no need for a standalone device to provide the UPnP Aggregator functionality, as it can be embedded in the UPnP Internet Gateway Device (IGD).
One embodiment of the present invention comprises an electronic device including a processor and a memory unit operatively connected to the processor. The memory unit includes computer code for using SSDP advertisements transmitted within a network to collect network information about local UPnP devices and services that are available within the network; as well as computer code for aggregating the network information into a RSS feed for transmission to at least one remote device outside of the network. Other embodiments comprise modules, computer programs, and methods for performing the same actions and activities.
Another embodiment of the present invention comprises a system for providing communication between devices including at least one local UPnP device located within a network, at least one remote device located outside of the network, and a device aggregator. The device aggregator is configured to use SSDP advertisements transmitted within the network to collect network information about the local UPnP device and services that are available within the network, as well as to aggregate the network information into a RSS feed for transmission to the at least one remote device.
These and other objects, advantages and features of the invention, together with the organization and manner of operation thereof, will become apparent from the following detailed description when taken in conjunction with the accompanying drawings, wherein like elements have like numerals throughout the several drawings described below.
The present invention provides for an architecture where Web Syndication mechanisms such as RSS/Atom feeds can be used to discover remote UPnP devices for environments where the standard UPnP discovery mechanism (e.g. SSDP) does not work due to bearer-induced limitations or policy restrictions along the path. The present invention can be used to enable remote access to UPnP Networks.
The UPnP device aggregator 140 listens to standard SSDP device advertisements and collects information about UPnP devices and services that are available in the network. The information is then aggregated in RSS/Atom feeds.
The enhanced UPnP device 150 implements functionality that allows out-of-band discovery mechanisms to present information in a format that is compatible with UPnP, e.g., SSDP format.
The operation of an electronic device using out-of-band discovery according to one embodiment of the invention is generally as follows. For service advertisements and as represented, an electronic device that hosts the service, transmits over the location-limited channel a “Service Advertisement” message containing a service advertisement. The payload in the “Service Advertisement” message is the same as for a standard UPnP SSDP message:
A control point device that hosts the control point receives the “Service Advertisement” message over the location-limited channel and continues the exchange using standard UPnP messages. For example, the control point device can transmit a “Get Description” message, after which the electronic device can respond with a “XML Description” message. UPnP messages can also flow between the electronic device and the control point device.
For a service query, the control point device that hosts the UPnP control point sends a service query message over the location-limited channel. The payload of this message is the same as for a standard UPnP SSDP message:
The electronic device that hosts the UPnP Service responds also over the location-limited channel with a service response message with the same payload as a standard UPnP SSDP message:
After the service response message, the devices continue the exchange using standard UPnP messages. For example, the control point device can transmit a “Get Description” message, after which the electronic device can respond with a “XML Description” message. UPnP messages can also flow between the electronic device and the control point device. Computer software code can be used to implement these steps.
The RSS/Atom feed created by the UPnP device aggregator 140 keeps track of how the particular device information was acquired. Devices that were discovered through SSDP announcements are kept in a local branch, while devices that were discovered from Atom feeds are kept in a remote branch. The feed structure for such device aggregation is depicted in
In addition to the above, the present invention can be implemented in a variety of different ways. For example, the UPnP device aggregator 140 as discussed above can be implemented in different manners. For example, the UPnP device aggregator 140 can be implemented as part of a UPnP Internet gateway device. the UPnP device aggregator 140 can also be implemented as a stand-along UPnP device, where the device's only purpose involves aggregation. The UPnP device aggregator can also be formed as part of any other UPnP device as necessary or desired.
In addition, a number of different enhancements can be included with the present invention. For example and in one embodiment of the present invention, the UPnP device aggregator 140 has the ability to restrict the visibility of the local branch based on the identify of the remote device obtained during the authentication process. In order to expose a local device for remote access, explicit authorization needs to be granted to the remote device during the remote access setup procedure. In other words, the user needs to select which devices are visible remotely for each remote device which has access to the home network.
In another embodiment of the present invention and as depicted in
The following is an example of how an ssdp:alive message is converted into an Atom POST message in accordance with the present invention. The following is a depiction of an original ssdp:alive message:
The following is the converted Atom POST (ssdp:alive) message:
The following is an original ssdp:response message:
The following is a converted Atom GET feed (ssdp:response message):
The present invention is described in the general context of method steps, which may be implemented in one embodiment by a program product including computer-executable instructions, such as program code, executed by computers in networked environments.
Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Computer-executable instructions, associated data structures, and program modules represent examples of program code for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represent examples of corresponding acts for implementing the functions described in such steps.
Software and web implementations of the present invention could be accomplished with standard programming techniques with rule based logic and other logic to accomplish the various database searching steps, correlation steps, comparison steps and decision steps. It should also be noted that the words “component” and “module” as used herein, and in the claims, is intended to encompass implementations using one or more lines of software code, and/or hardware implementations, and/or equipment for receiving manual inputs.
The foregoing description of embodiments of the present invention have been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the present invention to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from practice of the present invention. The embodiments were chosen and described in order to explain the principles of the present invention and its practical application to enable one skilled in the art to utilize the present invention in various embodiments and with various modifications as are suited to the particular use contemplated.
This application claims priority from Provisional Application U.S. Application No. 60/742,181, filed Dec. 2, 2005, incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
60742181 | Dec 2005 | US |