Tailored Messaging
The disclosed embodiments generally relate to techniques for tailoring messages for network communication. More specifically, the disclosed embodiments relate to systems and methods to provide customized information updates based on recipient preferences. For example, a recipient may prefer receiving updates less frequently than the system creates updates and/or may prefer to receive different levels of data in the updates. In some embodiments, a deltasnap technique is provided which allows for more efficient tailoring of the rate that update messages are provided. In some embodiments, a partitioning technique is provided which allows for more efficient tailoring of the content of update messages. In some embodiments, the deltasnap technique is provided in combination with the partitioning technique which allows for more efficient tailoring of the rate and content of the update messages.
1 . A method including:
generating, by a computing device, a first snapshot representative of a first state of a dataset at a first time;
sending, by the computing device, the first snapshot to a first subscribing device and a second subscribing device;
generating, by the computing device, a plurality of deltasnaps, each of the plurality of deltasnaps representing a difference between the first state of the dataset at the first time and a subsequent state of the dataset at a time subsequent to the first time;
based on a first update rate, sending, by the computing device, a first portion of the plurality of deltasnaps to the first subscribing device; and
based on a second update rate, sending, by the computing device, a second portion of the plurality of deltasnaps to the second subscribing device.
2 . The method of claim 1 , wherein the first update rate is different from the second update rate.
3 . The method of claim 1 , further including:
before sending the first portion of the plurality of deltasnaps to the first subscribing device, tailoring the first portion of the plurality of deltasnaps according to a first preference defined by the first subscribing device; and
before sending the second portion of the plurality of deltasnaps to the second subscribing device, tailoring the second portion of the plurality of deltasnaps according to a second preference defined by the second subscribing device.
4 . The method claim 3 , wherein the first preference is different from the second preference.
5 . The method of claim 3 , wherein tailoring the first portion of the plurality of deltasnaps further includes truncating the first portion of the plurality of deltasnaps according to the first preference of the first subscribing device, and wherein tailoring the second portion of the plurality of deltasnaps further includes truncating the second portion of the plurality of deltasnaps according to the second preference of the second subscribing device.
6 . The method of claim 5 , further including:
when a connection to a third subscribing device is detected, sending a third portion of the first snapshot to the third subscribing device; and
sending a third portion of a most recent one of the plurality of deltasnaps to the third subscribing device.
7 . The method of claim 1 , further including:
after generating the first snapshot representative of the first state of the dataset at a first time and after generating the plurality of deltasnaps, generating, by the computing device, a second snapshot representative of a state of the dataset at a later time;
after generating the second snapshot, generating, by the computing device, a plurality of further deltasnaps;
based on the first update rate, sending, by the computing device, a first portion of the plurality of further deltasnaps to the first subscribing device; and
based on the second update rate, sending, by the computing device, a second portion of the plurality of further deltasnaps to the second subscribing device.
8 . A computer readable medium including instructions which, when executed, cause a machine to at least:
generate a first snapshot representative of a first state of a dataset at a first time;
send the first snapshot to a first subscribing device and a second subscribing device;
generate a plurality of deltasnaps, each of the plurality of deltasnaps representing a difference between the first state of the dataset at the first time and a subsequent state of the dataset at a time subsequent to the first time;
based on a first update rate, send a first portion of the plurality of deltasnaps to the first subscribing device; and
based on a second update rate, send a second portion of the plurality of deltasnaps to the second subscribing device.
9 . The computer readable medium of claim 8 , wherein the first update rate is different from the second update rate.
10 . The computer readable medium of claim 8 , wherein the instructions further cause the machine to at least:
before sending the first portion of the plurality of deltasnaps to the first subscribing device, tailor the first portion of the plurality of deltasnaps according to a first preference defined by the first subscribing device; and
before sending the second portion of the plurality of deltasnaps to the second subscribing device, tailor the second portion of the plurality of deltasnaps according to a second preference defined by the second subscribing device.
11 . The computer readable medium of claim 10 , wherein the first preference is different from the second preference.
12 . The computer readable medium of claim 10 , wherein tailoring the first portion of the plurality of deltasnaps further includes truncating the first portion of the plurality of deltasnaps according to the first preference of the first subscribing device, and wherein tailoring the second portion of the plurality of deltasnaps further includes truncating the second portion of the plurality of deltasnaps according to the second preference of the second subscribing device.
13 . The computer readable medium of claim 12 , wherein the instructions further cause the machine to at least:
when a connection to a third subscribing device is detected, send a third portion of the first snapshot to the third subscribing device; and
send a third portion of a most recent one of the plurality of deltasnaps to the third subscribing device.
14 . The computer readable medium of claim 8 , wherein the instructions further cause the machine to at least:
after generating the first snapshot representative of the first state of the dataset at a first time and after generating the plurality of deltasnaps, generate a second snapshot representative of a state of the dataset at a later time;
after generating the second snapshot, generate a plurality of further deltasnaps;
based on the first update rate, send a first portion of the plurality of further deltasnaps to the first subscribing device; and
based on the second update rate, send a second portion of the plurality of further deltasnaps to the second subscribing device.
15 . A computing device including:
a processor; and
memory storing computer readable instructions which, when executed by the processor, configure the processor to:
generate a first snapshot representative of a first state of a dataset at a first time;
send the first snapshot to a first subscribing device and a second subscribing device;
generate a plurality of deltasnaps, each of the plurality of deltasnaps representing a difference between the first state of the dataset at the first time and a subsequent state of the dataset at a time subsequent to the first time;
based on a first update rate, send a first portion of the plurality of deltasnaps to the first subscribing device; and
based on a second update rate, send a second portion of the plurality of deltasnaps to the second subscribing device.
16 . The computing device of claim 15 , wherein the first update rate is different from the second update rate.
17 . The computing device of claim 15 , wherein the instructions further configure the processor to:
before sending the first portion of the plurality of deltasnaps to the first subscribing device, tailor the first portion of the plurality of deltasnaps according to a first preference defined by the first subscribing device; and
before sending the second portion of the plurality of deltasnaps to the second subscribing device, tailor the second portion of the plurality of deltasnaps according to a second preference defined by the second subscribing device.
18 . The computing device of claim 17 , wherein the first preference is different from the second preference.
19 . The computing device of claim 17 , wherein tailoring the first portion of the plurality of deltasnaps further includes truncating the first portion of the plurality of deltasnaps according to the first preference of the first subscribing device, and wherein tailoring the second portion of the plurality of deltasnaps further includes truncating the second portion of the plurality of deltasnaps according to the second preference of the second subscribing device.
20 . The computing device of claim 19 , wherein the instructions further configure the processor to:
when a connection to a third subscribing device is detected, send a third portion of the first snapshot to the third subscribing device; and
send a third portion of a most recent one of the plurality of deltasnaps to the third subscribing device.