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 .
Claims 21-40 have been submitted for examination and are pending further prosecution by the United States Patent & Trademark Office.
Allowable Subject Matter
Claim 24-27, 31-34 and 38-40 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Claim Objections
The following claims are objected to because of informalities and antecedence issues. It is suggested Applicants amend these claims as follows:
Claim 21
-- initiate, in accordance with a second parameter variation of the set of parameters for different individual ones of the plurality of computations assigned to respective ones of the groups of computational resources, execution of an assigned one of the plurality of computations via a second one of the groups [[u]] of computational resources, --
Claim 22
-- one or more of the groups of computational resources are configured to execute one or more other computations corresponding to one or more others of the plurality of steps of the workflow. --
Claim 29
-- executing, by one or more of the groups of computational resources, one or more other computations corresponding to one or more others of the plurality of steps of the workflow. --
Claim 33
-- the method comprises: --
Claim 34
-- the method comprises: --
Claim 36
-- initiating execution, by one or more of the groups of computational resources, one or more other computations corresponding to one or more others of the plurality of steps of the workflow. --
Claims 22-27 are additionally objected to due to their dependence on objected parent claim(s).
Appropriate correction is required.
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 of this title, 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 21, 22, 28, 29, 35 and 36 are rejected under 35 U.S.C. 103 as being unpatentable over WO 2013158707 A1 - hereinafter "Hebert", in view of US 20140068560 A1 - hereinafter "Eksten", and in view of US 20120060165 A1 - hereinafter "Clarke".
With respect to claim 21, Hebert teaches,
A system, comprising: - Fig. 1
one or more computing devices - Server(s) 104 (Fig. 1); implementing an orchestrator - Server Module 104 (Fig. 1), comprising one or more respective processors and memory configured to: - Fig. 19
assign individual ones of a plurality of computations to be executed at respective groups of one or more computational resources from a fleet of computational resources for performing computations in a pipeline, - "[0032] The server includes a server module (e.g., a server module 114). Server module 114 can receive a request from the client(s) 102(1)-102(N) via network 106A. Server module 114 can select an application based on this request. For example, the request can include parameters that indicate operation(s) to be performed on data, and thus server module 114 can select an application that can perform these operation(s) (computations). Server module 114 can select computing resources for this application. Server module 114 can communicate over network 106B with nodes 112(1)-112(N) to send communication (e.g., based on a workflow) to execute the application using the selected computing resources."; "[0038] In element 204, application and resource(s) are selected based on the parameters, according to one embodiment."; wherein individual ones of the computations are associated with a set of parameters including program code and input; - "[0043] ...A request from one of the clients can include these parameters. In one embodiment, the parameters can include one or more of the following parameters, as also shown in Figure 3B (which illustrates various parameters 350 that can be provided using the request):"; "[0044] Application(s) (program code) - desired application(s) 356 to be executed, the application parameters can include location of executable binaries (such as on storage);"; "[0045] Operation(s) (computations) - desired operation(s) (e.g., functions) of the applications to be executed,"; "[0048] Data file(s) (input) - location, size, and/or data type parameter(s) for the data file(s) 352 that is to be operated on by the application (e.g., as input data), location information can include names and/or path names of data files on the third-party storage."
initiate, in accordance with a first parameter variation of the set of parameters for different individual ones of the plurality of computations assigned to respective ones of the groups of computational resources, execution of an assigned one of the plurality of computations via a first one of the groups of computational resources to produce output, - "[0040] In element 208, the application is executed using the computing resources, according to one embodiment. The application is executed based on the parameters of the request, according to one embodiment."; "[0041] In element 210, the results of the application execution can be returned (such as over network 106A) to the client(s) that initiated the request. Method 200 is described in more detail below, such as with respect to Figures 3 and 4. In some embodiments, various elements of method 200 can be executed by server module 114, and other elements of method 200 can be executed by one or more nodes 112(1)-112(N)."; "[0043] ...A request from one of the clients can include these parameters."; "[0044] Application(s)", "[0045] Operation(s)"; "[0046] Resource(s)"; "[0048] Data file(s)"; wherein groups; and - "[0040] ...In one implementation, the selected computing resource(s) can access the data (e.g., from third-party storage) during the execution of the application."
initiate, in accordance with a second parameter variation of the set of parameters for different individual ones of the plurality of computations assigned to respective ones of the groups of computational resources, execution of an assigned one of the plurality of computations via a second one of the groups [[u]] of computational resources, - "[0040] In element 208, the application is executed using the computing resources, according to one embodiment. The application is executed based on the parameters of the request, according to one embodiment."; "[0041] In element 210, the results of the application execution can be returned (such as over network 106A) to the client(s) that initiated the request. Method 200 is described in more detail below, such as with respect to Figures 3 and 4. In some embodiments, various elements of method 200 can be executed by server module 114, and other elements of method 200 can be executed by one or more nodes 112(1)-112(N)."; "[0043] ...A request from one of the clients can include these parameters."; "[0044] Application(s)", "[0045] Operation(s)"; "[0046] Resource(s)"; "[0048] Data file(s)";
Hebert does not explicitly teach wherein first program code representing the assigned computation,
However, in the analogous field of resource allocation, Eksten teaches:
"[0053] The system 10 may enable decomposition of hardware and software problems into their core elements. These core elements may be referred to as components 24. By breaking down multiple problems, a catalog of components 24 may be developed that can be brought together in different ways (e.g. by graphs 28, blueprints 28a) to solve new problems."
"[0056] The system 10 may provide a communication/management bridge between a higher level application and the cloud engines 36a which run jobs."
"[0208] The cloud engine 36 is operable to send a request to the repository 32 for the identified components 24 and graphs 28, receive a copy of the components 24 and graphs 28 from the repository 32, and dynamically build a media application using the components 24 and graphs 28."
It would have been obvious for one of ordinary skill in the art before the effective filing date of the invention to implement Hebert with Eksten's teachings because doing so would provide Hebert's system with the ability to optimize resource usage, as suggested by Eksten (Abstract).
Hebert does not explicitly teach wherein the second parameter variation: includes the first program code and a second input that differs at least in part from the first input.
However, in the analogous field of resource allocation, Clarke teaches:
wherein the second parameter variation: - "[0017] ...At stage B.2, the cloud pipeline manager 103 uses the data from the job file 105 and the preliminary resource availability estimates to generate a plan or design 107 (parameter variation) for performing the data processing job in stages with the available cloud computing resources that satisfy job constraints. This avoids cumbersome delivery of all of the data for the processing job at once or beforehand, and allows for more flexible adaptation of the design to the available resources. As with the decomposition, the cloud pipeline plan 107 can be constrained to a specification(s) or parameter(s)."; ...includes the first program code and a second input that differs at least in part from the first input. - "[0018] ...The pipeline design 107 indicates the applications corresponding to the computing tasks (i.e., the applications that will perform the computing tasks), data sources, and data chunks."; "[0021] At stage C, the job to cloud pipeline manager 103 generates software images (e.g., ISO images, disk images, boot images) and executable/interpretable instructions 109 to implement the pipeline design 107 with resources allocated from a cloud computing service provider. The software images 109 comprise a complete operating system that is compatible with the cloud environment provided, the code enabling the machine to participate in the pipeline, a directory structure with files for performing one or more computing tasks as identified by job file 105 and one or more authentication tokens. The software images 109 can comprise multiple instances of a same software image, software images that employ the same tool or application but operate upon different data chunks, etc."
It would have been obvious for one of ordinary skill in the art before the effective filing date of the invention to implement Hebert and Eksten with Clarke's teachings because doing so would provide Hebert/Eksten's system with the ability to efficiently group together computing tasks for execution by applications, as suggested by Clarke [0018].
With respect to claim 28, Hebert teaches,
A computer-implemented method performed by one or more computing devices, comprising: - Fig. 19
The remaining limitations are rejected using the mapping from analogous claim 1.
With respect to claim 35, Hebert teaches,
One or more non-transitory computer-readable media storing program instructions executable on or across one or more processors to perform: - Fig. 19
The remaining limitations are rejected using the mapping from analogous claim 1.
With respect to claims 22, 29 and 36, Hebert teaches,
the computations represent steps in a workflow comprising a plurality of steps of the workflow; and - "[0004] ...The workflow indicates that the application performs the operation(s)."; "[00115] ...For example, as described in some of the examples above, a single workflow can include a job script for a BWA align operation, and another job script for a SAM function."
one or more of the groups of computational resources are configured to execute one or more other computations - "[0062] ...In another example, server module 114 can determine that the BWA application (i.e., implementing the align operation) is to be executed on one resource of node 112(1), and that a certain operation of the SAM application is to be executed on another resource, such as of another node 112(2)."
Claims 23, 30 and 37 are rejected under 35 U.S.C. 103 as being unpatentable over Hebert, Eksten, and Clarke, in view of US 5668993 A - "Peters" - cited in the IDS dated 8/23/24.
With respect to claims 23, 30 and 37, Hebert does not explicitly teach,
the execution of an assigned one of the plurality of computations via the first one of the groups of computational resources is performed for a first entity of a plurality of entities; and
the execution of an assigned one of the plurality of computations via the second one of the groups of computational resources is performed for one or more other entities of the plurality of entities.
However, in the analogous field of resource allocation, Peters teaches:
"In a preferred embodiment, both front end processor 300 and back end processor 310 comprise SMP systems. Because the present invention processes each customer account (entity) as a discrete event, the advantages of the SMP architecture may be exploited. Particularly, because each customer account is treated as a discrete event, each discrete event can be processed independent of the other discrete events and thus utilize as many CPU's (computational resources) as are available." (col. 15:49-56)
"For example, in the cellular phone environment, for each customer account, there may be three tasks (computations) which must be performed in order to generate the bill for the customer account. If those tasks were to 1) process payments, 2) process charges, and 3) process taxes, then for the first customer account, the customer's payments would be processed, then the customer's charges would be processed, and then the customer's taxes would be processed. Once all three tasks for that particular customer are complete, that particular customer can be stored to the processed data memory location, possibly another database and the next customer account in the segment can be processed." (col. 16:1-12)
It would have been obvious for one of ordinary skill in the art before the effective filing date of the invention to implement Hebert, Eksten and Clarke with Peter's teachings because doing so would provide Hebert/Eksten/Clarke's system with the ability to efficiently execute batch runs, as suggested by Peters (col. 5:23-25).
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. KR 20110116178 A discloses a method and system for processing tasks described in a specification using corresponding functional modules.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to GEOFFREY R ST LEGER whose telephone number is (571)270-7720. The examiner can normally be reached M-F (IFP) ~9:00-5:00 pm.
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, Hyung S Sough can be reached at 571-272-6799. 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.
/GEOFFREY R ST LEGER/Primary Examiner, Art Unit 2192