IP Library Granted Patent US 12,244,570
Granted Patent B2
US 12,244,570 · App. 17/643,512 · Granted Mar 4, 2025

Invisible middleware for asynchronous communication

Inventor: Barrett Gordon Selfridge (Bloomington, MN)
Assignee: MATRIXCARE, INC.
H04L63/0414G16H10/60H04L63/0471
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 12,244,570
App. No.
17/643,512
Granted
Mar 4, 2025
Kind
B2
Abstract

Embodiments herein describe middleware that serves as an intermediary between two computing systems performing asynchronous communication. Rather than communicating directly with each other, the two computing system communicate with the middleware; however, the middleware can be introduced seamlessly so that the two system believe they are communicating with each other rather than the middleware—i.e., the middleware is invisible to the systems. Asynchronous communication with guaranteed delivery may require the two computing systems to perform a handshake operation where the computing system transmitting the object does not consider the task complete until receiving a confirmation from the receiving computing system that the object was processed successfully.

Claims (55)

1. A method, comprising:

receiving, at middleware, an object from a first computing system; wherein the object is destined for a second computing system; and wherein the first computing system, the middleware, and the second computing system are part of an asynchronous communication system, and wherein the first computing system is associated with a health provider;

transmitting a first confirmation from the middleware to the first computing system indicating the middleware successfully received the object;

forwarding the object from the middleware to the second computing system;

upon determining that the middleware did not receive a second confirmation that the second computing system successfully received the object, resending the object from the middleware to the second computing system;

receiving a third confirmation from the second computing system indicating the second computing system successfully processed the object; and

forwarding the third confirmation to the first computing system, wherein the third confirmation indicates that health information was received by the second computing system and that a patient has access to medical treatment or prophylactic aid.

2. The method of claim 1 , wherein, from a perspective of the first computing system, the first computing system appears to be communicating directly with the second computing system without using the middleware and, from a perspective of the second computing system, the second computing system appears to be communicating directly with the first computing system without using the middleware.

3. The method of claim 2 , wherein the first confirmation indicates to the first computing system that it is free to move on to other tasks while waiting for the third confirmation, and wherein the second confirmation is not forwarded from the middleware to the first computing system.

4. The method of claim 3 , further comprising, during a time when the middleware does not receive the second confirmation from the second computing system:

transmitting duplicates of the object at a first rate from the middleware to the second computing system, wherein the first rate is less than a second rate used by the first computing system to resend objects.

5. The method of claim 3 , wherein the third confirmation indicates to the first computing system that an asynchronous transaction between the first computing system and the second computing system is complete.

6. The method of claim 1 , further comprising:

receiving a plurality of objects at the middleware, the plurality of objects destined for the second computing system;

determining whether transmitting the plurality of objects to the second computing system will exceed a maximum rate at which the second computing system can receive data; and

upon determining that forwarding the plurality of objects would exceed the maximum rate, forwarding the plurality of objects to the second computing system at a transmission rate that is at or below the maximum rate.

7. The method of claim 6 , wherein the plurality of objects is received at a first rate that is greater than the transmission rate, the method further comprising:

queuing objects of the plurality of objects at the middleware that are leftover from a result of transmitting the plurality of objects at the transmission rate that is less than the first rate;

determining, after queueing the objects, that the middleware receives a second plurality of objects at a second rate that is less than the maximum rate of the second computing system; and

forwarding the second plurality of objects and the queued objects to the second computing system at a third rate that is greater than the second rate but equal to or less than the maximum rate.

8. The method of claim 1 , wherein the object contains the health information for providing the medical treatment or the prophylactic aid to the patient, wherein the object is generated by a physician in order to treat the patient.

9. A non-transitory computer readable medium comprising instructions to be executed in a processor, the instructions when executed in the processor perform an operation, the operation comprising:

receiving, at middleware, an object from a first computing system; wherein the object is destined for a second computing system; and wherein the first computing system, the middleware, and the second computing system are part of an asynchronous communication system, and wherein the first computing system is associated with a health provider;

transmitting a first confirmation from the middleware to the first computing system indicating the middleware successfully received the object;

forwarding the object from the middleware to the second computing system;

upon determining that the middleware did not receive a second confirmation that the second computing system successfully received the object, resending the object from the middleware to the second computing system;

receiving a third confirmation from the second computing system indicating the second computing system successfully processed the object; and

forwarding the third confirmation to the first computing system, wherein the third confirmation indicates that health information was received by the second computing system and that a patient has access to medical treatment or prophylactic aid.

10. The non-transitory computer readable medium of claim 9 , wherein, from a perspective of the first computing system, the first computing system appears to be communicating directly with the second computing system without using the middleware and, from a perspective of the second computing system, the second computing system appears to be communicating directly with the first computing system without using the middleware.

