1. A method of providing access for a plurality of users to an application comprising a plurality of resource class components collectively executing on multiple networked machines, the method comprising steps of: (i) receiving an incoming flow of requests from users to use an application; (ii) providing, for each of the users, respective sets of one or more instances of each resource class component for the application on one or more machines, to service the incoming requests from respective users to use the application; (iii) directing each of the incoming requests to a particular instance of an appropriate resource class component; (iv) monitoring, for each of the users, the number of requests serviced by the instances of the resource class components of the application; and (v) increasing or decreasing the number of instances of one or more resource class components in response to the monitored number of requests for each resource class component.