IP Library › Granted Patent US 12,737,339
Granted Patent B2
US 12,737,339 · App. 19/268,744 · Granted Sep 15, 2026

Techniques for generating service plans

Inventors: Ayush Ruia (Kirkland, WA); Himanish Pathak (Seattle, WA)
Assignee: Oracle International Corporation
G06F16/2264
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,737,339
App. No.
19/268,744
Granted
Sep 15, 2026
Kind
B2
Abstract

A system, method, and device used for generating code segments of a service plan that represents a process for bootstrapping a service. A first directed acyclic graph (DAG) comprising a first plurality of edges and a first plurality of nodes representing releases and dependencies between releases of a process for bootstrapping a plurality of services may be obtained. A second DAG may be generated from the first based on executing a clustering procedure. A third DAG that is specific to the service may be generated based on traversing the second DAG. Code segments of a service plan may be generated based at least in part on the third DAG. for generating code segments of a service plan that represents a process for bootstrapping a service. A first directed acyclic graph (DAG) comprising a first plurality of edges and a first plurality of nodes representing releases and dependencies between releases of a process for bootstrapping a plurality of services may be obtained. A second DAG may be generated from the first based on executing a clustering procedure. A third DAG that is specific to the service may be generated based on traversing the second DAG. Code segments of a service plan may be generated based at least in part on the third DAG.

Claims (43)

1 . A computer-implemented method, comprising:

obtaining, by a computing system, a first directed acyclic graph comprising a first plurality of edges and a first plurality of nodes corresponding to a plurality of levels, each node of the first plurality of nodes representing a release of a plurality of releases associated with bootstrapping a plurality of services of a data center, and each edge of the first plurality of edges representing a dependency between two releases of the plurality of releases;

generating, by the computing system, a second directed acyclic graph based at least in part on executing a clustering procedure on the first plurality of nodes of the first directed acyclic graph, the first plurality of nodes being clustered based at least in part on a respective level and a respective service associated with each of the first plurality of nodes;

generating, by the computing system, a third directed acyclic graph specific to a service of the plurality of services based at least in part on identifying nodes of the second directed acyclic graph that correspond to the service of the plurality of services; and

generating, by the computing system and based at least in part on the third directed acyclic graph, at least one code segment of a service plan for bootstrapping the service within the data center.

2 . The computer-implemented method of claim 1 , wherein a set of nodes of the third directed acyclic graph individually correspond to a respective build milestone of a plurality of build milestones of the service plan.

3 . The computer-implemented method of claim 2 , further comprising generating a respective plurality of code segments corresponding to each build milestone of the plurality of build milestones.

4 . The computer-implemented method of claim 1 , wherein a plurality of edges of the third directed acyclic graph individually correspond to a respective execution unit of a plurality of execution units of the service plan.

5 . The computer-implemented method of claim 4 , further comprising generating a respective plurality of code segments corresponding to each execution unit of the plurality of execution units.

6 . The computer-implemented method of claim 1 , wherein the clustering procedure comprises, for each service of the plurality of services:

identifying a first node of a first level of the first directed acyclic graph, the first node being associated with a respective service;

identifying whether a second node exists that depends from the first node and that is associated with the respective service; and

generating, for the second directed acyclic graph, a node to represent the first node and the second node, based at least in part on identifying that the second node exists.

7 . The computer-implemented method of claim 1 , further comprising associating a respective node of the second directed acyclic graph with a superset of publications produced by one or more releases associated with the respective node.

8 . A computing device, comprising:

one or more processors; and

one or more memories storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to:

obtain a first directed acyclic graph comprising a first plurality of edges and a first plurality of nodes corresponding to a plurality of levels, each node of the first plurality of nodes representing a release of a plurality of releases associated with bootstrapping a plurality of services of a data center, and each edge of the first plurality of edges representing a dependency between two releases of the plurality of releases;

generate a second directed acyclic graph based at least in part on executing a clustering procedure on the first plurality of nodes of the first directed acyclic graph, the first plurality of nodes being clustered based at least in part on a respective level and a respective service associated with each of the first plurality of nodes;

generate a third directed acyclic graph specific to a service of the plurality of services based at least in part on identifying nodes of the second directed acyclic graph that correspond to the service of the plurality of services; and

generate, based at least in part on the third directed acyclic graph, at least one code segment of a service plan for bootstrapping the service within the data center.

9 . The computing device of claim 8 , wherein a set of nodes of the third directed acyclic graph individually correspond to a respective build milestone of a plurality of build milestones of the service plan.

10 . The computing device of claim 9 , wherein executing the computer-executable instructions further causes the one or more processors to generate a respective plurality of code segments corresponding to each build milestone of the plurality of build milestones.

11 . The computing device of claim 8 , wherein a plurality of edges of the third directed acyclic graph individually correspond to a respective execution unit of a plurality of execution units of the service plan.

