Client-server communications system and method using a semi-connectionless protocol
First Claim
1. A method in a computer system for performing a transaction that includes multiple requests, the method comprising:
- an application interface of a client computer receiving a request from an application program;
the application interface associating a transaction identifier with the request, wherein the transaction identifier identifies a transaction that the request is associated with;
the application interface forming a message including the transaction identifier and the request;
the application interface sending the message to a server, comprising the steps of opening a connection with the server, sending the message over the connection, initializing a timer indicative of how much time has expired since a message was last sent to the server or a reply was last received from the server, determining whether a timeout period of the timer has expired before another message for the server is received from the application program or another reply is received from the server, keeping the connection open and reinitializing the timer so long as either another message for the server is received from the application program or another reply is received from the server before the timeout period has expired, and closing the connection when the timeout period has expired before either another message for the server is received from the application program or another reply is received from the server;
the server receiving the message; and
the server processing the request in a context of the transaction identified by the transaction identifier in the message.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for performing client-server transactions includes an application interface, located at a client, which manages connections between the client and a server. The application interface receives a request from an application program, opens a connection with the server, sends a message that includes the request over the connection, and holds the connection open for at least a timeout period. If the application interface receives another request destined for the server during the timeout period, it sends another message with the new request over the open connection. If the application interface receives one or more requests that are part of a transaction, the application interface assigns a transaction identifier to the transaction. The transaction identifier and a sequence indicator are included in each message with each request. At the server, a transaction manager receives the messages, sequences the requests based on the sequence indicators, and processes the requests in the indicated sequence. If the application interface receives a redirect request from the server in response to a message, the application interface sends the message to another server identified in the redirect request without involving the client application.
97 Citations
19 Claims
-
1. A method in a computer system for performing a transaction that includes multiple requests, the method comprising:
-
an application interface of a client computer receiving a request from an application program; the application interface associating a transaction identifier with the request, wherein the transaction identifier identifies a transaction that the request is associated with; the application interface forming a message including the transaction identifier and the request; the application interface sending the message to a server, comprising the steps of opening a connection with the server, sending the message over the connection, initializing a timer indicative of how much time has expired since a message was last sent to the server or a reply was last received from the server, determining whether a timeout period of the timer has expired before another message for the server is received from the application program or another reply is received from the server, keeping the connection open and reinitializing the timer so long as either another message for the server is received from the application program or another reply is received from the server before the timeout period has expired, and closing the connection when the timeout period has expired before either another message for the server is received from the application program or another reply is received from the server; the server receiving the message; and the server processing the request in a context of the transaction identified by the transaction identifier in the message. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method in a computer system for a client to perform multiple requests in the context of a transaction, the method performed by an application interface associated with the client, the method comprising:
-
receiving a request from an application program; associating a transaction identifier with the request, wherein the transaction identifier identifies a transaction that the request is associated with; forming a message including the transaction identifier and the request; and sending the message to a server, comprising the steps of opening a connection with the server, sending the message over the connection, initializing a timer indicative of how much time has expired since a message was last sent to the server or a reply was last received from the server, determining whether a timeout period of the timer has expired before another message for the server is received from the application program or another reply is received from the server, keeping the connection open and reinitializing the timer so long as either another message for the server is received from the application program or another reply is received from the server before the timeout period has expired, and closing the connection when the timeout period has expired before either another message for the server is received from the application program or another reply is received from the server. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A method in a computer system for a client to send one or more messages to a server, the method comprising:
-
receiving a request from an application program; associating a transaction identifier with the request, wherein the transaction identifier identifies a transaction that the request is associated with; forming one or more messages including the transaction identifier and the request; opening a connection with the server; sending the one or more messages over the connection; initializing a timer indicative of how much time has expired since a message was last sent to the server or a reply was last received from the server; determining whether a timeout period of the timer has expired before another message for the server is received from an application program of the client or another reply is received from the server; keeping the connection open and reinitializing the timer so long as either another message for the server is received from the application program or another reply is received from the server before the timeout period has expired; and closing the connection when the timeout period has expired before either another message for the server is received from the application program or another reply is received from the server. - View Dependent Claims (12, 13)
-
-
14. A computer system for processing requests from application programs, the computer system comprising:
-
a processor for executing an application interface which receives requests destined for the server from at least one application program, associates transaction identifiers with each of the requests that are associated with transactions, and forms messages including the transaction identifiers and the requests; and an interface to the server, coupled to the processor through a bus, which sends the messages to the server by opening a connection with the server, sending the messages over the connection, initializing a timer indicative of how much time has expired since a message was last sent to the server or a reply was last received from the server, determining whether a timeout period of the timer has expired before a subsequent message for the server is received from the at least one application program or another reply is received from the server, keeping the connection open and reinitializing the timer so long as either another message for the server is received from the at least one application program or another reply is received from the server before the timeout period has expired, and closing the connection when the timeout period has expired before either another message for the server is received from the at least one application program or another reply is received from the server. - View Dependent Claims (15)
-
-
16. A computer system for processing requests from application programs, the computer system comprising:
-
a processor for executing an application interface which receives requests destined for a server from at least one application program, wherein the processor opens a connection with the server, sends one or more messages over the connection, initializes a timer indicative of how much time has expired since a message was last sent to the server or a reply was last received from the server, determines whether a timeout period of the timer has expired before another message for the server is received from the at least one application program or another reply is received from the server, keeps the connection open and reinitializes the timer so long as either another message for the server is received from the at least one application program or another reply is received from the server before the timeout period has expired, and closes the connection when the timeout period has expired before either another message for the server is received from the at least one application program or another reply is received from the server; and an interface to the server, coupled to the processor through a bus, which receives a request from an application program, associates a transaction identifier with the request, wherein the transaction identifier identifies a transaction that the request is associated with, forms one or more messages including the transaction identifier and the request, and sends the one or more messages to the server for processing of the request in a context of the transaction identified by the transaction identifier in the one or more messages. - View Dependent Claims (17)
-
-
18. A computer-readable medium holding computer executable instructions, the computer-readable medium for performing a method in a computer system for a client to perform multiple requests in the context of a transaction, the method performed by an application interface associated with the client, the method comprising:
-
receiving a request from an application program; associating a transaction identifier with the request, wherein the transaction identifier identifies a transaction that the request is associated with; forming a message including the transaction identifier and the request; and sending the message to a server, comprising the steps of opening a connection with the server, sending the message over the connection, initializing a timer indicative of how much time has expired since a message was last sent to the server or a reply was last received from the server, determining whether a timeout period of the timer has expired before another message for the server is received from the application program or another reply is received from the server, keeping the connection open and reinitializing the timer so long as either another message for the server is received from the application program or another reply is received from the server before the timeout period has expired, and closing the connection when the timeout period has expired before either another message for the server is received from the application program or another reply is received from the server.
-
-
19. A computer-readable medium holding computer executable instructions, the computer-readable medium for performing a method in a computer system for a client to send one or more messages to a server, the method comprising:
-
receiving a request from an application program; associating a transaction identifier with the request, wherein the transaction identifier identifies a transaction that the request is associated with; forming one or more messages including the transaction identifier and the request; opening a connection with the server; sending the one or more messages over the connection; initializing a timer indicative of how much time has expired since a message was last sent to the server or a reply was last received from the server; determining whether a timeout period of the timer has expired before another message is received for sending to the server or another reply is received from the server; keeping the connection open and reinitializing the timer so long as either another message for the server is received or another reply is received from the server before the timeout period has expired; and closing the connection when the timeout period has expired before either another message for the server is received or another reply is received from the server.
-
Specification