US12019467B2ActiveUtilityA1

Estimation of event generation times to synchronize recordation data

51
Assignee: CLICK THERAPEUTICS INCPriority: Feb 14, 2022Filed: Feb 14, 2022Granted: Jun 25, 2024
Est. expiryFeb 14, 2042(~15.6 yrs left)· nominal 20-yr term from priority
Inventors:Chang-Han Jong
G06F 1/10H04J 3/0679H04J 3/0685G06F 2201/86G06F 11/3476G06F 1/12G06F 1/14
51
PatentIndex Score
0
Cited by
9
References
36
Claims

Abstract

Provided herein are systems and methods of determining times of events. A server may receive a message from a client in response to an event. The message may identify a first time corresponding to a generation of the event and a second time corresponding to transmission of the message. The first time and the second time may be determined using a first clock of the client. The server may identify, using a second clock of the server, a third time at which the message is received at the server. The server may determine a fourth time based at least on the first time, the second time, and the third time. The fourth time may identify a time according to the second clock at which the event was generated at the client.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method of determining times of events, comprising:
 receiving, by a server, a first message from a first client in response to a first event, the first message identifying a first time corresponding to a generation of the first event and a second time corresponding to transmission of the first message, the first time and the second time determined using a first clock of the first client; 
 identifying, by the server, using a second clock of the server, a third time at which the first message is received at the server; 
 determining, by the server, a fourth time based at least on the first time, the second time, and the third time, the fourth time identifying a time according to the second clock at which the first event was generated at the first client; 
 storing, by the server, on a database, a record identifying the first client and the first event; and 
 providing, by the server, a second message to a second client associated with the first client, the second message identifying the first event and the fourth time. 
 
     
     
       2. The method of  claim 1 , further comprising determining, by the server, for a third message in response to a second event from the second client associated with the first client, based at least on (i) a fifth time corresponding to a generation of the second event according to a third clock of the second client, (ii) a sixth time corresponding to transmission of the third message according to the third clock, and (iii) a seventh time at which the third message is received at the server determined using the second clock, an eighth time identifying a time according to the second clock at which the second event was generated at the second client. 
     
     
       3. The method of  claim 2 , further comprising determining, by the server, a sequence of the first event and the second event based at least on (i) the fourth time and (ii) the eighth time according to the second clock. 
     
     
       4. The method of  claim 2 , further comprising storing, by the server, in a log for the first client on the database, a second record identifying the second client, the second event, and the eighth time, responsive to an association between the first client and the second client. 
     
     
       5. The method of  claim 2 , further comprising determining, by the server, a precedence for resolution between the first event and the second event based at least on the fourth time and the eighth time, responsive to identifying that the first message and the third message as having a matching key. 
     
     
       6. The method of  claim 1 , further comprising:
 receiving, by the server, third message in response to a third event from the second client associated with the first client; and 
 identifying, by the server, the first event and the third event as corresponding to a routine, responsive to the first message and the third message having a matching key for the routine. 
 
     
     
       7. The method of  claim 1 , wherein receiving the first message further comprises receiving the first message from the first client, responsive to the first client establishing a connection with a network with which the server is communicatively coupled. 
     
     
       8. The method of  claim 1 , wherein receiving the first message further comprises receiving the first message generated by an application on the first client in response to the first event, the application providing a plurality of routines to address a condition of a user, the first event corresponding to performance of at least one of the plurality of routines. 
     
     
       9. The method of  claim 1 , wherein the record further identifies a key for the first event, a payload of the first message, a tag associated with the payload, and a hash value generated by the first client for the first event. 
     
     
       10. A system for determining times of events, comprising:
 at least one server having one or more processors coupled with memory, the at least one server configured to:
 receive a first message from a first client in response to a first event, the first message identifying a first time corresponding to a generation of the first event and a second time corresponding to transmission of the first message, the first time and the second time determined using a first clock of the first client; 
 identify, using a second clock of the at least one server, a third time at which the first message is received at the at least one server; 
 determine a fourth time based at least on the first time, the second time, and the third time, the fourth time identifying a time according to the second clock at which the first event was generated at the first client; 
 store, on a database, a record identifying the first client and the first event; and 
 provide a second message to a second client associated with the first client, the second message identifying the first event and the fourth time. 
 
 
     
     
       11. The system of  claim 10 , wherein the at least one server is further configured to determine, for a third message in response to a second event from the second client associated with the first client, based at least on (i) a fifth time corresponding to a generation of the second event according to a third clock of the second client, (ii) a sixth time corresponding to transmission of the third message according to the third clock, and (iii) a seventh time at which the third message is received at the at least one server determined using the second clock, an eighth time identifying a time according to the second clock at which the second event was generated at the second client. 
     
     
       12. The system of  claim 11 , wherein the at least one server is further configured to determine a sequence of the first event and the second event based at least on (i) the fourth time and (ii) the eighth time according to the second clock. 
     
     
       13. The system of  claim 11 , wherein the at least one server is further configured to store, in a log for the first client on the database, a second record identifying the second client, the second event, and the eighth time, responsive to an association between the first client and the second client. 
     
     
       14. The system of  claim 11 , wherein the at least one server is further configured to determine a precedence for resolution between the first event and the second event based at least on the fourth time and the eighth time, responsive to identifying that the first message and the third message as having a matching key. 
     
     
       15. The system of  claim 10 , wherein the at least one server is further configured to:
 receive a third message in response to a third event from the second client associated with the first client; and 
 identify the first event and the third event as corresponding to a routine, responsive to the first message and the third message having a matching key for the routine. 
 
     
     
       16. The system of  claim 10 , wherein the at least one server is further configured to receive the first message from the first client, responsive to the first client establishing a connection with a network with which the at least one server is communicatively coupled. 
     
     
       17. A method of determining times of events, comprising:
 identifying, by a client, in response to an event, a first time corresponding to a generation of the event and a second time corresponding to transmission of a message sent to a server to identify the event, the first time and the second time determined using a first clock of the client; 
 receiving, by the client, a third time at which the message is received at the server, the third time determined using a second clock of the server; 
 determining, by the client, a fourth time based at least on the first time, the second time, and the third time, the fourth time identifying a time according to the second clock at which the event was generated at the client; and 
 storing, by the client, on a database, an association between the event and the fourth time. 
 
     
     
       18. The method of  claim 17 , further comprising sending, by the client to the server, a second message identifying the event, the first time, and the second time, responsive to establishing a connection with a network with which the server is communicatively coupled. 
     
     
       19. A method of determining times of events, comprising:
 receiving, by a server, a first message from a first client in response to a first event, the first message identifying a first time corresponding to a generation of the first event and a second time corresponding to transmission of the first message, the first time and the second time determined using a first clock of the first client; 
 identifying, by the server, using a second clock of the server, a third time at which the first message is received at the server; 
 determining, by the server, a fourth time based at least on the first time, the second time, and the third time, the fourth time identifying a time according to the second clock at which the first event was generated at the first client; 
 storing, by the server, on a database, a record identifying the first client and the first event; 
 receiving, by the server, a second message in response to a second event from a second client associated with the first client; and 
 identifying, by the server, the first event and the second event as corresponding to a routine, responsive to the first message and the second message having a matching key for the routine. 
 
     
     
       20. The method of  claim 19 , further comprising determining, by the server, for a third message in response to a third event from the second client associated with the first client, based at least on (i) a fifth time corresponding to a generation of the third event according to a third clock of the second client, (ii) a sixth time corresponding to transmission of the third message according to the third clock, and (iii) a seventh time at which the third message is received at the server determined using the second clock, an eighth time identifying a time according to the second clock at which the third event was generated at the second client. 
     
     
       21. The method of  claim 20 , further comprising determining, by the server, a sequence of the first event and the third event based at least on (i) the fourth time and (ii) the eighth time according to the second clock. 
     
     
       22. The method of  claim 20 , further comprising storing, by the server, in a log for the first client on the database, a second record identifying the second client, the third event, and the eighth time, responsive to an association between the first client and the second client. 
     
     
       23. The method of  claim 20 , further comprising determining, by the server, a precedence for resolution between the first event and the third event based at least on the fourth time and the eighth time, responsive to identifying that the first message and the third message as having the matching key. 
     
     
       24. The method of  claim 19 , further comprising providing, by the server, a third message to the second client associated with the first client, the third message identifying the first event and the fourth time. 
     
     
       25. The method of  claim 19 , wherein receiving the first message further comprises receiving the first message from the first client, responsive to the first client establishing a connection with a network with which the server is communicatively coupled. 
     
     
       26. The method of  claim 19 , wherein receiving the first message further comprises receiving the first message generated by an application on the first client in response to the first event, the application providing a plurality of routines to address a condition of a user, the first event corresponding to performance of at least one of the plurality of routines. 
     
     
       27. The method of  claim 19 , wherein the record further identifies a key for the first event, a payload of the first message, a tag associated with the payload, and a hash value generated by the first client for the first event. 
     
     
       28. A system for determining times of events, comprising:
 at least one server having one or more processors coupled with memory, the at least one server configured to:
 receive a first message from a first client in response to a first event, the first message identifying a first time corresponding to a generation of the first event and a second time corresponding to transmission of the first message, the first time and the second time determined using a first clock of the first client; 
 identify, using a second clock of the at least one server, a third time at which the first message is received at the at least one server; 
 determine a fourth time based at least on the first time, the second time, and the third time, the fourth time identifying a time according to the second clock at which the first event was generated at the first client; 
 store, on a database, a record identifying the first client and the first event; 
 receive a second message in response to a second event from a second client associated with the first client; and 
 identify the first event and the second event as corresponding to a routine, responsive to the first message and the second message having a matching key for the routine. 
 
 
     
     
       29. The system of  claim 28 , wherein the at least one server is further configured to determine, for a third message in response to a third event from the second client associated with the first client, based at least on (i) a fifth time corresponding to a generation of the second event according to a third clock of the second client, (ii) a sixth time corresponding to transmission of the third message according to the third clock, and (iii) a seventh time at which the third message is received at the at least one server determined using the second clock, an eighth time identifying a time according to the second clock at which the second event was generated at the second client. 
     
     
       30. The system of  claim 29 , wherein the at least one server is further configured to determine a sequence of the first event and the second event based at least on (i) the fourth time and (ii) the eighth time according to the second clock. 
     
     
       31. The system of  claim 29 , wherein the at least one server is further configured to store, in a log for the first client on the database, a second record identifying the second client, the second event, and the eighth time, responsive to an association between the first client and the second client. 
     
     
       32. The system of  claim 29 , wherein the at least one server is further configured to determine a precedence for resolution between the first event and the second event based at least on the fourth time and the eighth time, responsive to identifying that the first message and the second message as having the matching key. 
     
     
       33. The system of  claim 28 , wherein the at least one server is further configured to provide a third message to the second client associated with the first client, the third message identifying the first event and the fourth time. 
     
     
       34. The system of  claim 28 , wherein the at least one server is further configured to receive the first message from the first client, responsive to the first client establishing a connection with a network with which the at least one server is communicatively coupled. 
     
     
       35. A system for determining times of events, comprising:
 a client having one or more processors coupled with memory, configured to:
 identify, in response to an event, a first time corresponding to a generation of the event and a second time corresponding to transmission of a message sent to a server to identify the event, the first time and the second time determined using a first clock of the client; 
 receive a third time at which the message is received at the server, the third time determined using a second clock of the server; 
 determine a fourth time based at least on the first time, the second time, and the third time, the fourth time identifying a time according to the second clock at which the event was generated at the client; and 
 store, on a database, an association between the event and the fourth time. 
 
 
     
     
       36. The method of  claim 35 , wherein the client is further configured to send, to the server, a second message identifying the event, the first time, and the second time, responsive to establishing a connection with a network with which the server is communicatively coupled.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.