IP Library Granted Patent US 11,656,906
Granted Patent B2
US 11,656,906 · App. 16/798,408 · Granted May 23, 2023

Method and system for coordinated service placement in multiple clouds

Inventors: Brian Andrew Clow (Ottawa, CA); Mark Ian Jamensky (Ottawa, CA)
Assignee: Snow Software Inc.
G06F9/5011G06F9/5066G06F9/5072H04L67/1008
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 11,656,906
App. No.
16/798,408
Granted
May 23, 2023
Kind
B2
Abstract

A service partitioned into service components requiring different resources is assigned to at least one cloud of a set of clouds. With interdependent service components, a service-placement engine is configured to coordinate assignments of individual service components. The service-placement engine receives from a client a definition of each service component and indications of components interdependence. Each cloud that satisfies compliance requirements, capability requirements, and resource requirements of a service component is considered eligible to host the service component. Selection of a specific eligible cloud is based on an overall cloud merit which depends on the service-component definition and the location of the client.

Claims (54)

1. A method of assigning a multitask service to at least one cloud of a plurality of clouds, the method comprising:

employing a hardware processor to execute instructions for:

receiving from a client a set of service tasks, a definition of each service task, and indications of interdependence of the set of service tasks;

determining a dependency count of each task of the set of service tasks;

designating free tasks from the set of service tasks;

identifying a set of clouds from the plurality of clouds, wherein each of the identified clouds satisfies specified compliance requirements, capability requirements, and resource-availability requirements at a predetermined time for at least one of the designated free tasks;

determining an overall cloud merit vector for each of the free tasks and for the client;

sorting the identified set of clouds in descending order according to said overall cloud merit;

sequentially communicating with the identified set of clouds to request assignment of each of the free tasks, starting with the cloud of highest cloud merit;

assigning free tasks to respective clouds from the identified set of clouds;

receiving from the cloud confirmation of assignment of at least one of the service tasks;

determining that at least one of the assigned service tasks has a positive dependency count:

identifying succeeding tasks of at least one of the assigned tasks;

reducing the dependency count of each succeeding task by 1;

coordinating the assigned service tasks to respective clouds to observe the interdependence of the tasks, and returning to the designating a free task from the set of service tasks step.

2. The method of claim 1 further comprising:

acquiring from each cloud of the plurality of clouds respective cloud information;

determining for said each task a task-specific cloud merit of said each cloud according to said respective cloud information and said definition of each service task;

determining a proximity merit of said each cloud according to a known location of said client, and

determining said overall cloud merit vector according to said task-specific cloud merit and said proximity merit.

3. The method of claim 1 wherein said definition of each service task comprises: metadata; software instructions; and input data.

4. The method of claim 2 wherein said respective cloud information comprises at least one of the following:

a compliance vector indicating compliance with individual service standards of a predefined list of standards;

a capability vector indicating support of individual features of a predefined list of features;

a resource-availability vector indicating projected availability of resources; and

characterization data relevant to a predefined set of characteristics.

5. The method of claim 1 , wherein the set of service tasks comprises independent tasks.

6. The method of claim 1 , wherein the set of service tasks comprises interdependent tasks.

7. The method of claim 1 , wherein the set of service tasks comprises interdependent tasks, each of the interdependent tasks being subject to respective predetermined temporal constraints.

8. A system of assigning a multitask service to at least one cloud of a plurality of clouds, comprising:

a memory device having computer readable instructions stored thereon, for execution by a processor, causing the processor to:

receive from a client a set of service tasks, a definition of each service task, and indications of interdependence of the set of service tasks;

determine a dependency count of each task of the set of service tasks;

designating free tasks from the set of service tasks;

identify a set of clouds from the plurality of clouds; wherein each of the identified clouds satisfies specified compliance requirements, capability requirements, and resource-availability requirements at a predetermined time for at least one of the designated free tasks;

