1. A method of allocating resources among a set of entities, comprising: receiving, for each entity, a set of requests, each request having an associated category, an associated value and a specified set of resources required to satisfy the request; the associated category of each request comprising a member of a set of categories; receiving, for each entity, a respective set of priority values for each category in the set of categories for which at least one request has been received for the entity; the respective set of priority values for every entity conforming to a same normalization rule; receiving a set of global priority values; with respect to each entity, selecting a best request for each category in which at least one request has been received for the entity; the best request for each category being selected in accordance with the value associated with each respective in the set of requests received for the entity, and the specified set of resources required to satisfy each respective request in the set of requests received for the entity; determining a scarcity factor for each resource that is specified by at least one of the selected best requests; determining a score for each selected best request in accordance with the value associate with each request, the resources required to satisfy the request, the scarcity factors for the resources, and the global priority values; and selecting a request, from among the selected best requests, having a best score.