# US 8,751,469 B2 · System and method for scaling for a large number of concurrent users

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

- Number: US 8,751,469 B2
- Document ID: US8751469B2
- Status: Granted
- Kind: B2
- Application number: 13/335,100
- Filed: 2011-12-22
- Published: 2012-06-28
- Granted: 2014-06-10
- Earliest claimed: 2010-12-22
- Assignees: Sap SE
- Applicants: Wolfgang Dittrich
- Inventors: Wolfgang Dittrich
- Web page: https://patentgrep.com/patent/US8751469B2

## CPC

- G06F 9/505: {considering the load}
- G06F 16/2343: {Locking methods, e.g. distributed locking or locking implementation details}
- G06Q 10/0633: Workflow analysis
- H04L 67/142: Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
- H04L 67/146: Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A computer-implemented method for providing a stateful computer application to a multitude of users. The method may comprise generating a session identification (e.g., a primary key) for a user session for one user and retrieving a state representation using the session identification. The state of the stateful computer application may be described by a set of user-specific session variables that may be reconstructed from information contained in the state representation. The method may further comprise restoring the set of user-specific session variables using the retrieved state representation and calling functional computing logic based thereon. The functional computing logic may comprise the code of the stateful computer application and the call may provide an updated set of user-specific session variables. Upon completion of functions performed by the called functional computing logic, an updated state representation may be assembled from the updated set of user-specific session variables and stored.

## Claims

### Claim 1

A method for providing a stateful computer application to a multitude of users, the method comprising for a given user of the plurality of users:
generating a session identification for a user session for the user, wherein the state of the stateful computer application is described by a set of user-specific session variables;
retrieving a state representation related to the user from a storage using the session identification, wherein the state representation comprises information permitting to reconstruct the set of user-specific session variables;
restoring the set of user-specific session variables for the user by using the retrieved state representation;
calling functional computing logic based on the restored set of user-specific session variables, wherein the functional computing logic comprises the code of the stateful computer application, wherein the call provides an updated set of user-specific session variables;
calling of locking functions of the stateful computer application, wherein a stateless locking framework module substitutes the locking functions of the stateful computer application by substitute locking functions;
upon completion of functions performed by the called functional computing logic, assembling from the updated set of user-specific session variables an updated state representation for the user and storing the updated state representation in the storage, wherein the session identification is a primary key, wherein the updated state representation comprises information permitting to reconstruct the updated set of user-specific session variables.

### Claim 2 (depends on 1)

The method of claim 1, wherein retrieving the state representation comprises retrieving a cookie related to the user from the storage using the session identification, wherein the state representation is comprised in the cookie.

### Claim 3 (depends on 1)

The method of claim 1, wherein the stateful computer application is an application of a set of stateful computer applications, wherein the generation of the session identification is performed specific to the stateful computer applications of the set of stateful computer applications.

### Claim 4 (depends on 1)

The method of claim 1, further comprising providing a result of the calling by a user interface to the user.

### Claim 5 (depends on 1)

The method of claim 1, wherein the functions performed by the functional computing logic are performed by a stateful computer system.

### Claim 6 (depends on 1)

The method of claim 1, wherein the session identification is generated by the stateful computer application and wherein the restoring of the set of user-specific session variables is performed by the stateful computer system.

### Claim 7 (depends on 1)

The method of claim 1, further comprising transforming the stateful application into a transformed application by a recoding process, wherein the transformed application is able to perform the method.

### Claim 8 (depends on 5)

The method of claim 5, wherein the functional computing logic comprises the code of the stateful computer application in an unmodified manner.

### Claim 9

A method for providing a stateful computer application to a multitude of users, the method comprising for a given user of the plurality of users:
generating a session identification for a user session for the user, wherein the state of the stateful computer application is described by a set of user-specific session variables;
retrieving a state representation related to the user from a storage using the session identification, wherein the state representation comprises information permitting to reconstruct the set of user-specific session variables;
restoring the set of user-specific session variables for the user by using the retrieved state representation;
calling functional computing logic based on the restored set of user-specific session variables, wherein the functional computing logic comprises the code of the stateful computer application, wherein the call provides an updated set of user-specific session variables;
upon completion of functions performed by the called functional computing logic, assembling from the updated set of user-specific session variables an updated state representation for the user and storing the updated state representation in the storage, wherein the session identification is a primary key, wherein the updated state representation comprises information permitting to reconstruct the updated set of user-specific session variables
wherein the functions performed by the functional computing logic are performed by a stateful computer system,
wherein the functional computing logic comprises the code of the stateful computer application in an unmodified manner, and
wherein the stateful computer system comprises a stateless locking framework module, wherein in case the calling of the functional computing logic comprises calling of locking functions of the stateful computer application, the stateless locking framework module substitutes the locking functions of the stateful computer application by substitute locking functions, wherein the substitute locking functions are adapted for providing database locks on data resources requested by the calling of the functional computing logic.

### Claim 10 (depends on 9)

The method of claim 9, wherein the data resources are comprised in an application database.

### Claim 11 (depends on 10)

The method of claim 10, wherein the database locks are stored in a lock storage database, wherein the database locks are stored associated with the session identification, the name of the computer running the stateful computer application and a timestamp as a compound primary key, wherein the timestamp comprises the point in time when the respective database lock was set.

### Claim 12 (depends on 11)

The method of claim 11, wherein the stateful computer system comprises a stateless update task framework module, wherein the stateless update task framework module is queuing predetermined statements of the code of the stateful computer application, wherein the queued statements are executed upon reception of a predefined execution statement, wherein the queuing is performed in a database table, wherein the database table is maintainable over the whole user session.

### Claim 13 (depends on 12)

The method of claim 12, wherein the stateful computer system comprises a clean-up job module, wherein the clean-up job module is removing the database locks on data resources previously set by the stateless locking framework module, wherein the removal of the database locks is performed after a timeout, wherein the timeout is determined for each database lock from a predetermined time period and the timestamp.

### Claim 14 (depends on 1)

A non-transitory computer program product comprising computer executable instructions to perform the method steps as claimed in claim 1.

### Claim 15

A computer system for providing a stateful computer application to a multitude of users, the system being adapted for performing the following steps for a given user of the plurality of users:
generating a session identification for a user session for the user, wherein the state of the stateful computer application is described by a set of user-specific session variables;
retrieving a state representation related to the user from a storage using the session identification, wherein the state representation comprises information permitting to reconstruct the set of user-specific session variables;
restoring the set of user-specific session variables for the user by using the retrieved state representation;
calling functional computing logic based on the restored set of user-specific session variables, wherein the functional computing logic comprises the code of the stateful computer application, wherein the call provides an updated set of user-specific session variables;
calling of locking functions of the stateful computer application, wherein a stateless locking framework module substitutes the locking functions of the stateful computer application by substitute locking functions;
upon completion of functions performed by the called functional computing logic, assembling from the updated set of user-specific session variables an updated state representation for the user and storing the updated state representation in the storage, wherein the session identification is a primary key, wherein the updated state representation comprises information permitting to reconstruct the updated set of user-specific session variables.
