IP Library Granted Patent US 10,776,147
Granted Patent B2
US 10,776,147 · App. 15/882,233 · Granted Sep 15, 2020

Orchestration engine for migrating application data and application services using migration steps in migration component

Inventors: Alex Ovesea (Maple, CA); Ilya Zaslavsky (Toronto, CA); Chen Liu (San Mateo, CA); Alan Arbizu (Foster City, CA); Mikhail Chainani (San Francisco, CA); Xiaodan Wang (Dublin, CA); Sridevi Gopala Krishnan (Foster City, CA)
Assignee: salesforce.com, inc.
G06F9/45558G06F9/4856G06F2009/4557
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,776,147
App. No.
15/882,233
Granted
Sep 15, 2020
Kind
B2
Abstract

Migration configuration data for an organization migration to move application data and application services of a to-be-migrated organization hosted at a source system instance to a target system instance is received. Migration components respectively representing to-be-migrated systems of record in a to-be-migrated organization are registered. In response to receiving an instruction to enter a specific organization migration state, migration steps for each migration component in the migration components are identified for execution in the specific organization migration state. Each migration component in the migration components automatically executes migration steps determined for each such migration component for execution in the specific organization migration state.

Claims (41)

1. A computer-implemented method, comprising steps of:

wherein the steps are performed by a migration orchestration engine;

receiving, from a migration scheduler, migration configuration data for an organization migration to move application data and application services of a one or more to-be-migrated organizations hosted at a source system instance in a multi-tenant computing system to a target system instance in the multi-tenant computing system;

registering in a component registry based on the received migration configuration data, one or more migration components respectively representing one or more to-be-migrated systems of record in the one or more to-be-migrated organizations, wherein each migration component in the one or more migration components comprises a respective set of migration steps for said each migration component, wherein the respective set of migration steps comprises one or more subsets of migration steps to be executed for said each migration component in a plurality of organization migration states, wherein the respective set of migration steps is generated based on a set of migration configuration data portions, in the migration configuration data, related to said each migration component; wherein the respective set of migration steps is implemented in said each migration component; wherein said each migration component represents a respective to-be-migrated system of record in the one or more to-be-migrated systems of record; wherein the respective to-be-migrated system of record comprises respective application data and application services of a respective to-be-migrated organization of the one or more to-be-migrated organizations for said migration component;

in response to receiving an instruction from the migration scheduler to enter a specific organization migration state, performing:

determining a subset of migration steps, in the respective set of migration steps, for said each migration component in the one or more migration components, wherein the subset of migration steps is to be executed in the specific organization migration state among the plurality of organization migration states;

causing said each migration component in the one or more migration components to automatically execute the subset of migration steps, as determined for said each migration component, in the specific organization migration state.

2. The method as recited in claim 1 , wherein the one or more to-be-migrated systems of record in the one or more to-be-migrated organizations are determined based on the migration configuration data for the organization migration.

3. The method as recited in claim 1 , wherein the executions of the respective set of migration steps for the one or more migration components are invoked by the migration orchestration engine using a component execution method implemented in each of the one or more migration components.

4. The method as recited in claim 1 , further comprising: monitoring progresses of the subset of migration steps for said each migration component; reporting back by the migration orchestration engine to the migration scheduler individual progresses, in the organization migration, of the one or more migration components based on the progresses of the subset of migration steps for said each migration component.

5. The method as recited in claim 1 , further comprising: notifying one or more operators of the progresses of the subset of migration steps for said each migration component.

6. The method as recited in claim 1 , further comprising: allowing one or more operators to skip at least one migration step in the respective set of migration steps executed by the one or more migration components for the specific organization migration state.

7. The method as recited in claim 1 , wherein the plurality of organization migration states is implemented as a finite state machine by the migration scheduler that operates with the migration orchestration engine, wherein the migration orchestration engine provides a generic mechanism for all the one or more migration components in the organization migration to register in the component registry and for automatically executing migration steps implemented for migrating application data of the one or more systems of record as implemented in the one or more migration components in response to receiving instructions from the migration scheduler to enter different organization migration states among the plurality of organization migration states.

8. One or more non-transitory computer readable media storing a program of instructions that is executable by a device to perform steps of:

wherein the steps are performed by a migration orchestration engine;

receiving, from a migration scheduler, migration configuration data for an organization migration to move application data and application services of a one or more to-be-migrated organizations hosted at a source system instance in a multi-tenant computing system to a target system instance in the multi-tenant computing system;

registering in a component registry based on the received migration configuration data, one or more migration components respectively representing one or more to-be-migrated systems of record in the one or more to-be-migrated organizations, wherein each migration component in the one or more migration components comprises a respective set of migration steps for said each migration component, wherein the respective set of migration steps comprises one or more subsets of migration steps to be executed for said each migration component in a plurality of organization migration states, wherein the respective set of migration steps is generated based on a set of migration configuration data portions, in the migration configuration data, related to said each migration component; wherein the respective set of migration steps is implemented in said each migration component; wherein said each migration component represents a respective to-be-migrated system of record in the one or more to-be-migrated systems of record; wherein the respective to-be-migrated system of record comprises respective application data and application services of a respective to-be-migrated organization of the one or more to-be-migrated organizations for said migration component;

in response to receiving an instruction from the migration scheduler to enter a specific organization migration state, performing:

