DETAILED ACTION
Remarks
The present application was filed 12 April 2024.
Claims 1-20 are pending.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Specification
The specification is objected for the following informalities:
The specification uses the trademark SUBVERSION in par. [0017], without capitalizing every letter of the mark or otherwise indicating the description of the mark. See M.P.E.P. § 608.01(v).
Claim 10, 15 and 20 are objected to for the following informalities:
Claim 10 refers to “the source code to be retrieved”. There is insufficient antecedent basis for this element in the claims, which should perhaps read -the source code retrieved- instead.
Claims 15 and 20 are objected to for the same reasons as claim 10.
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-2, 8, 11, 14, 16-17 and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Howley et al. (US 2023/0259390) (art made of record – hereinafter Howley) in view of Ahlgren et al. (US 2024/0386026) (art made of record – hereinafter) in view of Rao et al. (US 11,392,844) (art made of record – hereinafter Rao).
As to claim 1, Howley discloses a method of managing infrastructure in a cloud (see below), comprising:
receiving, at a remote worker from a cloud automation service, a task to be executed for managing the infrastructure, (e.g., Howley, par. [0025]: the IaC service 130 [cloud automation service] may post a new deployment request [task] to the IaC database; par. [0026]: IaC agents 150a-b [the agent being the worker, or part of it, as workers are just software per par. [0018] of the specification] fetching new deployment requests persisted to the database [task]; par. [0021]: deployment requests to configure a set of hosts [managing the infrastructure]) the remote worker executing in a customer environment that includes the infrastructure, (e.g., Howley, par. [0038]: the IaC agent may be hosted in an on-premise environment [customer environment] where it interacts with the hosted IaC to retrieve requests “(directed to that on-premise site)”. This manifestation may be pertinent to use cases in which the mutator makes use of access to a local network [cloud] “(e.g., an Ansible playbook that accesses hosts on a private network…)”) the remote worker having a runtime, (e.g., Howley, par. [0036]: an IaC agent may cause the relevant mutator component to spawn a new container to execute the corresponding IaC tool [the worker having the tools because agent spawns them, note too that the container may also be construed as part of the worker]) the cloud automation service executing external to the customer environment; (e.g., Howley, Fig. 1 and associated text [see figure, IaC service 130 is external to On-Premise 160])
retrieving, source code from a version control system; (e.g., Howley, par. [0036]: the IaC agent may retrieve the template code from the source repository “(e.g., repository 121a)”; Fig. 1 and associated text, par. [0019]: a version control system 120 “(e.g., Git, an open-source version-control system…distributed over multiple repositories ‘(e.g., repositories 121a-n)’)”) and
executing, by the runtime, the source code to manage the infrastructure in the customer environment according to the task (e.g., Howley, par. [0036]: the IaC agent may retrieve the template code and may cause the mutator to spawn a new container to execute the corresponding IaC tool with the template. Execution of the container may result in calls used by the template to deploy the workload it describes; par. [0021]: for example, based on a Terraform template, a set of bare metal hosts [in the customer environment as set forth above] may be configured with an operating system and some basic network configuration)
Howley does not explicitly disclose: retrieving, using first credentials obtained by the runtime from the customer environment, or a version control system executing in the customer environment.
However, in an analogous art, Ahlgren discloses:
retrieving, using first credentials obtained by the runtime (e.g., Ahlgren, par. [0055]: execution engine wrapper container 330 [runtime] retrieves the 440 the workflow file 400 from cloud storage 310 using an access token) and a version control system executing in the customer environment (e.g., Ahlgren, par. [0047]: in some embodiments, cloud storage 310 is a user’s private cloud storage with which system 110 interfaces).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the runtime and retrieval of source code from a version control system taught by Howley, such that the retrieval is performed using credentials obtained by the runtime and is from a version control system executing in the customer environment, as taught by Ahlgren, as Ahlgren would provide the advantage of a means of retrieving from the user’s private cloud. (See Ahlgren, par. [0047]).
Further, in an analogous art, Rao discloses
credentials obtained from the customer environment (e.g., Rao, col. 5 ll. 41-50: the customer may perform an authorization handshake and provide code reviewer service 112 an authorization token. Code reviewer service 112 may use this token to list the one or more repositories hosted for that user and may call repository API along with the token identifier; Fig. 1 and associated text, col. 7 ll. 13-21: the users “(or ‘customers’)” of networks 100. Users may interact with network 100 such as through application programming interface (API) calls).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the retrieving from a repository using credentials taught by Howley/Ahlgren, such that the retrieval is performed using credentials obtained from the customer environment, as taught by Rao, as Rao would provide the advantage of a means for the customer to authorize the retrieval. (See Rao, col. 5 ll. 41-50).
As to claim 2, Howley/Ahlgren/Rao discloses the method of claim 1 (see rejection of claim 1 above), Howley further discloses:
wherein the cloud automation service executes in a first public cloud external to the customer environment, (e.g., Howley, Fig. 1 and associated text [see figure, IaC service is external to On-Premise environment 160]) wherein the customer environment comprises a private cloud, and wherein the remote worker executes in the private cloud (e.g., Howley, par. [0045]: it is to be appreciated the IaC agent [the worker, or part of one] may be hosted in an on-premise environment to retrieve deployment requests “(directed to that on-premise site)”. This manifestation may be pertinent to use cases in which the mutators makes use of access to a local network “(e.g., an Ansible playbook that accesses hosts on a private network…)” [a network being a cloud]).
As to claim 8, Howley/Ahlgren/Rao discloses the method of claim 1 (see rejection of claim 1 above), Howley further discloses:
wherein the cloud automation service communicates with a data pipeline service executing external to the customer environment, wherein the remote worker includes a data pipeline agent that executes as an agent of the data pipeline service, and wherein the cloud automation service sends the task to the remote worker through cooperation of the data pipeline service and the data pipeline agent (e.g., Howley, Fig. 1 and associated text, par. [0025]: IAc service 130 [cloud automation service] may post [communicate] a new deployment request [task] to the IaC database [data pipeline service]; par. [0026], IaC agents 150a-b [remote worker, together with the mutator and containers] may be responsible for watching the IaC database 140 [data pipeline service] for changes and detecting and fetching new deployment requests [tasks] persisted to the database 140 [the database storing the request for the agent and the agent fetching it from the database being cooperation]).
As to claim 11, it is a medium claim having limitations substantially the same as claim 1. Accordingly, it is rejected for substantially the same reasons. Further limitations, disclosed by Howley, include:
a non-transitory computer readable medium comprising instructions to be executed in a computing device to cause the computing device to carry out a method (e.g., Howley, par. [0062]: a microprocessor suitable for retrieval and execution of instructions from machine readable medium 520 to perform the functions related to examples described herein; par. [0063]: examples of machine readable medium 520 include RAM) of managing infrastructure in a cloud, comprising (see rejection of claim 1 above).
As to claim 14, it is a medium claim having limitations substantially the same as claim 8. Accordingly, it is rejected for substantially the same reasons.
As to claim 16, it is a system claim having limitations substantially the same as claim 1. Accordingly, it is rejected for substantially the same reasons. Further limitations, disclosed by Howley, include:
a hardware platform (e.g., Howley, par. [0061]: computer system 500 includes processing resource 510; par. [0062]: processing resource 510 may include a microprocessor)
software executing on the hardware platform (e.g., Howley, par. [0062]: processing resource 510 may include a microprocessor suitable for retrieval and execution of instructions from machine readable medium 520 to perform the functions related to examples described herein; par. [0063]: examples of machine readable medium 520 include RAM) the software including a remote worker (e.g., Howley, par. [0025]: par. [0026]: IaC agents 150a-b [workers, or each part of one]) in a customer environment, par. [0038]: the IaC agent may be hosted in an on-premise environment [customer environment]) the remote worker operable to”
cooperate with a cloud automation service external to the customer environment to receive a task to be executed for managing infrastructure in a cloud (e.g., Howley, par. [0025]: the IaC service 130 [cloud automation service] may post a new deployment request [task] to the IaC database; par. [0026]: IaC agents 150a-b [part of a remote worker, see above]] fetching new deployment requests persisted to the database [task]; par. [0021]: deployment requests to configure a set of hosts [managing the infrastructure]. For example, a set of bare metal hosts may be configured with an operating system and some basic network [cloud] configuration).
See rejection of claim 1 for the other limitations of claim 16.
As to claim 17, it is a system claim having limitations substantially the same as claim 2 Accordingly, it is rejected for substantially the same reasons.
As to claim 19, it is a system claim having limitations substantially the same as claim 8 Accordingly, it is rejected for substantially the same reasons.
Claim 3 is rejected under 35 U.S.C. 103 as being unpatentable over Howley (US 2023/0259390) in view of Ahlgren (US 2024/0386026) in view of Rao (US 11,392,844) in further view of Kondratiev et al. (US 2023/0247088) (art made of record – hereinafter Kondratiev).
As to claim 3, Howley/Ahlgren/Rao discloses the method of claim 2 (see rejection of claim 2 above), but does not explicitly disclose wherein the infrastructure is in a second public cloud in which a subscription thereto is part of the customer environment.
However, in an analogous art, Kondratiev discloses:
wherein the infrastructure is in a second public cloud in which a subscription thereto is part of the customer environment (e.g., Kondratiev, par. [0045]: a customer can subscribe to services provided by a CSP [cloud service provider]. The customer can be any entity [i.e., the cloud is public]; par. [0048]: the infrastructure provided by a CSP can provide resources over a public network; par. [0049]: a customer can use resources provided by CSPI [cloud service provider infrastructure] to build one or more customizable private virtual network(s) referred to as virtual cloud networks (VCNs); par. [0159]: a virtual network “(e.g., a virtual cloud network or VCN)” in cloud A).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the managed infrastructure and customer environment of Howley such that the infrastructure is in a second public cloud in which a subscription thereto is part of the customer environment, as taught by Kondratiev, as Kondratiev would provide the advantage of a means for a customer to user resources of a cloud service provider to build its own customizable private network. (See Kondratiev, par. [0049]).
Claims 4 and 12 are rejected under 35 U.S.C. 103 as being unpatentable over Howley (US 2023/0259390) in view of Ahlgren (US 2024/0386026) in view of Rao (US 11,392,844) in view of Kondratiev (US 2023/0247088) in further view of Brandwine et al. (US 11,334,661) (art made of record – hereinafter Brandwine).
As to claim 4, Howley/Ahlgren/Rao discloses the method of claim 3 (see rejection of claim 3 above), Howley further discloses:
wherein the step of executing comprises: invoking, using second credentials obtained by the runtime, an application programming interface (API) of the second public cloud to manage the infrastructure.
However, in an analogous art, Brandwin discloses:
invoking, using second credentials obtained by the runtime, an application programming interface (API) (e.g., Brandwin; col. 15 ll. 60-62: the software application 104 sends API requests 134 using the newly obtained security credentials; col. 8 ll. 40-49: software application 104 executes on a compute instance 116 “(e.g., a VM instance)”. In other embodiments software application executes as a container, as code executed by an on-demand execution service 132 [if the application has obtained credential the environment in which it executes has obtained it as well since the application is part of that environment]).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the runtime of Howley such that it obtains second credentials and an API is invoked using the credentials as taught by Brandwine, as Brandwine would provide the advantage of a means of indicating the application being executed has permission to access the requested resources. (See Brandwine, col. 1 ll. 8-16).
As to claim 12, it is a system claim having limitations substantially the same as those of claims 2, 4 and 4. Accordingly, it is rejected for substantially the same reasons as those set forth above with respect to each of those claims.
Claims 5, 9-10, 13, 15, 18 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Howley (US 2023/0259390) in view of Ahlgren (US 2024/0386026) in view of Rao (US 11,392,844) in further view of Wagner et al. (US 2016/0092251) (art made of record – hereinafter Wagner).
As to claim 5, Howley/Ahlgren/Rao discloses the method of claim 1 (see rejection of claim 1 above), but Howley does not explicitly disclose wherein the remote worker executes in a virtual computing instance comprising at least one virtual machine (VM), at least one container, or a combination of at least one VM and at least one container, and wherein the runtime obtains the first credentials from a system environment of the virtual computing instance.
However, in an analogous art, Ahlgren discloses:
wherein the runtime obtains the first credentials from a system environment of the computing instance (e.g., Ahlgren, Fig 3 and associated text, par. [0055]: execution engine wrapper container 330 [runtime] retrieves the 440 the workflow file 400 from cloud storage 310 using an access token; par. [0051]: the execution engine wrapper container 330 retrieving the workflow file from cloud storage 310 “(after obtaining access token to the cloud storage 310 from the platform API 302)” [API 302 being part of the system environment of container 330]).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the runtime and retrieval of source code from a version control system taught by Howley, such that the retrieval is performed using credentials obtained by the runtime from a system environment of the instance in which the worker executes, as taught by Ahlgren, as Ahlgren would provide the advantage of a means for the runtime to retrieve from the user’s private cloud. (See Ahlgren, par. [0047]).
Further, in an analogous art, Wagner discloses:
wherein the remote worker executes in a virtual computing instance comprising at least one virtual machine (VM), at least one container, or a combination of at least one VM and at least one container and a system environment of the virtual computing instance (e.g., Wagner, Fig. 1 and associated text, par. [0044]: the container includes a copy of the OS, a copy of the runtime 156B, and a copy of a code 156D-1; par. [0045]: containers are logical units created within a virtual machine instance using the resources available on that instance).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the remote worker and runtime obtaining credentials from a system environment of a computing instance taught by Howley/Ahlgren/Rao, such that the remote worker executes in a virtual computing instance comprising at least one virtual machine (VM), at least one container, or a combination of at least one VM and at least one container and a system environment of the virtual computing instance, as taught by Wagner, as Wagner would provide the advantage of a means of allowing single physical computing device to appear an operate as multiple independent computing devices. (See Wagner, par. [0004])
As to claim 9, Howley/Ahlgren/Rao discloses the method of claim 1 (see rejection of claim 1 above), but does not explicitly disclose wherein the task includes an identifier for a remote worker group having the remote worker and input for the runtime.
However, in an analogous art, Wagner discloses:
wherein the task includes an identifier for a remote worker group having the remote worker (e.g., Wagner, par. [0043]: instances used for servicing code execution requests [tasks]. Instances [the software they comprise being workers, see paragraph [0018] of the specification] may be assigned to a group of users [the instances of that group being a remote worker group]. In some embodiments, a request indicates the group to which the users associated with the requests belong [that indication being an identifier for a remote worker group]) and input for the runtime (e.g., Wagner, par. [0031]: the request may include the user code “(or location thereof)” and one or more arguments to be used to execute the user code; par. [0037]: the container in which the user code is to be executed; par. [0044]: the containers may have runtimes loaded thereon; par. [0040]: runtimes, which may be used for running user code)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the task of Howley/Ahlgren/Rao, such that the task includes an identifier for a remote worker group having the remote worker and input for the runtime, as taught by Wagner, as Wagner would provide the advantages of a means of identifying an appropriate existing worker to execute the task and a means of indicating the code for the runtime to execute. (See Wagner, pars. [0043], [0037], [0040]).
As to claim 10, Howley/Ahlgren/Rao/Wagner discloses the method of claim 9 (see rejection of claim 9 above), and further discloses the source code to be retrieved from the version control system (see rejection of claim 1 above) but Howley/Ahlgren/Rao does not explicitly disclose wherein the input for the runtime indicates the source code to be retrieved from the version control system.
However, in an analogous art, Wagner discloses:
wherein the input for the runtime indicates the source code to be retrieved (e.g., Wagner, par. [0031]: the request may include the user code “(or location thereof)” [input for the runtime because a container and or runtime within the container execute the code]; par. [0049]: the user code may be downloaded [retrieved] from service 106 such as service 108).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the retrieval from a version control system taught by Howley/Ahlgren/Rao, such that the task includes input indicating the source code to be retrieved, as taught by Wagner, as Wagner would provide the advantage of a means of executing the appropriate code for the runtime to execute. (See Wagner, par. [0040]).
As to claim 13, it is a medium claim having limitations substantially the same as claims 9 and 5. Accordingly, it is rejected for substantially the same reasons.
As to claim 15, it is a medium claim having limitations substantially the same as claims 9 and 10. Accordingly, it is rejected for reasons substantially the same as those set forth above with respect to each of those claims.
As to claim 18, it is a system claim having limitations substantially the same as claims 9 and 5. Accordingly, it is rejected for substantially the same reason
As to claim 20, it is a system claim having limitations substantially the same as claims 9 and 10. Accordingly, it is rejected for substantially the same reasons
Claim 6-7 are rejected under 35 U.S.C. 103 as being unpatentable over Howley (US 2023/0259390) in view of Ahlgren (US 2024/0386026) in view of Rao (US 11,392,844) in further view of Pandey et al. (US 2023/0418966) (art made of record – hereinafter Pandey).
As to claim 6, Howley/Ahlgren/Rao discloses the method of claim 1 (see rejection of claim 1 above), but does not explicitly disclose further comprising: generating a remote worker group and an application programming interface (API) token; starting the remote worker as part of the remote worker group; registering, using the API token, the remote worker with the cloud automation service; and launching, by the remote worker, a cloud automation agent that executes as an agent of the cloud automation service.
However, in an analogous art, Pandey discloses further comprising:
generating a remote worker group and an application programming interface (API) token; (e.g., Pandey, Fig. 6 and associated text, par. [0133]: the plurality of database servers 690 [the software on them being workers, their operations are all performed using software in the sense that they are implemented by VMs and operating systems, see par. [0064] of Pandey] may be located in regions 695a-695d [see figure, each region is a group]; par. [0223]: the control plane may generate the activation token.)
starting the remote worker as part of the remote worker group; (see immediately above)
registering, using the API token, the remote worker with the cloud automation service; (e.g., Pandey, par. [0224]: the agent may connect to the messaging cluster using the activation token and send the registration request to the control plane [cloud automation service, or comprising one]; par. [0230]: the installation script sends a request to register the database server. The installation script may install an agent of the control plane and the agent initiates a registration API call, triggering a registration operation on the control plane; par. [0102]: the control plane may be deployed across a public cloud) and
launching, by the remote worker, a cloud automation agent that executes as an agent of the cloud automation service (e.g., Pandey, par. [0224]: the installation script may install an agent of the control plane on the database server).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the system of Howley/Ahlgren/Rao to include generating a remote worker group and an application programming interface (API) token; starting the remote worker as part of the remote worker group; registering, using the API token, the remote worker with the cloud automation service; and launching, by the remote worker, a cloud automation agent that executes as an agent of the cloud automation service, as taught by Pandey, as Pandey would provide the advantage of a secure means of means of streamlining the registration of new workers and reducing registration errors. (See Pandey, par. [0054]).
As to claim 7, Howley/Ahlgren/Rao/Pandey discloses the method of claim 6 (see rejection of claim 6 above), but Howley does not explicitly disclose wherein the remote worker is started by supplying the API token and the first credentials as input.
However, in an analogous art, Ahlgren discloses:
wherein the remote worker is started by supplying the first credentials as input (e.g., Ahlgren par. [0051]: the execution engine wrapper container 330 retrieving the packaged workflow file “(after obtaining access token to the cloud storage 310 from the platform API 302)”; par. [0056]: the execution engine wrapper container 330 causes the workflow file to be executed).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the staring of remote workers taught by Howley, such that the remote worker is started by supplying first credentials as input, as taught by Ahlgren, as Ahlgren would provide the advantage of a means of retrieving from the user’s private cloud. (See Ahlgren, par. [0047]).
However, in an analogous art, Pandey discloses
wherein the remote worker is started by supplying the API token as input (e.g., Pandey, par. [0224]: the database server receives the installation script and the activation token. The database server runs the installation script with the activation token).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the staring of remote workers taught by Howley, such that the remote worker is started by supplying an API token input, as taught by Pandey, as Pandey would provide the advantage of a means of registering a new worker. (See Pandey, par. [0224]).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to TODD AGUILERA whose telephone number is (571)270-5186. The examiner can normally be reached M-F 11AM - 7:30PM EST.
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.
/TODD AGUILERA/Primary Examiner, Art Unit 2192