Patent ID: 8005950

Claim:
An application execution system, comprising: a plurality of application servers, each of the application servers including non-volatile storage for storing a plurality of applications, volatile storage and computational resources for executing applications in response to requests received by the application execution system; each application server of the plurality of application servers including instructions for: storing in non-volatile storage applications distributed to the application server; loading a plurality of respective applications into volatile storage, executing a respective application in response to a respective received request from a client, and returning a result to the request; conditionally terminating execution of the respective application prior to returning the result if the respective application violates any of a plurality of execution restrictions, the plurality of execution restrictions including two of more of the following: a response time limit; an average response time limit over multiple executions of the respective application; a volatile memory usage limit that limits how much volatile memory can be used by each execution of the respective application; a restriction on using non-volatile storage of the application server; and a requirement that any state information to be retained after returning the result is either sent to the client for storage, or retained in a datastore accessible by all the application servers in the plurality of application servers; wherein the plurality of execution restrictions in aggregate maintain scalability of the application execution system with respect to at least one or more of the following limits: number of applications that can be executed and number of requests that can be processed per period of time.