IP Library › Granted Patent US 12,632,294
Granted Patent B2
US 12,632,294 · App. 18/321,369 · Granted May 19, 2026

Service scheduling using static and dynamic service affinities

Inventors: Xi Qing Zhang (Beijing, CN); Xing Xing Shen (Beijing, CN); Shao Fei Li (Beijing, CN); Ji Dong Li (Beijing, CN); Peng Hui Jiang (Beijing, CN); Jia Tian Zhong (Beijing, CN); Jia Yu (Beijing, CN); Dong Hui Liu (Beijing, CN)
Assignee: International Business Machines Corporation
G06F9/4881
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 12,632,294
App. No.
18/321,369
Granted
May 19, 2026
Kind
B2
Abstract

A computer-implemented method, a system, and a computer program product for service delivery are disclosed. In the method, a static analysis can be performed on a plurality of services to be deployed in an environment comprising a plurality of nodes, to determine dependency relationships among the plurality of services. The plurality of services can be deployed in the environment based on the dependency relationships, a predefined priority for each of the plurality of services, and deployment time for each of the plurality of services. Also, the plurality of services can be scheduled into corresponding nodes in the environment.

Claims (83)

1 . A computer-implemented method, comprising:

performing, by one or more processors, a static analysis on a plurality of services to be deployed in one or more environments comprising a plurality of nodes, to determine dependency relationships among the plurality of services;

deploying, by one or more processors, the plurality of services in the one or more environments based on the dependency relationships, a predefined priority for each of the plurality of services, and deployment time for each of the plurality of services;

performing, by one or more processors, a dynamic analysis on at least one service in the plurality of services to determine a dynamic service affinity of the at least one service based on resource usage data associated with the at least one service in the one or more environments, wherein performing the dynamic analysis comprises:

determining a group of resource usage metrics associated with the at least one service for each of the one or more environments based on the resource usage data associated with the at least one service in the one or more environments,

setting a weight to the group of resource usage metrics associated with the at least one service for each of the one or more environments based on the resource usage data,

calculating a weighted average of each resource usage metric in the group of resource usage metrics associated with the at least one service in the one or more environments, and

obtaining the dynamic service affinity of the at least one service based on the weighted average of each resource usage metric associated with the at least one service; and

scheduling, by one or more processors, the plurality of services into corresponding ones of the plurality of nodes in the one or more environments based at least in part on the dynamic service affinity of each service and a node affinity of a respective node in the plurality of nodes.

2 . The computer-implemented method according to claim 1 , wherein deploying the plurality of services in the one or more environments based on the dependency relationships, the predefined priority for each of the plurality of services, and deployment time for each of the plurality of services comprises:

calculating, by one or more processors, a respective score for a respective service in the plurality of services, wherein the respective score is obtained based on a respective predefined priority for the respective service, a dependency factor for the respective service, and scores of other services depending on the respective service, wherein the dependency factor is based on the dependency relationships; and

deploying, by one or more processors, the plurality of services based on the calculated respective scores and deployment time for each of the plurality of services.

3 . The computer-implemented method according to claim 1 , wherein the static analysis is performed to further determine a static service affinity of the at least one service in the plurality of services; and

wherein the at least one service is scheduled further based at least in part on the static service affinity of the at least one service.

4 . The computer-implemented method according to claim 1 , wherein performing the dynamic analysis on the at least one service in the plurality of services to determine the dynamic service affinity of the at least one service based on the resource usage data associated with the at least one service in the one or more environments comprises:

iteratively performing, by one or more processors, the determining, setting, and calculating steps for predetermined times; and

obtaining, by one or more processors, an average of each resource usage metric associated with the at least one service in the predetermined times, and

wherein the dynamic service affinity of the at least one service is obtained further based on the average of each resource usage metric associated with the at least one service in the predetermined times.

5 . The computer-implemented method according to claim 4 , further comprising:

generating, by one or more processors, a presentation associated with the average of each resource usage metric associated with the at least one service in the predetermined times; and

retrieving, by one or more processors, a plurality of sample presentations, each being associated with a sample service;

wherein the dynamic service affinity of the at least one service is obtained by matching the generated presentation with the plurality of sample presentations.

6 . The computer-implemented method according to claim 1 , wherein scheduling the plurality of services into corresponding ones of the plurality of nodes in the one or more environments comprises:

obtaining, by one or more processors, first resource usage data associated with the plurality of services to be scheduled;

determining, by one or more processors, a candidate node in the plurality of nodes based on the node affinity of the respective node;

receiving, by one or more processors, second resource usage data associated with all running services on the candidate node;

