IP Library › Granted Patent US 10,474,498
Granted Patent B2
US 10,474,498 · App. 15/903,263 · Granted Nov 12, 2019

Server scheduling tool

Inventors: Shekhar Singh Mehra (New Delhi, IN); Gaurav Bansal (Hyderabad, IN); Pinak Chakraborty (Hyderabad, IN)
Assignee: Bank of America Corporation
G06F9/4887G06F9/468G06F9/5038
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,474,498
App. No.
15/903,263
Granted
Nov 12, 2019
Kind
B2
Abstract

An apparatus includes a memory and a hardware processor. The memory stores one or more scheduling histories. The processor receives a first list from a first client device and a second list from a second client device. The first list includes a first job and the second list includes a second job. The processor calculates a first resource requirement to execute the first job and a second resource requirement to execute the second job. The processor determines that a conflict exists between the first job and the second job and in response, communicates messages to the first and second client devices indicating the conflict and proposed times for executing the jobs. The processor determines based on responses to the messages, execution times for the first and second jobs, assigns permission identifiers to the first and second jobs, and communicates a schedule.

Claims (108)

1. A server scheduling tool comprising:

a memory configured to store one or more scheduling histories; and

a hardware processor communicatively coupled to the memory, the hardware processor configured to:

receive a first list from a first client device, the first list comprising a first job;

receive a second list from a second client device, the second list comprising a second job;

calculate, based on the one or more scheduling histories, a first resource requirement to execute the first job;

calculate, based on the one or more scheduling histories, a second resource requirement to execute the second job;

determine, based on the first resource requirement and the second resource requirement, that a conflict exists between the first job and the second job;

in response to the determination that the conflict exists:

communicate a first message to the first client device indicating the conflict and a first proposed time for executing the first job; and

communicate a second message to the second client device indicating the conflict and a second proposed time for executing the second job;

determine based on responses to the first message and the second message a first execution time for the first job and a second execution time for the second job;

assign a first permission identifier to the first job;

assign a second permission identifier to the second job; and

communicate a schedule indicating that the first job will execute at the first execution time, that the second job will execute at the second execution time, that the first job is assigned the first permission identifier, and that the second job is assigned the second permission identifier.

2. The server scheduling tool of claim 1 , wherein the hardware processor is further configured to:

determine, based on a third resource requirement for a third job and a fourth resource requirement for a fourth job, that a second conflict exists between the third job and the fourth job; and

request, from a cloud service, additional resources to execute the third job and the fourth job.

3. The server scheduling tool of claim 1 , wherein the responses to the first message and the second message indicate that one or more of the first proposed time and the second proposed time were accepted.

4. The server scheduling tool of claim 1 , wherein the hardware processor is further configured to:

before the first execution time, receive a first request to execute the first job;

determine that the first request does not include the first permission identifier;

in response to the determination that the first request does not include the first permission identifier, deny the first request;

before the second execution time, receive a second request to execute the second job;

determine that the second request includes the second permission identifier; and

in response to the determination that the second request includes the second permission identifier, grant the second request.

5. The server scheduling tool of claim 1 , wherein the hardware processor is further configured to:

before the first execution time, receive, from the first client device, a request to validate that the first resource requirement is met; and

before the second execution time, receive, from the second client device, a request to validate that the second resource requirement is met.

6. The server scheduling tool of claim 1 , wherein the hardware processor is further configured to:

determine that an emergency occurred during execution of the first job; and

in response to the determination that the emergency occurred, communicate a suspension message to the first client device and the second client device, the suspension message instructing the second client device not to request execution of the second job at the second execution time.

7. The server scheduling tool of claim 1 , wherein the hardware processor is further configured to:

determine a first priority for a third job;

determine a second priority for a fourth job; and

determine, based on the first priority and the second priority, a third execution time for the third job and a fourth execution time for the fourth job.

8. A method comprising:

storing, by a memory, one or more scheduling histories;

receiving, by a hardware processor communicatively coupled to the memory, a first list from a first client device, the first list comprising a first job;

receiving, by the hardware processor, a second list from a second client device, the second list comprising a second job;

calculating, by the hardware processor, based on the one or more scheduling histories, a first resource requirement to execute the first job;

calculating, by the hardware processor, based on the one or more scheduling histories, a second resource requirement to execute the second job;

determining, by the hardware processor, based on the first resource requirement and the second resource requirement, that a conflict exists between the first job and the second job;

in response to the determination that the conflict exists:

communicating, by the hardware processor, a first message to the first client device indicating the conflict and a first proposed time for executing the first job;

communicating, by the hardware processor, a second message to the second client device indicating the conflict and a second proposed time for executing the second job;

determining, by the hardware processor, based on responses to the first message and the second message a first execution time for the first job and a second execution time for the second job;

