The present invention generally relates to the field of computer networks and more particularly to a method, server, computer program product and signal for providing information about the configuration of devices in a network, a method device and computer program product for receiving information about the configuration of devices in a network as well as to a network of devices.
In the field of peer-to-peer networking the connectivity standard used is often the UPnP™ standard. This standard defines entities such as UPnP™ control points and UPnP™ devices. A UPnP™ device is here a logical entity that has a set of services it offers to different elements of the network and a UPnP™ control point is a logical entity that tries to get access to a UPnP™ device. A physical device can contain any number of UPnP™ devices and UPnP™ control points.
Before being able to use UPnP™ devices and services, a UPnP™ control point has to find out what UPnP devices and services are available in a network. UPnP™ control points can search for UPnP™ devices and services by sending out a multicast search request with a specific query. UPnP™ devices in the network respond to that search if their capabilities match the query. Typically one UPnP™ control point sends out such a search and gets a response from all the UPnP™ devices in the network. After that the UPnP™ control point can periodically recheck and/or automatically be notified of newly arrived devices and/or services or changes to existing devices and services. If a UPnP™ control point sends several such search requests a lot of the bandwidth is occupied by these requests. This situation may occur often if the UPnP™ control point is provided in a physical device, which gets connected and disconnected repeatedly to a wireless network.
One way of limiting the amount of traffic is by the provision of a directory server. This directory server then keeps track of all the UPnP™ devices in the network and the services and capabilities they provide. A UPnP™ control point that gets connected to the network will then only have to send out a query directed to this directory server, which responds with one listing of all the UPnP™ devices and their capabilities. This has the advantage that the number of search requests that is sent to all other UPnP™ devices is reduced. However if physical devices get connected and disconnected from the network repeatedly there is still a lot of traffic in the network, which it would be advantageous to limit.
Document US20010039588 describes a server that has a directory where the history of changes/states of a device is maintained together with timestamps. Past states of the device can be queried based on these time stamps. A client device therefore has to monitor the directory for changes in order to find out if it has changed state or not.
Hence there is a need for an improved network configuration updating scheme and in particular one that limits the amount of traffic when devices get connected/disconnected often.
It is an object of the present invention to provide an improved network configuration updating scheme.
According to a first aspect of the present invention, this object is achieved by a method of providing information about the configuration of devices in a network comprising the steps of:
According to a second aspect of the present invention, this object is also achieved by a server for providing information about the configuration of devices in a network and arranged to:
According to a third aspect of the present invention, this object is also achieved by a computer program product for providing information about the configuration of devices in a network, comprising computer program code, to make a computer execute, when said program code is loaded in the computer:
According to a fourth aspect of the present invention, the object is also achieved by a method of receiving information about the configuration of devices in a network, comprising the steps of:
According to a fifth aspect of the present invention, the object is also achieved by a client device for receiving information about the configuration of devices in a network and arranged to:
According to a sixth aspect of the present invention, this object is also achieved by a computer program product for receiving information about the configuration of devices in a network, comprising computer program code, to make a computer execute, when said program code is loaded in the computer:
According to a seventh aspect of the present invention, this object is also achieved by a network of computing devices comprising:
According to an eight aspect of the present invention, this object is furthermore achieved by a signal for providing information about the configuration of devices in a network and comprising:
The present invention has the advantage of providing an enhanced network configuration updating scheme. Because only the difference of the network configuration is sent as a response to a network configuration query, the amount of information sent in the network can be significantly reduced. This reduction gets more important the more devices that are provided in a network, the fewer the changes are to the network and the more often a client device needing such configuration information gets disconnected and reconnected. Some changes of the network configuration can furthermore be made because a device leaves and enters a network. Such changes can undo previous changes and therefore the same network configuration may occur several times. This means that even if many changes are made to the network, a client device might not need much additional network configuration information.
According to one optional feature of the present invention, the response to the first query comprises information about the whole configuration of said part of the network in case no query had been sent from the client device before said first query.
Claims 2 and 12 are directed towards the generation and use of a configuration indicator. By using a configuration indicator, it is easy to keep track of different configurations, limit the size of queries and responses as well as allow the comparison of configurations faster.
According to claim 3 the difference of configuration is set to zero if two compared configuration indicators are equal. This measure allows a direct response virtually occupying no bandwidth if there is no difference in network configuration to be informed to a device.
According to claim 5 a configuration indicator is related to the whole network, this has the advantage of providing a simple way of providing configuration change information.
Claims 6 and 7 are directed towards configuration indicators that provide differentiated information for different parts of the network. This has the advantage of enabling provision of configuration information in relation only to the parts of a network that a device is interested in, which can further reduce the amount of information transmitted.
According to an optional feature of the present invention the response to the second query comprises also the second configuration indicator. This feature has the advantage of allowing later queries to be responded to with limited configuration information.
Claims 8 and 13 are directed towards using configuration change indicators. This has the advantage of allowing easier bookkeeping of all configuration changes in the network including changes that undo earlier changes. This information might be of interest for some applications.
According to further optional features of the present invention a configuration change indicator may also be provided for the whole network. Such an indicator may furthermore be provided with more than one field, where each field is related to a certain part of the network. It is also possible to provide different configuration change indicators, where one configuration change indicator is related to a certain part of the network.
According to claim 14, a client device may use also the configuration change indicator in order to find out different configuration changes. This is advantageous since this information is not present for a client device in case the configuration difference does not reflect a change of configuration.
According to claim 15, earlier received configuration information is updated with said information about the difference in configuration. This has the advantage of using previous configuration knowledge in order to reduce the amount information received as response to further queries.
The expression “change of configuration of a network” is intended to comprise any change that is made to the network in question, like the adding/removal of devices as well as the change of state of devices.
The expression “part of a network” is intended to comprise that a network has been divided in parts according to device types, where devices of a certain type are provided on one part of the network.
The general idea behind the invention is thus to only update a device about the configuration of a network with information that it does not previously have. This allows the reduction of the amount of information provided in responses to network configuration queries.
These and other aspects of the invention will be apparent from and elucidated with reference to the embodiments described hereinafter.
The present invention will now be explained in more detail in relation to the enclosed drawings, where
The client device C1, will in the following description be assumed to comprise a UPnP™ control point, which accesses the services of UPnp™ devices provided by devices D1, D2 and D3. It should however be realised that a UPnP™ control point can also be provided in some other device that the client device can contact and then also in physical devices that provide UPnP™ devices. For the sake of easier understanding of the present invention, the control point is thus in the following assumed to be provided in a client device and will therefore not be explained further. Also the directory server will for the sake of easier understanding of the invention in the following be limited to keeping track of configuration changes and provide network configuration information.
In order to find out what devices and capabilities there exist in the network a client device, like for instance device C1, sends a query directed towards the directory server S. The query is here provided as a SOAP (Simple Object Action Protocol) action sent to the directory server S, which responds to such queries by indicating the devices that are present in the network and the states these devices have and thus the configuration of the network. This can be seen as the directory server being configured as a UPnP™ device that provides a service, the service of network configuration information, which the client device can access via a SOAP action. This also means that the client device C1 might send out an M-search in order to initially discover the presence of the directory server S. The directory server S thus keeps track of all the devices D1, D2 and D3 and their status and as a response to such a query the directory server S returns this information.
More details about UPnP™ control points, UPnP™ devices as well as SOAP actions can be found in the document UPnp™ Device Architecture, Version 1.0, 8 Jun. 2000, by UPnP Forum, which is herein incorporated by reference. One type of directory server is furthermore described in RFC2608, “Service Location Protocol, Version 2”, by E. Guttman, C. Perkins, J. Veizades and M. Day, Network Working Group, The Internet Society, June 1999, which is herein incorporated by reference.
However in wireless networks, devices can get moved, turned off, change status and thus change appearance from time to time. The reason for this can be several. If the device is battery powered it might be in a power save mode. The wireless link might be poor and thus the device might at times loose connectivity. The device might furthermore leave the network from time to time. It is also possible that new devices are connected to such a network. The configuration of the network can thus change from time to time. A client device can also get disconnected several times and it would typically make a new query every time it reconnects to the network. Each time it gets reconnected it would then get all the configuration information anew from the directory server. This means that there is a lot of overhead or extra data transmitted in the network in relation to such queries, which might take away useful bandwidth that could otherwise be used for more important information like the transmission of multimedia data. It would therefore be advantageous if this additional data or search overhead was reduced.
When the network N is first put into operation the directory server S receives or gets information of all the devices D1, D2, D3 and their status. The network configuration or set of device statuses then gets associated with a configuration change indicator value CCI=1, step 10. At the same time a configuration counter CC is set to one, step 12. The configuration indicator CI is then set to one, step 14. This leads to the configuration indicator CI also being associated with the network configuration. As the table of
From the example shown in the table in
The different method steps of
Once the directory sever has created these indicators it is now a simple task for a client device to make enhanced searches according to the invention and receive results that limit the search overhead.
How the server will update a client device on the network configuration upon receiving searches will now be described with reference being made to
The first time the client device C1 gets connected to the network N it performs a search in normal fashion. It sends a query Q1 about the configuration of the network to the server S. The directory server S thus receives the query Q1, step 32, and provides a response R1 to the query Q1 where it lists the devices and their states at the time the server received this first query, i.e., the network configuration. The information indicating the network configuration here thus sets out that the devices D1, D2 and D3 all have state ST1. In the response R1 there is also provided a first change configuration indicator CCI=1 and a first configuration indicator CI=1 associated with the configuration information described above. After that the client device C1 gets disconnected and does not get connected again until the configuration change counter CCI has the value of four. At that time the client device D3 sends another search or a second query Q2 about the network configuration. The second query Q2 here includes the first configuration indicator CI it received in the first query, i.e. CI=1. The directory server S then receives the query Q2, step 36, and goes on and compares the first CI with a second CI, which second CI is associated with the configuration at the time the server received this second query Q2, step 38. If now the second CI is identical with the first CI, i.e. has a value of 1 according to the present example, configuration change data CD is set to zero, step 42, indicating that no configuration change has been made. If however the first CI differs from the second CI, step 40, the configuration of the network associated with the first CI is compared with the configuration of the network associated with the second CI, step 44. This is done by the server looking at the stored previous configurations for finding one having the same value as the first CI and comparing it with the configuration that is at hand at the moment. Configuration change data CD is then set as the difference in configuration, step 46. Since the configuration associated with the configuration indicator to indicate one is in this example compared with the configuration associated with the configuration indicator value four, the difference is that D1 now has state ST2. CD is thus set to indicate this state ST2 of device D1. Thereafter the server sends a response R2 to the second query Q2, step 48, where the response includes a second CI and second CCI associated with the present configuration of the network as well as the configuration difference data CD. If the second query was instead sent at the time the network had the last configuration shown in the table of
The method steps of the directory server are outlined in table II below.
The operating of the client device C1 will now be described with reference being made to
The client device C1 may be interested in the changes that have been made to the network between the queries, especially if the configuration change data CD was zero. In this case it may send further queries based on the CCI indicators to obtain the changes that were made to the network.
By receiving the second configuration indicator CI and second configuration change indicator CCI in the second response R2 it is possible for the client device C1 to continue making simplified searches according to the invention and only get updated on the configuration differences. Thus each time a new query is sent, the response comprises partial information about the configuration the network has.
The method steps of the flow chart in
The present invention thus provides an enhanced network configuration updating scheme where previous knowledge about the network is used. Because only updates of the network configuration are sent when a client device performs a new search, the search overhead is significantly reduced. This reduction gets more important the more devices that are provided in a network. If there are small changes of the network for a client device that gets disconnected and reconnected several times, the reduction of search overhead is significant.
There are several variations that can be made to the present invention. If a client device is a pure client and does not provide any service to other devices, it is possible to omit information about this device from the network configuration information. In the embodiment described above there was one configuration change indicator and configuration indicator provided for the whole network. This is advantageous in that the indicators are kept simple and easy to handle. The sizes of at least the queries and possibly also of the responses are also kept small. It is however possible that a device is only interested in configuration changes of a part of the network, like for instance only in devices of one type. In this case it is possible to provide information to the client device so that it can find out what parts are of interest. One way of doing this can be through the configuration indicator and possibly also the configuration change indicator being provided in the form of tuples, so that different fields of the indicator are directed towards different parts of the network, where one part of the network is typically made up of devices of the same type. A client device can then easily specify that only one specific field is of interest or only investigate that specific field. The configuration change data can in this way be limited even further. Another way to separate between different parts of the network is to provide separate configuration indicators and possibly also configuration change indicators for the different parts of the network so that there is one such indicator per device type.
It should furthermore be realised that the invention is not limited to providing the indicators as numerical values that are incremented. As long as a configuration is uniquely identified and the configuration changes are kept track of these indicator can have any suitable form.
The invention can be implemented in any suitable form including hardware, software, firmware or combinations of these. The invention may be implemented as computer software stored in a program memory and run on one or more data processors and/or digital signal processors. The program code can also be provided on a computer program product, of which one is shown in
Although the present invention has been described in connection with a specific embodiment, it is not intended to be limited to the specific form set forth herein. Rather, the scope of the present invention is limited only by the accompanying claims. In the claims, the term comprising does not exclude the presence of other elements or steps. Furthermore, although individually listed, a plurality of means, elements or method steps may be implemented by e.g. a single unit or processor. Additionally although individual features may be included in different claims, these may possibly be advantageously combined and the inclusion in different claims does not imply that a combination of features is not feasible and/or advantageous. In addition singular references do not exclude a plurality. Thus references to “a”, “an”, “first”, “second” etc. do not preclude a plurality. Reference signs in the claims are provided merely as a clarifying example and shall not be construed as limiting the scope of the claims in any way.
Number | Date | Country | Kind |
---|---|---|---|
04105796.9 | Nov 2004 | EP | regional |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB05/53735 | 11/14/2005 | WO | 5/8/2007 |