Apparatus and method for client-side flow control in a remote access environment
First Claim
1. A method for reliable communications in a remote access system, comprising:
- communicating a first message from a service to a client, the service being remotely accessed by the client and the first message including a service sequence ID (SSI);
receiving, at the service, a second message having a client sequence ID (CSI), the second message being communicated from the client in response to the client completing processing of the first message having the SSI; and
determining, based on the CSI received at the service, that the first message has been received and processed by the client.
1 Assignment
0 Petitions
Accused Products
Abstract
A client-side flow control mechanism for controlling the flow of messages communicated from a service to a client in a remote access system. The service, which may be a managed or unmanaged service, may communicate messages to the client where the messages include a service sequence ID (SSI). As the client processes the messages from the service, the client responds with a client sequence ID (CSI). The SSI and CSI values determine the number of messages that are in transmission queues. The service compares a difference between the current SSI and CSI to a stop window value. If the difference is greater than the stop window value, transmission of messages from the service to the client is turned OFF. The client continues to send CSI acknowledgments as it processes messages. Once the difference falls below a start window value, the transmission of messages to the client is turned ON.
8 Citations
19 Claims
-
1. A method for reliable communications in a remote access system, comprising:
-
communicating a first message from a service to a client, the service being remotely accessed by the client and the first message including a service sequence ID (SSI); receiving, at the service, a second message having a client sequence ID (CSI), the second message being communicated from the client in response to the client completing processing of the first message having the SSI; and determining, based on the CSI received at the service, that the first message has been received and processed by the client.
-
-
2. The method of claim 1, further comprising:
-
placing the first message in a service send queue at the service prior to communicating the first message to the client; and removing the first message from the service send queue in response to receiving the CSI at the service.
-
-
3. The method of claim 1, further comprising resending the first message having the SSI from the service to the client if the second message is not received at the service within a predetermined period of time.
-
4. The method of claim 1, further comprising incrementing the SSI for each subsequent message communicated from the service to the client.
-
5. The method of claim 1, further comprising reflecting the SSI received at the client to the server as the CSI.
-
6. The method of claim 1, further comprising:
-
executing the service at a server that is remotely accessed by the client; and establishing a logical connection between the client and the server using a Uniform Resource Locator (URL) associated with the server.
-
-
7. The method of claim 1, further comprising:
-
receiving, at the client, a third message from the service, the third message including a second SSI different from the SSI; and removing the second message from a client send queue at the client.
-
-
8. A method for two-way reliable communications between a client and a service in a remote access system, comprising:
-
establishing a logical connection between the client and the service such that the service is remotely accessed by the client; communicating a first message from the service to the client, the first message including a first service sequence ID (SSI); receiving the first message and first SSI at the client; in response to the first message, communicating a second message from the client to the service that includes a client sequence ID (CSI); receiving, at the service, the second message having the CSI; incrementing, at the service, the SSI to determine a second SSI; and communicating a third message having the second SSI from the service to the client.
-
-
9. The method of claim 8, further comprising:
-
placing the first message in a service send queue at the service prior to communicating the first message to the client; and removing the first message from the service send queue in response to receiving the second message at the service.
-
-
10. The method of claim 8, further comprising resending the first message if the second message from the client is not received at the service within a predetermined period of time.
-
11. The method of claim 8, further comprising reflecting the SSI received at the client to the server as the CSI in the second message.
-
12. The method of claim 8, further comprising establishing the logical connection between the client and the service executing on a server using a Uniform Resource Locator (URL) associated with the server.
-
13. A system for reliable communication between a client and a service comprising:
-
a server having a service send queue and a service receive queue; and a client having a client send queue and a client receive queue, wherein a first message having a service sequence ID (SSI) is communicated from the service send queue of the service to the client receive queue of the client over a remote access connection, wherein the client communicates a second message having a client sequence ID (CSI) from the client send queue to the service receive queue over the remote access connection, and wherein the service determines based on the received CSI, that message has been received and processed by the client.
-
-
14. The system of claim 13, wherein the first message is removed from the service send queue in response to receiving the second message at the service receive queue.
-
15. The system of claim 13, wherein the first message having the SSI is resent from the service send queue to the client receive queue over the remote connection if the second message is not received at the service receive queue within a predetermined period of time.
-
16. The system of claim 14, wherein the SSI is increment for each subsequent message communicated from the service send queue over the remote access connection to the client receive queue.
-
17. The system of claim 13, wherein the SSI received at the client receive queue is reflected over the remote access connection to the service receive queue as the CSI.
-
18. The system of claim 13, wherein the remote access connection is established as a logical connection between the client and the server executing the service using a Uniform Resource Locator (URL) associated with the server.
-
19. The system of claim 13, wherein a third message having second SSI different from the SSI is received at the client receive queue from the service send queue over the remote access connection, and
wherein the second message is removed from the client send queue at the client.
Specification