# US 2020/0401460 A1 · Management instrumentation and discovery (mid) server support for executing automated flows within a cloud based system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2020/0401460 A1
- Document ID: US20200401460A1
- Status: Published application
- Kind: A1
- Application number: 17/007,249
- Filed: 2020-08-31
- Published: 2020-12-24
- Earliest claimed: 2018-03-29
- Assignees: ServiceNow, Inc.
- Applicants: ServiceNow, Inc.
- Inventors: Venkata Kiran Kumar Koya; Robert Peter-Paul Recatto; Nicholas Michael Stark; Harry Thomas Nelson
- Web page: https://patentgrep.com/patent/US20200401460A1

## CPC

- G06F 9/5038: {considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups)}
- G06F 9/5088: {involving task migration}
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/5044: {considering hardware capabilities}
- G06F 9/505: {considering the load}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- H04L 67/63: Routing a service request depending on the request content or context
- G06F 2209/506: Constraint
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Executing and managing flow plans by performing at least the following: receiving an indication to initiate a task flow including a plurality of discrete but related operations at a customer instance environment of a cloud-based computing platform; obtaining a definition of the task flow identifying run-time requirements for each of the plurality of operations; determining a first execution environment for the first of the plurality of operations; initiating execution of the first operation in the first execution environment; and determining the proper execution environment for subsequent operations of the task flow until all operations of the task flow are complete. Factors, such as look-ahead optimization, environmental operational capabilities, access and security requirements, current load, future load, etc. may be considered when determining the proper execution environment for a given operation. Operations may be executed in environments hosted in the public cloud or in environments present in a dedicated private network.

## Claims

### Claim 1

A system comprising:
one or more processors: and
a memory partition, accessible by the one or more processors, wherein the memory partition comprises instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:
obtaining, from an instance environment, a task flow definition comprising a plurality of operations representing at least a portion of a task defined by the task flow definition, wherein the plurality of operations comprises a first operation and a second operation;
determining a first execution environment of a plurality of execution environments for executing the first operation of the plurality of operations, wherein the first execution environment comprises the instance environment or a server environment;
executing the first operation in the first execution environment;
determining a second execution environment of the plurality of execution environments for executing the second operation of the plurality of operations, wherein the second execution environment is different than the first execution environment; and
executing the second operation in the second execution environment.

### Claim 2 (depends on 1)

The system of claim 1, wherein the second execution environment has different execution capabilities than the first execution environment.

### Claim 3 (depends on 1)

The system of claim 1, wherein the operations comprise:
determining the second execution environment of the plurality of execution environments for executing one or more remaining operations in the plurality of operations; and
executing the one or more remaining operations in the second execution environment.

### Claim 4 (depends on 1)

The system of claim 1, wherein the operations comprise:
analyzing the plurality of operations prior to determining the first execution environment to minimize a number of changes between the first execution environment and the second execution environment.

### Claim 5 (depends on 1)

The system of claim 1, wherein the operations comprise:
providing attributes for each operation of the plurality of operations to the first execution environment.

### Claim 6 (depends on 5)

The system of claim 5, wherein attributes of the first operation comprise a data access requirement, an authorization credential requirement, or an application availability requirement, or a combination thereof.

### Claim 7 (depends on 6)

The system of claim 6, wherein the first execution environment is determined based on a comparison of one or more execution capabilities of each of the plurality of execution environments and the attributes of the first operation.

### Claim 8 (depends on 1)

The system of claim 1, wherein the first execution environment is determined from at least two candidate server environments, including the server environment.

### Claim 9 (depends on 1)

The system of claim 1, wherein the first execution environment is determined from at least two candidate instance environments, including the instance environment.

### Claim 10 (depends on 1)

The system of claim 1, wherein the first execution environment is determined from the instance environment and a plurality of available server environments, including the server environment.

### Claim 11 (depends on 1)

The system of claim 1, wherein the plurality of operations comprises a third operation, wherein the operations comprise:
determining the second execution environment of the plurality of execution environments for executing the third operation of the plurality of operations; and
executing the third operation in the second execution environment.

### Claim 12 (depends on 11)

The system of claim 11, wherein a greater number of the plurality of operations are executed in the server environment than are executed in the instance environment.

### Claim 13

A method comprising:
obtaining a task flow definition comprising a plurality of operations representing at least a portion of a task defined by the task flow definition, wherein the plurality of operations comprises a first operation and a second operation;
determining a first execution environment of a plurality of execution environments for executing the first operation of the plurality of operations, wherein the first execution environment comprises an instance environment or a server environment;
executing the first operation in the first execution environment;
determining a second execution environment of the plurality of execution environments for executing the second operation of the plurality of operations, wherein the second execution environment has different execution capabilities than the first execution environment; and
executing the second operation in the second execution environment.

### Claim 14 (depends on 13)

The method of claim 13, further comprising:
determining the second execution environment of the plurality of execution environments for executing one or more remaining operations in the plurality of operations; and
executing the one or more remaining operations in the second execution environment.

### Claim 15 (depends on 13)

The method of claim 13, wherein the plurality of operations comprises a third operation, the method comprising:
determining a third execution environment of the plurality of execution environments from the plurality of execution environments for executing the third operation, wherein the third execution environment comprises the instance environment or the server environment; and
executing the third operation in the third execution environment.

### Claim 16 (depends on 13)

The method of claim 13, comprising:
analyzing the plurality of operations prior to determining the first execution environment to minimize a number of changes between the first execution environment and the second execution environment.

### Claim 17 (depends on 13)

The method of claim 13, wherein a greater number of the plurality of operations are executed in the server environment than are executed in the instance environment.

### Claim 18

A tangible, non-transitory, computer-readable medium storing instructions that, when executed by a processor, cause the processor to perform operations comprising:
obtaining a task flow definition from an instance environment communicatively coupled to at least one server environment, the task flow definition comprising a plurality of operations representing at least a portion of a task defined by the task flow definition, wherein the plurality of operations comprises a first operation and a second operation;
determining a first execution environment of a plurality of execution environments for executing the first operation of the plurality of operations, wherein the first execution environment comprises the instance environment or one of the at least one server environments;
executing the first operation in the first execution environment;
determining a second execution environment of the plurality of execution environments for executing the second operation of the plurality of operations, wherein the second execution environment is different than the first execution environment; and
executing the second operation in the second execution environment.

### Claim 19 (depends on 18)

The computer-readable medium of claim 18, the operations comprising:
transmitting, prior to executing the first operation, attributes of the first operation and information related to the first operation to the first execution environment; and
transmitting, prior to executing the second operation, attributes of the second operation and information related to the second operation to the second execution environment.

### Claim 20 (depends on 18)

The computer-readable medium of claim 18, wherein the at least one server environment is provided by network infrastructure that is remote from the processor.
