IP Library Granted Patent US 9,740,997
Granted Patent B2
US 9,740,997 · App. 14/286,916 · Granted Aug 22, 2017

Method and system for input driven process flow management

Inventors: Jacob Katz (Toronto, CA); Kevin Ellison (Toronto, CA)
Assignee: Schedule 1 Inc.
G06Q10/0631G06Q10/0633
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 9,740,997
App. No.
14/286,916
Granted
Aug 22, 2017
Kind
B2
Abstract

A method for input driven process flow management includes receiving a request, each request having an input and an output, identifying tasks for a process fit for the request type, receiving inputs; generating, based on the inputs and the process, a process flow step, and executing the process flow step to generate results (outputs). The method further includes receiving a second set of inputs, different than the first set of inputs, generating, based on the second set of inputs and the process, a second process flow step different than the first process flow, and executing the second process flow step to generate a second set of results, and so on, until all tasks are executed, or a termination task has been reached.

Claims (85)

1. A method for input driven process flow management, comprising:

identifying a process comprising a plurality of tasks;

receiving a plurality of requests comprising a first request to execute a first task of the process and a second request to execute a second task of the process;

receiving a first set of inputs;

determining, based on a first list of dependent inputs of the first task, that the first set of inputs is sufficient for executing the first task;

selecting the first task to start as a first process flow step for the process;

executing the first process flow step to generate a first result;

receiving a second set of inputs, comprising at least the first result;

further determining, based on a second list of dependent inputs of the second task, that the second set of inputs is sufficient for executing the second task;

selecting the second task to start as a second process flow step for the process, wherein the second process flow step is different than the first process flow step; and

executing the second process flow step to generate a second result.

2. The method of claim 1 , further comprising:

generating a context for the process, wherein the context stores a plurality of data elements generated during the process.

3. The method of claim 2 ,

wherein each of the plurality of data elements comprises a data element name, a data element value, and a generating task, and

wherein the context is passable.

4. The method of claim 2 , further comprising:

locking the context;

writing a new data element to the context; and

releasing the lock on the context.

5. The method of claim 1 , further comprising:

executing a process flow to generate a result of the process,

wherein the process flow comprises an ordered sequence of process flow steps that are ordered based on available inputs,

wherein executing the process flow comprises executing the first process flow step prior to executing the second process flow step,

wherein the result of the process is based on at least the first result and the second result, and

wherein each of the plurality of tasks is stateless.

6. The method of claim 1 , wherein one of the plurality of tasks is determining whether an authentication credential is valid.

7. The method of claim 1 , wherein one of the plurality of tasks is determining whether a first node is permitted to execute a third task of the subset, and whether the third task is permitted to delegate execution to a second node using a cryptographic authorization mechanism.

8. A non-transitory computer-readable storage medium comprising computer-readable code for input driven process flow management, when executed by a processor, comprises functionality to:

identify a process comprising a plurality of tasks;

receive a plurality of requests comprising a first request to execute a first task of the process and a second request to execute a second task of the process;

receive a first set of inputs;

determine, based on a first list of dependent inputs of the first task, that the first set of inputs is sufficient for executing the first task;

select the first task to start as a first process flow step for the process;

execute the first process flow step to generate a first result;

receive a second set of inputs, comprising at least the first result;

further determine, based on a second list of dependent inputs of the second task, that the second set of inputs is sufficient for executing the second task;

select the second task to start as a second process flow step for the process, wherein the second process flow step is different than the first process flow step; and

execute the second process flow step to generate a second result.

9. The non-transitory computer-readable storage medium of claim 8 , the computer-readable code further comprising functionality to:

generate a context for the process, wherein the context stores a plurality of data elements generated during the process.

10. The non-transitory computer-readable storage medium of claim 9 ,

wherein each of the plurality of data elements comprises a data element name, a data element value, and a generating task, and

wherein the context is passable.

11. The non-transitory computer-readable storage medium of claim 9 , the computer-readable code further comprising functionality to:

lock the context;

write a new data element to the context; and

release the lock on the context.

12. The non-transitory computer-readable storage medium of claim 8 , the computer-readable code further comprising functionality to:

execute a process flow to generate a result of the process,

wherein the process flow comprises an ordered sequence of process flow steps that are ordered based on avaialble inputs,

wherein executing the process flow comprises executing the first process flow step prior to executing the second process flow step,

wherein the result of the process is based on at least the first result and the second result, and

wherein each of the plurality of tasks is stateless.

13. The non-transitory computer-readable storage medium of claim 8 , wherein one of the plurality of tasks is determining whether a first node is permitted to execute a third task of the subset, and whether the third task is permitted to delegate execution to a second node using a cryptographic authorization mechanism.

14. A system for input driven process flow management, the system comprising:

a computer processor; and

a memory storing instructions which, when executed by the computer processor, comprise functionality to:

identify a process comprising a plurality of tasks;

receive a plurality of requests comprising a first request to execute a first task of the process and a second request to execute a second task of the process;

receive a first set of inputs;

determine, based on a first list of dependent inputs of the first task, that the first set of inputs is sufficient for executing the first task;

select the first task to start as a first process flow step for the process;

execute the first process flow step to generate a first result;

receive a second set of inputs, comprising at least the first result;

further determine, based on a second list of dependent inputs of the second task, that the second set of inputs is sufficient for executing the second task;

select the second task to start as a second process flow step for the process, wherein the second process flow step is different than the first process flow step; and

execute the second process flow step to generate a second result.

15. The system of claim 14 , further comprising functionality to:

generate a context for the process, wherein the context stores a plurality of data elements generated during the process.

16. The system of claim 15 ,

wherein each of the plurality of data elements comprises a data element name, a data element value, and a generating task, and

wherein the context is passable.

17. The system of claim 15 , further comprising functionality to:

lock the context;

write a new data element to the context; and

release the lock on the context.

18. The system of claim 14 , further comprising functionality to:

execute a process flow to generate a result of the process,

wherein the process flow comprises an ordered sequence of process flow steps that are ordered based on available inputs,

wherein executing the process flow comprises executing the first process flow step prior to executing the second process flow step,

wherein the result of the process is based on at least the first result and the second result, and

wherein each of the plurality of tasks is stateless.

19. The system of claim 14 , wherein one of the plurality of tasks is determining whether an authentication credential is valid.

20. The system of claim 14 , wherein one of the plurality of tasks is determining whether a node is permitted to execute a third task of the subset, and whether the third task is permitted to delegate execution to another node using a cryptographic authorization mechanism.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2017
From: ELLISON INFORMATION MANUFACTURING INC.
To: SCHEDULE 1 INC.
Reel/Frame 043003/0115 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2014
From: KATZ, JACOB; ELLISON, KEVIN
To: ELLISON INFORMATION MANUFACTURING INC.
Reel/Frame 033092/0144 →
Continuity (2)
Provisional Application 61826854 · May 23, 2013
Related Publication 20140351818A1 · Nov 27, 2014