# US 7,610,373 B2 · Voting mechanism for session invalidation processing in an application server cluster

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,610,373 B2
- Document ID: US7610373B2
- Status: Granted
- Kind: B2
- Application number: 10/854,908
- Filed: 2004-05-27
- Published: 2006-02-09
- Granted: 2009-10-27
- Earliest claimed: 2004-05-27
- Assignees: International Business Machines Corporation
- Inventors: Srinivas Hasti; Gabriel G. Montero; Gautam Singh
- Web page: https://patentgrep.com/patent/US7610373B2

## CPC

- H04L 67/1008: based on parameters of servers, e.g. available memory or workload (monitoring of computer activity G06F11/30)
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/1001: for accessing one among a plurality of replicated servers
- H04L 67/1023: based on a hash applied to IP addresses or costs
- H04L 67/14: Session management (for real-time applications in data packet communications networks H04L65/1066)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Under the present invention, there is provided a voting mechanism for assigning an application server of an application server cluster the task of invalidating all sessions containing listeners in the cluster for a web application. A method for session invalidation processing comprises assigning a vote to a web application upon launch of the web application in an application server of the application server cluster, broadcasting the vote to other application servers of the application server cluster, receiving a vote for the web application from each of the other application servers in the application server cluster in which the web application has been launched, and assigning invalidation processing to the application server containing the web application having the highest vote. The votes are dynamically updated upon the removal or addition of an application server from/to the application server cluster.

## Claims

### Claim 1

A method for session invalidation processing in an application server cluster, said application server cluster comprising a plurality of application servers, the method comprising:
generating a random weight vote using a random number generator for each instance of a web application contained in the cluster;
assigning the random weight vote to each web application upon each launch of the web application in an application server of the application server cluster;
broadcasting the vote to other application servers of the application server cluster;
receiving a vote for the web application from each of the other application servers in the application server cluster in which the web application has been launched;
storing the votes in a vote table in each of the application servers in the application server cluster;
dynamically updating the votes in the vote table of each application server in the application server cluster;
assigning invalidation processing to the application server containing the web application having the highest vote in the updated vote table, wherein the highest vote comprises the highest weight vote; and
performing invalidation processing for all instances of the web application running in the application servers of the application server cluster.

### Claim 2 (depends on 1)

The method of claim 1, wherein the application server containing the web application having the highest vote performs invalidation processing for all instances of the web application on the application servers in the application server cluster.

### Claim 3 (depends on 1)

The method of claim 1, wherein the step of dynamically updating occurs after a predetermined polling period.

### Claim 4 (depends on 1)

The method of claim 1, wherein the votes are dynamically updated upon removal of an application server from the application server cluster, or upon addition of an application server to the application server cluster.

### Claim 5 (depends on 1)

The method of claim 1, wherein the vote further comprises an identification of the web application and the application server on which the web application was launched.

### Claim 6

A computerized system for session invalidation processing in an application server cluster, said application server cluster comprising a plurality of application servers, comprising:
a random number generator for generating a random weight vote for each instance of a web application contained in the cluster;
a system for assigning the random weight vote to each web application upon launch of the web application in an application server of the application server cluster;
a system for broadcasting the vote to other application servers of the application server cluster;
a system for receiving a vote for the web application from each of the other application servers in the application server cluster in which the web application has been launched;
a system for storing the votes in a vote table in each of the application servers in the application server cluster;
a system for dynamically updating the votes in the vote table of each application server in the application server cluster;
a system for assigning invalidation processing to the application server containing the web application having the highest vote in the updated vote table, wherein the highest vote comprises the highest weight vote; and
a system for performing invalidation processing for all instances of the web application running in the application servers of the application server cluster.

### Claim 7 (depends on 6)

The system of claim 6, wherein the application containing the web server containing the web application having the highest vote performs invalidation processing for all instances of the web application on the application servers in the application server cluster.

### Claim 8 (depends on 6)

The system of claim 6, wherein the system for dynamically updating updates the votes in the vote table after a predetermined polling period.

### Claim 9 (depends on 6)

The system of claim 6, wherein the system for dynamically updating updates the votes in the vote table upon removal of an application server from the application server cluster, or upon addition of an application server to the application server cluster.

### Claim 10 (depends on 6)

The system of claim 6, wherein the vote further comprises an identification of the web application and the application server on which the web application was launched.

### Claim 11

A computer program product, stored on a computer readable medium, for session invalidation processing in an application server cluster, said application server cluster comprising a plurality of application servers, which when executed, comprises:
program code for generating a random weight vote for each instance of a web application contained in the cluster;
program code for assigning the random weight vote to each web application upon launch of the web application in an application server of the application server cluster;
program code for broadcasting the vote to other application servers of the application server cluster;
program code for receiving a vote for the web application from each of the other application servers in the application server cluster in which the web application has been launched, wherein the highest vote comprises the highest weight vote;
program code for storing the votes in a vote table in each of the application servers in the application server cluster;
program code for dynamically updating the votes in the vote table of each application server in the application server cluster;
program code for assigning invalidation processing to the application server containing the web application having the highest vote in the updated vote table; and
program code for performing invalidation processing for all instances of the web application running in the application servers of the application server cluster.

### Claim 12 (depends on 11)

The program product of claim 11, wherein the application server containing the web application having the highest vote performs invalidation processing for all instances of the web application on the application servers in the application server cluster.

### Claim 13 (depends on 11)

The program product of claim 11, wherein the votes in the vote table of each application server are dynamically updated after a predetermined polling period.

### Claim 14 (depends on 11)

The program product of claim 11, wherein the votes are dynamically updated upon removal of an application server from the application server cluster, or upon addition of an application server to the application server cluster.

### Claim 15 (depends on 11)

The program product of claim 11, wherein the vote further comprises an identification of the web application and the application server on which the web application was launched.

### Claim 16

A computerized system for deploying a session invalidation processing application, comprising:
a computer infrastructure being operable to:
generate a random weight vote using a random number generator for each instance of a web application in an application server cluster;
assign the random weight vote to each web application upon launch of the web application in an application server of the application server cluster;
broadcast the vote to other application servers of the application server cluster;
receive a vote for the web application from each of the other application servers in the application server cluster in which the web application has been launched;
store the votes in a vote table in each of the application servers in the application server cluster;
dynamically update the votes in the vote table of each application server in the application server cluster;
assign invalidation processing to the application server containing the web application having the highest vote in the updated vote table, wherein the highest vote comprises the highest weight vote; and
perform invalidation processing for all instances of the web application running in the application servers of the application server cluster.
