| CPC H04L 12/4641 (2013.01) [H04L 67/1004 (2013.01)] | 19 Claims |

|
1. A method of establishing a persistent connection between a client and a device, wherein the client is connected to the Internet and wherein the device is connected to a private network, wherein the private network comprises at least one server, comprising:
a. turning on a device;
b. connecting the device to a first server instance;
c. using the first server instance to listen on a port accessible from the private network, wherein the port is not accessible from the outside;
d. recording in memory an association between the device, the first server instance, and the port;
e. if a network request to access the device is received from the client, performing the following actions:
i. routing the network request to a second server instance, wherein the second server instance is one of the following: a server instance distinct from the first server instance, the first server instance;
ii. using the second server instance to check whether the client is authorized to access the device;
iii. using the second server instance to look up the first server instance and port associated with the device;
iv. using the second server instance to establish a connection to the first server instance and the port;
v. using the first server instance to proxy the network request to the connection between the second server instance and the first server instance;
vi. on the device, routing the network connection to an application or service running on the device.
|