combining, by one or more processors, the first resource usage data and the second resource usage data to determine a combined result; and

scheduling, by one or more processors, the plurality of services to be scheduled into the candidate node in response to the combined result meeting certain rules.

7 . The computer-implemented method according to claim 6 , wherein the first resource usage data comprises one or more groups of resource usage metrics associated with the plurality of services to be scheduled, and the second resource usage data comprises one or more groups of resource usage metrics associated with the running services on the candidate node; and wherein combining the first resource usage data and the second resource usage data to determine the combined result comprises:

generating, by one or more processors, a combined presentation associated with a group of combined metrics by combining the one or more groups of resource usage metrics associated with the plurality of services to be scheduled with the one or more groups of resource usage metrics associated with the running services on the candidate node; and

determining, by one or more processors, whether the combined presentation meets certain graphic rules.

8 . The computer-implemented method according to claim 1 , wherein two or more services of the plurality of services without inter-dependency are deployed in parallel.

9 . The computer-implemented method according to claim 1 , wherein performing the static analysis of the plurality of services comprises:

generating, by one or more processors, a Directed Acyclic Diagram (DAG) representing the plurality of services, wherein the DAG comprises:

a plurality of nodes, each node corresponding to a respective service in the plurality of services; and

a plurality of edges, each edge connecting two corresponding nodes of the plurality of nodes, the plurality of edges representing the dependency relationships among the plurality of services.

10 . The computer-implemented method according to claim 9 , wherein the DAG comprises one or more indicators corresponding to each service, the one or more indicators including at least a static service affinity indicator.

11 . The computer-implemented method according to claim 10 , wherein the static service affinity indicator comprises at least one of a CPU-intensive type, an I/O-intensive type, or a combination thereof.

12 . A system, comprising:

one or more processors;

a memory coupled to at least one of the processors; and

a set of computer program instructions stored in the memory and executed by at least one of the one or more processors in order to perform actions of:

performing a static analysis on a plurality of services to be deployed in one or more environments comprising a plurality of nodes, to determine dependency relationships among the plurality of services;

deploying the plurality of services in the one or more environments based on the dependency relationships, a predefined priority for each of the plurality of services and deployment time for each of the plurality of services;

performing a dynamic analysis on at least one service in the plurality of services to determine a dynamic service affinity of the at least one service based on resource usage data associated with the at least one service in the one or more environments, wherein performing the dynamic analysis comprises:

determining a group of resource usage metrics associated with the at least one service for each of the one or more environments based on the resource usage data associated with the at least one service in the one or more environments,

setting a weight to the group of resource usage metrics associated with the at least one service for each of the one or more environments based on the resource usage data,

calculating a weighted average of each resource usage metric in the group of resource usage metrics associated with the at least one service in the one or more environments, and

obtaining the dynamic service affinity of the at least one service based on the weighted average of each resource usage metric associated with the at least one service; and

scheduling the plurality of services into corresponding nodes of the plurality of nodes in the one or more environments based at least in part on the dynamic service affinity of each service and a node affinity of a respective node in the plurality of nodes.

13 . The system according to claim 12 , wherein deploying the plurality of services in the one or more environments based on the dependency relationships, the predefined priority for each of the plurality of services, and deployment time for each of the plurality of services comprises:

calculating a respective score for a respective service in the plurality of services, wherein the respective score is obtained based on a respective predefined priority for the respective service, a dependency factor for the respective service, and scores of other services depending on the respective service, wherein the dependency factor is based on the dependency relationships; and

deploying the plurality of services based on the calculated respective scores and deployment time for each of the plurality of services.

14 . The system according to claim 12 , wherein the static analysis is performed to further determine a static service affinity of the at least one service; and

wherein the at least one service is scheduled further based at least in part on the static service affinity of the at least one service.

15 . The system according to claim 12 , wherein performing the dynamic analysis on the at least one service in the plurality of services to determine the dynamic service affinity of the at least one service based on the resource usage data associated with the at least one service in the one or more environments comprises:

iteratively performing the determining, setting, and calculating steps for predetermined times; and

obtaining an average of each resource usage metric associated with the at least one service in the predetermined times, and

wherein the dynamic service affinity of the at least one service is further obtained based on the average of each resource usage metric associated with the at least one service in the predetermined times.

16 . The system according to claim 12 , wherein scheduling the plurality of services into corresponding nodes of the plurality of nodes in the one or more environments comprises:

obtaining first resource usage data associated with the plurality of services to be scheduled;

determining a candidate node in the plurality of nodes based on the node affinity of the respective node;

