Patent ID: 8825866

Claim:
A method for enabling demand-based pooling of endpoint resources in a system that includes (i) a plurality of endpoints on which different applications are hosted and run and (ii) a plurality of routers that route session requests for the hosted applications to the endpoints, the method comprising: dividing the endpoints into zones; assigning each of the plurality of routers to one of the zones; enabling each router to control endpoint assignments within its zone, wherein an endpoint assignment specifies the one or more hosted applications an endpoint will run and wherein each router communicates the endpoint assignments within its zone to all of the other routers in the plurality of routers; and in response to receiving an incoming session request for a hosted application, assigning the request to a router, wherein the router performs the following: determining whether or not the number of currently open sessions for the hosted application exceeds a minimum number of ports guaranteed in the system for the application; declining the session request if both (i) the number of currently open sessions for the hosted application exceeds the minimum number of ports guaranteed for the application and (ii) accepting additional session requests for the hosted application would violate a minimum port guarantee for another hosted application; accepting the session request if either (i) the number of currently open sessions for the hosted application does not exceed the minimum number of ports guaranteed for the application or (ii) accepting additional session requests for the hosted application would not violate any minimum port guarantees for the other hosted applications; in response to accepting the session request, determining whether or not there is an available endpoint, in any zone, already assigned to handle requests for the hosted application; in response to identifying an available endpoint already assigned to handle requests for the hosted application, routing the request to said endpoint; and in response to determining that there is no available endpoint assigned to handle requests for the hosted application, assigning an endpoint in the router's zone to the hosted application, routing the request to the assigned endpoint, and notifying all of the other routers in the plurality of routers of the assignment.