assigning, by the hardware processor, a first permission identifier to the first job;

assigning, by the hardware processor, a second permission identifier to the second job; and

communicating, by the hardware processor, a schedule indicating that the first job will execute at the first execution time, that the second job will execute at the second execution time, that the first job is assigned the first permission identifier, and that the second job is assigned the second permission identifier.

9. The method of claim 8 , further comprising:

determining, by the hardware processor, based on a third resource requirement for a third job and a fourth resource requirement for a fourth job, that a second conflict exists between the third job and the fourth job; and

requesting, by the hardware processor, from a cloud service, additional resources to execute the third job and the fourth job.

10. The method of claim 8 , wherein the responses to the first message and the second message indicate that one or more of the first proposed time and the second proposed time were accepted.

11. The method of claim 8 , further comprising:

before the first execution time, receiving a first request to execute the first job;

determining that the first request does not include the first permission identifier;

in response to the determination that the first request does not include the first permission identifier, denying the first request;

before the second execution time, receiving a second request to execute the second job;

determining that the second request includes the second permission identifier; and

in response to the determination that the second request includes the second permission identifier, granting the second request.

12. The method of claim 8 , further comprising:

before the first execution time, receiving, from the first client device, a request to validate that the first resource requirement is met; and

before the second execution time, receiving, from the second client device, a request to validate that the second resource requirement is met.

13. The method of claim 8 , further comprising:

determining that an emergency occurred during execution of the first job; and

in response to the determination that the emergency occurred, communicating a suspension message to the first client device and the second client device, the suspension message instructing the second client device not to request execution of the second job at the second execution time.

14. The method of claim 8 , further comprising:

determining a first priority for a third job;

determining a second priority for a fourth job; and

determining, based on the first priority and the second priority, a third execution time for the third job and a fourth execution time for the fourth job.

15. A system comprising:

a first client device;

a second client device; and

a server scheduling tool comprising a memory that stores one or more scheduling histories and a processor configured to:

receive a first list from the first client device, the first list comprising a first job;

receive a second list from the second client device, the second list comprising a second job;

calculate, based on the one or more scheduling histories, a first resource requirement to execute the first job;

calculate, based on the one or more scheduling histories, a second resource requirement to execute the second job;

determine, based on the first resource requirement and the second resource requirement, that a conflict exists between the first job and the second job;

in response to the determination that the conflict exists:

communicate a first message to the first client device indicating the conflict and a first proposed time for executing the first job; and

communicate a second message to the second client device indicating the conflict and a second proposed time for executing the second job;

determine based on responses to the first message and the second message a first execution time for the first job and a second execution time for the second job;

assign a first permission identifier to the first job;

assign a second permission identifier to the second job; and

communicate a schedule indicating that the first job will execute at the first execution time, that the second job will execute at the second execution time, that the first job is assigned the first permission identifier, and that the second job is assigned the second permission identifier.

16. The system of claim 15 , wherein the processor of the server scheduling tool is further configured to:

determine, based on a third resource requirement for a third job and a fourth resource requirement for a fourth job, that a second conflict exists between the third job and the fourth job; and

request, from a cloud service, additional resources to execute the third job and the fourth job.

17. The system of claim 15 , wherein the responses to the first message and the second message indicate that one or more of the first proposed time and the second proposed time were accepted.

18. The system of claim 15 , wherein the processor of the server scheduling tool is further configured to:

before the first execution time, receive a first request to execute the first job;

determine that the first request does not include the first permission identifier;

in response to the determination that the first request does not include the first permission identifier, deny the first request;

before the second execution time, receive a second request to execute the second job;

determine that the second request includes the second permission identifier; and

in response to the determination that the second request includes the second permission identifier, grant the second request.

19. The system of claim 15 , wherein the processor of the server scheduling tool is further configured to:

before the first execution time, receive, from the first client device, a request to validate that the first resource requirement is met; and

before the second execution time, receive, from the second client device, a request to validate that the second resource requirement is met.

20. The system of claim 15 , wherein the processor of the server scheduling tool is further configured to:

determine that an emergency occurred during execution of the first job; and

in response to the determination that the emergency occurred, communicate a suspension message to the first client device and the second client device, the suspension message instructing the second client device not to request execution of the second job at the second execution time.

21. The system of claim 15 , wherein the processor of the server scheduling tool is further configured to:

determine a first priority for a third job;

determine a second priority for a fourth job; and

determine, based on the first priority and the second priority, a third execution time for the third job and a fourth execution time for the fourth job.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2018
From: MEHRA, SHEKHAR SINGH; BANSAL, GAURAV; CHAKRABORTY, PINAK
To: BANK OF AMERICA CORPORATION
Reel/Frame 045017/0479 →
Continuity (1)
Related Publication 20190266020A1 · Aug 29, 2019