Verifying and maintaining connection liveliness in a reliable messaging for web services environment
First Claim
1. A method implemented by an initiator computer system in a Web Services (WS) environment for maintaining connection liveliness with an acceptor computing system for a sequence session between endpoints, comprising the initiator computing system and the acceptor computing system, by utilizing Reliable Messaging protocol for WS (RM-WS protocol), the method comprising acts of:
- establishing a sequence session, identified by a unique sequence identifier, at an application layer between two endpoint applications in accordance with a RM-WS protocol;
identifying an inactivity timeout period for the sequence session, the inactivity timeout period having an upper limit of time that may pass without receiving a message for the sequence session prior to the initiator computing system abandoning or failing the sequence session;
calculating a keep-alive expiration timeout based on the inactivity timeout period and which defines an interval of time that the initiator computing system will wait without detecting activity by the acceptor computing system during the inactivity timeout period and prior to beginning transmission of one or more keep-alive messages to the acceptor computing system;
calculating a keep-alive time interval, the keep-alive interval defining an interval of time that is to occur prior to each successively transmitted keep-alive message after transmission of a first keep-alive message to the acceptor computing system within the inactivity timeout period;
sending the first keep alive message upon expiration of the keep-alive expiration timeout;
iteratively sending the one or more keep-alive messages to the acceptor computing system based on the calculated keep-alive time interval, and which said one or more keep-alive messages include the unique sequence identifier, until either;
the inactivity timeout period has elapsed,until activity is detected from the acceptor, oruntil a maximum retry count is reached, which comprises a predetermined number of times the one or more keep-alive messages are to be sent during the inactivity timeout period; and
upon receiving a message that includes the unique sequence identifier, prior to the upper limit of the inactivity timeout period being reached, resetting an inactivity timer for the inactivity timeout period such that the sequence session is kept alive and such that the upper limit of the inactivity timeout period is reset, wherein the inactivity timeout period is tunable at the application layer based on at least one of;
latency issues,network reliability,on a per connection basis, ornegotiations between the initiator and the acceptor; and
upon failing to receive any message that includes the unique sequence identifier prior to the upper limit of the inactivity timeout period being reached, the method further includes abandoning the sequence session.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention monitors the receipt of messages between two endpoints on established sequence session in accordance with a Reliable Messaging protocol for Web Services (RM-WS protocol). The messages received may be application or infrastructure messages (e.g., acknowledgement messages in accordance with the RM-WS protocol). Further, the present invention defines a time period known as the inactivity timeout, which is an upper limit to the time that may pass without receiving a message (either application or infrastructure) on the sequence session. Based on this inactivity timeout period, the present invention calculates time periods for sending idempotent infrastructure messages in accordance with the RM-WS protocol for verifying and maintaining connection liveliness.
45 Citations
37 Claims
-
1. A method implemented by an initiator computer system in a Web Services (WS) environment for maintaining connection liveliness with an acceptor computing system for a sequence session between endpoints, comprising the initiator computing system and the acceptor computing system, by utilizing Reliable Messaging protocol for WS (RM-WS protocol), the method comprising acts of:
-
establishing a sequence session, identified by a unique sequence identifier, at an application layer between two endpoint applications in accordance with a RM-WS protocol; identifying an inactivity timeout period for the sequence session, the inactivity timeout period having an upper limit of time that may pass without receiving a message for the sequence session prior to the initiator computing system abandoning or failing the sequence session; calculating a keep-alive expiration timeout based on the inactivity timeout period and which defines an interval of time that the initiator computing system will wait without detecting activity by the acceptor computing system during the inactivity timeout period and prior to beginning transmission of one or more keep-alive messages to the acceptor computing system; calculating a keep-alive time interval, the keep-alive interval defining an interval of time that is to occur prior to each successively transmitted keep-alive message after transmission of a first keep-alive message to the acceptor computing system within the inactivity timeout period; sending the first keep alive message upon expiration of the keep-alive expiration timeout; iteratively sending the one or more keep-alive messages to the acceptor computing system based on the calculated keep-alive time interval, and which said one or more keep-alive messages include the unique sequence identifier, until either; the inactivity timeout period has elapsed, until activity is detected from the acceptor, or until a maximum retry count is reached, which comprises a predetermined number of times the one or more keep-alive messages are to be sent during the inactivity timeout period; and upon receiving a message that includes the unique sequence identifier, prior to the upper limit of the inactivity timeout period being reached, resetting an inactivity timer for the inactivity timeout period such that the sequence session is kept alive and such that the upper limit of the inactivity timeout period is reset, wherein the inactivity timeout period is tunable at the application layer based on at least one of; latency issues, network reliability, on a per connection basis, or negotiations between the initiator and the acceptor; and upon failing to receive any message that includes the unique sequence identifier prior to the upper limit of the inactivity timeout period being reached, the method further includes abandoning the sequence session. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. One or more computer readable storage devices having stored thereon computer executable instructions that, when executed by a processor, implement a method comprising:
-
establishing a sequence session, identified by a unique sequence identifier, at an application layer between two endpoint applications in accordance with a RM-WS protocol; identifying an inactivity timeout period for the sequence session, the inactivity timeout period having an upper limit of time that may pass without receiving a message for the sequence session prior to the initiator computing system abandoning or failing the sequence session; calculating a keep-alive expiration timeout based on the inactivity timeout period and which defines an interval of time that the initiator computing system will wait without detecting activity by the acceptor computing system during the inactivity timeout period and prior to beginning transmission of one or more keep-alive messages to the acceptor computing system; calculating a keep-alive time interval, the keep-alive interval defining an interval of time that is to occur prior to each successively transmitted keep-alive message after transmission of a first keep-alive message to the acceptor computing system within the inactivity timeout period; sending the first keep alive message upon expiration of the keep-alive expiration timeout; iteratively sending the one or more keep-alive messages to the acceptor computing system based on the calculated keep-alive time interval, and which said one or more keep-alive messages include the unique sequence identifier, until either; the inactivity timeout period has elapsed, until activity is detected from the acceptor, or until a maximum retry count is reached, which comprises a predetermined number of times the one or more keep-alive messages are to be sent during the inactivity timeout period; and upon receiving a message that includes the unique sequence identifier, which reflects activity from the acceptor computing system, prior to the upper limit of the inactivity timeout period being reached, resetting an inactivity timer for the inactivity timeout period such that the sequence session is kept alive and such that the upper limit of the inactivity timeout period is reset, wherein the inactivity timeout period is tunable at the application layer based on at least one of; latency issues, network reliability, on a per connection basis, or negotiations between the initiator and the acceptor; and upon failing to receive any message that includes the unique sequence identifier prior to the upper limit of the inactivity timeout period being reached, the method further includes abandoning the sequence session. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. A method implemented by an initiator computer system in a Web Services (WS) environment for maintaining connection liveliness with an acceptor computing system for a sequence session between endpoints, comprising the initiator computing system and the acceptor computing system, by utilizing Reliable Messaging protocol for WS (RM-WS protocol), the method comprising acts of:
-
establishing a sequence session, identified by a unique sequence identifier, at an application layer between two endpoint applications in accordance with a RM-WS protocol; identifying an inactivity timeout period for the sequence session, the inactivity timeout period having an upper limit of time that may pass without receiving a message for the sequence session prior to the initiator computing system abandoning or failing the sequence session; calculating a keep-alive expiration timeout based on the inactivity timeout period and which defines an interval of time that the initiator computing system will wait without detecting activity by the acceptor computing system during the inactivity timeout period and prior to beginning transmission of one or more keep-alive messages to the acceptor computing system, wherein the keep-alive expiration timeout is calculated by multiplying the inactivity timeout period by a fractional value of the inactivity timeout period; calculating a keep-alive time interval, the keep-alive interval defining an interval of time that is to occur prior to each successively transmitted keep-alive message after transmission of a first keep-alive message to the acceptor computing system within the inactivity timeout period, wherein the keep-alive time interval is calculated by obtaining a quotient of a sum of one minus the fractional value of the inactivity timeout period divided by a maximum retry count, wherein the maximum retry count is a predetermined number of times that the initiator will attempt to retransmit a message before giving up, and by multiplying the quotient by the inactivity timeout period; iteratively sending the one or more keep-alive messages to the acceptor computing system, and which said one or more keep-alive messages include the unique sequence identifier, until either; the inactivity timeout period has elapsed, until activity is detected from the acceptor, or until a maximum retry count is reached, which comprises a predetermined number of times the one or more keep-alive messages are to be sent during the inactivity timeout period; receiving a message that includes the unique sequence identifier, which reflects activity from the acceptor computing system, and which is received before the upper limit of the inactivity timeout period has been reached, and which maintains the connection liveliness; and based on the received message, resetting an inactivity timer for the inactivity timeout period such that the sequence session is kept alive.
-
-
33. A method implemented by an initiator computer system in a Web Services (WS) environment for maintaining connection liveliness with an acceptor computing system for a sequence session between endpoints, comprising the initiator computing system and the acceptor computing system, by utilizing Reliable Messaging protocol for WS (RM-WS protocol), the method comprising acts of:
establishing a sequence session, identified by a unique sequence identifier, at an application layer between two endpoint applications in accordance with a RM-WS protocol; identifying an inactivity timeout period for the sequence session, the inactivity timeout period having an upper limit of time that may pass without receiving a message for the sequence session prior to the initiator computing system abandoning or failing the sequence session; calculating a keep-alive expiration timeout based on some fraction of the inactivity timeout period and which defines an interval of time that the initiator computing system will wait without detecting activity by the acceptor computing system during the inactivity timeout period and prior to beginning transmission of one or more keep-alive messages to the acceptor computing system, wherein the sent message that includes the unique sequence identifier is an acknowledgment request message, which is an infrastructure idempotent message defined by the RM-WS protocol, and wherein the fraction of the inactivity timeout period used for calculating the keep-alive expiration timeout is one-half the inactivity timeout period, such that the acknowledgment request message is sent when the inactivity timer reaches one-half the inactivity timeout period; calculating a keep-alive time interval, the keep-alive interval defining an interval of time that is to occur prior to each successively transmitted keep-alive message after transmission of a first keep-alive message to the acceptor computing system within the inactivity timeout period; sending the first keep alive message upon expiration of the keep-alive expiration timeout;
iteratively sending the one or more keep-alive messages to the acceptor computing system based on the calculated keep-alive time interval, and which said one or more keep-alive messages include the unique sequence identifier, until either;the inactivity timeout period has elapsed, until activity is detected from the acceptor, or until a maximum retry count is reached, which comprises a predetermined number of times the one or more keep-alive messages are to be sent during the inactivity timeout period; receiving a message that includes the unique sequence identifier, which reflects activity from the acceptor computing system, and which is received before the upper limit of the inactivity timeout period has been reached, and which maintains the connection liveliness; and based on the received message, resetting an inactivity timer for the inactivity timeout period such that the sequence session is kept alive.
-
34. A method implemented by an initiator computer system in a Web Services (WS) environment for maintaining connection liveliness with an acceptor computing system for a sequence session between endpoints, comprising the initiator computing system and the acceptor computing system, by utilizing Reliable Messaging protocol for WS (RM-WS protocol), the method comprising acts of:
establishing a sequence session, identified by a unique sequence identifier, at an application layer between two endpoint applications in accordance with a RM-WS protocol; identifying an inactivity timeout period for the sequence session, the inactivity timeout period having an upper limit of time that may pass without receiving a message for the sequence session prior to the initiator computing system abandoning or failing the sequence session; calculating a keep-alive expiration timeout based on the inactivity timeout period and which defines an interval of time that the initiator computing system will wait without detecting activity by the acceptor computing system during the inactivity timeout period and prior to beginning transmission of one or more keep-alive messages to the acceptor computing system; calculating a keep-alive interval based on the maximum retry count, the keep-alive interval representing a period of time for sending messages, the keep-alive interval defining an interval of time that is to occur prior to each successively transmitted keep-alive message after transmission of a first keep-alive message to the acceptor computing system within the inactivity timeout period; sending the first keep alive message upon expiration of the keep-alive expiration timeout;
iteratively sending the one or more keep-alive messages to the acceptor computing system based on the calculated keep-alive time interval, and which said one or more keep-alive messages include the unique sequence identifier and at least one of an application-level message or an acknowledgment request message, until either;the inactivity timeout period has elapsed, until activity is detected from the acceptor, or until a maximum retry count is reached, which comprises a predetermined number of times the one or more keep-alive messages are to be sent during the inactivity timeout period; receiving a message that includes the unique sequence identifier, which reflects activity from the acceptor computing system, and which is received before the upper limit of the inactivity timeout period has been reached, and which maintains the connection liveliness; and based on the received message, resetting an inactivity timer for the inactivity timeout period such that the sequence session is kept alive, wherein the inactivity timeout period is tunable to allow for latency imposed by the communication medium.
-
35. A method implemented by an initiator computer system in a Web Services (WS) environment for maintaining connection liveliness with an acceptor computing system for a sequence session between endpoints, comprising the initiator computing system and the acceptor computing system, by utilizing Reliable Messaging protocol for WS (RM-WS protocol), the method comprising acts of:
establishing a sequence session, identified by a unique sequence identifier, at an application layer between two endpoint applications in accordance with a RM-WS protocol; identifying an inactivity timeout period for the sequence session, the inactivity timeout period having an upper limit of time that may pass without receiving a message for the sequence session prior to the initiator computing system abandoning or failing the sequence session; calculating a keep-alive expiration timeout based on the inactivity timeout period and which defines an interval of time that the initiator computing system will wait without detecting activity by the acceptor computing system during the inactivity timeout period and prior to beginning transmission of one or more keep-alive messages to the acceptor computing system; calculating a keep-alive time interval, the keep-alive interval defining an interval of time that is to occur prior to each successively transmitted keep-alive message after transmission of a first keep-alive message to the acceptor computing system within the inactivity timeout period; sending the first keep alive message upon expiration of the keep-alive expiration timeout;
iteratively sending the one or more keep-alive messages to the acceptor computing system based on the calculated keep-alive time interval, and which said one or more keep-alive messages include the unique sequence identifier, until either;the inactivity timeout period has elapsed, until activity is detected from the acceptor, or until a maximum retry count is reached, which comprises a predetermined number of times the one or more keep-alive messages are to be sent during the inactivity timeout period; receiving a message that includes the unique sequence identifier, which reflects activity from the acceptor computing system, and which is received before the upper limit of the inactivity timeout period has been reached, and which maintains the connection liveliness; and based on the received message, resetting an inactivity timer for the inactivity timeout period such that the sequence session is kept alive, wherein the method further includes negotiating the inactivity timeout period between the initiator computing system and the acceptor computing system prior to establishing the sequence session.
-
36. One or more computer readable storage devices having stored thereon computer executable instructions that, when executed by a processor, implement a method comprising:
-
establishing a sequence session, identified by a unique sequence identifier, at an application layer between two endpoint applications in accordance with a RM-WS protocol; identifying an inactivity timeout period for the sequence session, the inactivity timeout period having an upper limit of time that may pass without receiving a message for the sequence session prior to the initiator computing system abandoning or failing the sequence session; calculating a keep-alive expiration timeout based on some fraction of the inactivity timeout period and which defines an interval of time that the initiator computing system will wait without detecting activity by the acceptor computing system during the inactivity timeout period and prior to beginning transmission of one or more keep-alive messages to the acceptor computing system, wherein the sent message that includes the unique sequence identifier is an acknowledgment request message, which is an infrastructure idempotent message defined by the RM-WS protocol, and wherein the fraction of the inactivity timeout period used for calculating the keep-alive expiration timeout is one-half the inactivity timeout period, such that the acknowledgment request message is sent when the inactivity timer reaches one-half the inactivity timeout period; calculating a keep-alive time interval, the keep-alive interval defining an interval of time that is to occur prior to each successively transmitted keep-alive message after transmission of a first keep-alive message to the acceptor computing system within the inactivity timeout period; sending the first keep alive message upon expiration of the keep-alive expiration timeout;
iteratively sending the one or more keep-alive messages to the acceptor computing system based on the calculated keep-alive time interval, and which said one or more keep-alive messages include the unique sequence identifier, until either;the inactivity timeout period has elapsed, until activity is detected from the acceptor, or until a maximum retry count is reached, which comprises a predetermined number of times the one or more keep-alive messages are to be sent during the inactivity timeout period; receiving a message that includes the unique sequence identifier, which reflects activity from the acceptor computing system, and which is received before the upper limit of the inactivity timeout period has been reached, and which maintains the connection liveliness; and based on the received message, resetting an inactivity timer for the inactivity timeout period such that the sequence session is kept alive.
-
-
37. One or more computer readable storage devices having stored thereon computer executable instructions that, when executed by a processor, implement a method comprising:
-
establishing a sequence session, identified by a unique sequence identifier, at an application layer between two endpoint applications in accordance with a RM-WS protocol; identifying an inactivity timeout period for the sequence session, the inactivity timeout period having an upper limit of time that may pass without receiving a message for the sequence session prior to the initiator computing system abandoning or failing the sequence session, wherein the inactivity timeout period is tunable to allow for latency imposed by the communication medium; calculating a keep-alive expiration timeout based on some fraction of the inactivity timeout period and which defines an interval of time that the initiator computing system will wait without detecting activity by the acceptor computing system during the inactivity timeout period and prior to beginning transmission of one or more keep-alive messages to the acceptor computing system; calculating a keep-alive time interval based on the maximum retry count, the keep-alive interval representing a period of time for sending messages, the keep-alive interval defining an interval of time that is to occur prior to each successively transmitted keep-alive message after transmission of a first keep-alive message to the acceptor computing system within the inactivity timeout period; sending the first keep alive message upon expiration of the keep-alive expiration timeout;
iteratively sending the one or more keep-alive messages to the acceptor computing system based on the keep-alive interval, and which said one or more keep-alive messages include the unique sequence identifier and include at least one of an application-level message or an acknowledgment request message, until either;the inactivity timeout period has elapsed, until activity is detected from the acceptor, or until a maximum retry count is reached, which comprises a predetermined number of times the one or more keep-alive messages are to be sent during the inactivity timeout period; receiving a message that includes the unique sequence identifier, which reflects activity from the acceptor computing system, and which is received before the upper limit of the inactivity timeout period has been reached, and which maintains the connection liveliness; and based on the received message, resetting an inactivity timer for the inactivity timeout period such that the sequence session is kept alive.
-
Specification