Patent ID: 9749387
Date: 2017-08-29
CPC Classifications: H04L

Claim:
1. A non-transitory computer program product for providing stateful execution of a stateless application, the computer program product comprising computer readable instructions embodied on tangible media and operable when executed to: receive a request with an application associated with the request, the request received from a client associated with the application and identifying at least one operation to be performed by the application, the request always including a set of state information regardless of the application's capability for stateful execution, the set of state information including the previous state information received or maintained at the client during previous interactions with the application, the previous state information associated with a timeout value used to delete or archive the previous state information after a period of time associated with the timeout value has been exceeded, and the state information used to identify a first state for the application to be initialized prior to executing the at least one operation; determine, using the application, if a first of the at least one operation of the request is to be executed by the application, the determination comprising a dynamically transparent selection between a stateless mode and a stateful mode based on, at least in part, runtime environment metrics concurrent with the requested execution of the at least one operation, a specific user behavior, speed of a network connection, processor resources, and type of a network; in response to the transparent selection of the stateless mode: in response to the transparent selection of the stateful mode, set the application to a state identified by a locally-maintained set of stored state information separate from the set of state information included with the received request; execute, using the application and based on the dynamic transparent selection between the stateless mode and the stateful mode, the operations identified in the received request; generate, using the application and based on the dynamic transparent selection between the stateless mode and the stateful mode, a response to the client associated with the received request, the response comprising the results of the operations and a set of updated state information identifying a second state of the application as determined after the execution of the at least one operation; and terminate execution of the application and delete any state information regarding the interaction with the client based on the received request.