DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . This office action is in response to claims filed on 2/16/2024. Claims 1-20 are pending.
Drawings
The drawings are objected to as failing to comply with 37 CFR 1.84(p)(5) because they include the following reference character(s) not mentioned in the description:
workflow manager 202
job scheduler 204
Corrected drawing sheets in compliance with 37 CFR 1.121(d), or amendment to the specification to add the reference character(s) in the description in compliance with 37 CFR 1.121(b) are required in reply to the Office action to avoid abandonment of the application. Any amended replacement drawing sheet should include all of the figures appearing on the immediate prior version of the sheet, even if only one figure is being amended. Each drawing sheet submitted after the filing date of an application must be labeled in the top margin as either “Replacement Sheet” or “New Sheet” pursuant to 37 CFR 1.121(d). If the changes are not accepted by the examiner, the applicant will be notified and informed of any required corrective action in the next Office action. The objection to the drawings will not be held in abeyance.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claim(s) 1, 11, 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Soorya et al. (20210149784; filing date November 18, 2020; hereinafter referred to as Soorya), in view of Gorge et al. (20250021377; filed July 10, 2023; hereinafter referred to as Gorge).
As per claim 1, Soorya teaches:
obtaining workflow data of a first workflow comprising a plurality of workflow steps, the workflow data defining one or more sequences of the workflow steps (e.g. Soorya: [0006] discloses retrieving, using a hardware processor, a workflow description that includes a plurality of steps. [0031] discloses the description of the workflow can include any suitable information indicating sequences of steps included in the workflow.);
and causing jobs in the batch queue to be executed by components of a distributed computing system, wherein the causing step includes, for each job in the batch queue: causing a current workflow step defined by the job to be executed (e.g. Soorya: [0068] discloses job runner 202 can be a program for splitting a simulation into different batches or iterations and placing each batch or iteration in a queue for retrieval by virtual machine instances. Please note the virtual machines retrieving batches for execution from the queue corresponds to Applicant's execution of jobs in the batch queue by components of a distributed computing system.).
Soorya does not teach initializing a batch queue by enqueuing a first job comprising at least one initial workflow step of the first workflow and a first set of workflow steps that are subsequent to the initial workflow step in the one or more sequences;
and enqueuing, to the batch queue, a new job comprising a set of workflow steps that are subsequent to the current workflow step in the one or more sequences.
However, Gorge does teach initializing a batch queue by enqueuing a first job comprising at least one initial workflow step of the first workflow and a first set of workflow steps that are subsequent to the initial workflow step in the one or more sequences
(e.g. Gorge: [0074] discloses that a best partition of the dataset of objects 408 is to split the 10,000 rows into ten 1,000 rows. As such, each 1,000 rows may be considered a partition of the dataset of objects and associated with a workflow task of the first sequential workflow steps 412. Therefore, for this example dataset of objects 408, there would be ten workflow tasks, each responsible for 1,000 rows. Please note a task responsible for 1000 rows corresponds to Applicant's job comprising an initial workflow step and a set of workflow steps subsequent to the initial step. The task responsible for 1000 rows has its initial step and 999 subsequent steps as well.
[0076] discloses the workflow management system 402 may push the two or more workflow tasks as respective task messages to an asynchronous task service 302 that provides queues that parallelize workflow tasks... topic 308 may include a message queue and place the first task message in the message queue. Please note this corresponds to Applicant's initializing a batch queue by enqueuing a first job. This is because the queue is initialized when the first task is enqueued.);
Soorya and Gorge are in the same field of endeavor in terms of workflow execution and management therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teachings of Soorya to incorporate the teachings of Gorge for the reason of initializing a batch queue by enqueuing a first job comprising at least one initial workflow step of the first workflow and a first set of workflow steps that are subsequent to the initial workflow step in the one or more sequences. This improves resource efficiency by making sure the system always remembers what job should be ran next, preventing identical jobs from being run multiple times.
Soorya-Gorge further teaches enqueuing, to the batch queue, a new job comprising a set of workflow steps that are subsequent to the current workflow step in the one or more sequences (e.g. Gorge: As taught above in [0074] an example is given where 10,000 rows are divided among ten tasks. And [0076] discloses a queue from which the tasks are pushed into. After the first task is placed in the queue the second task containing the next 1000 rows will be enqueued as well which corresponds to Applicant's enqueueing of a new job with steps subsequent to the current workflow step.).
As per claim 11, Soorya teaches:
a processor; and a memory coupled to the processor, the memory storing computer-executable instructions that, when executed by the processor, configure the processor to (e.g. Soorya: [0012] discloses the system comprising a memory and a hardware processor that, when configured to execute computer executable instructions stored in the memory):
obtain workflow data of a first workflow comprising a plurality of workflow steps, the workflow data defining one or more sequences of the workflow steps (e.g. Soorya: [0006] discloses retrieving, using a hardware processor, a workflow description that includes a plurality of steps. [0031] discloses the description of the workflow can include any suitable information indicating sequences of steps included in the workflow.);
and cause jobs in the batch queue to be executed by components of a distributed computing system, wherein the causing step includes, for each job in the batch queue: causing a current workflow step defined by the job to be executed (e.g. Soorya: [0068] discloses job runner 202 can be a program for splitting a simulation into different batches or iterations and placing each batch or iteration in a queue for retrieval by virtual machine instances. Please note the virtual machines retrieving batches for execution from the queue corresponds to Applicant's execution of jobs in the batch queue by components of a distributed computing system.).
Soorya does not teach initialize a batch queue by enqueuing a first job comprising at least one initial workflow step of the first workflow and a first set of workflow steps that are subsequent to the initial workflow step in the one or more sequences;
and enqueuing, to the batch queue, a new job comprising a set of workflow steps that are subsequent to the current workflow step in the one or more sequences.
However, Gorge does teach initialize a batch queue by enqueuing a first job comprising at least one initial workflow step of the first workflow and a first set of workflow steps that are subsequent to the initial workflow step in the one or more sequence (e.g. Gorge: [0074] discloses that a best partition of the dataset of objects 408 is to split the 10,000 rows into ten 1,000 rows. As such, each 1,000 rows may be considered a partition of the dataset of objects and associated with a workflow task of the first sequential workflow steps 412. Therefore, for this example dataset of objects 408, there would be ten workflow tasks, each responsible for 1,000 rows. Please note a task responsible for 1000 rows corresponds to Applicant's job comprising an initial workflow step and a set of workflow steps subsequent to the initial step. The task responsible for 1000 rows has its initial step and 999 subsequent steps as well.
[0076] discloses the workflow management system 402 may push the two or more workflow tasks as respective task messages to an asynchronous task service 302 that provides queues that parallelize workflow tasks... topic 308 may include a message queue and place the first task message in the message queue. Please note this corresponds to Applicant's initializing a batch queue by enqueuing a first job. This is because the queue is initialized when the first task is enqueued.);
Soorya and Gorge are in the same field of endeavor in terms of workflow execution and management therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teachings of Soorya to incorporate the teachings of Gorge for the reason of initialize a batch queue by enqueuing a first job comprising at least one initial workflow step of the first workflow and a first set of workflow steps that are subsequent to the initial workflow step in the one or more sequences. This improves resource efficiency by making sure the system always remembers what job should be ran next, preventing identical jobs from being run multiple times.
Soorya-Gorge further teaches enqueuing, to the batch queue, a new job comprising a set of workflow steps that are subsequent to the current workflow step in the one or more sequences
(e.g. Gorge: As taught above in [0074] an example is given where 10,000 rows are divided among ten tasks. And [0076] discloses a queue from which the tasks are pushed into. After the first task is placed in the queue the second task containing the next 1000 rows will be enqueued as well which corresponds to Applicant's enqueueing of a new job with steps subsequent to the current workflow step.).
As per claim 20, Soorya teaches:
a non-transitory, computer-readable medium storing instructions that, when executed by a processor, (e.g. Soorya: [0013] discloses a non-transitory computer-readable medium containing computer executable instructions that, when executed by a hardware processor) configure the processor to:
obtain workflow data of a first workflow comprising a plurality of workflow steps, the workflow data defining one or more sequences of the workflow steps (e.g. Soorya: [0006] discloses retrieving, using a hardware processor, a workflow description that includes a plurality of steps. [0031] discloses the description of the workflow can include any suitable information indicating sequences of steps included in the workflow.);
initialize a batch queue by enqueuing a first job comprising at least one initial workflow step of the first workflow and a first set of workflow steps that are subsequent to the initial workflow step in the one or more sequences (e.g. Soorya: [0012] discloses a first subset of steps are to be batched together as a first batch. [0068] discloses job runner 202 can be a program for splitting a simulation into different batches or iterations and placing each batch or iteration in a queue for retrieval by virtual machine instances. Please note the job runner placing the first batch in a queue corresponds to Applicant's initialization of a batch queue using the first job.);
and cause jobs in the batch queue to be executed by components of a distributed computing system, wherein the causing step includes, for each job in the batch queue: causing a current workflow step defined by the job to be executed (e.g. Soorya: [0068] discloses job runner 202 can be a program for splitting a simulation into different batches or iterations and placing each batch or iteration in a queue for retrieval by virtual machine instances. Please note the virtual machines retrieving batches for execution from the queue corresponds to Applicant's execution of jobs in the batch queue by components of a distributed computing system.).
Soorya does not teach initialize a batch queue by enqueuing a first job comprising at least one initial workflow step of the first workflow and a first set of workflow steps that are subsequent to the initial workflow step in the one or more sequences;
and enqueuing, to the batch queue, a new job comprising a set of workflow steps that are subsequent to the current workflow step in the one or more sequences.
However, Gorge does teach initialize a batch queue by enqueuing a first job comprising at least one initial workflow step of the first workflow and a first set of workflow steps that are subsequent to the initial workflow step in the one or more sequences
(e.g. Gorge: [0074] discloses that a best partition of the dataset of objects 408 is to split the 10,000 rows into ten 1,000 rows. As such, each 1,000 rows may be considered a partition of the dataset of objects and associated with a workflow task of the first sequential workflow steps 412. Therefore, for this example dataset of objects 408, there would be ten workflow tasks, each responsible for 1,000 rows. Please note a task responsible for 1000 rows corresponds to Applicant's job comprising an initial workflow step and a set of workflow steps subsequent to the initial step. The task responsible for 1000 rows has its initial step and 999 subsequent steps as well.
[0076] discloses the workflow management system 402 may push the two or more workflow tasks as respective task messages to an asynchronous task service 302 that provides queues that parallelize workflow tasks... topic 308 may include a message queue and place the first task message in the message queue. Please note this corresponds to Applicant's initializing a batch queue by enqueuing a first job. This is because the queue is initialized when the first task is enqueued.);
Soorya and Gorge are in the same field of endeavor in terms of workflow execution and management therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teachings of Soorya to incorporate the teachings of Gorge for the reason of initialize a batch queue by enqueuing a first job comprising at least one initial workflow step of the first workflow and a first set of workflow steps that are subsequent to the initial workflow step in the one or more sequences. This improves resource efficiency by making sure the system always remembers what job should be ran next, preventing identical jobs from being run multiple times.
Soorya-Gorge further teaches enqueuing, to the batch queue, a new job comprising a set of workflow steps that are subsequent to the current workflow step in the one or more sequences
(e.g. Gorge: As taught above in [0074] an example is given where 10,000 rows are divided among ten tasks. And [0076] discloses a queue from which the tasks are pushed into. After the first task is placed in the queue the second task containing the next 1000 rows will be enqueued as well which corresponds to Applicant's enqueueing of a new job with steps subsequent to the current workflow step.).
Claim(s) 2 and 12 is/are rejected under 35 U.S.C. 103 as being unpatentable over Soorya-Gorge, in view of Popovic et al. (20180349183; filed May 29, 2018; hereinafter referred to as Popovic).
As per claim 2, Soorya-Gorge teaches claim 1 as applied above. But Soorya-Gorge does not teach wherein obtaining the workflow data comprises receiving, via a computing device, user input of the workflow data formatted in a hierarchical data structure.
However, Popovic does teach wherein obtaining the workflow data comprises receiving, via a computing device, user input of the workflow data formatted in a hierarchical data structure (e.g. Popovic: [0052] discloses the workflow execution engine 220 can receive a workflow description 202, which may be provided by a user or obtained from another source. [0052] further discloses an object model-based approach may describe the steps in a workflow in JavaScript Object Notation (JSON) format. Please note that JSON is a hierarchical data structure.).
Soorya-Gorge and Popovic are in the same field of endeavor in terms of workflow execution and management therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teachings of Soorya-Gorge to incorporate the teachings of Popovic for the reason of wherein obtaining the workflow data comprises receiving, via a computing device, user input of the workflow data formatted in a hierarchical data structure. This improves clarity and processing efficiency because hierarchical data structures are easier to parse since the system can process specific branches of data without needing to scan the whole file and the relationship between nodes are clearer.
As per claim 12, Soorya-Gorge teaches claim 11 as applied above. But Soorya-Gorge does not teach wherein obtaining the workflow data comprises receiving, via a computing device, user input of the workflow data formatted in a hierarchical data structure.
However, Popovic does teach wherein obtaining the workflow data comprises receiving, via a computing device, user input of the workflow data formatted in a hierarchical data structure (e.g. Popovic: [0052] discloses the workflow execution engine 220 can receive a workflow description 202, which may be provided by a user or obtained from another source. [0052] further discloses an object model-based approach may describe the steps in a workflow in JavaScript Object Notation (JSON) format. Please note that JSON is a hierarchical data structure.).
Soorya-Gorge and Popovic are in the same field of endeavor in terms of workflow execution and management therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teachings of Soorya-Gorge to incorporate the teachings of Popovic for the reason of wherein obtaining the workflow data comprises receiving, via a computing device, user input of the workflow data formatted in a hierarchical data structure. This improves clarity and processing efficiency because hierarchical data structures are easier to parse since the system can process specific branches of data without needing to scan the whole file and the relationship between nodes are clearer.
Claim(s) 3, 4, 7, 13, 14, 17 are rejected under 35 U.S.C. 103 as being unpatentable over Soorya-Gorge, in view of Hull et al. (20080065448; filed September 8, 2006; hereinafter referred to as Hull).
As per claim 3, Soorya-Gorge teaches claim 1 as applied above. But Soorya-Gorge does not teach determining a correspondence between the workflow data and a graph representation of the plurality of workflow steps of the first workflow.
However, Hull does teach determining a correspondence between the workflow data and a graph representation of the plurality of workflow steps of the first workflow (e.g. Hull: [0005] discloses representation of a workflow as a directed graph, where nodes represent tasks and edges represent order constraints and often task dependencies. Please note the tasks corresponds to Applicant’s plurality of workflow steps. Please further note if the workflow has been represented as a graph it necessarily follows a correspondence between the workflow and graph has been determined.).
Soorya-Gorge and Hull are in the same field of endeavor in terms of workflow execution and management therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teachings of Soorya-Gorge to incorporate the teachings of Hull for the reason determining a correspondence between the workflow data and a graph representation of the plurality of workflow steps of the first workflow. This enhances visibility and traceability of the workflow. The graph clearly maps out the dependency relationships and execution flow between the different steps allowing easier understanding and analysis.
As per claim 4, Soorya-Gorge-Hull teaches claim 3 as applied above. Hull further teaches:
determining a first directed graph including nodes that represent the plurality of workflow steps of the one or more sequences (e.g. Hull: [0005] discloses representation of a workflow as a directed graph, where nodes represent tasks and edges represent order constraints and often task dependencies.),
wherein the causing step further includes determining a subgraph of the first directed graph corresponding to the job (e.g. Hull: [0009] discloses partitioning nodes representing tasks into subsets based upon the order constraints, wherein the subsets are sequence ordered with respect to each other such that all nodes associated with a given subset either precede or follow all nodes associated with another subset. Please note the subsets correspond to Applicant’s subgraph.).
As per claim 7, Soorya-Gorge-Hull teaches claim 4 as applied above. Hull further teaches wherein the first directed graph is a directed acyclic graph (e.g. Hull: [0053] discloses as a general matter, it is convenient to assume under the graph model that the workflow graph is acyclical.).
As per claim 13, Soorya-Gorge teaches claim 11 as applied above. But Soorya-Gorge does not teach wherein the instructions, when executed, further configure the processor to determine a correspondence between the workflow data and a graph representation of the plurality of workflow steps of the first workflow.
However, Hull does teach wherein the instructions, when executed, further configure the processor to determine a correspondence between the workflow data and a graph representation of the plurality of workflow steps of the first workflow (e.g. Hull: [0005] discloses representation of a workflow as a directed graph, where nodes represent tasks and edges represent order constraints and often task dependencies. Please note the tasks corresponds to Applicant’s plurality of workflow steps. Please further note if the workflow has been represented as a graph it necessarily follows a correspondence between the workflow and graph has been determined.).
Soorya-Gorge and Hull are in the same field of endeavor in terms of workflow execution and management therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teachings of Soorya-Gorge to incorporate the teachings of Hull for the reason wherein the instructions, when executed, further configure the processor to determine a correspondence between the workflow data and a graph representation of the plurality of workflow steps of the first workflow. This enhances visibility and traceability of the workflow. The graph clearly maps out the dependency relationships and execution flow between the different steps allowing easier understanding and analysis.
As per claim 14, Soorya-Gorge-Hull teaches claim 13 as applied above. Hull further teaches:
wherein the instructions, when executed, further configure the processor to determine a first directed graph including nodes that represent the plurality of workflow steps of the one or more sequences (e.g. Hull: [0005] discloses representation of a workflow as a directed graph, where nodes represent tasks and edges represent order constraints and often task dependencies.),
wherein the causing step further includes determining a subgraph of the first directed graph corresponding to the job (e.g. Hull: [0009] discloses partitioning nodes representing tasks into subsets based upon the order constraints, wherein the subsets are sequence ordered with respect to each other such that all nodes associated with a given subset either precede or follow all nodes associated with another subset. Please note the subsets correspond to Applicant’s subgraph.).
As per claim 17, Soorya-Gorge-Hull teaches claim 14 as applied above. Hull further teaches wherein the first directed graph is a directed acyclic graph (e.g. Hull: [0053] discloses as a general matter, it is convenient to assume under the graph model that the workflow graph is acyclical.).
Claim(s) 5 and 15 are rejected under 35 U.S.C. 103 as being unpatentable over Soorya-Gorge-Hull, in view of Stack Overflow (Title: NetworkX DiGraph create subgraph (DiGraph) by node; published October 4, 2015; hereinafter referred to as Sobehy), in further view of Wang et al. (CN108415740A; published August 17, 2018; Translation provided by IP.com; hereinafter referred to as Wang).
As per claim 5, Soorya-Gorge-Hull teaches claim 4 as applied above. Soorya-Gorge-Hull does not teach wherein determining the subgraph comprises parsing the first directed graph to determine a subgraph comprising descendant nodes of a current node corresponding to the current workflow step and wherein the new job includes an indication of nodes of the subgraph.
However, Sobehy does teach wherein determining the subgraph comprises parsing the first directed graph to determine a subgraph comprising descendant nodes of a current node corresponding to the current workflow step (e.g. Sobehy: [Page 2] discloses code that parses an example graph to determine a smaller subgraph from node 3. [Page 3] discloses the determined subgraph. Please note, as Hull taught above, a workflow may be represented as a graph with the nodes corresponding to tasks. Because of that Sobehy’s algorithm corresponds to Applicant’s parsing the first directed graph to determine a subgraph comprising descendant nodes of a current node corresponding to the current workflow step, with node 3 corresponding to Applicant’s current node.).
Soorya-Gorge-Hull and Sobehy are in the same field of endeavor in terms of graph management therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teachings of Soorya-Gorge-Hull to incorporate the teachings of Wang for the reason of wherein determining the subgraph comprises parsing the first directed graph to determine a subgraph comprising descendant nodes of a current node corresponding to the current workflow step. This reduces overhead and speeds up execution. This is because the system only needs to keep the relevant downstream path in memory instead of a potentially massive graph. And operating on a smaller set of data naturally makes execution faster.
Soorya-Gorge-Hull-Sobehy do not teach wherein the new job includes an indication of nodes of the subgraph.
However, Wang does teach wherein the new job includes an indication of nodes of the subgraph (e.g. Wang CN108415740A: [Page 5 Paragraph 5] discloses The initial value of each node is set, initial value include node serial number number, predecessor node number preNodes, The task action that descendant node number succNodes and node will execute. Please note the node corresponds to Applicant's job because it holds the task actions which are like the Applicant's steps. Also, the graph is supposed to represent the workflow with the nodes representing the jobs. The node contains data for descendant nodes, succNodes. As such the node possesses data on descendent nodes which correspond to Applicant's job includes an indication of nodes of the subgraph.).
Soorya-Gorge-Hull-Sobehy and Wang are in the same field of endeavor in terms of workflow execution and management therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teachings of Soorya-Gorge-Hull-Sobehy to incorporate the teachings of Wang for the reason of wherein the new job includes an indication of nodes of the subgraph. This improves efficiency because the device executing the job will not need to perform constant API calls back to a controller because it already has the information.
As per claim 15, Soorya-Gorge-Hull teaches claim 14 as applied above. Soorya-Gorge-Hull does not teach wherein determining the subgraph comprises parsing the first directed graph to determine a subgraph comprising descendant nodes of a current node corresponding to the current workflow step and wherein the new job includes an indication of nodes of the subgraph.
However, Sobehy does teach wherein determining the subgraph comprises parsing the first directed graph to determine a subgraph comprising descendant nodes of a current node corresponding to the current workflow step (e.g. Sobehy: [Page 2] discloses code that parses an example graph to determine a smaller subgraph from node 3. [Page 3] discloses the determined subgraph. Please note, as Hull taught above, a workflow may be represented as a graph with the nodes corresponding to tasks. Because of that Sobehy’s algorithm corresponds to Applicant’s parsing the first directed graph to determine a subgraph comprising descendant nodes of a current node corresponding to the current workflow step, with node 3 corresponding to Applicant’s current node.).
Soorya-Gorge-Hull and Sobehy are in the same field of endeavor in terms of graph management therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teachings of Soorya-Gorge-Hull to incorporate the teachings of Wang for the reason of wherein determining the subgraph comprises parsing the first directed graph to determine a subgraph comprising descendant nodes of a current node corresponding to the current workflow step. This reduces overhead and speeds up execution. This is because the system only needs to keep the relevant downstream path in memory instead of a potentially massive graph. And operating on a smaller set of data naturally makes execution faster.
Soorya-Gorge-Hull-Sobehy do not teach wherein the new job includes an indication of nodes of the subgraph.
However, Wang does teach wherein the new job includes an indication of nodes of the subgraph (e.g. Wang CN108415740A: [Page 5 Paragraph 5] discloses The initial value of each node is set, initial value include node serial number number, predecessor node number preNodes, The task action that descendant node number succNodes and node will execute. Please note the node corresponds to Applicant's job because it holds the task actions which are like the Applicant's steps. Also, the graph is supposed to represent the workflow with the nodes representing the jobs. The node contains data for descendant nodes, succNodes. As such the node possesses data on descendent nodes which correspond to Applicant's job includes an indication of nodes of the subgraph.).
Soorya-Gorge-Hull-Sobehy and Wang are in the same field of endeavor in terms of workflow execution and management therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teachings of Soorya-Gorge-Hull-Sobehy to incorporate the teachings of Wang for the reason of wherein the new job includes an indication of nodes of the subgraph. This improves efficiency because the device executing the job will not need to perform constant API calls back to a controller because it already has the information.
Claim(s) 6 and 16 is/are rejected under 35 U.S.C. 103 as being unpatentable over Soorya-Gorge, in view of Wolf et al. (20140181826; filed December 26, 2012; hereinafter referred to as Wolf).
As per claim 6, Soorya-Gorge teaches claim 1 as applied above. But Soorya-Gorge does not teach wherein the new job is enqueued during a time delay following execution of the current workflow step.
However, Wolf does teach wherein the new job is enqueued during a time delay following execution of the current workflow step (e.g. Wolf: [0027] discloses how to queue work, queue work with a delay, resume work, and resume work with delay (from the scheduler perspective). [0027] further discloses all this is happening using a synchronous (C# in this case) programming interface that abstracts the users from all the challenges of distributed asynchronous and long running execution. Please note that this means that during the execution of the workflow, enqueuing a job on a delay will occur which corresponds to Applicant's enqueuing of a new job during a time delay following execution of a workflow step.).
Soorya-Gorge and Wolf are in the same field of endeavor in terms of workflow management therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teachings of Soorya-Gorge to incorporate the teachings of Wolf for the reason of wherein the new job is enqueued during a time delay following execution of the current workflow step. This prevents system overloading and assists in scheduling. Spacing out the tasks prevents third-party API’s from getting overwhelmed with rapid requests and giving a delay gives time to group up the next set of tasks.
As per claim 16, Soorya-Gorge teaches claim 11 as applied above. But Soorya-Gorge does not teach wherein the new job is enqueued during a time delay following execution of the current workflow step.
However, Wolf does teach wherein the new job is enqueued during a time delay following execution of the current workflow step (e.g. Wolf: [0027] discloses how to queue work, queue work with a delay, resume work, and resume work with delay (from the scheduler perspective). [0027] further discloses all this is happening using a synchronous (C# in this case) programming interface that abstracts the users from all the challenges of distributed asynchronous and long running execution. Please note that this means that during the execution of the workflow, enqueuing a job on a delay will occur which corresponds to Applicant's enqueuing of a new job during a time delay following execution of a workflow step.).
Soorya-Gorge and Wolf are in the same field of endeavor in terms of workflow management therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teachings of Soorya-Gorge to incorporate the teachings of Wolf for the reason of wherein the new job is enqueued during a time delay following execution of the current workflow step. This prevents system overloading and assists in scheduling. Spacing out the tasks prevents third-party API’s from getting overwhelmed with rapid requests and giving a delay gives time to group up the next set of tasks.
Claim(s) 8 and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Soorya-Gorge, in view of Jahn et al. (20070236708; filed April 7, 2006; hereinafter referred to as Jahn).
As per claim 8, Soorya-Gorge teaches claim 1 as applied above. But Soorya-Gorge does not teach wherein each of the plurality of workflow steps comprises one or both of computing operations and condition evaluations.
However, Jahn does wherein each of the plurality of workflow steps comprises one or both of computing operations and condition evaluations (e.g. Jahn: [0021] discloses a workflow processing system particularly as applied to a printing environment in which print jobs are performed or executed utilizing a variety of printing system objects 110 and in accordance with workflow models. [0021] further discloses a user may generally define a workflow model as comprising one or more phases, each phase including one or more processes, and each process comprising one or more steps that may in turn include conditional Boolean logic. [0022] discloses a process is a sequence of steps that perform a logical set of actions on the jobs they process. Please note that performing jobs in a printing environment corresponds to Applicant's workflow steps doing computing operations because jobs are just a sequence of steps.).
Soorya-Gorge and Jahn are in the same field of endeavor in terms of workflow execution and management therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teachings of Soorya-Gorge to incorporate the teachings of Jahn for the reason of wherein each of the plurality of workflow steps comprises one or both of computing operations and condition evaluations. This improves flexibility by allowing the workflow to branch into different paths instead of following one rigid path.
As per claim 18, Soorya-Gorge teaches claim 11 as applied above. But Soorya-Gorge does not teach wherein each of the plurality of workflow steps comprises one or both of computing operations and condition evaluations.
However, Jahn does teach wherein each of the plurality of workflow steps comprises one or both of computing operations and condition evaluations (e.g. Jahn: [0021] discloses a workflow processing system particularly as applied to a printing environment in which print jobs are performed or executed utilizing a variety of printing system objects 110 and in accordance with workflow models. [0021] further discloses a user may generally define a workflow model as comprising one or more phases, each phase including one or more processes, and each process comprising one or more steps that may in turn include conditional Boolean logic. [0022] discloses a process is a sequence of steps that perform a logical set of actions on the jobs they process. Please note that performing jobs in a printing environment corresponds to Applicant's workflow steps doing computing operations because jobs are just a sequence of steps.).
Soorya-Gorge and Jahn are in the same field of endeavor in terms of workflow execution and management therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teachings of Soorya-Gorge to incorporate the teachings of Jahn for the reason of wherein each of the plurality of workflow steps comprises one or both of computing operations and condition evaluations. This improves flexibility by allowing the workflow to branch into different paths instead of following one rigid path.
Claim(s) 9 is/are rejected under 35 U.S.C. 103 as being unpatentable over Soorya-Gorge, in view of Shil et al. (11531564; filed July 9, 2020; hereinafter referred to as Shil)
As per claim 9, Soorya-Gorge teaches claim 1 as applied above. But Soorya-Gorge does not teach wherein causing the jobs in the batch queue to be executed comprises, for each of one or more worker nodes of the distributed computing system, instructing the worker node to execute a respective one of the jobs.
However, Shil does teach wherein causing the jobs in the batch queue to be executed comprises, for each of one or more worker nodes of the distributed computing system, instructing the worker node to execute a respective one of the jobs (e.g. Shil: [0040] discloses tasks may be distributed among the participant service compute nodes 312 using a task message published in the task queue 310. The task message in the task queue 310 allows one of the participant service compute nodes 312 to handle the execution of a task specified in the task message. Please note the task queue allowing a compute node to handle the execution of a task corresponds to Applicant’s instructing the worker node to execute a respective one of the jobs.).
Soorya-Gorge and Shil are in the same field of endeavor in terms of workflow execution and management therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teachings of Soorya-Gorge to incorporate the teachings of Shil for the reason of wherein causing the jobs in the batch queue to be executed comprises, for each of one or more worker nodes of the distributed computing system, instructing the worker node to execute a respective one of the jobs. This prevents bottlenecks and uses computing resources more efficiently. Tasks are spread out so no one machine gets overloaded and running multiple jobs at the same time cuts down on overall processing time.
Claim(s) 10 is/are rejected under 35 U.S.C. 103 as being unpatentable over Soorya-Gorge-Shil, in view of Haines et al. (AU 2003204420; published December 18, 2003; hereinafter referred to as Haines).
As per claim 10, Soorya-Gorge-Shil teaches claim 9 and applied above. Soorya further teaches wherein the worker node is instructed to execute the current workflow step (e.g. Soorya: [0074] discloses server 302 can receive any suitable instructions to execute steps, processes, or simulations included in a workflow and can execute the indicated steps, processes, or simulations in response to receiving the instruction).
But Soorya-Gorge-Shil does not teach to identify the set of workflow steps.
However, Haines does teach to identify the set of workflow steps (e.g. Haines: [Page 2 Paragraph 11] discloses determines from the process definition the steps that will succeed the current outstanding steps. Please note Applicant's identify the set of workflow steps has been interpreted as identifying the set of workflow steps after the current step).
Soorya-Gorge-Shil and Haines are in the same field of endeavor in terms of workflow management therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teachings of Soorya-Gorge-Shil to incorporate the teachings of Haines for the reason of to identify the set of workflow steps. This improves resource efficiency because by knowing what steps are subsequent, identical steps are not executed.
Claim(s) 19 is/are rejected under 35 U.S.C. 103 as being unpatentable over Soorya-Gorge, in view of Shil, and in further view of Haines.
As per claim 19, Soorya-Gorge teaches claim 11 as applied above. But Soorya-Gorge does not teach wherein causing the jobs in the batch queue to be executed comprises, for each of one or more worker nodes of the distributed computing system, instructing the worker node to execute the current workflow step and to identify the set of workflow steps.
However, Shil does teach wherein causing the jobs in the batch queue to be executed comprises, for each of one or more worker nodes of the distributed computing system, instructing the worker node to execute the current workflow step (e.g. Shil: [0040] discloses tasks may be distributed among the participant service compute nodes 312 using a task message published in the task queue 310. The task message in the task queue 310 allows one of the participant service compute nodes 312 to handle the execution of a task specified in the task message. Please note the task queue allowing a compute node to handle the execution of a task corresponds to Applicant’s instructing the worker node to execute the current workflow step.).
Soorya-Gorge and Shil are in the same field of endeavor in terms of workflow execution and management therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teachings of Soorya-Gorge to incorporate the teachings of Shil for the reason of wherein causing the jobs in the batch queue to be executed comprises, for each of one or more worker nodes of the distributed computing system, instructing the worker node to execute the current workflow step. This prevents bottlenecks and uses computing resources more efficiently. Tasks are spread out so no one machine gets overloaded and running multiple jobs at the same time cuts down on overall processing time.
But Soorya-Gorge-Shil does not teach to identify the set of workflow steps.
However, Haines does teach to identify the set of workflow steps (e.g. Haines: [Page 2 Paragraph 11] discloses determines from the process definition the steps that will succeed the current outstanding steps. Please note Applicant's identify the set of workflow steps has been interpreted as identifying the set of workflow steps after the current step.).
Soorya-Gorge-Shil and Haines are in the same field of endeavor in terms of workflow management therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teachings of Soorya-Gorge-Shil to incorporate the teachings of Haines for the reason of to identify the set of workflow steps. This improves resource efficiency because by knowing what steps are subsequent, identical steps are not executed.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to DANIEL N TRUONG whose telephone number is (571)270-0856. The examiner can normally be reached Monday-Friday 9:00AM-5:00PM.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, April Blair can be reached at (571) 270-1014. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/DANIEL NHU TRUONG/Examiner, Art Unit 2196
/APRIL Y BLAIR/Supervisory Patent Examiner, Art Unit 2196