determining a subset of migration steps, in the respective set of migration steps, for said each migration component in the one or more migration components, wherein the subset of migration steps is to be executed in the specific organization migration state among the plurality of organization migration states;

causing said each migration component in the one or more migration components to automatically execute the subset of migration steps, as determined for said each migration component, in the specific organization migration state.

9. The media as recited in claim 8 , wherein the one or more to-be-migrated systems of record in the one or more to-be-migrated organizations are determined based on the migration configuration data for the organization migration.

10. The media as recited in claim 8 , wherein the executions of the respective set of migration steps for the one or more migration components are invoked by the migration orchestration engine using a component execution method implemented in each of the one or more migration components.

11. The media as recited in claim 8 , wherein the program of instructions is executable by a device to further perform: monitoring progresses of the subset of migration steps for said each migration component; reporting back by the migration orchestration engine to the migration scheduler individual progresses, in the organization migration, of the one or more migration components based on the progresses of the subset of migration steps for said each migration component.

12. The media as recited in claim 8 , wherein the program of instructions is executable by a device to further perform: notifying one or more operators of the progresses of the subset of migration steps for said each migration component.

13. The media as recited in claim 8 , wherein the program of instructions is executable by a device to further perform: allowing one or more operators to skip at least one migration step in the respective set of migration steps executed by the one or more migration components for the specific organization migration state.

14. The media as recited in claim 8 , wherein the plurality of organization migration states is implemented as a finite state machine by the migration scheduler that operates with the migration orchestration engine, wherein the migration orchestration engine provides a generic mechanism for all the one or more migration components in the organization migration to register in the component registry and for automatically executing migration steps implemented for migrating application data of the one or more systems of record as implemented in the one or more migration components in response to receiving instructions from the migration scheduler to enter different organization migration states among the plurality of organization migration states.

15. A system, comprising:

one or more computing processors;

one or more non-transitory computer readable media storing a program of instructions that is executable by the one or more computing processors to perform steps of:

wherein the steps are performed by a migration orchestration engine;

receiving, from a migration scheduler, migration configuration data for an organization migration to move application data and application services of a one or more to-be-migrated organizations hosted at a source system instance in a multi-tenant computing system to a target system instance in the multi-tenant computing system;

registering in a component registry based on the received migration configuration data, one or more migration components respectively representing one or more to-be-migrated systems of record in the one or more to-be-migrated organizations, wherein each migration component in the one or more migration components comprises a respective set of migration steps for said each migration component, wherein the respective set of migration steps comprises one or more subsets of migration steps to be executed for said each migration component in a plurality of organization migration states, wherein the respective set of migration steps is generated based on a set of migration configuration data portions, in the migration configuration data, related to said each migration component; wherein the respective set of migration steps is implemented in said each migration component; wherein said each migration component represents a respective to-be-migrated system of record in the one or more to-be-migrated systems of record; wherein the respective to-be-migrated system of record comprises respective application data and application services of a respective to-be-migrated organization of the one or more to-be-migrated organizations for said migration component;

in response to receiving an instruction from the migration scheduler to enter a specific organization migration state, performing:

determining a subset of migration steps, in the respective set of migration steps, for said each migration component in the one or more migration components, wherein the subset of migration steps is to be executed in the specific organization migration state among the plurality of organization migration states;

causing said each migration component in the one or more migration components to automatically execute the subset of migration steps, as determined for said each migration component, in the specific organization migration state.

16. The system as recited in claim 15 , wherein the one or more to-be-migrated systems of record in the one or more to-be-migrated organizations are determined based on the migration configuration data for the organization migration.

17. The system as recited in claim 15 , wherein the executions of the respective set of migration steps for the one or more migration components are invoked by the migration orchestration engine using a component execution method implemented in each of the one or more migration components.

18. The system as recited in claim 15 , wherein the program of instructions is executable by a device to further perform: monitoring progresses of the subset of migration steps for said each migration component; reporting back by the migration orchestration engine to the migration scheduler individual progresses, in the organization migration, of the one or more migration components based on the progresses of the subset of migration steps for said each migration component.

19. The system as recited in claim 15 , wherein the program of instructions is executable by a device to further perform: notifying one or more operators of the progresses of the subset of migration steps for said each migration component.

20. The system as recited in claim 15 , wherein the program of instructions is executable by a device to further perform: allowing one or more operators to skip at least one migration step in the respective set of migration steps executed by the one or more migration components for the specific organization migration state.

21. The system as recited in claim 15 , wherein the plurality of organization migration states is implemented as a finite state machine by the migration scheduler that operates with the migration orchestration engine, wherein the migration orchestration engine provides a generic mechanism for all the one or more migration components in the organization migration to register in the component registry and for automatically executing migration steps implemented for migrating application data of the one or more systems of record as implemented in the one or more migration components in response to receiving instructions from the migration scheduler to enter different organization migration states among the plurality of organization migration states.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0318 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2018
From: OVESEA, ALEX; ZASLAVSKY, ILYA; LIU, CHEN; ARBIZU, ALAN; CHAINANI, MIKHAIL; WANG, XIAODAN; KRISHNAN, SRIDEVI GOPALA
To: SALESFORCE.COM, INC.
Reel/Frame 044831/0029 →
Continuity (1)
Related Publication 20190235895A1 · Aug 1, 2019
Cited By (1)
US 12,413,637