IP Library Granted Patent US 9,961,058
Granted Patent B2
US 9,961,058 · App. 14/222,106 · Granted May 1, 2018

System and method of message routing via connection servers in a distributed computing environment

Inventors: Mike Mahoney (Needham, MA); Bob DeRemer (Needham, MA); Rick Bullotta (Phoenixville, PA)
Assignee: PTC Inc.
H04L63/08H04L63/0815H04L67/1002
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,961,058
App. No.
14/222,106
Granted
May 1, 2018
Kind
B2
Abstract

A system and method of message routing messages via connections in a distributed computing environment. The method includes providing a platform server, a set of intermediary servers, and a set of edge servers. The method includes receiving, by a port at the platform server, a first data message from a first end-point device over a first persistent connection. The message has been routed through a an intermediate server over a second persistent connection. The method includes receiving a second data message from a second end-point device over a third persistent connection where the second data message has been routed through another intermediate server over a fourth persistent connection. The method includes servicing, by a processor at the platform server, the first data message and the second data message where the intermediate servers manage connectivity between the end-point devices and the platform servers.

Claims (54)

1. A computer-implemented method of facilitating communication between a platform server and a plurality of end-point devices via stateless intermediary servers, the method comprising:

providing a platform server, a set of stateless intermediary servers, and a set of edge servers, collectively defining a network, wherein

an end-point device, comprising a computing device having sensors located thereon, communicates data acquired via the sensors to an edge server of the set of edge servers,

the set of edge servers communicates to the set of stateless intermediary servers,

the set of stateless intermediary servers communicates to the platform server, and

the stateless intermediary servers are stateless connection managers that do not maintain state information of a given received or transmitted message;

receiving, by a port at the platform server, over a first persistent connection, a first data message originating from an end-point device operatively coupled to a first edge server,

wherein the first data message has been routed through a first intermediary server of the set of stateless intermediary servers over a second persistent connection,

wherein first persistent connection is persistently maintained between the platform server and the first intermediary server, and the second persistent connection is persistently maintained between the first intermediary server and the first edge server, such that the first data message passes over the first persistent connection and the second persistent connection in series, and

wherein the first intermediary server is stateless such that no state information associated with the first message is maintained by the first intermediary server;

receiving, by the port at the platform server, over a third persistent connection, a second data message originating from a second end-point device operatively coupled to a second edge server,

wherein the second data message has been routed through a second intermediary server of the set of stateless intermediary servers over a fourth persistent connection,

wherein the third persistent connection is persistently maintained between the platform server and the second intermediary server, and the fourth persistent connection is persistently maintained between the second intermediary server and the second edge server, such that the second data message passes over the third persistent connection and the fourth persistent connection in series, and

wherein the second intermediary server is stateless such that no state information associated with the second message is maintained by the second intermediary server; and

servicing, by a processor at the platform server, the first data message and the second data message by routing the first and second messages to a back-office server selected from the group consisting of a persistence server, a database server, a customer relationship management (CRM) server, an enterprise resource planning (ERP) server, an operation support system (OSS) server, a business support system (BSS) server, and a data warehouse,

wherein each of the first intermediary server and second intermediary server manages connectivity between the end-point devices and the platform server.

2. The computer-implemented method of claim 1 , wherein each of the first intermediary server and second intermediary server manages authentication sessions between the end-point devices and the platform server.

3. The computer-implemented method of claim 1 , wherein the platform server comprises a single physical server.

4. The computer-implemented method of claim 1 , wherein the platform server comprises a plurality of physical servers.

5. The computer-implemented method of claim 1 , wherein the first, second, third, and fourth persistent connections comprise Web Socket connections.

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

receive, by a port, over a first persistent connection, a first data message originating from a first end-point device operatively coupled to a first edge server,

wherein the platform server, a set of stateless intermediary servers, and a set of edge servers, collectively define a network, wherein an end-point device, comprising a computing device having sensors located thereon, communicates data acquired via the sensors to an edge server of the set of edge servers, the set of edge servers communicates to the set of stateless intermediary servers, and the set of stateless intermediary servers communicates to the platform server;

