US9270719B2ActiveUtilityA1

Device connection proxy through cloud to optimize network messages

81
Assignee: NEXTBIT SYSTEMS INCPriority: Oct 2, 2012Filed: Oct 1, 2013Granted: Feb 23, 2016
Est. expiryOct 2, 2032(~6.2 yrs left)· nominal 20-yr term from priority
Inventors:Michael A. Chan
H04L 67/06G06F 16/278G06F 16/275H04M 2250/12H04B 7/26G06F 9/5038H04L 67/1097G06F 16/174G06F 16/93G06F 16/273G06F 16/125H04M 2250/10G06F 16/27G06F 16/20H04L 67/1095H04L 67/42H04L 43/04G06F 9/4416H04L 65/60G06F 9/4406H04L 9/0825G06F 17/30011H04L 67/2842G06F 8/62H04W 8/24Y02B60/188G06F 17/30085H04L 9/3226G06F 17/30286G06F 17/30194G06F 17/30091G06F 17/3015H04L 67/2823H04L 67/10H04L 65/4069H04L 67/40G06F 17/3007G06F 8/63H04L 67/55H04L 67/568H04M 1/72412Y02D10/00
81
PatentIndex Score
2
Cited by
28
References
22
Claims

Abstract

Technology is disclosed herein for optimizing network connections using proxy connections. According to at least one embodiment, a computing device receives requests for network connections with remote servers from multiple computer applications running on the computing device. The computing device further establishes a network connection with a proxy server. The proxy server initiates and maintains proxy network connections with the remote servers. The proxy server can delay at least one network message of the network messages received from the remote servers such that the proxy server sends the network messages to the computing device in a batch. The proxy server batches the network messages such that the computing device stays at a high power consumption state for a time period shorter than an overall time period for which the computing device would stay at the high power consumption if the network messages were sent individually without batching.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method for optimizing network connections using proxy connections, comprising:
 receiving, at a computing device, requests for network connections with remote servers from multiple computer applications running on the computing device, wherein a gaming application is one of the multiple computer applications, wherein the gaming application utilizes gaming content available through one or more remote servers, the gaming content enabling a user of the computing device to play a game associated with the gaming application on the computing device; 
 establishing, by the computing device, a network connection with a proxy server separate from the remote servers, wherein the proxy server is configured to maintain proxy network connections with the remote servers; and 
 receiving, at the computing device, network messages in a batch for the computer applications through the network connection with the proxy server, wherein the network messages are generated by the remote servers, wherein the gaming content for enabling the user of the computing device to play the game is received as one or more network messages; 
 wherein the proxy server batches the network messages such that the computing device stays at a high power consumption state for a time period shorter than an overall time period for which the computing device would stay at the high power consumption if the network messages were sent individually without batching; 
 wherein the network messages are aggregated in the batch by delaying at least one network message of the network messages, 
 wherein the proxy server aggregates network messages received in a time period into a single batch, a time length of the time period being determined based on one or more game events of the game, wherein a given game event includes a starting of a given game by the user, a entering of a new stage in the given game by the user, a entering of a new place in the given game by the user, a completing of a mission in the given game by the user, an obtaining of a game item in the given game by the user, a meeting of another character in the given game by the user, a talking with another character in the given game by the user, an occurrence of a scene change in the given game, any predefined game-related events, any predefined game-related milestones, or a suspension of the given game at a point of play intended to avoid disrupting an experience for the user. 
 
     
     
       2. The method of  claim 1 , wherein the requests for networking connections include requests for establishing network socket connections between the computing device and the remote servers. 
     
     
       3. The method of  claim 1 , wherein the network connection with the proxy server is configured to receive messages for the multiple computer applications from the remote servers. 
     
     
       4. The method of  claim 1 , wherein the proxy server serves as a proxy between the computer applications running on the computing device and remote servers. 
     
     
       5. The method of  claim 1 , wherein the network connection with the proxy server is a Transmission Control Protocol (TCP) socket connection between the computing device and the proxy server, and the proxy network connections are Transmission Control Protocol (TCP) socket connections between the proxy server and the remote servers. 
     
     
       6. The method of  claim 1 , wherein the computer applications receive the network messages from the proxy server as if the network messages are received directly from the remote servers. 
     
     
       7. The method of  claim 1 , wherein the proxy server is a cloud-based proxy server. 
     
     
       8. A computing device comprising:
 a networking component capable of switching between states including a high power consumption state and a low power conservation state; 
 a battery configured to provide power to the networking component; 
 a processor configured to run computer applications and an operating system of the computing device; and 
 a memory component storing instructions of the operating system which, when executed by the processor, cause the operating system to perform a process including:
 receiving, from the computer applications, requests for network connections with remote servers, wherein a gaming application is one of the computer applications, wherein the gaming application utilizes gaming content available through one or more remote servers, the gaming content enabling a user of the computing device to play a game associated with the gaming application on the computing device; 
 establishing a network connection with a proxy server, wherein the proxy server is configured to maintain proxy network connections with the remote servers; and 
 receiving, from the proxy server, network messages in a batch for the computer applications though the network connection with the proxy server, wherein the network messages are generated by the remote servers, wherein the gaming content for enabling the user of the computing device to play the game is received as one or more network messages; 
 wherein the proxy server batches the network messages such that the networking component stays at the high power consumption state for a time period shorter than an overall time period for which the networking component would stay at the high power consumption if the network messages were sent individually without batching, 
 wherein the network messages are aggregated in the batch by delaying at least one network message of the network messages, 
 wherein the proxy server aggregates network messages received in a time period into a single batch, a time length of the time period being determined based on one or more game events of a game, wherein a given game event includes a starting of a given game by the user, a entering of a new stage in the given game by the user, a entering of a new place in the given game by the user, a completing of a mission in the given game by the user, an obtaining of a game item in the given game by the user, a meeting of another character in the given game by the user, a talking with another character in the given game by the user, an occurrence of a scene change in the given game, any predefined game-related events, any predefined game-related milestones, or a suspension of the given game at a point of play intended to avoid disrupting an experience for the user. 
 
 
     
     
       9. The computing device of  claim 8 , wherein the process further includes:
 switching the network component to the high power consumption state when the computing device receives the network messages from the proxy server. 
 
     
     
       10. The computing device of  claim 8 , wherein the network messages are aggregated in the batch such that the computing device consumes as little power as possible to receive the network messages. 
     
     
       11. The computing device of  claim 8 , wherein the operating system of the computing device includes a socket redirection module configured to redirect the requests from the computer applications for network connections with the remote server to the proxy server. 
     
     
       12. The computing device of  claim 11 , wherein the socket redirection module is responsible for network communications with the proxy server, and the computer applications running on the computing device are not aware of the existence of the proxy server. 
     
     
       13. The computing device of  claim 8 , wherein the computer applications are performing and receiving network messages as if the computing device were maintaining network connections directly with the remote servers. 
     
     
       14. The computer device of  claim 8 , wherein the network messages include push notifications generated by the remote servers. 
     
     
       15. The computing device of  claim 8 , wherein the operating system of the computing device includes a message modification module configured to modify the network messages received from the proxy server before the network messages are fed to the computer applications, to network messages as if they were directly sent from the remote servers. 
     
     
       16. The computing device of  claim 15 , wherein the message modification module changes source socket addresses of the network messages from a socket address of the proxy server to socket addresses of the remote servers. 
     
     
       17. A non-transitory computer readable storage medium storing computer executable instructions for optimizing network connections, comprising:
 instructions for receiving requests for network connections with remote servers from multiple computer applications running on the computing device, wherein a gaming application is one of the multiple computer applications, wherein the gaming application utilizes gaming content available through one or more remote servers, the gaming content enabling a user of the computing device to play a game associated with the gaming application on the computing device; 
 instructions for establishing a network connection with a proxy server separate from the remote servers, wherein the proxy server is configured to maintain proxy network connections with the remote servers; and 
 instructions for receiving the network messages in a batch for the computer applications through the network connection with the proxy server, wherein the network messages are generated by the remote servers, wherein the gaming content for enabling the user of the computing device to play the game is received as one or more network messages; 
 wherein the proxy server batches the network messages such that the computing device stays at a high power consumption state for a time period shorter than an overall time period for which the computing device would stay at the high power consumption if the network messages were sent individually without batching, 
 wherein the network messages are aggregated in the batch by delaying at least one network message of the network messages, 
 wherein the proxy server aggregates network messages received in a time period into a single batch, a time length of the time period being determined based on one or more game events of a game, wherein the game is one of the multiple computer applications, wherein a given game event includes a starting of a given game by the user, a entering of a new stage in the given game by the user, a entering of a new place in the given game by the user, a completing of a mission in the given game by the user, an obtaining of a game item in the given game by the user, a meeting of another character in the given game by the user, a talking with another character in the given game by the user, an occurrence of a scene change in the given game, any predefined game-related events, any predefined game-related milestones, or a suspension of the given game at a point of play intended to avoid disrupting an experience for the user. 
 
     
     
       18. The non-transitory computer readable storage medium of  claim 17 , wherein the requests for networking connections include requests for establishing network socket connections between the computing device and the remote servers. 
     
     
       19. The non-transitory computer readable storage medium of  claim 17 , wherein the network connection with the proxy server is configured to receive messages for the multiple computer applications from the remote servers. 
     
     
       20. The non-transitory computer readable storage medium of  claim 17 , wherein the proxy server serves as a proxy between the computer applications running on the computing device and remote servers. 
     
     
       21. The non-transitory computer readable storage medium of  claim 17 , wherein the network connection with the proxy server is a Transmission Control Protocol (TCP) socket connection between the computing device and the proxy server, and the proxy network connections are Transmission Control Protocol (TCP) socket connections between the proxy server and the remote servers. 
     
     
       22. The non-transitory computer readable storage medium of  claim 17 , wherein the computer applications receive the network messages from the proxy server as if the network messages are received directly from the remote servers.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.