System and method for scaling for a large number of concurrent users
First Claim
1. A method for transforming a stateful computer application to a stateless application to facilitate scaling to a large number of concurrent users of a computer system, comprising:
- generating, by a processor executing a computer application, a session identification (ID) for a user session in the computer system;
retrieving a server side cookie related to the user session from an external storage in the computer system using the session ID;
restoring, by the processor, a user context for the user session by using the retrieved server side cookie;
calling functional computing logic based on the restored user context, wherein execution of the functional computing logic includes accessing an application database, which includes;
storing each lock for the application database using a respective key that includes a logic unit of work identifier (LUW_ID) and a timestamp;
implementing a stateless update task framework on an applications server, which further includes;
queuing and maintaining update statements in a server side update task storage for a duration of the user session;
executing said statements at a later point in time;
assembling a state representation subset of the user context according to data in a database;
upon completion of functions performed by the computer application functional computing logic, storing the user context and the assembled state representation as a server side cookie in the external storage, wherein the session ID is a primary key; and
generating HTML code by a user interface for the user based on the assembled state representation, user context, and data from the accessed database.
2 Assignments
0 Petitions
Accused Products
Abstract
Disclosed embodiments provide a system, machine-readable medium and a method that may generate a session identification for a user session of each of a plurality of users of the computer application. Cookies related to users may be retrieved from external storage using the session identification. A user context may be restored using the retrieved cookies. Functional computing logic may be called based on the restored user context. A state representation may be assembled according to data in a database. Upon completion of functions performed by the called functional computing logic, the user context and the assembled state representation may be stored as a cookie for each of users in external storage. Based on the assembled state representation, user context, and data from the accessed database, HTML code may be generated. Stateful function computing logic may be re-used by employing stateless implementations of consistency frameworks which may include lock management and update task handling performing the actual database changes.
19 Citations
15 Claims
-
1. A method for transforming a stateful computer application to a stateless application to facilitate scaling to a large number of concurrent users of a computer system, comprising:
-
generating, by a processor executing a computer application, a session identification (ID) for a user session in the computer system; retrieving a server side cookie related to the user session from an external storage in the computer system using the session ID; restoring, by the processor, a user context for the user session by using the retrieved server side cookie; calling functional computing logic based on the restored user context, wherein execution of the functional computing logic includes accessing an application database, which includes; storing each lock for the application database using a respective key that includes a logic unit of work identifier (LUW_ID) and a timestamp; implementing a stateless update task framework on an applications server, which further includes; queuing and maintaining update statements in a server side update task storage for a duration of the user session; executing said statements at a later point in time; assembling a state representation subset of the user context according to data in a database; upon completion of functions performed by the computer application functional computing logic, storing the user context and the assembled state representation as a server side cookie in the external storage, wherein the session ID is a primary key; and generating HTML code by a user interface for the user based on the assembled state representation, user context, and data from the accessed database. - View Dependent Claims (2, 3, 4)
-
-
5. A computer system for transforming a stateful computer application to a stateless application to facilitate scaling a computer system to a large number of concurrent users, comprising:
-
a terminal for receiving inputs and outputting data; a database for storing data; and an application server having a processor configured to; generate a session identification (ID) for a user session in the computer; retrieve a server side cookie related to the user session from an external storage in the computer system using the session ID; restore a user context for the user session by using the retrieved server side cookie; call functional computing logic based on the restored user context, wherein execution of the functional computing logic includes accessing an application database, which includes; storing each lock for the application database using a respective key that includes a logic unit of work identifier (LUW_ID) and a timestamp; implementing a stateless update task framework on an applications server, which further includes; queuing and maintaining update statements in a server side update task storage for a duration of the user session; executing said statements at a later point in time; assemble a state representation subset of the user context according to data in a database; upon completion of functions performed by the functional computing logic, store the user context and the assembled state representation as a server side in the external storage, wherein the session ID is a primary key; and generate HTML code by a user interface based on the assembled state representation, user context, and data from the accessed database. - View Dependent Claims (6, 7, 8)
-
-
9. A non-transitory machine-readable storage medium embodied with program instructions for causing a computer processor to execute a method for scaling a computer system to a large number of concurrent users, the method comprising:
-
generating a session identification (ID) for a user session in the computer system; retrieving a server side cookie related to the user session from an external storage using the session ID; restoring a user context for the user session by using the retrieved server side cookie; calling functional computing logic based on the restored user context, wherein execution of the functional computing logic includes accessing an application database, which includes; storing each lock for the application database using a respective key that includes a logic unit of work identifier (LUW_ID) and a timestamp; implementing a stateless update task framework on an applications server, which further includes; queuing and maintaining update statements in a server side update task storage for a duration of the user session; executing said statements at a later point in time; assembling a state representation subset of the user context according to data in a database; upon completion of functions performed by the functional computing logic, storing the user context and the assembled state representation as a server side cookie for the user session in the external storage, wherein the session ID is a primary key; and generating HTML code by a user interface for each of the plurality of based on the assembled state representation, user context, and data from the accessed database. - View Dependent Claims (10, 11, 12)
-
-
13. A method for substituting a stateless implementation for a stateful implementation to provide further functionality to scale a computer application for use by a large number of users, comprising:
-
generating a computer session identification (ID) in response a request for a computer application, the computer session ID including information related to the computer requesting the computer application; forming a user context from the information related to the requesting computer; creating a server side cookie having a state representation of the user context and the computer session ID; accessing data from a database for execution of the computer application functions, the accessing of the database including; storing each lock for the application database using a respective key that includes a logic unit of work identifier (LUW_ID) and a timestamp; implementing a stateless update task framework on an applications server, which further includes; queuing and maintaining update statements in a server side update task storage for a duration of the user session; executing said statements at a later point in time; upon execution of functions related to the computer application, assembling a revised state representation of the user context including the computer session; upon completion of functions performed by the computer application, revising the server side cookie to include the assembled state representation, wherein the session ID is a primary key for retrieving the server side cookie from an external storage; storing the revised server side cookie in the external storage; and generating HTML code by a user interface based on the assembled state representation, user context, and data from the accessed database.
-
-
14. A system for substituting a stateless implementation for a stateful implementation to provide further functionality to scale a computer application for use by a large number of users, comprising:
-
a terminal for receiving inputs and outputting data; a database for storing data; and an application server having a processor configured to; generate a computer session identification (ID) in response a request for a computer application, the computer session ID including information related to the computer requesting the computer application; form a user context from the information related to the requesting computer; create a server side cookie having a state representation of the user context and the computer session ID; access data from a database for execution of the computer application functions, the accessing of the database including; storing each lock for the application database using a respective key that includes a logic unit of work identifier (LUW_ID) and a timestamp; implementing a stateless update task framework on an applications server, which further includes; queuing and maintaining update statements in a server side update task storage for a duration of the user session; executing said statements at a later point in time; upon execution of functions related to the computer application, assemble a revised state representation of the user context including the computer session; upon completion of functions performed by the computer application, revise the server side cookie to include the assembled state representation, wherein the session ID is a primary key for retrieving the server side cookie from an external storage; store the revised server side cookie in the external storage; and generate HTML code by a user interface based on the assembled state representation, user context, and data from the accessed database.
-
-
15. A non-transitory machine-readable storage medium embodied with program instructions for causing a computer processor to execute a method for scaling a computer system to a large number of concurrent users, the method comprising:
-
generating a computer session identification (ID) in response a request for a computer application, the computer session ID including information related to the computer requesting the computer application; forming a user context from the information related to the requesting computer; creating a server side cookie having a state representation of the user context and the computer session ID; accessing data from a database for execution of the computer application functions, the accessing of the database including; storing each lock for the application database using a respective key that includes a logic unit of work identifier (LUW_ID) and a timestamp; implementing a stateless update task framework on an applications server, which further includes; queuing and maintaining update statements in a server side update task storage for a duration of the user session; executing said statements at a later point in time; upon execution of functions related to the computer application, assembling a revised state representation of the user context including the computer session; upon completion of functions performed by the computer application, revising the server side cookie to include the assembled state representation, wherein the session ID is a primary key for retrieving the server side cookie from an external storage; storing the revised server side cookie in the external storage; and generating HTML code by a user interface based on the assembled state representation, user context, and data from the accessed database.
-
Specification