determine an overall cloud merit vector for each of the free tasks and for the client;

sort the identified set of clouds in descending order according to said overall cloud merit;

sequentially communicate with the identified set of clouds to request assignment of each of the free tasks, starting with the cloud of highest cloud merit;

assign free tasks to respective clouds from the identified set of clouds;

receive from the cloud confirmation of assignment of at least one of the service tasks;

determine that at least one of the assigned service tasks has a positive dependency count:

identify succeeding tasks of at least one of the assigned tasks;

reduce the dependency count of each succeeding task by 1;

coordinate the assigned service tasks to respective clouds to observe the interdependence of the tasks, and to return to the designating a free task from the set of service tasks step.

9. The system of claim 8 wherein the computer readable instructions further cause the processor to:

acquire from each cloud of the plurality of clouds respective cloud information;

determine for said each task a task-specific cloud merit of said each cloud according to said respective cloud information and said definition of each service task;

determine a proximity merit of said each cloud according to a known location of said client, and

determine said overall cloud merit vector according to said task-specific cloud merit and said proximity merit.

10. The system of claim 8 wherein said definition of each service task comprises: metadata; software instructions; and input data.

11. The system of claim 9 wherein said respective cloud information comprises at one of the following:

a compliance vector indicating compliance with individual service standards of a predefined list of standards;

a capability vector indicating support of individual features of a predefined list of features; a resource-availability vector indicating projected availability of resources; and

characterization data relevant to a predefined set of characteristics.

Assignments (12)
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS - REEL/FRAME 066615-0824 Recorded Aug 22, 2025
From: JEFFERIES FINANCE LLC
To: SNOW SOFTWARE, INC.
Reel/Frame 072527/0879 →
SECURITY INTEREST Recorded Aug 15, 2025
From: FLEXERA SOFTWARE LLC
To: KKR LOAN ADMINISTRATION SERVICES LLC, AS COLLATERAL GENT
Reel/Frame 072460/0828 →
MERGER Recorded Nov 22, 2024
From: SNOW SOFTWARE US, INC.
To: FLEXERA SOFTWARE LLC
Reel/Frame 069373/0957 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Apr 18, 2024
From: JEFFERIES FINANCE LLC
To: SNOW SOFTWARE, INC.
Reel/Frame 067165/0214 →
PATENT SECURITY AGREEMENT (FIRST LIEN) Recorded Feb 16, 2024
From: SNOW SOFTWARE, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 066615/0824 →
PATENT SECURITY AGREEMENT (SECOND LIEN) Recorded Feb 16, 2024
From: SNOW SOFTWARE, INC.
To: JEFFERIES FINANCE LLC, AS SECOND LIEN COLLATERAL AGENT
Reel/Frame 066619/0340 →
RELEASE OF SECURITY INTEREST Recorded Feb 15, 2024
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: SNOW SOFTWARE, INC.
Reel/Frame 066471/0027 →
PATENT SECURITY AGREEMENT Recorded Jul 7, 2021
From: SNOW SOFTWARE, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 056784/0335 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2021
From: EMBOTICS ULC
To: SNOW SOFTWARE, INC.
Reel/Frame 056746/0317 →
AMALGAMATION Recorded Jul 2, 2021
From: EMBOTICS CORPORATION; KEYSTRIKE CANADA INC.
To: EMBOTICS CORPORATION
Reel/Frame 056756/0440 →
CHANGE OF NAME Recorded Jul 2, 2021
From: EMBOTICS CORPORATION
To: EMBOTICS ULC
Reel/Frame 056745/0413 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2020
From: CLOW, BRIAN ANDREW; JAMENSKY, MARK IAN
To: EMBOTICS CORPORATION
Reel/Frame 052605/0195 →
Continuity (3)
Continuation In Part 16550835 · Aug 26, 2019
Provisional Application 62722587 · Aug 24, 2018
Related Publication 20200192714A1 · Jun 18, 2020