IP Library Granted Patent US 10,929,367
Granted Patent B2
US 10,929,367 · App. 16/177,385 · Granted Feb 23, 2021

Automatic rearrangement of process flows in a database system

Inventors: Ankush Bansal (San Francisco, CA); Priya Mittal (San Francisco, CA)
Assignee: salesforce.com, inc.
G06F16/2246G06F16/13G06F16/21
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,929,367
App. No.
16/177,385
Granted
Feb 23, 2021
Kind
B2
Abstract

Embodiments regard transfer of data streaming services to provide continuous data flow. An embodiment of an apparatus includes one or more processors to process data for database operation and a database storage, wherein the system is to: receive one or more process flows, each process flow including a plurality of nodes and including one or more flows between each of the plurality of nodes and another node of the plurality of nodes; and upon receipt of a request, automatically rearrange the one or more process flows, including the apparatus to evaluate a first process flow including traversing of each node of the first process flow, and generate a rearranged process flow based on the first process flow, including establishing a level and coordinate position for each node of first process flow, and establishing a logical direction for each flow between the plurality of nodes of the first process flow.

Claims (49)

1. An apparatus comprising:

one or more processors to process data for database operation; and

a database storage;

wherein the apparatus is configurable to cause:

receiving one or more process flows, wherein each process flow includes a plurality of nodes, one or more flows, and a flow between each of the plurality of nodes and at least one other node of the plurality of nodes;

receiving a request to update a first process flow; and

automatically rearranging the first process flow by:

evaluating the first process flow including traversing of each node of the first process flow,

establishing a level and coordinate position for each node of the first process flow,

establishing a logical direction for each flow between the plurality of nodes of the first process flow, wherein the logical direction of a flow represents a direction that the process flow proceeds from a first node to a second node of the plurality of nodes, and

generating a rearranged process flow based on the level and coordinate position for each node and the logical direction for each flow between the plurality of nodes of the first process flow.

2. The apparatus of claim 1 , wherein evaluating the first process flow further includes applying a modified depth first search (DFS).

3. The apparatus of claim 2 , wherein applying the modified DFS includes maintaining a traversing property indicating whether a subtree of the first process flow is currently being traversed.

4. The apparatus of claim 3 , wherein applying the modified DFS includes ending traversal of the subtree upon encountering a child node with the traversing property being true.

5. The apparatus of claim 1 , wherein rearranging the first process flow includes automatically processing one or more cyclic dependencies in the first processing flow.

6. The apparatus of claim 1 , wherein the one or more process flows are received in an unstructured format.

7. The apparatus of claim 1 , wherein the rearranged process flow is a logical top-down process flow tree having a root node at a top level and continuing down through one or more sub-trees.

8. The apparatus of claim 1 , wherein generating the rearranged process flow includes limiting movement of the nodes of the process flow after completion of the generation of the rearranged process flow.

9. A non-transitory computer-readable storage medium having stored thereon data representing sequences of instructions that, when executed by a processor, cause the processor to perform operations comprising:

receiving one or more process flows, wherein each process flow includes a plurality of nodes, one or more flows, and a flow between each of the plurality of nodes and at least one other node of the plurality of nodes;

receiving a request to update a first process flow; and

automatically rearranging the first process flow by:

evaluating the first process flow including traversing of each node of the first process flow,

establishing a level and coordinate position for each node of the first process flow,

establishing a logical direction for each flow between the plurality of nodes of the first process flow, wherein the logical direction of a flow represents a direction that the process flow proceeds from a first node to a second node of the plurality of nodes, and

generating a rearranged process flow based on the level and coordinate position for each node and the logical direction for each flow between the plurality of nodes of the first process flow.

10. The medium of claim 9 , wherein evaluating the first process flow further includes applying a modified depth first search (DFS).

11. The medium of claim 10 , wherein applying the modified DFS includes maintaining a traversing property indicating whether a subtree of the first process flow is currently being traversed.

12. The medium of claim 11 , wherein applying the modified DFS includes ending traversal of the subtree upon encountering a child node with the traversing property being true.

13. The medium of claim 9 , wherein rearranging the first process flow includes automatically processing one or more cyclic dependencies in the first processing flow.

14. The medium of claim 9 , wherein receiving the one or more process flows includes receiving the one or more process flows in an unstructured format.

15. The medium of claim 9 , wherein generating the rearranged process flow includes generating a logical top-down process flow tree having a root node at a top level and continuing down through one or more sub-trees.

16. The medium of claim 9 , wherein the request does not include description of the first process flow.

17. A system comprising:

data storage for system data and tenant data;

a processor system to process data for streaming to one or more organizations; and

a network interface to provide connection with one or more user systems; and

wherein the system is configurable to cause:

receiving one or more process flows from a user system, wherein each process flow includes a plurality of nodes, one or more flows, and a flow between each of the plurality of nodes and at least one other node of the plurality of nodes;

receiving a request to update a first process flow; and

automatically rearranging the first process flow by:

evaluating the first process flow including traversing of each node of the first process flow,

establishing a level and coordinate position for each node of the first process flow,

establishing a logical direction for each flow between the plurality of nodes of the first process flow, wherein the logical direction of a flow represents a direction that the process flow proceeds from a first node to a second node of the plurality of nodes, and

generating a rearranged process flow based on the level and coordinate position for each node and the logical direction for each flow between the plurality of nodes of the first process flow.

18. The system of claim 17 , wherein evaluating the first process flow further includes applying a modified depth first search (DFS).

19. The system of claim 18 , wherein applying the modified DFS includes maintaining a traversing property indicating whether a subtree of the first process flow is currently being traversed.

20. The system of claim 19 , wherein applying the modified DFS includes ending traversal of the subtree upon encountering a child node with the traversing property being true.

21. The system of claim 17 , wherein rearranging the first process flow includes automatically processing one or more cyclic dependencies in the first processing flow.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0383 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2018
From: BANSAL, ANKUSH; MITTAL, PRIYA
To: SALESFORCE.COM, INC.
Reel/Frame 047652/0958 →
Continuity (1)
Related Publication 20200134059A1 · Apr 30, 2020