12 . The computing device of claim 11 , wherein executing the computer-executable instructions further causes the one or more processors to generate a respective plurality of code segments corresponding to each execution unit of the plurality of execution units.

13 . The computing device of claim 8 , wherein the clustering procedure comprises, for each service of the plurality of services:

identifying a first node of a first level of the first directed acyclic graph, the first node being associated with a respective service;

identifying whether a second node exists that depends from the first node and that is associated with the respective service; and

generating, for the second directed acyclic graph, a node to represent the first node and the second node, based at least in part on identifying that the second node exists.

14 . The computing device of claim 8 , wherein executing the computer-executable instructions further causes the one or more processors to associate a respective node of the second directed acyclic graph with a superset of publications produced by one or more releases associated with the respective node.

15 . A non-transitory computer-readable medium storing computer-executable instructions that, when executed by one or more processors, cause the one or more processors to:

obtain a first directed acyclic graph comprising a first plurality of edges and a first plurality of nodes corresponding to a plurality of levels, each node of the first plurality of nodes representing a release of a plurality of releases associated with bootstrapping a plurality of services of a data center, and each edge of the first plurality of edges representing a dependency between two releases of the plurality of releases;

generate a second directed acyclic graph based at least in part on executing a clustering procedure on the first plurality of nodes of the first directed acyclic graph, the first plurality of nodes being clustered based at least in part on a respective level and a respective service associated with each of the first plurality of nodes;

generate a third directed acyclic graph specific to a service of the plurality of services based at least in part on identifying nodes of the second directed acyclic graph that correspond to the service of the plurality of services; and

generate, based at least in part on the third directed acyclic graph, at least one code segment of a service plan for bootstrapping the service within the data center.

16 . The non-transitory computer-readable medium of claim 15 , wherein a set of nodes of the third directed acyclic graph individually correspond to a respective build milestone of a plurality of build milestones of the service plan.

17 . The non-transitory computer-readable medium of claim 16 , wherein executing the computer-executable instructions further causes the one or more processors to generate a respective plurality of code segments corresponding to each build milestone of the plurality of build milestones.

18 . The non-transitory computer-readable medium of claim 16 , wherein a plurality of edges of the third directed acyclic graph individually correspond to a respective execution unit of a plurality of execution units of the service plan, and wherein executing the computer-executable instructions further causes the one or more processors to generate a respective plurality of code segments corresponding to each execution unit of the plurality of execution units.

19 . The non-transitory computer-readable medium of claim 16 , wherein the clustering procedure comprises, for each service of the plurality of services:

identifying a first node of a first level of the first directed acyclic graph, the first node being associated with a respective service;

identifying whether a second node exists that depends from the first node and that is associated with the respective service; and

generating, for the second directed acyclic graph, a node to represent the first node and the second node, based at least in part on identifying that the second node exists.

20 . The non-transitory computer-readable medium of claim 16 , wherein executing the computer-executable instructions further causes the one or more processors to associate a respective node of the second directed acyclic graph with a superset of publications produced by one or more releases associated with the respective node.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2025
From: RUIA, AYUSH; PATHAK, HIMANISH
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 071741/0669 →
Continuity (2)
Provisional Application 63673613 · Jul 19, 2024
Related Publication 20260023729A1 · Jan 22, 2026
References Cited (13)
US 8577842B1 · Nagargadde · 2013 [cited by examiner]
US 10673716B1 · Sethuramalingam et al. · 2020 [cited by applicant]
US 20160094477A1 · Bai et al. · 2016 [cited by applicant]
US 20170357648A1 · Fink · 2017 [cited by examiner]
US 20180307528A1 · Ahmed et al. · 2018 [cited by applicant]
US 20190122156A1 · Asthana et al. · 2019 [cited by applicant]
US 20210027315A1 · Nanavati et al. · 2021 [cited by applicant]
US 20230251876A1 · Mysore Jagadeesh et al. · 2023 [cited by applicant]
US 20240119092A1 · Rosendahl et al. · 2024 [cited by applicant]
US 20240256251A1 · Vergara et al. · 2024 [cited by applicant]
Bramas et al., “Improving Parallel Executions by Increasing Task Granularity in Task-based Runtime Systems Using Acyclic DAG Clustering”, PeerJ Computer Science, vol. 6, Jan. 13, 2020, pp. 1-26. [cited by applicant]
John et al., “Clustering Nodes in a Directed Acyclic Graph by Identifying Corridors of Coherent Flow”, Available online at: https://researchrepository.ucd.ie/server/api/core/bitstreams/22eb8671-e111-4cc9-9edd-75aa395a44… [cited by applicant]
Liang et al., “Cloud Service Provisioning Strategy using Data Center Consortium Clustering”, Expert Systems with Applications, vol. 221, Jul. 1, 2023, 9 pages. [cited by applicant]