IP Library Granted Patent US 9,350,791
Granted Patent B2
US 9,350,791 · App. 14/222,118 · Granted May 24, 2016

System and method of injecting states into message routing in a distributed computing environment

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 9,350,791
App. No.
14/222,118
Granted
May 24, 2016
Kind
B2
Abstract

A system and method of operating resources within a distributed computing environment. The resources include a platform server and intermediate servers where each of the intermediate servers connects and maintains a persistent connection to the platform server a number of edge servers. The method includes injecting state identifier information into service requests from a given edge server to the intermediate server and transmitting the service request to the platform server. The method includes receiving a response message from the platform server where the message includes the state identifier. The method includes using the state identifier to route the message to the given edge server.

Claims (58)

1. A computer-implemented method comprising:

providing a platform server and a plurality of intermediate servers, wherein

each of the plurality of intermediate servers connects and maintains a persistent connection to the platform server, wherein

the plurality of intermediate servers communicate and maintain a plurality of persistent connections with a plurality of edge servers;

receiving, by a port at an intermediate server among the plurality of intermediate servers, a service request from a given edge server of the plurality of edge servers over a first persistent connection;

inserting, by the processor at the intermediate server, a given state identifier to the service request, wherein the given state identifier is associated to a connection identity of the first persistent connection, and wherein the association is stored in memory at the intermediate server;

transmitting, at the intermediate server, the service request to the platform server over a second persistent connection;

receiving, at the intermediate server, a response message over the second persistent connection, the response message having been generated by the platform server in response to the service request, wherein the response message includes the given state identifier;

retrieving, at the intermediate server, the connection identity of the first persistent connection using the given state identifier, wherein the given state identifier is the same state identifier transmitted within the service request; and

routing, at the intermediate server, the response message to a selected connection of the plurality of persistent connections with the plurality of edge servers, wherein the selected connection is based on the retrieved connection identity.

2. The computer-implemented method of claim 1 , wherein the intermediate server maintains, in the memory, a second state identifier associated with an authentication exchange having been conducted between the computing device connected to the given edge server and the platform server, the second state identifier being associated with a name value associated with that of the computing device,

the method further comprising:

comparing, using the processor at the intermediate server, a device identifier located within the service request to the name value and injecting the second state identifier into the service request upon a match within the comparison, wherein the device identifier is associated with an identity of a given computing device operatively communicating with the given edge server.

3. The computer-implemented method of claim 2 further comprising:

upon a failed comparison of the identifier, the intermediate server sending an unbind request to the given edge server, wherein the unbind request causes the device identifier to be removed from a binding list of one or more device identifiers stored at the edge server.

4. The computer-implemented method of claim 2 , wherein the second state identifier is associated to the connection identity of the first persistent connection, and wherein the association is stored in memory at the intermediate server.

5. The computer-implemented method of claim 1 , wherein the intermediate server does not maintain state information associated with message content embedded within the given message.

6. The computer-implemented method of claim 1 , wherein the given state identifier is inserted into a header portion of the service request.

7. The computer-implemented method of claim 1 , wherein the first and second persistent connections are Web-Socket connections.

8. A system comprising:

a processor; and

a memory, the memory storing instructions that, when executed by the processor, cause the processor to:

provide a platform server and a plurality of intermediate servers, wherein

each of the plurality of intermediate servers connects and maintains a persistent connection to the platform server, wherein

the plurality of intermediate servers communicate and maintain a plurality of persistent connections with a plurality of edge servers;

receive, by a port at an intermediate server among the plurality of intermediate servers, a service request from a given edge server of the plurality of edge servers over a first persistent connection;

insert, by the processor at the intermediate server, a given state identifier to the service request, wherein the given state identifier is associated to a connection identity of the first persistent connection, and wherein the association is stored in memory at the intermediate server;

transmit, at the intermediate server, the service request to the platform server over a second persistent connection;

receive, at the intermediate server, a response message over the second persistent connection, the response message having been generated by the platform server in response to the service request, wherein the response message includes the given state identifier;

retrieve, at the intermediate server, the connection identity of the first persistent connection using the given state identifier, wherein the given state identifier is the same state identifier transmitted within the service request; and

