IP Library Granted Patent US 10,476,919
Granted Patent B2
US 10,476,919 · App. 15/647,964 · Granted Nov 12, 2019

System and method for reliable messaging between application sessions across volatile networking conditions

Inventors: Monroe M. Thomas (Toronto, CA); David McFadzean (Toronto, CA); Lachlan Holmes (Toronto, CA)
Assignee: SYNAPTIVE MEDICAL (BARBADOS) INC.
H04L65/1083H04L49/552H04L51/30H04L51/34H04L51/38
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,476,919
App. No.
15/647,964
Granted
Nov 12, 2019
Kind
B2
Abstract

An electronic device is provided comprising a processor, a memory coupled to the processor, and a communications module saved in the memory and an application saved in the memory. The communications module configures the processor to generate a first transmission sequence number associated with a transport message to be sent to a remote device, include the first transmission sequence number in the transport message, and send the transport message to the remote device.

Claims (54)

1. An electronic device comprising:

a processor;

a memory coupled to the processor; and

a communications module saved in the memory and an application saved in the memory, the communications module for configuring the processor to:

generate, for each outgoing transport message to be sent to a remote device, a respective transmission sequence number, wherein the transmission sequence number for each outgoing transport message is generated using a non-consecutive numerical generation method that is known only between the electronic device and the remote device;

include the first transmission sequence number in the transport message; and

send the transport message to the remote device;

wherein the transmission sequence numbers and release sequence numbers are used to coordinate a reliable communications session between the electronic device and the remote device such that the reliable communications session persists independent of the states of underlying communications protocols; and

wherein the reliable communication session between the electronic device and the remote device operates over a networked communication link.

