Patent ID: 8863133

Claim:
At a cluster management computer system including at least one processor and a memory, in a computer networking environment including a plurality of computing systems, a computer-implemented method for managing licenses in a cluster computer system environment, the method comprising: an act of receiving a job at a license management application running on the cluster manager computer system, wherein the job includes a plurality of job tasks and one or more portions of job information, wherein the cluster manager computer system is configured to assign the plurality of job tasks among computer nodes that each execute a corresponding application that performs any assigned job tasks, and wherein each corresponding application is permitted to perform assigned job tasks only if a corresponding license is available for the assigned job tasks; an act of the license management application determining from the job information that a plurality of computer nodes that are separate from the cluster manager computer system are to be assigned to process the plurality of job tasks, and that at least one license is needed for each of the plurality of job tasks; an act of the license management application determining that insufficient licenses are available to execute each of the plurality of job tasks, and queuing the job until enough licenses are available to process each of the plurality of job tasks; when enough licenses are available to process each of the plurality of job tasks, and prior to scheduling the plurality of job tasks, an act of the license management application checking out a corresponding license from a license distributing application on behalf of each of the plurality of job tasks, such that the license management application checks out a plurality of licenses for the plurality of job tasks; and subsequent to checking out the plurality of licenses for the plurality of job tasks, an act of the license management application scheduling the plurality of job tasks to run on the plurality of computer nodes, including scheduling each job task for execution on a different computer node of the plurality of computer nodes, while indicating to a scheduler that one job task of the plurality of job tasks is to be run per checked out license of the plurality of licenses.