Conveying state changes using connectionless messaging and a store-and-forward cache
Abstract
The disclosure relates to conveying state changes from an advertising node to one or more discovering nodes, wherein the advertising node may convey the state changes using small efficient low-level broadcast or multicast advertisements to trigger delivering larger structured data in a manner that may be conceptually similar to broadcasting or multicasting but actually delivered using point-to-point or other delivery mechanisms that may be more efficient and reliable. In particular, the advertising node may the convey state changes using broadcast messaging and a store-and-forward cache in a manner that removes bandwidth and/or size constraints that networks impose on multicast/broadcast datagrams while preserving benefits associated therewith.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method for sending messages from an advertising device to a discovering device, the method comprising:
storing, at the advertising device, a plurality of messages in a local cache;
incrementing, each time a message is added to the local cache, a value of an internal state variable stored on the advertising device to associate each value of the internal state variable with a corresponding one of the plurality of messages;
broadcasting, in response to a new message being added to the local cache, a low-level advertisement, wherein the low-level advertisement includes an identifier of the advertising device and a new value of the internal state variable associated with the new message;
receiving, from a discovering device, a request for the new message in the local cache associated with the new value of the internal state variable; and
unicasting in response to the request, the new message to the discovering device.
2. The method of claim 1 , wherein the advertising device does not broadcast the new low-level advertisement in response to determining that no requests from the discovering device were received prior to incrementing the value of the internal state variable to the new value.
3. The method of claim 1 , further comprising:
broadcasting the low-level advertisement in response to determining that at least one request from the discovering device was received prior to incrementing the value of the internal state variable to the new value.
4. The method of claim 3 , wherein the broadcasted low-level advertisement indicates that the internal state variable was incremented and that the low-level advertisement has a payload size smaller than the new message added to the local cache.
5. The method of claim 3 , wherein the discovering device maintains a mapping between an identifier associated with the advertising device and a local value that corresponds to the internal state variable associated with the messages stored in the local cache at the advertising device.
6. The method of claim 5 , wherein the discovering device requests the new message added to the local cache from the advertising device when the new value associated with the internal state variable in the broadcasted low-level advertisement exceeds the local value mapped to the identifier of the advertising device.
7. The method of claim 6 , wherein the discovering device establishes a temporary connection with the advertising device to request the new message added to the local cache from the advertising device.
8. The method of claim 7 , wherein the established temporary connection is closed after the advertising device sends the new message to the at least one discovering device, and wherein the at least one discovering device updates the local value mapped to the identifier associated with the advertising device based on the new value associated with the internal state variable in the broadcasted low-level advertisement in response to receiving the new message transmitted from the advertising device.
9. An advertising device comprising:
at least one producer app that generates service-related messages;
a first transceiver configured to communicate via a wireless air interface;
a second transceiver configured to communicate via the wireless air interface;
a discovery service component configured to broadcast low-level advertisements via the first transceiver;
a local cache to store the service-related messages;
a message manager to:
store the service-related messages in the local cache;
increment, each time a message is added to the local cache, a value of an internal state variable stored on the advertising device to associate each value of the internal state variable with a corresponding one of the plurality of messages;
prompt the discovery service to broadcast, in response to a new message being added to the local cache, a low-level advertisement via the first transceiver, wherein the low-level advertisement includes an identifier of the advertising device and a new value of the internal state variable associated with the new message;
receive, from a discovering device, a request for the new message in the local cache associated with the new value of the internal state variable; and
unicast, via the second transceiver, in response to the request, the new message to the discovering device.
10. The advertising device of claim 9 , wherein the low-level advertisement is sent via user datagram protocol and the new message is unicast via transmission control protocol.
11. The advertising device of claim 9 , wherein the discovery service component is configured to broadcast low-level advertisements that are limited to 1500 bytes, and the message manager is configured to unicast messages that are greater than 1500 bytes.
12. A non-transitory, tangible processor readable storage medium, encoded with processor readable instructions to perform a method for sending messages from an advertising device to a discovering device, the method comprising:
storing, at the advertising device, a plurality of messages in a local cache;
incrementing, each time a message is added to the local cache, a value of an internal state variable stored on the advertising device to associate each value of the internal state variable with a corresponding one of the plurality of messages;
broadcasting, in response to a new message being added to the local cache, a low-level advertisement, wherein the low-level advertisement includes an identifier of the advertising device and a new value of the internal state variable associated with the new message;
receiving, from a discovering device, a request for the new message in the local cache associated with the new value of the internal state variable; and
unicasting in response to the request, the new message to the discovering device.
13. The non-transitory, tangible processor readable storage medium of claim 12 , wherein the advertising device does not broadcast the new low-level advertisement in response to determining that no requests from the discovering device were received prior to incrementing the value of the internal state variable to the new value.
14. The non-transitory, tangible processor readable storage medium of claim 12 , the method comprising:
broadcasting the low-level advertisement in response to determining that at least one request from the discovering device was received prior to incrementing the value of the internal state variable to the new value.
15. The non-transitory, tangible processor readable storage medium of claim 14 , wherein the broadcasted low-level advertisement indicates that the internal state variable was incremented and that the low-level advertisement has a payload size smaller than the new message added to the local cache.
16. The non-transitory, tangible processor readable storage medium of claim 14 , wherein the discovering device maintains a mapping between an identifier associated with the advertising device and a local value that corresponds to the internal state variable associated with the messages stored in the local cache at the advertising device.
17. The non-transitory, tangible processor readable storage medium of claim 16 , wherein the discovering device requests the new message added to the local cache from the advertising device when the new value associated with the internal state variable in the broadcasted low-level advertisement exceeds the local value mapped to the identifier of the advertising device.
18. The non-transitory, tangible processor readable storage medium of claim 17 , wherein the discovering device establishes a temporary connection with the advertising device to request the new message added to the local cache from the advertising device.
19. The non-transitory, tangible processor readable storage medium of claim 18 , wherein the established temporary connection is closed after the advertising device sends the new message to the at least one discovering device, and wherein the at least one discovering device updates the local value mapped to the identifier associated with the advertising device based on the value associated with the internal state variable in the broadcasted low-level advertisement in response to receiving the new message transmitted from the advertising device.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.