route, at the intermediate server, the response message to a selected connection of the plurality of persistent connections with the plurality of edge servers, wherein the selected connection is based on the retrieved connection identity.

9. The system of claim 8 , wherein the intermediate server maintains, in the memory, a second state identifier associated with an authentication exchange having been conducted between the computing device connected to the given edge server and the platform server, the second state identifier being associated with a name value associated with the of the computing device,

the memory storing instructions that, when executed by the processor, cause the processor to compare a device identifier located within the service request to the name value and inject the second state identifier into the service request upon a match within the comparison, wherein the device identifier is associated with an identity of a given computing device operatively communicating with the given edge server.

10. The system of claim 9 , wherein

the memory stores instructions that, when executed by the processor, cause the processor to, upon a failed comparison of the identifier within the service request to the name value, send an unbind request to the given edge server,

wherein the unbind request causes the device identifier to be removed from a binding list of one or more device identifiers stored at the edge server.

11. The system of claim 9 , wherein the second state identifier is associated to the connection identity of the first persistent connection, and wherein the association is stored in memory at the intermediate server.

12. The system of claim 8 , wherein the connection server does not maintain state information associated with message content embedded within the given message.

13. The system of claim 8 , wherein the given state identifier is inserted into a header portion of the service request.

14. The system of claim 8 , wherein the first and second persistent connections are Web-Socket connections.

15. A non-transitory computer readable medium having instruction stored thereon, wherein the instructions, when executed by a processor, cause the processor to:

provide a platform server and a plurality of intermediate servers, wherein

each of the plurality of intermediate servers connects and maintains a persistent connection to the platform server, wherein

the plurality of intermediate servers communicate and maintain a plurality of persistent connections with a plurality of edge servers;

receive, by a port at an intermediate server among the plurality of intermediate servers, a service request from a given edge server of the plurality of edge servers over a first persistent connection;

insert, by the processor at the intermediate server, a given state identifier to the service request, wherein the given state identifier is associated to a connection identity of the first persistent connection, and wherein the association is stored in memory at the intermediate server;

transmit, at the intermediate server, the service request to the platform server over a second persistent connection;

receive, at the intermediate server, a response message over the second persistent connection, the response message having been generated by the platform server in response to the service request, wherein the response message includes the given state identifier;

retrieve, at the intermediate server, the connection identity of the first persistent connection using the given state identifier, wherein the given state identifier is the same state identifier transmitted within the service request; and

route, at the intermediate server, the response message to a selected connection of the plurality of persistent connections with the plurality of edge servers, wherein the selected connection is based on the retrieved connection identity.

16. The computer readable medium of claim 15 , wherein the intermediate server maintains, in the memory, a second state identifier associated with an authentication exchange having been conducted between the computing device connected to the given edge server and the platform server, the second state identifier being associated with a name value associated with the of the computing device, wherein

the instructions, when executed by a processor, cause the processor to:

compare a device identifier located within the service request to the name value and inject the second state identifier into the service request upon a match within the comparison, wherein the device identifier is associated with an identity of a given computing device operatively communicating with the given edge server.

17. The computer readable medium of claim 16 , wherein

the instructions, when executed by a processor, cause the processor to, upon a failed comparison of the identifier within the service request to the name value, send an unbind request to the given edge server, wherein the unbind request causes the device identifier to be removed from a binding list of one or more device identifiers stored at the edge server.

18. The computer readable medium of claim 16 , wherein the second state identifier is associated to the connection identity of the first persistent connection, and wherein the association is stored in memory at the intermediate server.

19. The computer readable medium of claim 15 , wherein the connection server does not maintain state information associated with message content embedded within the given message.

20. The computer readable medium of claim 15 , wherein the given state identifier is inserted into a header portion of the service request.

Assignments (3)
SECURITY INTEREST Recorded Sep 13, 2018
From: PTC INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 047480/0888 →
SECURITY INTEREST Recorded Nov 4, 2015
From: PTC INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037046/0930 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2014
From: MAHONEY, MIKE; DEREMER, BOB; BULLOTTA, RICK
To: PTC INC.
Reel/Frame 033298/0837 →