2. The electronic device according to claim 1 , wherein the underlying communications protocols include at least one communications protocol selected from a group comprising user datagram protocol (UDP), internet protocol (IP, transmission control protocol (TCP), hypertext transfer protocol (HTTP), hypertext transfer protocol secure (HTTPS), web browsers and web servers.

3. The electronic device according to claim 1 , wherein the networked communication link is selected from a group comprising OC3, T1, Code Division Multiple Access (CDMA), Global System for Mobile Communications (GSM), Global Packet Relay Service (GPRS), 4G, Long Term Evolution (LTE), Ethernet, 802.11 and Bluetooth.

4. The electronic device according to claim 1 , wherein the networked communication link is a wired communication link, a wireless communication link or a combination thereof.

5. The electronic device according to claim 1 , wherein the electronic device and remote device operate on different types of networked communication links.

6. The electronic device according to claim 1 , wherein the reliable communications session between the electronic device and the remote device is recoverable by retrieving the session from the memory after the session is in an offline state.

7. The electronic device according to claim 1 , wherein lifetime of the reliable communications session extends beyond duration of any one connection formed through the underlying communications protocol.

8. The electronic device according to claim 7 , wherein the lifetime of the reliable communications session is in a range from a millisecond to several years.

9. The electronic device according to claim 7 , wherein the lifetime of the reliable communications session is dependent on durability of the memory.

10. The electronic device according to claim 1 , wherein the communications module further configures the processor to:

receive a second transport message from the remote device, the second transport message including a second transmission sequence number;

generate a release sequence number of a next expected transport message to be received from the remote device; and

release data contained in the second transport message to the application when the release sequence number matches the second transmission sequence number.

11. The electronic device according to claim 1 , wherein the communications module further configures the processor to:

maintain in the memory a delivery queue of further transport messages to be sent to the remote device, each of the further transport messages to include respective further transmission sequence numbers; and

maintain in the memory an acknowledgement list of transport messages already sent to the remote device, the transport messages of the acknowledgement list being removed from the acknowledgement list when respective transmission sequence numbers of the transport messages of the acknowledgement list match a release sequence number received in a transport message from the remote device.

12. A method for reliable communications between an electronic device and a remote device, the method comprising at the electronic device:

generating, for each outgoing transport message to be sent to a remote device, a respective transmission sequence number, wherein the transmission sequence number for each outgoing transport message is generated using a non-consecutive numerical generation method that is known only between the electronic device and the remote device;

including the first transmission sequence number in the transport message; and

sending the transport message to the remote device;

wherein the transmission sequence numbers and release sequence numbers are used to coordinate a reliable communications session between the electronic device and the remote device such that the reliable communications session persists independent of the states of underlying communications protocols; and

wherein the reliable communication session between the electronic device and the remote device operates over a networked communication link.

13. The method according to claim 12 , wherein the underlying communications protocols include at least one communications protocol selected from a group comprising user datagram protocol (UDP), internet protocol (IP, transmission control protocol (TCP), hypertext transfer protocol (HTTP), hypertext transfer protocol secure (HTTPS), web browsers and web servers.

14. The method according to claim 12 , wherein the networked communication link is selected from a group comprising OC3, T1, Code Division Multiple Access (CDMA), Global System for Mobile Communications (GSM), Global Packet Relay Service (GPRS), 4G, Long Term Evolution (LTE), Ethernet, 802.11 and Bluetooth.

15. The method according to claim 12 , wherein the reliable communications session between the electronic device and the remote device is recoverable by retrieving the session from a memory of the electronic device after the session is in an offline state.

16. The method according to claim 12 , wherein lifetime of the reliable communications session extends beyond duration of any one connection formed through the underlying communications protocol.

17. The method according to claim 12 further comprising, at the electronic device:

receiving a second transport message from the remote device, the second transport message including a second transmission sequence number;

generating a release sequence number of a next expected transport message to be received from the remote device; and

releasing data contained in the second transport message to an application on the electronic device when the release sequence number matches the second transmission sequence number.

18. The method according to claim 12 further comprising, at the electronic device:

maintaining in a memory of the electronic device a delivery queue of further transport messages to be sent to the remote device, each of the further transport messages to include respective further transmission sequence numbers; and

maintaining in the memory an acknowledgement list of transport messages already sent to the remote device, the transport messages of the acknowledgement list being removed from the acknowledgement list when respective transmission sequence numbers of the transport messages of the acknowledgement list match a release sequence number received in a transport message from the remote device.

19. A system for reliable communications comprising:

an electronic device having a processor; a memory coupled to the processor;

a communications module saved in the memory and an application saved in the memory, the communications module for configuring the processor to:

generate, for each outgoing transport message to be sent to a remote device, a respective transmission sequence number, wherein the transmission sequence number for each outgoing transport message is generated using a non-consecutive numerical generation method that is known only between the electronic device and the remote device;

include the first transmission sequence number in the transport message; and

send the transport message to the remote device; and

add the transport message to an acknowledgement list;

the remote device having a processor; a memory coupled to the processor; a communications module saved in the memory and an application saved in the memory, the communications module of the remote device for configuring the processor to:

receive the transport message from the electronic device;

generate a first release sequence number of a next expected transport message to be received from the electronic device; and

release data contained in the transport message to the application of the remote device when the first release sequence number matches the first transmission sequence number,

wherein the transmission sequence numbers and release sequence numbers are used to coordinate a reliable communications session between the electronic device and the remote device such that the reliable communications session persists independent of the states of underlying communications protocols; and

wherein the reliable communication session between the electronic device and the remote device operates over a networked communication link.

Assignments (4)
SECURITY INTEREST Recorded Jan 7, 2021
From: SYNAPTIVE MEDICAL INC.
To: ESPRESSO CAPITAL LTD.
Reel/Frame 054922/0791 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2020
From: SYNAPTIVE MEDICAL (BARBADOS) INC.
To: SYNAPTIVE MEDICAL INC.
Reel/Frame 054297/0047 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2019
From: THOMAS, MONROE M.; MCFADZEAN, DAVID; HOLMES, LACHLAN
To: SYNAPTIVE MEDICAL (BARBADOS) INC.
Reel/Frame 050556/0971 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2019
From: THOMAS, MONROE M; MCFADZEAN, DAVID; HOLMES, LACHLAN
To: SYNAPTIVE MEDICAL (BARBADOS) INC.
Reel/Frame 049518/0985 →
Continuity (3)
Continuation 14776482
Provisional Application 61798103 · Mar 15, 2013
Related Publication 20170318063A1 · Nov 2, 2017