Multi-tenant license enforcement across job requests

US11016808B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11016808-B2
Application numberUS-201916678709-A
CountryUS
Kind codeB2
Filing dateNov 8, 2019
Priority dateJan 14, 2013
Publication dateMay 25, 2021
Grant dateMay 25, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Scheduling job request submitted by multiple tenants in a manner that honors multiple software license agreements for the multiple tenants. A queue persistently stores job requests that await scheduling. A job state tracking component persistently tracks a state of the job requests, and perhaps provides job requests into the queue. A software license agreement enforcer reviews the job requests in the queue, selects one or more job requests should be scheduled next based on the license agreements, and provide the selected job requests to a resource manager. A subscriber/publisher pool may be used to the various components to communicate. This decouples the communication from being a simple one-to-one correspondence, but instead allows communication from a component of one type to a component of the other type, whichever instance of those components happens to be operating.

First claim

Opening claim text (preview).

What is claimed is: 1. A system comprising: one or more computer processors; and data storage having stored therein computer executable instructions which, when executed upon the one or more processors, cause the processors to instantiate: a queue configured to persistently store a plurality of job requests, each job request having a state, wherein each of the plurality of job requests remains in the queue at least until the each job request is set to a completed or a cancelled state; a job state tracking component configured to persistently track the state of each of the job requests for at least a portion of a lifetime of each of at least some the plurality of job requests and control visibility of the job requests; and a software license agreement enforcer configured to: review the plurality of job requests in the queue, each job request being associated with a particular tenant of a plurality of tenants, review a plurality of license agreements, each license agreement corresponding to at least one of the plurality of tenants, select a pending job request from the queue, based at least in part on the review of the plurality of license agreements corresponding to the tenants associated with the job requests, and provide the selected job request to a resource manager that schedules one or more compute resources that support and enable performance of the job request; wherein, when the selected job request is provided to the resource manager for scheduling, the job state tracking component sets the selected job request in the queue to a processing state; and wherein the selected job request remains in the queue at least until the selected job request has been updated to a completed state or a cancelled state. 2. The system in accordance with claim 1 , wherein the job state tracking component is also configured to receive job requests and place the job requests into the queue. 3. The system in accordance with claim 1 , wherein the system is included within a cloud computing environment. 4. The system in accordance with claim 3 , wherein the queue only stores job requests that are processed by a particular data centers. 5. The system in accordance with claim 3 , wherein the queue stores job request that are processed by a plurality of data centers. 6. The system in accordance with claim 1 , wherein a subscriber/publisher pool is used to communicate between the job state tracking component and the software license agreement enforcer. 7. The system in accordance with claim 6 , wherein the software license agreement enforcer is configured to publish scheduling notifications into the subscriber/publisher pool when a job request is provided to a resource manager such as the resource manager for scheduling, and wherein the job state tracking component subscribes to scheduling notifications from the subscriber/publisher pool, and is configured to change the persistent state of a particular job request in response to detecting a scheduling notification that corresponds to the particular job request. 8. The system in accordance with claim 7 , the system including a plurality of job state tracking components, each configured persistently track a state of each of the job requests for at least a portion of a lifetime of each of at least some the plurality of job requests, and each subscribing to scheduling notifications from the subscriber/publisher pool, and being configured to change the persistent state of a particular job request in response to detecting a scheduling notification that corresponds to the particular job request. 9. The system in accordance with claim 6 , wherein the subscriber/publisher pool is also used to communicate between the job state tracking component and the resource manager. 10. The system in accordance with claim 9 , wherein the resource manager is configured to publish processing notifications into the subscriber/publisher pool when a job request begins processing by compute resources, and is configured to publish completion notifications into the subscriber/publisher pool when a job request completes processing by compute resources, wherein the job state tracking component subscribes to processing notifications and completion notifications from the subscriber/publisher pool, and is configured to change the persistent state of a particular job request in response to detecting a processing or completion notification that corresponds to the particular job request. 11. The system in accordance with claim 10 , the system including a plurality of job state tracking components, each configured persistently track a state of each of the job requests for at least a portion of a lifetime of each of at least some the plurality of job requests, and each subscribing to processing and completion notifications from the subscriber/publisher pool, and being configured to change the persistent state of a particular job request in response to detecting a processing or completion notification that corresponds to the particular job request. 12. The system in accordance with claim 10 , the system including a plurality of resources managers that each schedules compute resources that support each of the job requests that are submitted to the corresponding resource manager, each of the plurality of resource managers being configured to publish processing notifications into the subscriber/publisher pool when a job request begins processing by compute resources, and being configured to publish completion notifications into the subscriber/publisher pool when a job request completes processing by compute resources. 13. The system in accordance with claim 6 , wherein the job state tracking component is configured to publish start notifications into the subscriber/publisher pool when a particular job request is added to the queue, wherein at least one of the software license agreement component and the resource manager subscribes to start notifications. 14. The system in accordance with claim 6 , wherein the job state tracking component is configured to publish cancel notifications into the subscriber/publisher pool when a particular job request is cancelled, wherein at least one of the software license agreement component and the resource manager subscribes to cancel notifications. 15. The system in accordance with claim 1 , further comprising: an autoscaler component that is configured to observe the queue and utilization of computer resources, and based on the observation, increase or decrease the compute resources available to the resource manager, and change one or more of the plurality of license agreements within agreed upon limits. 16. The system in accordance with claim 1 , wherein the resource manager is pluggable. 17. The system in accordance with claim 1 , wherein the compute resources available to the resource manager include computer resources within a data center. 18. The system in accordance with claim 1 , wherein the compute resources available to the resource manager include tenant compute resources. 19. A method for processing job requests, comprising: receiving a stream of job requests, each job request being associated with a particular tenant of a plurality of tenants; persistently tracking a state of each of at least some of the job requests using a job state tracking component; persistently placing the job requests in a queue, wherein each of the job requests remains in the queue until the each job request has been updated to a completed state or to a cancelled state; reviewing a plurality of license agreements,

Assignees

Inventors

Classifications

  • G06F9/5011Primary

    the resources being hardware resources other than CPUs, Servers and Terminals · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11016808B2 cover?
Scheduling job request submitted by multiple tenants in a manner that honors multiple software license agreements for the multiple tenants. A queue persistently stores job requests that await scheduling. A job state tracking component persistently tracks a state of the job requests, and perhaps provides job requests into the queue. A software license agreement enforcer reviews the job requests …
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F9/5011. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 25 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).