Method and system for grouping networked devices together in groups
The present invention relates to a method and a system for grouping devices logically belonging together to one or more groups, wherein said devices and said groups are uniquely identified, and wherein the grouping of said devices is announced to control points. The invention further relates to control points for searching for all devices in the network logically belonging together to a specified group.
The UPnP device architecture 1.0 allows grouping of multiple logical devices by defining a single root device (representing the group as a whole) with embedded devices and their services. The main problem with this existing approach is that there is just one device description containing the description for the root device and all its embedded devices. This device description has to be changed whenever an embedded device joins or leaves the group. But changing the device description requires the root device to revoke all its announcement messages and to re-announce itself and all its embedded devices referring to the changed device description. This results in the termination of all existing communication sessions of all embedded devices. In addition, an embedded device cannot be a member of more than one root device (i.e. group) at any point in time.
It is the object of the present invention to solve the above-mentioned problems.
According to one aspect, the present invention relates to a method of grouping devices logically belonging together in groups, wherein said devices and said groups are uniquely identified by unique identifiers, and wherein the grouping of said devices is announced to one or more control points, the method comprising the steps of: associating the unique identifiers of said devices with the unique identifiers of said groups, and announcing said associated unique identifiers to said control points.
Therefore, a group structure of network devices, e.g. Universal Plug and Play (UPnP) devices, can easily be created in a dynamic way, wherein a device can announce its group membership to control points by indicating the unique identifier of said device along with the associated unique group identifier without affecting ongoing communication of other devices. Examples of devices logically belonging together are devices which are in the same location, devices a user is allowed to use, medical sensors attached to the same patient, devices which are clustered together into groups in order to filter out the devices most relevant for a user in his/her current situation, and devices which are wearable or portable Bluetooth devices (MP3, headset, mobile phone etc.) of a person which are part of a personal area network (PAN) and exposed via a PAN-to-LAN bridge to a UPnP-enabled home network.
In an embodiment, announcing an individual group membership of a device comprises sending a multicast message comprising said unique identifiers from said device to said one or more control points. Thereby, announcement messages are only sent to control points subscribed to the multicast channel, i.e. interested in receiving this type of messages.
In an embodiment, the method further comprises canceling an individual group membership of a device by announcing said unique identifier of said device to said one or more control points along with the associated unique group identifier. Thereby, the group structures can, in addition to said announcing, additionally be changed in a dynamic way by canceling an individual group membership.
In an embodiment, canceling an individual group membership of a device comprises sending a multicast message from said device to said one or more control points comprising said unique identifiers. Thereby, cancellation messages are only sent to control points subscribed to the multicast channel, i.e. interested in receiving this type of messages. In an embodiment, announcing said associated unique identifiers to said control points is a response to a search request message from said control points. Thereby, the devices belonging to a particular group membership of said devices can at any time be discovered by said control point.
In an embodiment, said search request comprises a request message comprising a request for discovering all devices within a particular group by specifying the unique group identifier of the group the control point is interested in. Thereby, the control point can easily discover the devices within a particular group. Also, the devices belonging to a particular group can at any time be discovered by said control point. The search messages
sent from said one or more control points may be sent as multicast messages, i.e. to all devices subscribed to the multicast channel.
In an embodiment, said search request comprises a request message comprising a request for discovering all available groups and all devices within said groups by specifying a common group identifier representing any group. Therefore, if a device belongs to several groups it sends for each of its group memberships a search response message comprising its unique device identifier and the associated unique group identifier to the control point. Thereby, the available groups in the network can be discovered by said control point at any point in time. The control point can in this way learn all the groups which are available in the network and all group memberships of all devices. The search messages sent from said one or more control points may be sent as multicast messages, i.e. to all devices subscribed to the multicast channel.
In an embodiment, announcing said unique identifiers to said one or more control points is associated with a time limit. Thereby, after said time limit is expired, the control points consider such an expired group announcements as invalid.
In an embodiment said multicast message comprising said unique identifiers which is sent to said one or more control points is sent periodically by said devices. Thereby, the devices can periodically renew their announcements.
In an embodiment, said devices are adapted to be members of more than one group simultaneously. Thereby, devices associated to e.g. two groups can change their group membership in one of said groups without having to recreate the second group membership.
An example of this is where the devices are medical sensors attached to a patient, wherein one of said groups is "Patient 1" group, comprising said devices, and the second group is
"Floorl" group, comprising the location of said "Patientl" group. If the patient is to be moved to a second floor, it is sufficient to cancel the "Floorl" group membership and to announce a "Floor2" group membership for all sensors belonging to "Patient 1". It is therefore not necessary to cancel and re-announce the "Patientl" group membership with all its devices. Devices belonging to other patients also belonging to "Floorl" or "Floor2" group are therefore not affected. In a further aspect, the present invention relates to a computer-readable medium having stored therein instructions for causing a processing unit to execute said method.
According to another aspect, the present invention relates to a system grouping devices logically belonging together in groups wherein said devices and said groups are
uniquely identified by unique identifiers, and wherein the grouping of said devices is announced to one or more control points, comprising: means for associating the unique identifiers of said devices with the unique identifier of said groups, and - means for announcing said associated unique identifiers to said control points.
In an embodiment, said devices are Universal Plug and Play (UPnP) devices and said control points are UPnP control points. Thereby, said system is applicable for UPnP- enabled wired and wireless networks, both home and corporate networks where UPnP devices logically belonging together can be grouped together. According to another aspect, the present invention relates to a control point for discovering devices logically belonging together in one or more groups, wherein said devices and said groups are uniquely identified by unique identifiers and associated together by associating the unique identifiers for said devices with the unique identifier for said groups, and wherein said devices belonging together in said groups are adapted to announce their unique identifiers to said control point and thereby uniquely identify them to said control point.
The devices can therefore be discovered by said control point as mutual group members.
In the following, the present invention, and in particular preferred embodiments thereof, will be described in more detail in connection with accompanying drawings in which:
Fig. 1 illustrates devices in a network which have been grouped together, Fig. 2 shows a message flow of a medical sensor exposed as an UPnP device on a hospital network to a UPnP control point, and
Fig. 3 shows a message flow caused from a control point searching for all devices belonging to a particular group,
Fig. 4 shows a message flow caused from a control point searching for all devices belonging to any group.
Fig. 1 illustrates devices in a network which have been grouped together, wherein the devices belonging to the same group are devices which logically belong together.
An example of such devices logically belonging together are devices which are in the same location, devices a user is allowed to use, medical devices belonging to a patient, devices which are clustered together into groups in order to filter out the devices most relevant for a user in his/her current situation, and devices which are wearable or portable Bluetooth devices (MP3, headset, mobile phone etc.) of a person which are part of a personal area network (PAN) and exposed via a PAN-to-LAN bridge to a UPnP-enabled home network.
In the following discussion, we will assume that the devices are Universal Plug and Play (UPnP) devices, and the network is a UPnP-enabled network. Other networks are of course also possible, such as Jini- or SDP-enabled networks. In the example shown in Fig. 1, the UPnP devices 112-124 can be medical sensors for patient monitoring applications, e.g. ECG, temperature sensors, blood pressure sensors, etc. The UPnP devices 112-124, which correspond to a single patient and belong logically together, are therefore grouped together 106-110. It is to note that device 124 is the only member of group 110. The groups are identified by a universally unique identifier "group-UUID", which will be referred to later, and based thereon the medical sensors can be found for each patient 101-105 from the hospital network using at least one control point 111. Also, new sensors can easily be added to the groups 106-110, or removed from the groups 106-110 so that the group structures can be changed dynamically.
In the following, embodiments of how to carry out the announcing and the canceling of group memberships of UPnP devices, and how a control point searches or detects all devices belonging to a particular group is described. This is solved by extending the UPnP discovery protocol so that the UPnP devices are able to announce and cancel their group memberships in a dynamic way, and wherein the control points are able to search for all devices belonging to a particular group.
Advertising group membership:
Adding a new sensor to a group is performed by advertising its group membership by sending a multicast message with method "NOTIFY" and "ssdp:alive" in the "NTS" header, as shown here below, in the following format once for each of its group memberships.
NOTIFY * HTTP/1.1
HOST: 239.255.255.250:1900
CACHE-CONTROL: max-age = <seconds until advertisement expires>
LOCATION: <URL to device description of root device> NT: group : <group-UUID> NTS: ssdp:alive
SERVER: <OS>/<version> UPnP/2.0 <product>/<version> USN: uuid:<device-UUID>: :group:<group-UUID>
Note that the values enclosed in the brackets are placeholders for the actual values. The "NT" header contains the prefix "group:" followed by the universally unique identifier "UUID" of the group the device belongs to. The "USN" header contains basically the same value as the "NT" header, but prefixed by the "UUID" of the device. Therefore, the "USN" header associates the "UUID" of the device and the "UUID" of the group. By referring to the example illustrated in Fig. 1, the "NT" could be group 2 107, and the "USN" header could be device/medical sensors 115 having its universally unique identifier "UUID". Preferably, the advertisement is re-sent when it expires. It should be noted that the expiration time of "group membership announcements" can be independently set from the expiration time of the standard UPnP "device availability announcements". Due to the unreliable nature of the UDP (User Datagram Protocol), said devices 112-124 preferably send each "NOTIFY" message more than once.
As an alternative, instead of re-using the NT header defined in UPnP for announcing group memberships a new header (e.g. "GROUPS:") can be introduced followed by the list of group-UUIDs of the groups the device belongs to.
Cancellation of group memberships:
The UPnP devices can cancel an individual group membership independent of each other by sending a multicast message with method "NOTIFY" and "ssdp:byebye" in the "NTS" header in the following format. Values in the brackets are placeholders for actual values.
NOTIFY * HTTP/1.1 HOST: 239.255.255.250:1900 NT: group : <group-UUID> NTS: ssdp:byebye USN: uuid:<device-UUID>: :group:<group-UUID>
The "NT" header contains the prefix "group:" followed by the universally unique identifier (UUID) of the group the device no longer belongs to. Referring again to the example in Fig. 1, this could mean that said device/medical sensors 115 in said group 2 107 is no longer a member of this group. As mentioned previously, the "USN" header contains basically the same value as the "NT" header, but prefixed by the UUID of the device. As mentioned previously, due to the unreliable nature of the UDP, said device preferably send the "NOTIFY" message more than once.
As an alternative, instead of re-using the NT header defined in UPnP for revoking group membership announcements a new header (e.g. "GROUPS:") can be introduced followed by the list of group-UUIDs of the groups the device belongs to.
Searching for group members:
The UPnP control point 111 can search for all member devices belonging to a particular group identified by its group-"UUID" by sending a multicast message with method M-Search (multicast search) in the following format. Values in the brackets are placeholders for actual values.
M-SEARCH * HTTP/1.1 HOST: 239.255.255.250:1900 MAN: "ssdp:discovery"
MX: <seconds to delay response> ST: group: <group-UUID>
The "ST" header contains the prefix "group:" followed by the universally unique identifier (UUID) of the group the control point is interested in. All the devices belonging to the group identified by this <group-UUID> will send a search response message to the control point in response to the search request message.
A UPnP control point can also search for all devices belonging to any group by using "group:all" as search target in the "ST" header. In this case, all devices belonging to at least one group will send a search response message to the control point for each group they are part of in response to the search request message.
Due to the unreliable nature of UDP, control points send preferably said M- Search message more than once.
Responding to search requests:
To be found, a device must send a response to said search request, as discussed previously, to the source IP address and port of the control point that sent the request to the multicast channel. Responses to M-Search are intentionally parallel to advertisements, and as such, follow the same pattern as listed for "NOTIFY" with
"ssdpralive" except the "NT" header there is an "ST" header here. The response is in this embodiment sent in the following format. Values in the brackets are placeholders for actual values.
HTTP/1.1 200 OK
CACHE-CONTROL: max-age = <seconds until advertisement expires>
EXT:
LOCATION: <URL to device description of root device>
SERVER: <OS>/<version> UPnP/2.0 <product>/<version> ST: group:<group-UUID>
USN: uuid:<device-UUID>: :group:<group-UUID>
The "ST" header contains the prefix "group:" followed by the universally unique identifier (UUID) of the group the device belongs to. The USN header contains basically the same value as the ST header, but prefixed by the UUID of the device. Accordingly, the devices are adapted to receive said search request from the control point and compare whether they belong to the group specified by the "<group-UUID>" in the search request. If that's the case, the matching devices send a search response message to the control point comprising the "UUID" of the devices and the "UUID" of the group thereby all the necessary information about the devices. Thereby a control point can discover all available devices in the group.
If the search request contains as search target "group:all", all devices belonging to any group send a response message for each of their group memberships. Thereby a control point can discover all available groups and all group memberships of all devices.
Due to the unreliable nature of UDP, devices preferably send each response more than once.
Fig. 2 shows a message flow of a medical sensor attached to a patient and exposed as an UPnP device 209 on a hospital network to an UPnP control point 210, as it advertises its group membership to the control point 210. It is assumed that the medical sensor knows the patient it is attached to (e.g. by exploiting RFID technology for automatic patient identification) and its current location (e.g. by exploiting RF-based indoor positioning systems). The first four advertisements messages 201-204, are the same as defined in the UPnP device architecture 1.0. The first advertisement message relates to the unique identifier "UUID" of the device (Adv. "uuid:<dev.-UUID>") 201, the second to the type/version of the device (Adv. "urn:sche.-upnp-org:dev. :<dev.Typ.>:-<vers.>") 202, the third to the root device (Adv. "Upnp:R-dev") 203 and the fourth advertisement is the service type of the device (Adv. "urn:sche..-upnp-org.serv.:<serv.Typ.>:-<vers.>") 204. The fifth and the sixth advertisement messages are for announcing the group memberships of the device 209. The fifth advertisement relates to the group "Patientl" (e.g. group 2 107 in Fig. 1) (Adv."Gr.:Pat.l") 205 and the sixth advertisement is the group "Floor 1" (Adv. "Gr.:Fl.l") 206. Accordingly, the device 209 is associated to two groups; the first group relating to the patient ("Patientl") and the second group relating to the floor of the hospital ("Floorl"). Therefore, the patient can be transferred to another floor, e.g. second floor, without having to recreate the group "Patientl" with all the associated medical sensors. Only the group relating to the floor needs to be changed. This is illustrated in the seventh advertisement, wherein the device 209 (e.g. triggered by a notification of an indoor positioning system) revokes the "Floorl" group announcement by sending a ByeBye message (BB. "Gr.rFl.l") 207. In the eighth advertisement, the device 209 announces its new membership to the "Floor2" (Adv. "Gr.:F1.2") 208.
Fig. 3 shows a message flow caused from a control point 301 searching for all devices belonging to the group "Patientl", the group "Patient2", and group "Floorl" in sequence. The devices 302-304 are attached to "Patientl", the devices 305-307 are attached to "Patient2", and all devices 302-207 are at "Floorl". At first, the control point 301 sends a multicast search request (M-Search) (Se. f. "gr.:Pat.l") 308 to all the devices 302-307. Those devices belonging to the group "Patientl", i.e. devices 302-304, send a search response (Se. Resp.) 309-311 to the control point 301 with all the necessary information of the devices 302- 304. In one embodiment this is done by sending a URL (Uniform Resource Locator) to its device description to the control point 301, which subsequently can start using the discovered devices.
The control point 301 also sends a multicast search request (Se. f. "gr.:Pat.2") 312 to all the devices 302-307 in the same way. Those devices belonging to the "Patient2" group, i.e. devices 305-307, send a search response (Se. Resp.) 313-315 to the control point 301 with all the information necessary for using the devices. At last, the control point 301 searches (Se. f. "gr.:Fl.l") 316 for all the devices
302-307 belonging to group "Floorl". Since all the devices also belong to this group all the devices send a search response (Se. Resp.) 317-322 to the control point 301 with all the information necessary for using the devices.
Fig. 4 shows a message flow caused from a control point 401 searching for all devices 402-407 belonging to any group by sending a search request message with the common group identifier "group:all" representing any group as search target. At first, the control point 401 sends a multicast search request (M-Search) (Search for "group:all") 408 to all the devices 402-407. All devices belonging to any group, i.e. devices 402-407, send a search response (Search Response) 409-420 to the control point 401 for all groups they are belonging to with all the necessary information of the devices 402-407. For example device 402 which belongs to two groups ("Patientl" and "Floorl") sends a search response message 409 for the group "Patientl" and a further search response message 410 for the group membership in group "Floorl". The other devices 403-407 respond in the same way. Thereby, the control point 401 learns all available groups in the network and all group memberships of all devices.
It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word 'comprising' does not exclude the presence of other elements or steps than those listed in a claim. The invention can be implemented by means of hardware comprising several distinct elements and by means of a suitably programmed computer. In a device claim enumerating several means, several of these means can be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different, dependent claims does not indicate that a combination of these measures cannot be used to advantage.