DETAILED ACTION
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 07/31/2023.
Claims 1-20 are pending.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-9 and 12-20 are rejected under 35 U.S.C. 101 because the claimed invention recites a judicial exception, is directed to that judicial exception, an abstract idea, as it has not been integrated into practical application and the claims further do not recite significantly more than the judicial exception. Examiner has evaluated the claims under the framework provided in the 2019 Patent Eligibility Guidance published in the Federal Register 01/07/2019 and has provided such analysis below.
Step 1:
Claims 1-9 and 12-18 are directed to methods and fall within the statutory category of processes; Claims 19 is directed to a device and falls within the statutory category of machines; Claim 20 is directed to a Non-transitory computer-readable storage medium that falls into the category of article of manufacture. Therefore, “Are the claims to a process, machine, manufacture or composition of matter?” Yes.
In order to evaluate the Step 2A inquiry “Is the claim directed to a law of nature, a natural phenomenon or an abstract idea?” we must determine, at Step 2A Prong 1, whether the claim recites a law of nature, a natural phenomenon or an abstract idea and further whether the claim recites additional elements that integrate the judicial exception into a practical application.
Step 2A Prong 1:
Claims 1, 19 and 20: The limitations of “determine/determining” … “based on a notification associated with the first remote system, that the task failed in response to invoking the first remote system” and “identify/identifying” … “a first job from among the plurality of jobs, the first job having at least one task that invokes the first remote system”, “based on a notification associated with the first remote system”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can mentally come to the conclusion that a task has failed based on an alert or indication of it failing. Further, a person can mentally choose a task among a plurality of them.
Therefore, yes, Claims 1, 19 and 20 recite judicial exceptions.
The claims have been identified to recite judicial exceptions, Step 2A Prong 2 will evaluate whether the claims are directed to the judicial exception.
Step 2A Prong 2:
Claims 1, 19, and 20: The judicial exceptions are not integrated into practical applications. In particular, the claims recite the following additional elements –Further, “perform/performing” … “an action based on a priority of the first job” is a recitation of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)). Lastly, “execute/executing” … “a job from among a plurality of jobs executed by the CI system, the job initiating a task from among a plurality of tasks for the job and the task invoking a first remote system”, recites a field of use which generally links the use of a judicial exception to a particular technological environment (MPEP § 2106.05(h)).
Therefore, “Do the claims recite additional elements that integrate the judicial exception into a practical application? No, these additional elements do not integrate the abstract idea into a practical application and they do not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea.
After having evaluating the inquires set forth in Steps 2A Prong 1 and 2, it has been concluded that the Claims 1, 19 and 20 not only recite a judicial exception but that the claims are directed to a judicial exception as a judicial exception has not been integrated into a practical application.
Step 2B:
Claim 1, 19 and 20: The claims do not include additional elements, alone or in combination, that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional elements amount to no more than generic computing components, field of use/technological environment, and which do not amount to significantly more than the abstract idea.
Therefore, “Do the claims recite additional elements that amount to significantly more than the judicial exception? No, these additional elements, alone or in combination, do not amount to significantly more than the judicial exception.
Having concluded analysis within the provided framework, Claims 1, 19 and 20 do not recite patent eligible subject matter under 35 U.S.C. § 101.
Regarding Claim 2: “determining, based on the notification associated with the first remote system, that the task failed in response to invoking the first remote system comprises: receiving the notification from the first remote system”, reciting insignificant extra-solution data gathering activity, MPEP § 2106.05(g). With regard to integration into practical application and whether additional elements amount to significantly more, Claim 2 fails both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more, performing a well understood, routine, and conventional task of data gathering. “The courts have recognized the following computer functions as well‐understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. i. Receiving or transmitting data over a network”. See MPEP § 2106.05(d)(II). Therefore, Claim 2 does not recite patent eligible subject matter under 35 U.S.C. § 101.
Regarding Claim 3: “identifying the first job from among the plurality of jobs, the first job having at least one task that invokes the first remote system comprises”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can mentally choose a task among a plurality of them. Furthermore “obtaining a file that defines the first job; and determining, based on the file, that the first job has the at least one task that invokes the first remote system”, reciting insignificant extra-solution data gathering activity, MPEP § 2106.05(g). With regard to integration into practical application and whether additional elements amount to significantly more, Claim 3 fails both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more, performing a well understood, routine, and conventional task of data gathering. “The courts have recognized the following computer functions as well‐understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. i. Receiving or transmitting data over a network”. See MPEP § 2106.05(d)(II). Therefore, Claim 3 does not recite patent eligible subject matter under 35 U.S.C. § 101.
Regarding Claim 4: “subsequent to identifying the first job from among the plurality of jobs, pausing the first job”, merely recitations of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application. With regard to integration into practical application and whether additional elements amount to significantly more, Claim 4 fails both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claim 4 does not recite patent eligible subject matter under 35 U.S.C. § 101.
Regarding Claim 5: “determining that the priority of the first job is high; determining that a second remote system is available from a remote location; modifying the task to use the second remote system at the remote location and the first job to use the second remote system at the remote location”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can mentally assess the priority of multiple jobs and assign them to appropriate available resources for completion. Further, “sending a request to the second remote system; and receiving a response from the second remote system”, reciting insignificant extra-solution data gathering/transmission activity, MPEP § 2106.05(g). With regard to integration into practical application and whether additional elements amount to significantly more, Claim 5 fails both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more, performing a well understood, routine, and conventional task of data gathering. “The courts have recognized the following computer functions as well‐understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. i. Receiving or transmitting data over a network”. See MPEP § 2106.05(d)(II). Therefore, Claim 5 does not recite patent eligible subject matter under 35 U.S.C. § 101.
Regarding Claim 6: “the first remote system comprises a service”, “the second remote system comprises the available service”, merely link the use of a judicial exception to a particular technological environment or field of use, as discussed in MPEP § 2106.05(h). Furthermore, “determining that the second remote system is available from the remote location comprises”, “identifying an available service from the service registry list that corresponds to the service”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person may assess resource availability based on known information. Lastly, “accessing a service registry list”, reciting insignificant extra-solution data gathering activity, MPEP § 2106.05(g). With regard to integration into practical application and whether additional elements amount to significantly more, Claim 6 fails both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more, performing a well understood, routine, and conventional task of data gathering. “The courts have recognized the following computer functions as well‐understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. iv. Storing and retrieving information in memory”. See MPEP § 2106.05(d)(II). Therefore, Claim 6 does not recite patent eligible subject matter under 35 U.S.C. § 101.
Regarding Claim 7: “performing the action based on the priority of the first job comprises: determining that the priority of the first job is high; determining that a second remote system is available from a local location; and modifying the task to use the second remote system at the local location and the first job to use the second remote system at the local location”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can mentally assess the priority of multiple jobs and assign them to appropriate available resources for completion. With regard to integration into practical application and whether additional elements amount to significantly more, Claim 7 fails both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claim 7 does not recite patent eligible subject matter under 35 U.S.C. § 101.
Regarding Claim 8: “determining that the priority of the first job is low; pausing the first job for a predetermined amount of time”, merely recitations of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application. With regard to integration into practical application and whether additional elements amount to significantly more, Claim 8 fails both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claim 8 does not recite patent eligible subject matter under 35 U.S.C. § 101.
Regarding Claim 9: “receiving a response from the first remote system, the response indicating that the first remote system is available; and resuming the first job”, merely recitations of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application. With regard to integration into practical application and whether additional elements amount to significantly more, Claim 9 fails both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claim 9 does not recite patent eligible subject matter under 35 U.S.C. § 101.
Regarding Claim 12: “prior to performing the action based on the priority of the first job, obtaining a file that defines the first job”, reciting insignificant extra-solution data gathering activity, MPEP § 2106.05(g). Further, “determining, based on the file, the priority of the first job”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person may assess resource availability based on known information. With regard to integration into practical application and whether additional elements amount to significantly more, Claim 12 fails both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more, performing a well understood, routine, and conventional task of data gathering. “The courts have recognized the following computer functions as well‐understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. i. Receiving or transmitting data over a network”. See MPEP § 2106.05(d)(II). Therefore, Claim 12 does not recite patent eligible subject matter under 35 U.S.C. § 101.
Regarding Claim 13: “prior to performing the action based on the priority of the first job, obtaining a file that defines the first job”, reciting insignificant extra-solution data gathering activity, MPEP § 2106.05(g). Further, “determining, based on the file, a plurality of tasks of the first job and a priority of each task of the plurality of tasks, wherein the priority of the first job comprises a highest priority of each priority of the plurality of tasks”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person may assess resource availability based on known information. With regard to integration into practical application and whether additional elements amount to significantly more, Claim 13 fails both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more, performing a well understood, routine, and conventional task of data gathering. “The courts have recognized the following computer functions as well‐understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. i. Receiving or transmitting data over a network”. See MPEP § 2106.05(d)(II). Therefore, Claim 13 does not recite patent eligible subject matter under 35 U.S.C. § 101.
Regarding Claim 14: “subsequent to performing the action based on the priority of the first job, sending a request to the first remote system; receiving a response from the first remote system, the response indicating that the first remote system is available”, reciting insignificant extra-solution data gathering/transmission activity, MPEP § 2106.05(g). Further, “modifying the task to use the first remote system and the first job to use the first remote system”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person may assess resource availability based on known information. With regard to integration into practical application and whether additional elements amount to significantly more, Claim 14 fails both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more, performing a well understood, routine, and conventional task of data gathering. “The courts have recognized the following computer functions as well‐understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. iv. Storing and retrieving information in memory”. See MPEP § 2106.05(d)(II). Therefore, Claim 14 does not recite patent eligible subject matter under 35 U.S.C. § 101.
Regarding Claim 15: “modifying the first job to use the first remote system; executing the first job, the first job invoking the first remote system; waiting a predetermined amount of time; modifying the task to use the first remote system; and executing the task, the task invoking the first remote system”, merely recitations of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application. With regard to integration into practical application and whether additional elements amount to significantly more, Claim 15 fails both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claims 15 does not recite patent eligible subject matter under 35 U.S.C. § 101.
Regarding Claim 16: “prior to modifying the first job to use the first remote system, determining that the at least one task of the first job is a final task of a plurality of tasks for the first job; and determining that the task of the job is a first task of the plurality of tasks for the job”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can mentally assess the order of multiple jobs and assign them to appropriate available resources for completion. With regard to integration into practical application and whether additional elements amount to significantly more, Claim 16 fails both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claim 16 does not recite patent eligible subject matter under 35 U.S.C. § 101.
Regarding Claim 17: “obtaining a file that defines the job;”, reciting insignificant extra-solution data gathering activity, MPEP § 2106.05(g). “and determining, based on the file, that the task invokes the first remote system”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person may task may require a remote system to be completed based on a predetermined definition of the job. With regard to integration into practical application and whether additional elements amount to significantly more, Claim 17 fails both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more, performing a well understood, routine, and conventional task of data gathering. “The courts have recognized the following computer functions as well‐understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. iv. Storing and retrieving information in memory”. See MPEP § 2106.05(d)(II). Therefore, Claim 17 does not recite patent eligible subject matter under 35 U.S.C. § 101.
Regarding Claim 18: “identifying a subset of jobs from among the plurality of jobs, each job of the subset of jobs having at least one task that invokes the first remote system;”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can mentally assess the priority of multiple jobs and assign them to appropriate available resources for completion. “and performing an action for each job of the subset of jobs based on a priority of each job of the subset of jobs”, merely recitations of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application. With regard to integration into practical application and whether additional elements amount to significantly more, Claim 18 fails both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claim 18 does not recite patent eligible subject matter under 35 U.S.C. § 101.
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.
Claims 1-5, 7, 14, and 17-20 are rejected under 35 U.S.C. 103(a) as being unpatentable over Gersht et al. (US 11327723 B1) (hereinafter Gersht), in view of Bahramshahry et al. (US 20200026571 A1) (hereinafter Bahramshahry).
Regarding Claim 1, Gersht teaches:
A method, comprising: executing, by a continuous integration (CI) system,
“(13) FIG. 1 depicts a high-level block diagram of an example computing environment 100 that includes a continuous integration build tool user interface 125”, (Gersht: Col 3 lines 40-67), “Build tool 110 may include continuous integration build tool 121”, (Gersht: Col 4-5 lines 52-22), “Continuous integration build tool 121 may generate an integration test log 139 containing information describing the progress of the operations”, (Gersht: Col 4-5 lines 52-22).
a job from among a plurality of jobs executed by the CI system,
“The jobs list includes one or more job representations, which are user-interface representations of jobs that build tool 110 can execute to perform builds”, (Gersht: Col 6 lines 12-30), “A job may be executed, e.g., by a build tool running on a computing node, and the executing job is referred to herein as an “active build.””, (Gersht: Col 2 lines 4-36), “Build tool 110 may include continuous integration build tool 121 for performing continuous build operations” … “Continuous integration build tool 121 may start builds”, (Gersht: Col 4-5 lines 52-22).
the job initiating a task from among a plurality of tasks for the job and the task invoking a first remote system;
“A job can include a set of stages, which may be executed sequentially. The stages can include, for example, compile, test, and deploy stages”, (Gersht: Col 6 lines 12-30), “Continuous integration build tool 121 may start builds, e.g., by executing compiler 115, unit tester 117, and integration tester 119”, (Gersht: Col 4-5 lines 52-22), “the deploy stage may install the executable code on host machines”, (Gersht: Col 2 lines 4-36), “execution module 212 may initiate execution of a corrected job on build tool 110”, (Gersht: Col 9 lines 37-41), “A client machine 111 may be a computing device such as a server computer, a desktop computer” … “The network 105 may be a private network (e.g., a local area network (LAN), a wide area network (WAN), intranet, or other similar private networks) or a public network (e.g., the Internet)”, (Gersht: Col 4 lines 26-35), “Build tool 110 may be located on client 111, on build server 101, or both”, (Gersht: Col 4 lines 1-14, Fig. 1), “tracking, using the integrated development environment, the execution of the software build job by receiving progress data associated with the execution”, (Gersht: Claim 1), “detection module 216 may detect one or more failures by communicating with build tool 110 via a program capable of handling periodic requests for data”, (Gersht: Col 8 lines 7-30), “A job may be executed, e.g., by a build tool running on a computing node”, (Gersht: Col 2 lines 4-36). Examiner notes: build tools are on a local client or a build server connected through the network and is used to execute a job
determining, by the CI system based on a notification associated with the first remote system, that the task failed in response to invoking the first remote system;
“Continuous integration build tool 121 may detect the completion of a build by receiving a result value from compiler 115”, (Gersht: Col 4-5 lines 52-22), “After build tool 110 compiles the source code 113 and runs unit tests and integration tests, build tool 110 may report whether the attempt to provide the build was a success or includes a failure”, (Gersht: Col 6 lines 3-11), “Detection module 216 may detect failures that occurred during the execution of the job on build tool 110”, (Gersht: Col 8 lines 7-29), “Build tool 110 may be located on client 111, on build server 101, or both”, (Gersht: Col 4 lines 1-14, Fig. 1), “tracking, using the integrated development environment, the execution of the software build job by receiving progress data associated with the execution”, (Gersht: Claim 1). Examiner notes: The build tool which exists in the remote system (client device of Fig 1) notifies/reports a failure.
the first job having at least one task that invokes the first remote system;
“A job can include a set of stages, which may be executed sequentially. The stages can include, for example, compile, test, and deploy stages”, (Gersht: Col 6 lines 12-30), “Continuous integration build tool 121 may start builds, e.g., by executing compiler 115, unit tester 117, and integration tester 119”, (Gersht: Col 4-5 lines 52-22), “the deploy stage may install the executable code on host machines”, (Gersht: Col 2 lines 4-36), “execution module 212 may initiate execution of a corrected job on build tool 110”, (Gersht: Col 9 lines 37-41), “A client machine 111 may be a computing device such as a server computer, a desktop computer” … “The network 105 may be a private network (e.g., a local area network (LAN), a wide area network (WAN), intranet, or other similar private networks) or a public network (e.g., the Internet)”, (Gersht: Col 4 lines 26-35), “Build tool 110 may be located on client 111, on build server 101, or both”, (Gersht: Col 4 lines 1-14, Fig. 1), “tracking, using the integrated development environment, the execution of the software build job by receiving progress data associated with the execution”, (Gersht: Claim 1), “detection module 216 may detect one or more failures by communicating with build tool 110 via a program capable of handling periodic requests for data”, (Gersht: Col 8 lines 7-30), “A job may be executed, e.g., by a build tool running on a computing node”, (Gersht: Col 2 lines 4-36). Examiner notes: build tools are on a local client or a build server connected through the network and is used to execute a job
Further regarding Claim 1, Gersht fails to teach:
identifying, by the CI system, a first job from among the plurality of jobs,
However Bahramshahry teaches: “components are in turn communicably interfaced with a compute cloud 105 and a Continuous Integration (CI) cloud”, (Bahramshahry: ¶075), “providing connectivity to the cloud based service provider or to the Continuous Integration (CI)”, (Bahramshahry: ¶104), “the produce 126 function builds a list of jobs that have not yet been planned for execution and indeed are not yet executing”, (Bahramshahry: ¶119), “consequently selects and plans for execution the priority 1 task of group A", (Bahramshahry: ¶216), “a first priority 1 workload task may be sent to a first third party cloud”, (Bahramshahry: ¶126).
and performing, by the CI system, an action based on a priority of the first job.
However, Bahramshahry teaches: “available tasks will be picked up for execution” … “in further consideration of the priority and SLTs associated with the identified workload tasks”, (Bahramshahry: ¶125), “With room now available or one more high priority P1 job to execute within the compute cloud…”, (Bahramshahry: ¶208)
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine identifying, by the CI system, a first job from among the plurality of jobs, performing, by the CI system, an action based on a priority of the first job of Bahramshahry with the methods and systems of Gersht resulting in a CI system that can select and execute a first job that utilizes a remote system. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of "immediately terminate and evict the currently running workload and initiate execution of the higher priority workload in its place", (Bahramshahry: ¶204) and "reclaiming lower priority tasks presently executing and thus consuming compute resource space", (Bahramshahry: ¶217), “provides greater efficiency to optimize the use of available computing architecture”, (Bahramshahry: ¶360).
Regarding Claim 2, Gersht teaches:
receiving the notification from the first remote system.
“Build tool 110 may be located on client 111, on build server 101, or both”, (Gersht: Col 4 lines 1-14, Fig. 1), “After build tool 110 compiles the source code 113 and runs unit tests and integration tests, build tool 110 may report whether the attempt to provide the build was a success or includes a failure”, (Gersht: Col 6 lines 3-11), “tracking, using the integrated development environment, the execution of the software build job by receiving progress data associated with the execution”, (Gersht: Claim 1),
Regarding Claim 3, Gersht teaches:
obtaining a file that defines the first job; and determining, based on the file, that the first job has the at least one task that invokes the first remote system.
“Instructions specifying how to perform the build process may be provided to the build tools in the form of build files” … “A particular set of instructions specifying how to perform a particular build process are referred to herein as a software build “job”, (Gersht: Col 2 lines 4-36), “Instructions can be provided to build tools 110 in the form of build files”, (Gersht: Col 6 lines 12-30). “The job may include a set of stages, which are may be executed sequentially in the active build”, (Gersht: Col 7 lines 7-33), “the deploy stage may install the executable code on host machines”, (Gersht: Col 2 lines 4-36), “Build tool 110 may be located on client 111, on build server 101, or both”, (Gersht: Col 4 lines 1-14, Fig. 1), “tracking, using the integrated development environment, the execution of the software build job by receiving progress data associated with the execution”, (Gersht: Claim 1), “detection module 216 may detect one or more failures by communicating with build tool 110 via a program capable of handling periodic requests for data”, (Gersht: Col 8 lines 7-30), “A job may be executed, e.g., by a build tool running on a computing node”, (Gersht: Col 2 lines 4-36). Examiner notes: build tools are on a local client or a build server connected through the network and is used to execute a job.
Regarding Claim 4, Gersht fails to teach:
subsequent to identifying the first job from among the plurality of jobs, pausing the first job.
However, Bahramshahry teaches: “Accordingly, at the select phase 1920, there is no work performed due to a forced delay 1921 which causes a pause or delay of workloads P1-P4 (elements 1951 to 1954)”, (Bahramshahry: ¶449), “consequently selects and plans for execution the priority 1 task of group A", (Bahramshahry: ¶216), “a first priority 1 workload task may be sent to a first third party cloud”, (Bahramshahry: ¶126).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine subsequent to identifying the first job from among the plurality of jobs, pausing the first job of Bahramshahry with the methods and systems of Gersht resulting in a CI system that can pause the first job. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of "a reduction of total overhead time from 4 hours to 1 hour", (Bahramshahry: ¶450) by creating “only a single snapshot”, (Bahramshahry: ¶470) during a “a forced delay”, (Bahramshahry: ¶449), instead of “each of the workloads P1-P4 having to spend 1 hour on overhead set up for their own workers”, (Bahramshahry: ¶450).
Regarding Claim 5, Gersht fails to teach:
determining that the priority of the first job is high;
However, Bahramshahry teaches: “some workloads may be low priority, others medium priority, others high priority, and yet others may be classified as critical priority”, (Bahramshahry: ¶544), “the scheduler recognizes that a high priority 1 task remains within each of groups A”, (Bahramshahry: ¶196), “produced list of all workload task identifies a priority for each of the workload tasks to be executed”, (Bahramshahry: ¶236), “the scheduler with preemptive termination of existing workloads to free resources for high priority items”, (Bahramshahry: ¶009).
determining that a second remote system is available from a remote location;
However, Bahramshahry teaches: “a compute resource discovery engine to identify one or more computing resources available to execute workload tasks”, (Bahramshahry: Abstract), “one or more remote computing pods within a remote host organization separate from the local host organization within which the scheduling service operates when the one or more remote computing pods are accessible to the scheduling service through the remote host organization”, (Bahramshahry: ¶239), “the system 1001, each of the plurality of computing resources available” … “remote from the system”, (Bahramshahry: ¶286), “the system 601 further includes: an external cloud interface”, (Bahramshahry: ¶240).
modifying the task to use the second remote system at the remote location and the first job to use the second remote system at the remote location;
However, Bahramshahry teaches: “When a new container is created from an image, a writable layer is also created” … “This layer can store newly written files, modifications to existing files”, (Bahramshahry: ¶446), “such workloads may need to be executed in a different location, on a different cloud platform entirely”, (Bahramshahry: ¶362), “sometimes workloads depend on internal services which are associated with different compute characteristics on different clouds”, (Bahramshahry: ¶527), “scheduling the copy of workload P1 into a different cloud”, (Bahramshahry: ¶537), “one or more remote computing pods within a remote host organization separate from the local host organization”, (Bahramshahry: ¶669).
sending a request to the second remote system; and receiving a response from the second remote system.
However, Bahramshahry teaches: “a scheduler to request information from the cache specifying the one or more computing resources available to execute workload tasks and the plurality of workload tasks to be scheduled for execution”, (Bahramshahry: Abstract), “the external cloud interface 627 provides a communications link to third party private and public computing clouds 628 on behalf of the scheduling service 665”, (Bahramshahry: ¶222), “requests 117 are received at, or submitted to, a web-server”, (Bahramshahry: ¶069), “discovery engine(s) 643 to receive query responses for workloads executing at compute clouds”, (Bahramshahry: ¶221).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine determining that the priority of the first job is high; determining that a second remote system is available from a remote location; modifying the task to use the second remote system at the remote location and the first job to use the second remote system at the remote location; sending a request to the second remote system; and receiving a response from the second remote system of Bahramshahry with the methods and systems of Gersht resulting in a CI system that can direct tasks to different remote resources depending on responses provided. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of "make adjustments to the output and selected 129 work", (Bahramshahry: ¶106) or "improve upon the execution plan" and "replace lower priority tasks with pending higher priority tasks" ... "to correct an erroneous or inefficient selection and planning policy instituted by the scheduler", (Bahramshahry: ¶129).
Regarding Claim 7, Gersht fails to teach:
determining that the priority of the first job is high;
However, Bahramshahry teaches: “some workloads may be low priority, others medium priority, others high priority, and yet others may be classified as critical priority”, (Bahramshahry: ¶544), “the scheduler recognizes that a high priority 1 task remains within each of groups A”, (Bahramshahry: ¶196), “the scheduler with preemptive termination of existing workloads to free resources for high priority items”, (Bahramshahry: ¶009), “produced list of all workload task identifies a priority for each of the workload tasks to be executed”, (Bahramshahry: ¶236).
determining that a second remote system is available from a local location;
However, Bahramshahry teaches: “a compute resource discovery engine to identify one or more computing resources available to execute workload tasks”, (Bahramshahry: Abstract), “one or more remote computing pods within a remote host organization separate from the local host organization within which the scheduling service operates when the one or more remote computing pods are accessible to the scheduling service through the remote host organization”, (Bahramshahry: ¶239), “the system 1001, each of the plurality of computing resources available” … “remote from the system”, (Bahramshahry: ¶286), “the system 601 further includes: an external cloud interface”, (Bahramshahry: ¶240).
modifying the task to use the second remote system at the local location and the first job to use the second remote system at the local location.
However, Bahramshahry teaches: “plurality workload tasks for execution on a different computing resource utilizing replicated copies” … “a container having information represented therein to restore a computing resource”, (Bahramshahry: ¶669), “When a new container is created from an image, a writable layer is also created” … “This layer can store newly written files, modifications to existing files”, (Bahramshahry: ¶446), “such workloads may need to be executed in a different location, on a different cloud platform entirely”, (Bahramshahry: ¶362), “sometimes workloads depend on internal services which are associated with different compute characteristics on different clouds”, (Bahramshahry: ¶527), “scheduling the copy of workload P1 into a different cloud”, (Bahramshahry: ¶537), “one or more computing pods within a local host organization within which a scheduling service of the system operates when the one or more computing pods are accessible to the scheduler”, (Bahramshahry: ¶669)
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine determining that the priority of the first job is high; determining that a second remote system is available from a local location; and modifying the task to use the second remote system at the local location and the first job to use the second remote system at the local location of Bahramshahry with the methods and systems of Gersht resulting in a CI system that can direct tasks to different local resources depending on a determination available services in a local system. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of "make adjustments to the output and selected 129 work", (Bahramshahry: ¶106) or "improve upon the execution plan" and "replace lower priority tasks with pending higher priority tasks" ... "to correct an erroneous or inefficient selection and planning policy instituted by the scheduler", (Bahramshahry: ¶129).
Regarding Claim 14, Gersht teaches:
receiving a response from the first remote system
“send a software build job for execution on a build tool”, (Gersht: Col 10 lines 14-19), “tracking module 214 may communicate with build tool 110 to retrieve and/or receive progress data”, (Gersht: Col 7 lines 22-33), “tracking module 214 may communicate with build tool 110 to retrieve and/or receive progress data”, (Gersht: Col 7 lines 22-33), “build tool 110 may report whether the attempt to provide the build was a success or includes a failure”, (Gersht: Col 6 lines 7-11). Examiner notes: build tool reporting a success or failure indicates that it is finished processing a job and is therefore available to process another.
Further regarding Claim 14, Gersht fails to teach:
subsequent to performing the action based on the priority of the first job, sending a request to the first remote system;
However, Bahramshahry teaches: “a scheduler to request information from the cache specifying the one or more computing resources available to execute workload tasks and the plurality of workload tasks to be scheduled for execution”, (Bahramshahry: Abstract), “the external cloud interface 627 provides a communications link to third party private and public computing clouds 628 on behalf of the scheduling service 665”, (Bahramshahry: ¶222), “requests 117 are received at, or submitted to, a web-server”, (Bahramshahry: ¶069), “discovery engine(s) 643 to receive query responses for workloads executing at compute clouds”, (Bahramshahry: ¶221)
receiving a response from the first remote system, the response indicating that the first remote system is available;
However, Bahramshahry teaches: “cloud B 440 which becomes available again after a scheduled or unscheduled period of inaccessibility, the executing tasks at cloud B 440 will simply be stripped from the produce list of the scheduler (e.g., by the workload discovery engine updating the local cache based on query response(s) from the compute cloud B 440)”, (Bahramshahry: ¶186). Examiner notes: the workload discovery engine queries remote system cloud B and receives a response from cloud B indicating that it’s no longer executing anything and is hence available for task assignment.
and modifying the task to use the first remote system and the first job to use the first remote system.
However, Bahramshahry teaches: “When a new container is created from an image, a writable layer is also created” … “This layer can store newly written files, modifications to existing files”, (Bahramshahry: ¶446), “such workloads may need to be executed in a different location, on a different cloud platform entirely”, (Bahramshahry: ¶362), “sometimes workloads depend on internal services which are associated with different compute characteristics on different clouds”, (Bahramshahry: ¶527), “scheduling the copy of workload P1 into a different cloud”, (Bahramshahry: ¶537), “one or more remote computing pods within a remote host organization separate from the local host organization”, (Bahramshahry: ¶669).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine subsequent to performing the action based on the priority of the first job, sending a request to the first remote system; receiving a response from the first remote system, the response indicating that the first remote system is available; and modifying the task to use the first remote system and the first job to use the first remote system of Bahramshahry with the methods and systems of Gersht resulting in a CI system that can direct tasks to different remote resources depending on a determination of available services in a remote system. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of "make adjustments to the output and selected 129 work", (Bahramshahry: ¶106) or "improve upon the execution plan" and "replace lower priority tasks with pending higher priority tasks" ... "to correct an erroneous or inefficient selection and planning policy instituted by the scheduler", (Bahramshahry: ¶129).
Regarding Claim 17, Gersht teaches:
obtaining a file that defines the job; and determining, based on the file, that the task invokes the first remote system.
“Instructions specifying how to perform the build process may be provided to the build tools in the form of build files” … “A particular set of instructions specifying how to perform a particular build process are referred to herein as a software build “job”, (Gersht: Col 2 lines 4-36), “Instructions can be provided to build tools 110 in the form of build files”, (Gersht: Col 6 lines 12-30). “The job may include a set of stages, which are may be executed sequentially in the active build”, (Gersht: Col 7 lines 7-33), “the deploy stage may install the executable code on host machines”, (Gersht: Col 2 lines 4-36), “Build tool 110 may be located on client 111, on build server 101, or both”, (Gersht: Col 4 lines 1-14, Fig. 1), “tracking, using the integrated development environment, the execution of the software build job by receiving progress data associated with the execution”, (Gersht: Claim 1), “detection module 216 may detect one or more failures by communicating with build tool 110 via a program capable of handling periodic requests for data”, (Gersht: Col 8 lines 7-30), “A job may be executed, e.g., by a build tool running on a computing node”, (Gersht: Col 2 lines 4-36). Examiner notes: build tools are on a local client or a build server connected through the network and is used to execute a job.
Regarding Claim 18,
identifying a subset of jobs from among the plurality of jobs, each job of the subset of jobs having at least one task that invokes the first remote system;
However, Bahramshahry teaches: “the two different workloads” … “the scheduler has multiple workloads and also has access to two compute clouds for performing the work”, (Bahramshahry: ¶383), “which are then split into workload sub-sets and distributed across 20 distinct work servers or 20 distinct compute resources”, (Bahramshahry: ¶617), “a workload discovery engine to identify a plurality of workload tasks to be scheduled for execution”, (Bahramshahry: Abstract), “such workloads may need to be executed in a different location, on a different cloud platform entirely”, (Bahramshahry: ¶362), “sometimes workloads depend on internal services which are associated with different compute characteristics on different clouds”, (Bahramshahry: ¶527), “scheduling the copy of workload P1 into a different cloud”, (Bahramshahry: ¶537), “one or more remote computing pods within a remote host organization separate from the local host organization”, (Bahramshahry: ¶669).
and performing an action for each job of the subset of jobs based on a priority of each job of the subset of jobs.
However, Bahramshahry teaches: “because there are priority 1 tasks in both groups, the select operation 225 selects the one priority 1 task”, (Bahramshahry: ¶146), “include one priority 2 task selected and planned for execution”, (Bahramshahry: ¶157), “whereas a much lower priority 3 task from group B 503 is currently executing”, (Bahramshahry: ¶196).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine identifying a subset of jobs from among the plurality of jobs, each job of the subset of jobs having at least one task that invokes the first remote system; and performing an action for each job of the subset of jobs based on a priority of each job of the subset of jobs of Bahramshahry with the methods and systems of Gersht resulting in a CI system that can direct broken down jobs to different remote resources. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of "make adjustments to the output and selected 129 work", (Bahramshahry: ¶106) or "improve upon the execution plan" and "replace lower priority tasks with pending higher priority tasks" ... "to correct an erroneous or inefficient selection and planning policy instituted by the scheduler", (Bahramshahry: ¶129), “resulting in workload chunks that are then distributed to the various VMs or workers”, (Bahramshahry: ¶357).
Regarding Claim 19, Gersht teaches:
A computing device, comprising: a memory; and a processor device coupled to the memory,
“Storage device 103 may be physical memory and may include volatile memory devices”, (Gersht: Col 4 lines 36-52), “A host machine may allocate a certain amount of its computing resources (e.g., processor resources (CPU resources), physical or virtual memory”, (Gersht: Col 5 lines 44-59), “A host machine may allocate a certain amount of its computing resources (e.g., processor resources (CPU resources), physical or virtual memory”, (Gersht: Col 12 lines 48-59).
the processor device to: execute a job from among a plurality of jobs executed by a continuous integration system,
“The jobs list includes one or more job representations, which are user-interface representations of jobs that build tool 110 can execute to perform builds”, (Gersht: Col 6 lines 12-30), “A job may be executed, e.g., by a build tool running on a computing node, and the executing job is referred to herein as an “active build.””, (Gersht: Col 2 lines 4-36), “Build tool 110 may include continuous integration build tool 121 for performing continuous build operations” … “Continuous integration build tool 121 may start builds”, (Gersht: Col 4-5 lines 52-22).
the job initiating a task from among a plurality of tasks for the job and the task invoking a first remote system;
“A job can include a set of stages, which may be executed sequentially. The stages can include, for example, compile, test, and deploy stages”, (Gersht: Col 6 lines 12-30), “Continuous integration build tool 121 may start builds, e.g., by executing compiler 115, unit tester 117, and integration tester 119”, (Gersht: Col 4-5 lines 52-22), “the deploy stage may install the executable code on host machines”, (Gersht: Col 2 lines 4-36), “execution module 212 may initiate execution of a corrected job on build tool 110”, (Gersht: Col 9 lines 37-41), “A client machine 111 may be a computing device such as a server computer, a desktop computer” … “The network 105 may be a private network (e.g., a local area network (LAN), a wide area network (WAN), intranet, or other similar private networks) or a public network (e.g., the Internet)”, (Gersht: Col 4 lines 26-35), “Build tool 110 may be located on client 111, on build server 101, or both”, (Gersht: Col 4 lines 1-14, Fig. 1), “tracking, using the integrated development environment, the execution of the software build job by receiving progress data associated with the execution”, (Gersht: Claim 1), “detection module 216 may detect one or more failures by communicating with build tool 110 via a program capable of handling periodic requests for data”, (Gersht: Col 8 lines 7-30), “A job may be executed, e.g., by a build tool running on a computing node”, (Gersht: Col 2 lines 4-36). Examiner notes: build tools are on a local client or a build server connected through the network and is used to execute a job
determine, based on a notification associated with the first remote system, that the task failed in response to invoking the first remote system;
“Continuous integration build tool 121 may detect the completion of a build by receiving a result value from compiler 115”, (Gersht: Col 4-5 lines 52-22), “After build tool 110 compiles the source code 113 and runs unit tests and integration tests, build tool 110 may report whether the attempt to provide the build was a success or includes a failure”, (Gersht: Col 6 lines 3-11), “Detection module 216 may detect failures that occurred during the execution of the job on build tool 110”, (Gersht: Col 8 lines 7-29), “Build tool 110 may be located on client 111, on build server 101, or both”, (Gersht: Col 4 lines 1-14, Fig. 1), “tracking, using the integrated development environment, the execution of the software build job by receiving progress data associated with the execution”, (Gersht: Claim 1). Examiner notes: The build tool which exists in the remote system (client device of Fig 1) notifies/reports a failure.
the first job having at least one task that invokes the first remote system;
“A job can include a set of stages, which may be executed sequentially. The stages can include, for example, compile, test, and deploy stages”, (Gersht: Col 6 lines 12-30), “Continuous integration build tool 121 may start builds, e.g., by executing compiler 115, unit tester 117, and integration tester 119”, (Gersht: Col 4-5 lines 52-22), “the deploy stage may install the executable code on host machines”, (Gersht: Col 2 lines 4-36), “execution module 212 may initiate execution of a corrected job on build tool 110”, (Gersht: Col 9 lines 37-41), “A client machine 111 may be a computing device such as a server computer, a desktop computer” … “The network 105 may be a private network (e.g., a local area network (LAN), a wide area network (WAN), intranet, or other similar private networks) or a public network (e.g., the Internet)”, (Gersht: Col 4 lines 26-35), “Build tool 110 may be located on client 111, on build server 101, or both”, (Gersht: Col 4 lines 1-14, Fig. 1), “tracking, using the integrated development environment, the execution of the software build job by receiving progress data associated with the execution”, (Gersht: Claim 1), “detection module 216 may detect one or more failures by communicating with build tool 110 via a program capable of handling periodic requests for data”, (Gersht: Col 8 lines 7-30), “A job may be executed, e.g., by a build tool running on a computing node”, (Gersht: Col 2 lines 4-36). Examiner notes: build tools are on a local client or a build server connected through the network and is used to execute a job
Further regarding Claim 19, Gersht fails to teach:
identify a first job from among the plurality of jobs,
However Bahramshahry teaches: “components are in turn communicably interfaced with a compute cloud 105 and a Continuous Integration (CI) cloud”, (Bahramshahry: ¶075), “providing connectivity to the cloud based service provider or to the Continuous Integration (CI)”, (Bahramshahry: ¶104), “the produce 126 function builds a list of jobs that have not yet been planned for execution and indeed are not yet executing”, (Bahramshahry: ¶119), “consequently selects and plans for execution the priority 1 task of group A", (Bahramshahry: ¶216), “a first priority 1 workload task may be sent to a first third party cloud”, (Bahramshahry: ¶126).
and perform an action based on a priority of the first job.
However, Bahramshahry teaches: “available tasks will be picked up for execution” … “in further consideration of the priority and SLTs associated with the identified workload tasks”, (Bahramshahry: ¶125), “With room now available or one more high priority P1 job to execute within the compute cloud…”, (Bahramshahry: ¶208)
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine identifying, by the CI system, a first job from among the plurality of jobs, performing, by the CI system, an action based on a priority of the first job of Bahramshahry with the methods and systems of Gersht resulting in a CI system that can select and execute a first job that utilizes a remote system. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of "immediately terminate and evict the currently running workload and initiate execution of the higher priority workload in its place", (Bahramshahry: ¶204) and "reclaiming lower priority tasks presently executing and thus consuming compute resource space", (Bahramshahry: ¶217), “provides greater efficiency to optimize the use of available computing architecture”, (Bahramshahry: ¶360).
Regarding Claim 20,
A non-transitory computer-readable storage medium that includes computer-executable instructions that,
“Storage device 103 may be physical memory and may include volatile memory devices”, (Gersht: Col 4 lines 36-52), “A host machine may allocate a certain amount of its computing resources (e.g., processor resources (CPU resources), physical or virtual memory”, (Gersht: Col 5 lines 44-59), “A host machine may allocate a certain amount of its computing resources (e.g., processor resources (CPU resources), physical or virtual memory”, (Gersht: Col 12 lines 48-59).
when executed, cause one or more processor devices to: execute a job from among a plurality of jobs executed by a continuous integration system,
“The jobs list includes one or more job representations, which are user-interface representations of jobs that build tool 110 can execute to perform builds”, (Gersht: Col 6 lines 12-30), “A job may be executed, e.g., by a build tool running on a computing node, and the executing job is referred to herein as an “active build.””, (Gersht: Col 2 lines 4-36), “Build tool 110 may include continuous integration build tool 121 for performing continuous build operations” … “Continuous integration build tool 121 may start builds”, (Gersht: Col 4-5 lines 52-22), “The build server(s) 101 may be hosted on any type of computing node, which may be a virtualized or bare metal computing device such as a server compute”, (Gersht: Col 3 lines 40-67).
the job initiating a task from among a plurality of tasks for the job and the task invoking a first remote system;
“A job can include a set of stages, which may be executed sequentially. The stages can include, for example, compile, test, and deploy stages”, (Gersht: Col 6 lines 12-30), “Continuous integration build tool 121 may start builds, e.g., by executing compiler 115, unit tester 117, and integration tester 119”, (Gersht: Col 4-5 lines 52-22), “the deploy stage may install the executable code on host machines”, (Gersht: Col 2 lines 4-36), “execution module 212 may initiate execution of a corrected job on build tool 110”, (Gersht: Col 9 lines 37-41), “A client machine 111 may be a computing device such as a server computer, a desktop computer” … “The network 105 may be a private network (e.g., a local area network (LAN), a wide area network (WAN), intranet, or other similar private networks) or a public network (e.g., the Internet)”, (Gersht: Col 4 lines 26-35), “Build tool 110 may be located on client 111, on build server 101, or both”, (Gersht: Col 4 lines 1-14, Fig. 1), “tracking, using the integrated development environment, the execution of the software build job by receiving progress data associated with the execution”, (Gersht: Claim 1), “detection module 216 may detect one or more failures by communicating with build tool 110 via a program capable of handling periodic requests for data”, (Gersht: Col 8 lines 7-30), “A job may be executed, e.g., by a build tool running on a computing node”, (Gersht: Col 2 lines 4-36). Examiner notes: build tools are on a local client or a build server connected through the network and is used to execute a job
determine, based on a notification associated with the first remote system, that the task failed in response to invoking the first remote system;
“Continuous integration build tool 121 may detect the completion of a build by receiving a result value from compiler 115”, (Gersht: Col 4-5 lines 52-22), “After build tool 110 compiles the source code 113 and runs unit tests and integration tests, build tool 110 may report whether the attempt to provide the build was a success or includes a failure”, (Gersht: Col 6 lines 3-11), “Detection module 216 may detect failures that occurred during the execution of the job on build tool 110”, (Gersht: Col 8 lines 7-29), “Build tool 110 may be located on client 111, on build server 101, or both”, (Gersht: Col 4 lines 1-14, Fig. 1), “tracking, using the integrated development environment, the execution of the software build job by receiving progress data associated with the execution”, (Gersht: Claim 1). Examiner notes: The build tool which exists in the remote system (client device of Fig 1) notifies/reports a failure.
the first job having at least one task that invokes the first remote system;
“A job can include a set of stages, which may be executed sequentially. The stages can include, for example, compile, test, and deploy stages”, (Gersht: Col 6 lines 12-30), “Continuous integration build tool 121 may start builds, e.g., by executing compiler 115, unit tester 117, and integration tester 119”, (Gersht: Col 4-5 lines 52-22), “the deploy stage may install the executable code on host machines”, (Gersht: Col 2 lines 4-36), “execution module 212 may initiate execution of a corrected job on build tool 110”, (Gersht: Col 9 lines 37-41), “A client machine 111 may be a computing device such as a server computer, a desktop computer” … “The network 105 may be a private network (e.g., a local area network (LAN), a wide area network (WAN), intranet, or other similar private networks) or a public network (e.g., the Internet)”, (Gersht: Col 4 lines 26-35), “Build tool 110 may be located on client 111, on build server 101, or both”, (Gersht: Col 4 lines 1-14, Fig. 1), “tracking, using the integrated development environment, the execution of the software build job by receiving progress data associated with the execution”, (Gersht: Claim 1), “detection module 216 may detect one or more failures by communicating with build tool 110 via a program capable of handling periodic requests for data”, (Gersht: Col 8 lines 7-30), “A job may be executed, e.g., by a build tool running on a computing node”, (Gersht: Col 2 lines 4-36). Examiner notes: build tools are on a local client or a build server connected through the network and is used to execute a job
Further regarding Claim 20, Gersht fails to teach:
identify a first job from among the plurality of jobs,
However Bahramshahry teaches: “components are in turn communicably interfaced with a compute cloud 105 and a Continuous Integration (CI) cloud”, (Bahramshahry: ¶075), “providing connectivity to the cloud based service provider or to the Continuous Integration (CI)”, (Bahramshahry: ¶104), “the produce 126 function builds a list of jobs that have not yet been planned for execution and indeed are not yet executing”, (Bahramshahry: ¶119), “consequently selects and plans for execution the priority 1 task of group A", (Bahramshahry: ¶216), “a first priority 1 workload task may be sent to a first third party cloud”, (Bahramshahry: ¶126).
and perform an action based on a priority of the first job
However, Bahramshahry teaches: “available tasks will be picked up for execution” … “in further consideration of the priority and SLTs associated with the identified workload tasks”, (Bahramshahry: ¶125), “With room now available or one more high priority P1 job to execute within the compute cloud…”, (Bahramshahry: ¶208)
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine identifying, by the CI system, a first job from among the plurality of jobs, performing, by the CI system, an action based on a priority of the first job of Bahramshahry with the methods and systems of Gersht resulting in a CI system that can select and execute a first job that utilizes a remote system. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of "immediately terminate and evict the currently running workload and initiate execution of the higher priority workload in its place", (Bahramshahry: ¶204) and "reclaiming lower priority tasks presently executing and thus consuming compute resource space", (Bahramshahry: ¶217), “provides greater efficiency to optimize the use of available computing architecture”, (Bahramshahry: ¶360).
Claim 6 is rejected under 35 U.S.C. 103(a) as being unpatentable over Gersht, in view of Bahramshahry, further in view of Olds et al. (US 20180124188 A1) (hereinafter Olds).
Regarding Claim 6, Gersht teaches:
the first remote system comprises a service
“The computing environment 100 may provide build management services that include executing build operations”, (Gersht: Col 3 lines 49-67).
Further regarding Claim 6, Gersht in view of Bahramshahry fails to teach:
accessing a service registry list; and identifying an available service from the service registry list that corresponds to the service, wherein the second remote system comprises the available service.
However, Olds teaches: “The system also identifies, within a services registry, one or more services registered to receive network connections associated with the identified network protocol”, (Olds: Abstract), “The services management component 150 maintains a registry of services 160 available within the local network”, (Olds: ¶031), “In at least one embodiment, services 250(a-c) register with the services registry 230 by communicating registration data to the services interface 240”, (Olds: ¶041), “Identify a particular service” … “FIG. 4 illustrates a flow chart of an embodiment of a method for optimizing bandwidth usage by directly linking two remote devices”, (Olds: ¶023, Fig. 4)
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine accessing a service registry list; and identifying an available service from the service registry list that corresponds to the service, wherein the second remote system comprises the available service of Olds with the methods and systems of Gersht resulting in a CI system that can direct tasks to different remote resources depending on available services of a remote system. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of "significant bandwidth benefits by eliminating a bottle-neck at a centralized server that handles all communications", (Olds: ¶058).
Claims 8, 9, 15 and 16 are rejected under 35 U.S.C. 103(a) as being unpatentable over Gersht, in view of Bahramshahry, further in view of Painter et al. (US 20180349178 A1) (hereinafter Painter).
Regarding Claim 8, Gersht fails to teach:
determining that the priority of the first job is low;
However, Bahramshahry teaches: “some workloads may be low priority, others medium priority, others high priority, and yet others may be classified as critical priority”, (Bahramshahry: ¶544), “may re-evaluate scheduled work and identify a lower priority job”, (Bahramshahry: ¶203), “produced list of all workload task identifies a priority for each of the workload tasks to be executed”, (Bahramshahry: ¶236).
pausing the first job
However, Bahramshahry teaches: “Accordingly, at the select phase 1920, there is no work performed due to a forced delay 1921 which causes a pause or delay of workloads P1-P4 (elements 1951 to 1954)”, (Bahramshahry: ¶449), “consequently selects and plans for execution the priority 1 task of group A", (Bahramshahry: ¶216), “a first priority 1 workload task may be sent to a first third party cloud”, (Bahramshahry: ¶126).
sending a request to the first remote system.
However, Bahramshahry teaches: “a scheduler to request information from the cache specifying the one or more computing resources available to execute workload tasks and the plurality of workload tasks to be scheduled for execution”, (Bahramshahry: Abstract), “the external cloud interface 627 provides a communications link to third party private and public computing clouds 628 on behalf of the scheduling service 665”, (Bahramshahry: ¶222), “requests 117 are received at, or submitted to, a web-server”, (Bahramshahry: ¶069), “discovery engine(s) 643 to receive query responses for workloads executing at compute clouds”, (Bahramshahry: ¶221)
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine determining that the priority of the first job is low; pausing the first job sending a request to the first remote system of Bahramshahry with the methods and systems of Gersht resulting in a CI system that can direct tasks to different remote resources. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of "make adjustments to the output and selected 129 work", (Bahramshahry: ¶106) or "improve upon the execution plan" and "replace lower priority tasks with pending higher priority tasks" ... "to correct an erroneous or inefficient selection and planning policy instituted by the scheduler", (Bahramshahry: ¶129).
Further regarding Claim 8, Gersht in view of Bahramshahry fails to teach:
pausing the first job for a predetermined amount of time
However, Painter teaches: “execution of a job can be paused whilst completion of external operations are awaited”, (Painter: ¶197), “under high usage do not process jobs from the cluster. If the threshold is exceeded that node will only poll its local queue 1603 until a fixed period of time has passed”, (Painter: ¶214)
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine pausing the first job for a predetermined amount of time of Painter with the methods and systems of Gersht in view of Bahramshahry resulting in a CI system that can pause tasks depending on their priority to allow higher priority jobs to process. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of "not exhausting processing capacity such that it cannot process the jobs it currently has started", (Painter: ¶214)
Regarding Claim 9, Gersht fails to teach:
in response to sending the request to the first remote system, receiving a response from the first remote system, the response indicating that the first remote system is available;
However, Bahramshahry teaches: “a scheduler to request information from the cache specifying the one or more computing resources available to execute workload tasks and the plurality of workload tasks to be scheduled for execution”, (Bahramshahry: Abstract), “the external cloud interface 627 provides a communications link to third party private and public computing clouds 628 on behalf of the scheduling service 665”, (Bahramshahry: ¶222), “requests 117 are received at, or submitted to, a web-server”, (Bahramshahry: ¶069), “discovery engine(s) 643 to receive query responses for workloads executing at compute clouds”, (Bahramshahry: ¶221), “cloud B 440 which becomes available again after a scheduled or unscheduled period of inaccessibility, the executing tasks at cloud B 440 will simply be stripped from the produce list of the scheduler (e.g., by the workload discovery engine updating the local cache based on query response(s) from the compute cloud B 440)”, (Bahramshahry: ¶186). Examiner notes: the workload discovery engine queries remote system cloud B and receives a response from cloud B indicating that it’s no longer executing anything and is hence available for task assignment.
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine in response to sending the request to the first remote system, receiving a response from the first remote system, the response indicating that the first remote system is available of Bahramshahry with the methods and systems of Gersht resulting in a CI system that can direct tasks to different remote resources depending on a determination of available services in a remote system. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of "make adjustments to the output and selected 129 work", (Bahramshahry: ¶106) or "improve upon the execution plan" and "replace lower priority tasks with pending higher priority tasks" ... "to correct an erroneous or inefficient selection and planning policy instituted by the scheduler", (Bahramshahry: ¶129).
Further regarding Claim 9, Gersht in view of Bahramshahry fails to teach:
and resuming the first job.
However, Painter teaches: “When external operations complete the jobs are resumed from that point”, (Painter: ¶220), “When external operations complete the jobs are resumed from the point of being paused”, (Painter: ¶197).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine resuming the first job of Painter with the methods and systems of Gersht in view of Bahramshahry resulting in job that can maintain its progress while not being actively processed. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “processing of the original job will continue when the node retrieves the job from the queue”, (Bahramshahry: ¶137), and “improved delay dependencies profile, improved load balancing and improved scheduling of services", (Painter: ¶220).
Regarding Claim 15, Gersht teaches:
executing the first job, the first job invoking the first remote system;
and executing the task, the task invoking the first remote system.
“A job can include a set of stages, which may be executed sequentially. The stages can include, for example, compile, test, and deploy stages”, (Gersht: Col 6 lines 12-30), “Continuous integration build tool 121 may start builds, e.g., by executing compiler 115, unit tester 117, and integration tester 119”, (Gersht: Col 4-5 lines 52-22), “the deploy stage may install the executable code on host machines”, (Gersht: Col 2 lines 4-36), “execution module 212 may initiate execution of a corrected job on build tool 110”, (Gersht: Col 9 lines 37-41), “A client machine 111 may be a computing device such as a server computer, a desktop computer” … “he network 105 may be a private network (e.g., a local area network (LAN), a wide area network (WAN), intranet, or other similar private networks) or a public network (e.g., the Internet)”, (Gersht: Col 4 lines 26-35) .
Further regarding Claim 15, Gersht fails to teach:
modifying the first job to use the first remote system;
modifying the task to use the first remote system;
However, Bahramshahry teaches: “When a new container is created from an image, a writable layer is also created” … “This layer can store newly written files, modifications to existing files”, (Bahramshahry: ¶446), “such workloads may need to be executed in a different location, on a different cloud platform entirely”, (Bahramshahry: ¶362), “sometimes workloads depend on internal services which are associated with different compute characteristics on different clouds”, (Bahramshahry: ¶527), “scheduling the copy of workload P1 into a different cloud”, (Bahramshahry: ¶537), “one or more remote computing pods within a remote host organization separate from the local host organization”, (Bahramshahry: ¶669).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine modifying the first job to use the first remote system; modifying the task to use the first remote system; of Bahramshahry with the methods and systems of Gersht resulting in a CI system that can direct tasks to different remote resources depending on a determination of available services in a remote system. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of "make adjustments to the output and selected 129 work", (Bahramshahry: ¶106) or "improve upon the execution plan" and "replace lower priority tasks with pending higher priority tasks" ... "to correct an erroneous or inefficient selection and planning policy instituted by the scheduler", (Bahramshahry: ¶129).
Further regarding Claim 15, Gersht in view of Bahramshahry fails to teach:
waiting a predetermined amount of time;
However, Painter teaches: “execution of a job can be paused whilst completion of external operations are awaited”, (Painter: ¶197), “under high usage do not process jobs from the cluster. If the threshold is exceeded that node will only poll its local queue 1603 until a fixed period of time has passed”, (Painter: ¶214)
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine waiting a predetermined amount of time; of Painter with the methods and systems of Gersht in view of Bahramshahry resulting in a CI system that can pause tasks depending on their priority to allow higher priority task to process. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of "not exhausting processing capacity such that it cannot process the jobs it currently has started", (Painter: ¶214)
Regarding Claim 16, Gersht in view of Painter fails to teach:
prior to modifying the first job to use the first remote system, determining that the at least one task of the first job is a final task of a plurality of tasks for the first job;
However, Bahramshahry teaches: “the last remaining priority 1 task from group A 202 is planned for execution”, (Bahramshahry: ¶155), “With room now available or one more high priority P1 job to execute within the compute cloud A 505”, (Bahramshahry: ¶208).
and determining that the task of the job is a first task of the plurality of tasks for the job.
However, Bahramshahry teaches: “determining a first one of the pending workload tasks”, (Bahramshahry: ¶660), “selects and plans for execution the priority 1 task of group A 502 resulting in the priority 1 task of group A”, (Bahramshahry: ¶216).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine determining that the at least one task of the first job is a final task of a plurality of tasks for the first job and determining that the task of the job is a first task of the plurality of tasks for the job of Bahramshahry with the methods and systems of Gersht resulting in a CI system that can recognize when it must make space for a new job by replacing one that is about to finish. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of "immediately terminate and evict the currently running workload and initiate execution of the higher priority workload in its place", (Bahramshahry: ¶204) and “tasks may be removed based on whether or not the evicted tasks may be started later and still meet their applicable SLT”, (Bahramshahry: ¶219).
Claim 10 is rejected under 35 U.S.C. 103(a) as being unpatentable over Gersht, in view of Bahramshahry, further in view of Harper et al. (US 20230044016 A1) (hereinafter Harper).
Regarding Claim 10, Gersht fails to teach:
determining that the priority of the first job is high;
However, Bahramshahry teaches: “some workloads may be low priority, others medium priority, others high priority, and yet others may be classified as critical priority”, (Bahramshahry: ¶544), “the scheduler recognizes that a high priority 1 task remains within each of groups A”, (Bahramshahry: ¶196).
modifying the task to use the local version of the first remote system and the first job to use the local version of the first remote system.
However, Bahramshahry teaches: “plurality workload tasks for execution on a different computing resource utilizing replicated copies” … “a container having information represented therein to restore a computing resource”, (Bahramshahry: ¶669), “When a new container is created from an image, a writable layer is also created” … “This layer can store newly written files, modifications to existing files”, (Bahramshahry: ¶446) “sometimes workloads depend on internal services which are associated with different compute characteristics on different clouds”, (Bahramshahry: ¶527), “one or more computing pods within a local host organization within which a scheduling service of the system operates when the one or more computing pods are accessible to the scheduler”, (Bahramshahry: ¶669)
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine modifying the task to use the local version of the first remote system and the first job to use the local version of the first remote system of Bahramshahry with the methods and systems of Gersht resulting in CI system that can determine which job is most important and route it to available compute resources. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of "make adjustments to the output and selected 129 work", (Bahramshahry: ¶106) or "improve upon the execution plan" by “planning determinations based upon the most up to date and relevant information without having to go and collect such information”, (Bahramshahry: ¶079), “making such data available by caching the needed information in the local cache 140 for fast retrieval and processing”, (Bahramshahry: ¶085).
Further regarding Claim 10, Gersht in view of Bahramshahry fails to teach:
accessing a manifest file for the first remote system, wherein the first remote system is a service and the manifest file corresponds to the service;
However, Harper teaches: “A system and method for service management and container orchestration (SMCO)”, (Harper: Abstract), “retrieving, via a manifest builder of a SMCO system and at a build time, the manifest launcher in communication with at least one remote registry via a network connection” … “generating, via the manifest builder and at the build time, one or more manifest artifacts based on the one or more container images and the one or more configuration tools”, (Harper: Claim 11, Fig 6), “the SMCO system retrieves from remote registries containers”, (Harper: ¶046), “he manifest artifact (118, FIG. 1; e.g., container images (122, FIG. 1) used by the package in “tarball” form, command line tools (e.g., YAML docker compose)”, (Harper: ¶037).
installing the first remote system as a local version of the first remote system based on the manifest file;
However, Harper teaches: “the SMCO system retrieves from remote registries containers”, (Harper: ¶046), “generating, via the manifest builder and at the build time, one or more manifest artifacts based on the one or more container images and the one or more configuration tools”, (Harper: Claim 11, Fig 6), “updating the at least one application within a container runtime environment (CRE) of the host processing environment, via a manifest launcher” … “configuring, at the run time and via the manifest launcher, at least one of the CRE or a host operating system (OS) of the host processing environment according to a desired state of the at least one application, (Harper: Claim 11, Fig 6), “the SMCO system includes a manifest launcher for consuming manifest artifacts to load containers for installation or update of the associated applications to local container registries”, (Harper: Abstract).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine accessing a manifest file for the first remote system, wherein the first remote system is a service and the manifest file corresponds to the service; installing the first remote system as a local version of the first remote system based on the manifest file of Harper with the methods and systems of Gersht in view of Bahramshahry resulting in CI system that can configure services using a manifest file. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of "eliminating the need to download containers or configuration tools from an external repository via a network connection at runtime", (Harper: ¶006), “may provide consistent availability of application resources (e.g., in the event of an installation, removal, update, or rollback) without relying on a stable network connection”, (Harper: ¶044).
Claim 11 is rejected under 35 U.S.C. 103(a) as being unpatentable over Gersht, in view of Bahramshahry, further in view of Singh et al. (US 20220357972 A1) (hereinafter Singh).
Regarding Claim 11, Gersht fails to teach:
determining that the priority of the first job is high;
However, Bahramshahry teaches: “some workloads may be low priority, others medium priority, others high priority, and yet others may be classified as critical priority”, (Bahramshahry: ¶544), “the scheduler recognizes that a high priority 1 task remains within each of groups A”, (Bahramshahry: ¶196).
identifying a container repository with a container image for the task, wherein the first remote system comprises a remote container repository with the container image for the task;
“Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package”, (Bahramshahry: ¶440), “plurality workload tasks for execution on a different computing resource utilizing replicated copies” … “a container having information represented therein to restore a computing resource”, (Bahramshahry: ¶669), “When a new container is created from an image, a writable layer is also created” … “This layer can store newly written files, modifications to existing files” … “Multiple containers can share the same underlying base image and have their own data state thanks to the writable layer”, (Bahramshahry: ¶446), “A container that moves from one Docker environment to another with the same OS will work without changes”, (Bahramshahry: ¶442), “A docker image is a file, having therein multiple layers, which is then used to execute code in a Docker container”, (Bahramshahry: ¶439), “system operates when the one or more computing pods are accessible to the scheduler; one or more remote computing pods within a remote host organization separate”, (Bahramshahry: ¶660), “Docker allows applications to” … “be shipped with things not already running on the host computer”, (Amrin: ¶441). Examiner notes: Reference does not teach a container repository but does teach container images being use for the purposes of utilizing a remote system via a container derived from an image managed by Docker that can be sent to host computers that may be remote.
running a container based on the container image.
However, Bahramshahry teaches: A docker image is a file, having therein multiple layers, which is then used to execute code in a Docker container”, (Bahramshahry: ¶439), “Layers are added to the base image to tailor the code to run in a container”, (Bahramshahry: ¶445).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine determining that the priority of the first job is high; identifying a container repository with a container image for the task, wherein the first remote system comprises a remote container repository with the container image for the task; and running a container based on the container image of Bahramshahry with the methods and systems of Gersht resulting in CI system determine which job is most important and route it to available compute resources regardless of resource hardware. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of "that the application will run on any other Linux machine regardless of any customized settings that machine might have that could differ from the machine used for writing and testing the code since all of the libraries and dependencies are self-contained", (Bahramshahry: ¶440).
Further regarding Claim 11, Gersht in view of Bahramshahry fails to teach:
identifying a container repository with a container image for the task, wherein the first remote system comprises a remote container repository with the container image for the task; pulling the container image for the task from the container repository;
However, Singh teaches: “A task definition is received. The task definition indicates at least a location from which one or more software image can be obtained” … “the one or more software image is obtained from the location included in the task definition”, (Singh: Abstract), “The software containers may be configured to run as tasks according to a task definition, and the task definition may be stored as a task definition file” … ““software container instances, may be provided to the computing resource service provider”, (Singh: ¶022), “the task definition also specifies that a second task, entitled “web,” has a software image located at the path “hub.web.com/rails:latest.”, (Singh: ¶029), “in some cases, receiving the software image includes having a software image accessible to the computing resource service provider, such as through a resource location specified in a task definition file”, (Singh: ¶090), “a parameter indicating a location of an image file may be passed instead of an image file”, (Singh: ¶120).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine identifying a container repository with a container image for the task, wherein the first remote system comprises a remote container repository with the container image for the task; pulling the container image for the task from the container repository of Singh with the methods and systems of Gersht in view of Bahramshahry resulting in CI system determine which job is most important and route it to available compute resources regardless of resource hardware. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of "advantages over general virtualization systems by improving portability, providing multitenant services, and auto-scaling resources as demand increases or decreases", (Singh: ¶024).
Claim 12 and 13 are rejected under 35 U.S.C. 103(a) as being unpatentable over Gersht, in view of Bahramshahry, further in view of Rodrigues Nascimento et al. (US 20170366616 A1) (hereinafter Nascimento).
Regarding Claim 12, Gersht teaches:
prior to performing the action based on the priority of the first job, obtaining a file that defines the first job;
“Instructions specifying how to perform the build process may be provided to the build tools in the form of build files” … “A particular set of instructions specifying how to perform a particular build process are referred to herein as a software build “job”, (Gersht: Col 2 lines 4-36), “Instructions can be provided to build tools 110 in the form of build files”, (Gersht: Col 6 lines 12-30).
Further regarding Claim 12, Gersht in view of Bahramshahry fails to teach:
and determining, based on the file, the priority of the first job.
However, Nascimento teaches: “when operating according to the EPIDEMIC job and image distribution priority, may send the Job Description in the form of a “torrent” file”, (Nascimento: ¶179), “a Job Description may include a “Priority Level/Class” field” … “classes may be specified that may represent, for example, a “low-priority,” a “medium-priority,” and a “high-priority” level at which the software application is to be run”, (Nascimento: ¶202),
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine determining, based on the file, the priority of the first job of Nascimento with the methods and systems of Gersht in view of Bahramshahry resulting in CI system determine which job is most important based on a file describing that job. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “parsing may produce information that identifies corresponding conditions for the execution”, (Nascimento: ¶215), and “performs actions to ensure the current state of the nodes affected by the “Job Description” meets/matches the desired node state by, for example, pushing new/updated configuration information to the affected nodes”, (Nascimento: ¶160).
Regarding Claim 13, Gersht teaches:
prior to performing the action based on the priority of the first job, obtaining a file that defines the first job;
“Instructions specifying how to perform the build process may be provided to the build tools in the form of build files” … “A particular set of instructions specifying how to perform a particular build process are referred to herein as a software build “job”, (Gersht: Col 2 lines 4-36), “Instructions can be provided to build tools 110 in the form of build files”, (Gersht: Col 6 lines 12-30).
Further regarding Claim 13, Gersht fails to teach:
a plurality of tasks of the first job and a priority of each task of the plurality of tasks,
However, Bahramshahry teaches: “a workload discovery engine to identify a plurality of workload tasks to be scheduled for execution”, (Bahramshahry: Abstract), “workload tasks will require some amount of time to process” … “may specify a priority or an expected completion”, (Bahramshahry: ¶087), “with high priority tasks and gradually decrease the priority to permit allocation of lower priority tasks via the scheduler 125”, (Bahramshahry: ¶111)
wherein the priority of the first job comprises a highest priority of each priority of the plurality of tasks.
However, Bahramshahry teaches: “the scheduler recognizes that a high priority 1 task remains within each of groups A and B”, (Bahramshahry: ¶196), “there will be mistakes which need correcting, such as a higher priority job being left unscheduled”, (Bahramshahry: ¶199), “are two higher priority jobs which must be selected and planned for execution as depicted here, along with the lower priority P2 and P3 jobs”, (Bahramshahry: ¶205), “higher priority P1 task subsequent to the analyze stage”, (Bahramshahry: ¶212).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine plurality of tasks of the first job and a priority of each task of the plurality of tasks, wherein the priority of the first job comprises a highest priority of each priority of the plurality of tasks of Bahramshahry with the methods and systems of Gersht resulting in CI system determine which job contains tasks that are most important for execution. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of "starvation is avoided by configuring the capacity round to begin allocating at very low percentage of the total available resources", (Bahramshahry: ¶111).
Further regarding Claim 13, Gersht in view of Bahramshahry fails to teach:
determining, based on the file
However, Nascimento teaches: : “when operating according to the EPIDEMIC job and image distribution priority, may send the Job Description in the form of a “torrent” file”, (Nascimento: ¶179), “a Job Description may include a “Priority Level/Class” field” … “classes may be specified that may represent, for example, a “low-priority,” a “medium-priority,” and a “high-priority” level at which the software application is to be run”, (Nascimento: ¶202),
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine determining, based on the file, the priority of the first job of Nascimento with the methods and systems of Gersht in view of Bahramshahry resulting in CI system determine which job is most important based on a file describing that job. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “parsing may produce information that identifies corresponding conditions for the execution”, (Nascimento: ¶215), and “performs actions to ensure the current state of the nodes affected by the “Job Description” meets/matches the desired node state by, for example, pushing new/updated configuration information to the affected nodes”, (Nascimento: ¶160).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SHIHAB ALAM whose telephone number is (571)272-8705. The examiner can normally be reached Mon - Fri 7:30am-5pm.
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, Bradley Teets can be reached at (571) 272-3338. 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.
/SHIHAB ALAM/Examiner, Art Unit 2197
/BRADLEY A TEETS/Supervisory Patent Examiner, Art Unit 2197