receiving second resource usage data associated with all running services on the candidate node;

combining the first resource usage data and the second resource usage data to determine a combined result; and

scheduling the plurality of services to be scheduled into the candidate node in response to the combined result meeting certain rules.

17 . A computer program product, comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by-a one or more processors to cause the one or more processors to perform actions of:

performing a static analysis on a plurality of services to be deployed in one or more environments comprising a plurality of nodes, to determine dependency relationships among the plurality of services;

deploying the plurality of services in the one or more environments based on the dependency relationships, a predefined priority for each of the plurality of services and deployment time for each of the plurality of services;

performing a dynamic analysis on at least one service in the plurality of services to determine a dynamic service affinity of the at least one service based on resource usage data associated with the at least one service in the one or more environments, wherein performing the dynamic analysis comprises:

determining a group of resource usage metrics associated with the at least one service for each of the one or more environments based on the resource usage data associated with the at least one service in the one or more environments,

setting a weight to the group of resource usage metrics associated with the at least one service for each of the one or more environments based on the resource usage data,

calculating a weighted average of each resource usage metric in the group of resource usage metrics associated with the at least one service in the one or more environments, and

obtaining the dynamic service affinity of the at least one service based on the weighted average of each resource usage metric associated with the at least one service; and

scheduling the plurality of services into corresponding ones of the plurality of nodes in the one or more environments based at least in part on the dynamic service affinity of each service and a node affinity of a respective node in the plurality of nodes.

18 . The computer program product according to claim 17 , wherein deploying the plurality of services in the one or more environments based on the dependency relationships, the predefined priority for each of the plurality of services, and deployment time for each of the plurality of services comprises:

calculating a respective score for a respective service in the plurality of services, wherein the respective score is obtained based on a respective predefined priority for the respective service, a dependency factor for the respective service, and scores of other services depending on the respective service, wherein the dependency factor is based on the dependency relationships; and

deploying the plurality of services based on the calculated respective scores and deployment time for each of the plurality of services.

19 . The computer program product according to claim 17 , wherein the static analysis is performed to further determine a static service affinity of the at least one service; and

wherein the at least one service is scheduled further based at least in part on the static service affinity of the service.

20 . The computer program product according to claim 17 , wherein performing the dynamic analysis on the at least one service in the plurality of services to determine the dynamic service affinity of the at least one service based on the resource usage data associated with the at least one service in the one or more environments comprises:

iteratively performing the determining, setting, and calculating steps for predetermined times; and

obtaining an average of each resource usage metric associated with the at least one service in the predetermined times, and

wherein the dynamic service affinity of the at least one service is further obtained based on the average of each resource usage metric associated with the at least one service in the predetermined times.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2023
From: ZHANG, XI QING; SHEN, XING XING; LI, SHAO FEI; LI, JI DONG; JIANG, PENG HUI; ZHONG, JIA TIAN; YU, JIA; LIU, DONG HUI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 063718/0215 →
Continuity (1)
Related Publication 20240394094A1 · Nov 28, 2024
References Cited (21)
US 7464147B1 · Fakhouri · 2008 [cited by examiner]
US 8205208B2 · Mausolf · 2012 [cited by examiner]
US 8276164B2 · Munshi · 2012 [cited by examiner]
US 8904005B2 · Ferris · 2014 [cited by examiner]
US 8959526B2 · Kansal · 2015 [cited by examiner]
US 9983860B1 · Koty · 2018 [cited by examiner]
US 10268509B2 · Chen · 2019 [cited by examiner]
US 11061740B2 · Orth · 2021 [cited by examiner]
US 11218546B2 · Spoczynski · 2022 [cited by examiner]
US 11307901B2 · Chen · 2022 [cited by applicant]
US 11394770B1 · Bello · 2022 [cited by applicant]
US 11637905B2 · Shen · 2023 [cited by examiner]
US 11824949B2 · Gilat · 2023 [cited by examiner]
US 20120131193A1 · Ferris · 2012 [cited by examiner]
US 20190319844A1 · Ding · 2019 [cited by examiner]
US 20200218579A1 · D M · 2020 [cited by applicant]
US 20210385288A1 · Shen · 2021 [cited by examiner]
US 20220237034A1 · Chen · 2022 [cited by applicant]
US 20220353343A1 · Gilat · 2022 [cited by examiner]
CN 110515716 · 2021 [cited by applicant]
Saxena, et al., “Workload Forecasting and Resource Management Models Based on Machine Learning for Cloud Computing Environments.” Published Jun. 29, 2021 by ARXIV. 17 pages. arXiv:2106.15112v1. [cited by applicant]