11. The non-transitory computer readable medium of claim 10 , wherein the first confirmation indicates to the first computing system that it is free to move on to other tasks while waiting for the third confirmation, and wherein the second confirmation is not forwarded from the middleware to the first computing system.

12. The non-transitory computer readable medium of claim 11 , wherein the operation further comprises, during a time when the middleware does not receive the second confirmation from the second computing system:

transmitting duplicates of the object at a first rate from the middleware to the second computing system, wherein the first rate is less than a second rate used by the first computing system to resend objects.

13. The non-transitory computer readable medium of claim 9 , wherein the operation further comprising:

receiving a plurality of objects at the middleware, the plurality of objects destined for the second computing system;

determining whether transmitting the plurality of objects to the second computing system will exceed a maximum rate at which the second computing system can receive data; and

upon determining that forwarding the plurality of objects would exceed the maximum rate, forwarding the plurality of objects to the second computing system at a transmission rate that is at or below the maximum rate.

14. The non-transitory computer readable medium of claim 13 , wherein the plurality of objects is received at a first rate that is greater than the transmission rate, the operation further comprising:

queuing objects of the plurality of objects at the middleware that are leftover from a result of transmitting the plurality of objects at the transmission rate that is less than the first rate;

determining, after queueing the objects, that the middleware receives a second plurality of objects at a second rate that is less than the maximum rate of the second computing system; and

forwarding the second plurality of objects and the queued objects to the second computing system at a third rate that is greater than the second rate but equal to or less than the maximum rate.

15. The non-transitory computer readable medium of claim 9 , wherein the object contains the health information for providing the medical treatment or the prophylactic aid to the patient.

16. The non-transitory computer readable medium of claim 15 , wherein the object is generated by a physician in order to treat the patient.

17. A system, comprising:

a processor; and

a memory comprising instructions that, when executed by the processor, perform an operation, the operation comprising:

receiving, at middleware, an object from a first computing system; wherein the object is destined for a second computing system; and wherein the first computing system, the middleware, and the second computing system are part of an asynchronous communication system, and wherein the first computing system is associated with a health provider;

transmitting a first confirmation from the middleware to the first computing system indicating the middleware successfully received the object;

forwarding the object from the middleware to the second computing system;

upon determining that the middleware did not receive a second confirmation that the second computing system successfully received the object, resending the object from the middleware to the second computing system;

receiving a third confirmation from the second computing system indicating the second computing system successfully processed the object; and

forwarding the third confirmation to the first computing system, wherein the third confirmation indicates that health information was received by the second computing system and that a patient has access to medical treatment or prophylactic aid.

18. The system of claim 17 , wherein, from a perspective of the first computing system, the first computing system appears to be communicating directly with the second computing system without using the middleware and, from a perspective of the second computing system, the second computing system appears to be communicating directly with the first computing system without using the middleware.

19. The system of claim 18 , wherein the first confirmation indicates to the first computing system that it is free to move on to other tasks while waiting for the third confirmation, and wherein the second confirmation is not forwarded from the middleware to the first computing system.

20. The system of claim 19 , wherein the operation further comprises, during a time when the middleware does not receive the second confirmation from the second computing system:

transmitting duplicates of the object at a first rate from the middleware to the second computing system, wherein the first rate is less than a second rate used by the first computing system to resend objects.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2022
From: SELFRIDGE, BARRETT GORDON
To: MATRIXCARE, INC.
Reel/Frame 059034/0938 →
Continuity (1)
Related Publication 20230188506A1 · Jun 15, 2023
References Cited (17)
US 10447779B2 · Dieterich · 2019 [cited by examiner]
US 10499313B2 · Chen · 2019 [cited by examiner]
US 11178091B1 · Madhavan · 2021 [cited by examiner]
US 11582320B2 · Fujino · 2023 [cited by examiner]
US 20080137855A1 · Enomoto · 2008 [cited by examiner]
US 20090049356A1 · Lin · 2009 [cited by examiner]
US 20090052319A1 · Muqattash · 2009 [cited by examiner]
US 20090222497A1 · Ryan · 2009 [cited by examiner]
US 20090279481A1 · Garcia · 2009 [cited by examiner]
US 20120042077A1 · Ceccarelli · 2012 [cited by examiner]
US 20140032730A1 · Fall · 2014 [cited by examiner]
US 20140237021A1 · Lamb · 2014 [cited by examiner]
US 20190109713A1 · Clark · 2019 [cited by examiner]
US 20190109821A1 · Clark · 2019 [cited by examiner]
US 20190341133A1 · Harding · 2019 [cited by examiner]
US 20200344222A1 · Manges · 2020 [cited by examiner]
US 20220130535A1 · Sobti · 2022 [cited by examiner]