wherein the first data message has been routed through a first intermediary server of the set of stateless intermediary servers over a second persistent connection,

wherein first persistent connection is persistently maintained between the platform server and the first intermediary server, and the second persistent connection is persistently maintained between the first intermediary server and the first edge server, such that the first data message passes over the first persistent connection and the second persistent connection in series, and

wherein the first intermediary server is stateless such that no state information associated with the first message is maintained by the first intermediary server;

receive, by the port, over a third persistent connection, a second data message originating from a second end-point device operatively coupled to a second end-point device,

wherein the second data message has been routed through a second intermediary server of the set of stateless intermediary servers over a fourth persistent connection,

wherein the third persistent connection is persistently maintained between the platform server and the second intermediary server, and the fourth persistent connection is persistently maintained between the second intermediary server and the second edge server, such that the second data message passes over the third persistent connection and the fourth persistent connection in series, and

wherein the second intermediary server is stateless such that no state information associated with the second message is maintained by the second intermediary server; and

service the first data message and the second data message by routing the first and second messages to a back-office server selected from the group consisting of a persistence server, a database server, a customer relationship management (CRM) server, an enterprise resource planning (ERP) server, an operation support system (OSS) server, a business support system (BSS) server, and a data warehouse,

wherein each of the first intermediary server and second intermediary server manages connectivity between the end-point devices and the platform server.

7. The computer readable medium of claim 6 , wherein each of the first intermediary server and second intermediary server manages authentication sessions between the end-point devices and the platform server.

8. The computer readable medium of claim 6 , wherein the platform server comprises a single physical server.

9. The computer readable medium of claim 6 , wherein the platform server comprises a plurality of physical servers.

10. The computer readable medium of claim 6 , wherein the first, second, third, and fourth persistent connections comprise Web Socket connections.

11. A system comprising:

a processor;

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

receive, by a port, over a first persistent connection, a first data message originating from a first end-point device operatively coupled to a first edge server,

wherein the platform server, a set of stateless intermediary servers, and a set of edge servers, collectively define a network, wherein an end-point device, comprising a computing device having sensors located thereon, communicates data acquired via the sensors to an edge server of the set of edge servers, the set of edge servers communicates to the set of stateless intermediary servers, and

wherein the first data message has been routed through a first intermediary server of the set of stateless intermediary servers over a second persistent connection,

wherein first persistent connection is persistently maintained between the platform server and the first intermediary server, and the second persistent connection is persistently maintained between the first intermediary server and the first edge server, such that the first data message passes over the first persistent connection and the second persistent connection in series, and

wherein the first intermediary server is stateless such that no state information associated with the first message is maintained by the first intermediary server;

receive, by the port, over a third persistent connection, a second data message originating from a second end-point device operatively coupled to a second edge server,

wherein the second data message has been routed through a second intermediary server of the set of stateless intermediary servers over a fourth persistent connection,

wherein the third persistent connection is persistently maintained between the platform server and the second intermediary server, and the fourth persistent connection is persistently maintained between the second intermediary server and the second edge server, such that the second data message passes over the third persistent connection and the fourth persistent connection in series, and

wherein the second intermediary server is stateless such that no state information associated with the second message is maintained by the second intermediary server; and

service the first data message and the second data message by routing the first and second messages to a back-office server selected from the group consisting of a persistence server, a database server, a customer relationship management (CRM) server, an enterprise resource planning (ERP) server, an operation support system (OSS) server, a business support system (BSS) server, and a data warehouse,

wherein each of the first intermediary server and second intermediary server manages connectivity between the end-point devices and the platform server.

12. The system of claim 11 , wherein the platform server comprises a single physical server.

13. The system of claim 11 , wherein the platform server comprises a plurality of physical servers.

14. The system of claim 11 , wherein the first, second, third, and fourth persistent connections comprise Web Socket connections.

15. The system of claim 11 , wherein each of the first intermediary server and second intermediary server manages authentication sessions between the end-point devices and the platform servers.

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 033299/0167 →
Continuity (1)
Related Publication 20150271301A1 · Sep 24, 2015