DETAILED ACTION
This is the initial Office action based on the application filed on March 15, 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 .
Drawings
The drawings are objected to because “Manifest Store” which corresponds to reference character ‘106’ in Figure 1 is not mentioned in the description. Both reference characters ‘106’ and ‘108’ are mentioned in the description corresponding to “Resource Manifest” which is inconsistent with the drawings. Corrected drawing sheets in compliance with 37 CFR 1.121(d) are required in reply to the Office action to avoid abandonment of the application. Any amended replacement drawing sheet should include all of the figures appearing on the immediate prior version of the sheet, even if only one figure is being amended. The figure or figure number of an amended drawing should not be labeled as “amended.” If a drawing figure is to be canceled, the appropriate figure must be removed from the replacement sheet, and where necessary, the remaining figures must be renumbered and appropriate changes made to the brief description of the several views of the drawings for consistency. Additional replacement sheets may be necessary to show the renumbering of the remaining figures. Each drawing sheet submitted after the filing date of an application must be labeled in the top margin as either “Replacement Sheet” or “New Sheet” pursuant to 37 CFR 1.121(d). If the changes are not accepted by the examiner, the applicant will be notified and informed of any required corrective action in the next Office action. The objection to the drawings will not be held in abeyance.
Specification
The disclosure is objected to because of the following informalities:
Paragraph [0018] recites, in line 11, “operator’s configuration sittings.” It should read -- operator’s configuration settings --.
Paragraph [0022] recites, in line 11, “operator 123.” It should read – operator 124 --.
Paragraph [0024] recites, in line 3, 5, 6, and 9, “resource manifest 106.” It should read – resource manifest 108 --.
Paragraph [0024] recites, in line 10, “110b,” It should read – 110b. --.
Paragraph [0025] recites, in line 8, “third cluster 103c.” It should read – third cluster 104c --.
Paragraph [0029] recites, in line 7, “operator 104.” It should read – operator 124 --.
Paragraph [0035] recites, in line 12 and 13, “computing cluster 104c.” It should read – computing cluster 204c --.
Paragraph [0037] recites, in lines 1-2 and 4, “first resource data 220a.” It should read – first resource data 210a --.
Paragraph [0041] recites, in line 12, “resource manifest 106.” It should read – resource manifest 108 --.
“Manifest Store” which corresponds to reference character ‘106’ in Figure 1 is not mentioned in the description. Both reference characters ‘106’ and ‘108’ are mentioned in the description corresponding to “Resource Manifest” which is inconsistent with the drawings.
Appropriate correction is required.
Claim Objections
Claims 4, 6, 11, 13, 18, and 20 are objected to because of the following informalities:
Claims 4, 11, 18 recite, in lines 9-10, lines 8-9, and lines 9-10 respectively, “including the corresponding resource.” It should read – including a corresponding resource --.
Claims 6, 13, and 20 recite, in line 5, line 5, and line 6 respectively, “a resource termination request.” It should read – the resource termination request --.
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, 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, 7, 8, 14, and 15 are rejected under 35 U.S.C. 103 as being unpatentable over US 2021/0303368 (hereinafter “Yu”) in view of US 2024/0419684 (hereinafter “Vasudevan”) and US 2012/0102103 (hereinafter “Jacobson”).
As per Claim 1, Yu discloses:
A system comprising:
a processing device (paragraph [0042] “Main components of the computer system 300 include one or more processors 302, a memory 304 […] (emphasis added).”); and
a memory device including instructions that are executable by the processing device (paragraph [0042] “Main components of the computer system 300 include one or more processors 302, a memory 304 […] (emphasis added).”; paragraph [0044], “The memory 304 may store all or part of programs, modules, and data structures which perform functions to be described in the present specification […] may include an instruction or description for executing functions to be described later on the processor 302 (emphasis added).”) for causing the processing device to perform operations comprising:
extracting first resource data for a software extension from a code base of the software extension (paragraph [0055], “[…] a resource management unit 24 which acquires resource information about a set of resources generated by the set of operators […] (emphasis added).”) [Examiner’s Remarks: Note that Yu discloses acquiring resource information about a set of resources generated by a set of operators. One of ordinary skill in the art would readily comprehend that, since the set of resources were generated by a set of operators, the data to generate the resources had to have been extracted from the codebase of the operator and that acquiring the resource information from the generated set of resources also includes extracting resource data for a software extension (operator) from its codebase.], the software extension being usable to deploy a software application (paragraph [0031], “The operator described herein corresponds to a software extension which utilizes a resource for managing an application and a component of a third party (emphasis added).”; paragraph [0032], “The operator is capable of executing various functions according to the status or purpose of the application system, such as deploying an application, […], performing simulation at the time of an operation or abnormality in a cluster, etc. (emphasis added).”);
deploying, using the software extension, the software application at a computing cluster (paragraph [0031], “Further, as described above, the application system in the container orchestration platform includes at least one operator. The operator described herein corresponds to a software extension which utilizes a resource for managing an application and a component of a third party (emphasis added).”; paragraph [0032], “The operator is capable of executing various functions according to the status or purpose of the application system, such as deploying an application, […], performing simulation at the time of an operation or abnormality in a cluster, etc. (emphasis added).”; paragraph [0029], “In general, the container orchestration platform manages at least one cluster configured of a master node and a worker node.”), the computing cluster being selected based on the [resource condition] (paragraph [0060], “For example, the user 10 may select a cluster which satisfies the condition of a resource (a CPU, a memory or the like) required for operating the application system and implement the application system in the selected cluster (emphasis added).”).
Yu discloses “the software extension” and “the computing cluster,” but does not explicitly disclose:
installing the software extension at a plurality of computing clusters;
the computing cluster being separate from the plurality of computing clusters.
However, Vasudevan discloses:
installing the software extension at a plurality of computing clusters (paragraph [0013], “Operators are software extensions to a cluster that use custom resources to manage applications and their components (emphasis added).”; paragraph [0041], “An application operator 126 for a stateful application is deployed on each of the computing clusters 100 (emphasis added).”) [Examiner’s Remarks: Note that Vasudevan discloses an application operator deployed on computing clusters. One of ordinary skill in the art would readily comprehend that deploying the operator on the computing clusters includes installing the operator at a plurality of computing clusters.];
the computing cluster being separate from the plurality of computing clusters (paragraph [0011], “In an example implementation consistent with the features disclosed herein, high availability of a single-instance stateful application is achieved by orchestrating multiple computing clusters at different sites. One of the computing clusters is designated as an active computing cluster and another of the computing clusters is designated as a passive computing cluster (emphasis added).”; paragraph [0030], “The cluster group manager 202 designates one site as an active site and the other sites as a passive sites.”).
Yu and Vasudevan are both within the same field of endeavor as the claimed invention regarding the deployment of operators and applications to a computing cluster.
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Vasudevan into the teaching of Yu to include “installing the software extension at a plurality of computing clusters; the computing cluster being separate from the plurality of computing clusters.” The modification would be obvious because one of ordinary skill in the art would be motivated to install/deploy operators and applications at different computing clusters to achieve high availability of a stateful application by “orchestrating multiple computing clusters at different sites” which may improve operation of a private cloud (Vasudevan, paragraphs [0011 & 0041]).
The combination of Yu and Vasudevan discloses “a software extension,” “the first resource data,” and “installation of the software extension at the plurality of computing clusters,” but does not explicitly disclose:
detecting, during installation of the software extension at the plurality of computing clusters, a plurality of resource requests transmitted by the software extension;
generating, based on the plurality of resource requests, second resource data for the software extension; and
[…] based on the first resource data and the second resource data.
However, Jacobson discloses:
detecting, during installation of the [application], a plurality of resource requests transmitted by the [application] (paragraph [0017], “In the example shown in FIG. 1, sequencer 110 monitors installer 120 to identify actions taken by installer 120 during installation of the enterprise server application, and to identify resources which the application needs to execute properly. Actions monitored by sequencer 110 may comprise any of numerous tasks performed to prepare the application for execution in a non-cloud computing environment, and the resources identified as being needed for proper execution may comprise any of numerous types of resources. For example, in some embodiments, sequencer 110 may identify resources such as registry keys which the application expects to be able to modify during execution, files which the application expects to be able to create or open, data to which the application expects access, etc (emphasis added).”) [Examiner’s Remarks: Note that Jacobson discloses a sequencer monitoring an installer to identify actions taken by the installer and identify resources the application needs to execute properly during installation of an application. Jacobson also discloses the sequencer identifying resources the application expects to modify during execution and data the application expects to access. One of ordinary skill in the art would readily comprehend that the sequencer detects a plurality of resource requests transmitted by the application corresponding to the resources modified, created, and data accessed for proper execution of the application.];
generating, based on the plurality of resource requests, second resource data for the [application] (paragraph [0018], “When sequencer 110 identifies and extracts the resources needed by the application for proper execution, it creates package [second resource data] 130, which may include any or all of the identified resources, and/or derivations thereof (emphasis added).”); and
[…] based on the first resource data and the second resource data (paragraph [0017], “In the example shown in FIG. 1, sequencer 110 monitors installer 120 to identify actions taken by installer 120 during installation of the enterprise server application, and to identify resources [first resource data] which the application needs to execute properly (emphasis added).”; paragraph [0018], “When sequencer 110 identifies and extracts the resources [first resource data] needed by the application for proper execution, it creates package [second resource data] 130, which may include any or all of the identified resources, and/or derivations thereof (emphasis added).”; abstract, “[…] makes the package available to the application during execution in the cloud computing environment. The package may provide the application with resources it expects to have available during execution, such as the ability to store state information locally (emphasis added).”).
Jacobson is within the same field of endeavor as the claimed invention regarding the extraction and generation of resource data.
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Jacobson into the combined teachings of Yu and Vasudevan to include “detecting, during installation of the software extension at the plurality of computing clusters, a plurality of resource requests transmitted by the software extension; generating, based on the plurality of resource requests, second resource data for the software extension; and […] based on the first resource data and the second resource data.” The modification would be obvious because one of ordinary skill in the art would be motivated to extract and generate resource data to provide an application with a package that “provides the resources which the application expects to be available to it during execution […] so that the application need not be substantially modified to execute in a cloud computing environment” which helps solve a significant barrier regarding customers commonly needing to “substantially modify an application for it to execute properly in a cloud computing environment” (Jacobson, paragraphs [0006, 0007, & 0018]).
As per Claim 7, the rejection of Claim 1 is incorporated; and Yu discloses “wherein the first resource data comprises a first set of resources and, for each resource in the first set of resources, at least one field (Figure 6: 602; paragraph [0055], “[…] a resource management unit 24 which acquires resource information about a set of resources generated by the set of operators […] (emphasis added).”),” but the combination of Yu and Vasudevan does not explicitly disclose:
wherein the second resource data comprises a second set of resources.
However, Jacobson discloses:
wherein the second resource data comprises a second set of resources (paragraph [0018], “When sequencer 110 identifies and extracts the resources needed by the application for proper execution, it creates package [second resource data] 130, which may include any or all of the identified resources, and/or derivations thereof (emphasis added).”).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Jacobson into the combined teachings of Yu and Vasudevan to include “wherein the second resource data comprises a second set of resources.” The modification would be obvious because one of ordinary skill in the art would be motivated to extract and generate resource data, that includes a set of resources, to provide an application with a package that “provides the resources which the application expects to be available to it during execution […] so that the application need not be substantially modified to execute in a cloud computing environment” which helps solve a significant barrier regarding customers commonly needing to “substantially modify an application for it to execute properly in a cloud computing environment” (Jacobson, paragraphs [0006, 0007, & 0018]).
Claims 8 and 14 are method claims corresponding to system Claims 1 and 7 and are rejected for the same reasons as given in the rejections of those claims.
Claim 15 is a non-transitory computer-readable medium claim corresponding to system Claim 1 and is rejected for the same reasons as given in the rejection of that claim.
Claims 2, 9, and 16 are rejected under 35 U.S.C 103 as being unpatentable over Yu in view of Vasudevan and Jacobson as applied to Claims 1, 8, and 15 above, and further in view of US 12,355,774 (hereinafter “Ji”) and US 2024/0022629 (hereinafter “Wang”).
As per Claim 2, the rejection of Claim 1 is incorporated; and Yu discloses “the software extension (paragraph [0031], “The operator described herein corresponds to a software extension which utilizes a resource for managing an application and a component of a third party (emphasis added).”),” but the combination of Yu and Jacobson does not explicitly disclose:
deploying, at each computing cluster of the plurality of computing clusters, a sidecar container; and
recording, by the sidecar container, the plurality of resource requests transmitted by the software extension to an application programming interface during installation at each computing cluster of the plurality of computing clusters.
However, Vasudevan discloses:
installation at each computing cluster of the plurality of computing clusters (paragraph [0041], “An application operator 126 for a stateful application is deployed [installed] on each of the computing clusters 100 (emphasis added).”).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Vasudevan into the combined teachings of Yu and Jacobson to include “installation at each computing cluster of the plurality of computing clusters.” The modification would be obvious because one of ordinary skill in the art would be motivated to install/deploy operators and applications at different computing clusters to achieve high availability of a stateful application by “orchestrating multiple computing clusters at different sites” which may improve operation of a private cloud (Vasudevan, paragraphs [0011 & 0041]).
However, Ji discloses:
deploying, at each computing cluster of the plurality of computing clusters, a sidecar container (col. 8 lines 54-57, “In some implementations, the plurality of proxy servers [sidecar container] 120 may be deployed in one or more proxy server clusters for performing their functionality (e.g., content filtering, policy enforcement, etc.) (emphasis added).”).
Ji is within the same field of endeavor as the claimed invention regarding the deployment of a sidecar container.
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Ji into the combined teachings of Yu, Vasudevan, and Jacobson to include “deploying, at each computing cluster of the plurality of computing clusters, a sidecar container.” The modification would be obvious because one of ordinary skill in the art would be motivated to deploy and utilize a sidecar container such as a proxy server in order to solve the “persistent need for a technique that facilitates a non-interactive and automatic way of user authentication with proxy servers” by using a combination of connection information (Ji, col. 1 lines 32-35 & col. 4 lines 24-29).
However, Wang discloses:
recording, by the sidecar container, the plurality of resource requests transmitted by the software extension to an application programming interface during [external monitoring] (paragraph [0078], “Through the external monitoring of calls between the Operator and the API server by the proxy container [sidecar container], statistics of service request indicators such as performance, delay, traffic, and errors are acquired (emphasis added).”; paragraph [0057], “These proxy containers together form a network to intercept the network communication between the Operator and the API server 404 (emphasis added).”; paragraph [0042], “Operator: an extended custom addon component in Kubernetes, generally implemented as a controller and a Webhook.”; paragraph [0041], “Webhook: the Hook when a resource object in Kubernetes submits a create/update/delete request to the Apiserver (emphasis added).”).
Wang is within the same field of endeavor as the claimed invention regarding the use of a sidecar container in recording data.
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Wang into the combined teachings of Yu, Vasudevan, Jacobson, and Ji to include “recording, by the sidecar container, the plurality of resource requests transmitted by the software extension to an application programming interface during installation at each computing cluster of the plurality of computing clusters.” The modification would be obvious because one of ordinary skill in the art would be motivated to utilize a sidecar container such as a proxy server to record/control data interaction between an API server and controllers in order for the “parallel running of the plurality of controllers, hence achieving the technical effect of load balancing of controllers in the Kubernetes cluster, and solving the technical problem that load balancing is difficult to achieve due to single-point operation of the controllers caused by a single master” (Wang, paragraph [0025]).
Claim 9 is a method claim corresponding to system Claim 2 and is rejected for the same reasons as given in the rejection of that claim.
Claim 16 is a non-transitory computer-readable medium claim corresponding to system Claim 2 and is rejected for the same reasons as given in the rejection of that claim.
Claims 3, 10, and 17 are rejected under 35 U.S.C 103 as being unpatentable over Yu in view of Vasudevan and Jacobson as applied to Claims 1, 8, and 15 above, and further in view of US 2015/0120821 (hereinafter “Bendell”).
As per Claim 3, the rejection of Claim 1 is incorporated; and Yu discloses “the first resource data (paragraph [0055], “[…] a resource management unit 24 which acquires resource information about a set of resources generated by the set of operators […] (emphasis added).”)” and “[the software extension] usable to deploy the software application at the computing cluster (paragraph [0031], “Further, as described above, the application system in the container orchestration platform includes at least one operator. The operator described herein corresponds to a software extension which utilizes a resource for managing an application and a component of a third party (emphasis added).”; paragraph [0032], “The operator is capable of executing various functions according to the status or purpose of the application system, such as deploying an application, […], performing simulation at the time of an operation or abnormality in a cluster, etc. (emphasis added).”; paragraph [0029], “In general, the container orchestration platform manages at least one cluster configured of a master node and a worker node.”),” but the combination of Yu and Vasudevan does not explicitly disclose:
generating, based on the first resource data and the second resource data, a resource manifest comprising a set of resources usable to deploy the software application at the computing cluster.
However, Jacobson discloses:
[…] based on the first resource data and the second resource data (paragraph [0017], “In the example shown in FIG. 1, sequencer 110 monitors installer 120 to identify actions taken by installer 120 during installation of the enterprise server application, and to identify resources [first resource data] which the application needs to execute properly (emphasis added).”; paragraph [0018], “When sequencer 110 identifies and extracts the resources [first resource data] needed by the application for proper execution, it creates package [second resource data] 130, which may include any or all of the identified resources, and/or derivations thereof (emphasis added).”; abstract, “[…] makes the package available to the application during execution in the cloud computing environment. The package may provide the application with resources it expects to have available during execution, such as the ability to store state information locally (emphasis added).”).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Jacobson into the combined teachings of Yu and Vasudevan to include “[…] based on the first resource data and the second resource data.” The modification would be obvious because one of ordinary skill in the art would be motivated to extract and generate resource data, that includes a set of resources, to provide an application with a package that “provides the resources which the application expects to be available to it during execution […] so that the application need not be substantially modified to execute in a cloud computing environment” which helps solve a significant barrier regarding customers commonly needing to “substantially modify an application for it to execute properly in a cloud computing environment” (Jacobson, paragraphs [0006, 0007, & 0018]).
However, Bendell discloses:
generating, based on [resource data], a resource manifest comprising a set of resources usable to [prefetch] (paragraph [0025], “[…] wherein the manifest specifies a set of one or more resources (e.g., using URLs or otherwise) […] (emphasis added).”; paragraph [0049], “According to this disclosure, a generic manifest can be created that will apply to a class of pages at a given website that share common resources (emphasis added).”; abstract, “[…] make anticipatory forward requests to an origin to obtain web resources specified on the manifest, before receiving the client's requests for them. In this way, many kinds of content may be prefetched based on the manifest (emphasis added).”).
Bendell is within the same field of endeavor as the claimed invention regarding the generation of resource manifests.
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Bendell into the combined teachings of Yu, Vasudevan, and Jacobson to include “generating, based on the first resource data and the second resource data, a resource manifest comprising a set of resources usable to deploy the software application at the computing cluster.” The modification would be obvious because one of ordinary skill in the art would be motivated to generate a resource manifest and utilize it for prefetching to “easily improve performance by requesting objects ahead of when its native parser engine otherwise would” (Bendell, paragraph [0117]).
Claim 10 is a method claim corresponding to system Claim 3 and is rejected for the same reasons as given in the rejection of that claim.
Claim 17 is a non-transitory computer-readable medium claim corresponding to system Claim 3 and is rejected for the same reasons as given in the rejection of that claim.
Claims 5, 12, and 19 are rejected under 35 U.S.C 103 as being unpatentable over Yu in view of Vasudevan, Jacobson, and Bendell as applied to Claims 3, 10, and 17 above, and further in view of US 2024/0069979 (hereinafter “Sakthivel”).
As per Claim 5, the rejection of Claim 3 is incorporated; and Yu discloses “deploying the software application at the computing cluster (paragraph [0031], “Further, as described above, the application system in the container orchestration platform includes at least one operator. The operator described herein corresponds to a software extension which utilizes a resource for managing an application and a component of a third party (emphasis added).”; paragraph [0032], “The operator is capable of executing various functions according to the status or purpose of the application system, such as deploying an application, […], performing simulation at the time of an operation or abnormality in a cluster, etc. (emphasis added).”; paragraph [0029], “In general, the container orchestration platform manages at least one cluster configured of a master node and a worker node.”),” but the combination of Yu, Jacobson, and Bendell does not explicitly disclose:
prior to deploying the software application at the computing cluster:
determining whether each resource in the set of resources is available on the computing cluster; and
based on determining that each resource in the set of resources is available on the computing cluster, installing the software extension in the computing cluster.
However, Vasudevan discloses:
installing the software extension in the computing cluster (paragraph [0013], “Operators are software extensions to a cluster that use custom resources to manage applications and their components (emphasis added).”; paragraph [0041], “An application operator 126 for a stateful application is deployed on each of the computing clusters 100 (emphasis added).”).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Vasudevan into the combined teachings of Yu, Jacobson, and Bendell to include “installing the software extension in the computing cluster.” The modification would be obvious because one of ordinary skill in the art would be motivated to install/deploy operators and applications at different computing clusters to achieve high availability of a stateful application by “orchestrating multiple computing clusters at different sites” which may improve operation of a private cloud (Vasudevan, paragraphs [0011 & 0041]).
However, Sakthivel discloses:
prior to deploying the [container] at the computing cluster (paragraph [0014], “The container scheduler may periodically analyze the cluster for resource availability and when sufficient resources are available on any member node, the schedule may deploy any pending container according to its respective position in the wait queue (emphasis added).”):
determining whether each resource in the set of resources is available on the computing cluster (paragraph [0044], “As previously described in conjunction with FIG. 1A, after determining the resource requirement of the new container, the scheduling assistant sub-system 124 may forward the container deployment request to the container scheduler 120. On receiving the request, the container scheduler 120 may determine resource availability on each of the member nodes 102-106 of the cluster 112 (emphasis added).”; paragraph [0063], “Further, in some examples, at block 418, the scheduling assistant sub-system 124 may perform a check to determine if the deemed available resources meet the resource requirements of the new container to be deployed (emphasis added).”; paragraph [0032], “In particular, the container deployment request may define the resource requirements for the new container […] Example resource requirements [set of resources] { .... “CPU”: “4” “GPU”: “4” “environment”: { } “services”: { } ... } (emphasis added).”); and
based on determining that each resource in the set of resources is available on the computing cluster, installing the [container] in the computing cluster (paragraph [0014], “The container scheduler may periodically analyze the cluster for resource availability and when sufficient resources are available on any member node, the schedule may deploy any pending container according to its respective position in the wait queue (emphasis added).”; paragraph [0063], “Further, in some examples, at block 418, the scheduling assistant sub-system 124 may perform a check to determine if the deemed available resources meet the resource requirements of the new container to be deployed (emphasis added).”; paragraph [0032], “In particular, the container deployment request may define the resource requirements for the new container […] Example resource requirements [set of resources] { .... “CPU”: “4” “GPU”: “4” “environment”: { } “services”: { } ... } (emphasis added).”).
Sakthivel is within the same field of endeavor as the claimed invention regarding resource availability.
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Sakthivel into the combined teachings of Yu, Vasudevan, Jacobson, and Bendell to include “prior to deploying the software application at the computing cluster: determining whether each resource in the set of resources is available on the computing cluster; and based on determining that each resource in the set of resources is available on the computing cluster, installing the software extension in the computing cluster.” The modification would be obvious because one of ordinary skill in the art would be motivated to determine whether resources are available on a computing cluster for efficient utilization of resources in a cluster by ensuring “a container in the new container deployment request is deployed so long as the cluster has sufficient resources collectively on the member nodes” (Sakthivel, paragraph [0018]).
Claim 12 is a method claim corresponding to system Claim 5 and is rejected for the same reasons as given in the rejection of that claim.
Claim 19 is a non-transitory computer-readable medium claim corresponding to system Claim 5 and is rejected for the same reasons as given in the rejection of that claim.
Claims 6, 13, and 20 are rejected under 35 U.S.C 103 as being unpatentable over Yu in view of Vasudevan and Jacobson as applied to Claims 1, 8, and 15 above, and further in view of US 2022/0141149 (hereinafter “Datta”).
As per Claim 6, the rejection of Claim 1 is incorporated; and Yu discloses “subsequent to deploying the software application at the computing cluster […] (paragraph [0032], “The operator is capable of executing various functions according to the status or purpose of the application system, such as deploying an application, acquiring the backup of the status of the application, […], performing simulation at the time of an operation or abnormality in a cluster, etc. (emphasis added).”),” “[…] during runtime of the software extension (paragraph [0032], “The operator is capable of executing various functions according to the status or purpose of the application system, such as deploying an application, acquiring the backup of the status of the application, […], performing simulation at the time of an operation or abnormality in a cluster, etc. (emphasis added).”),” “determining whether the resource is associated with the software extension based on the [first resource data] (paragraph [0062], “Thereafter, the relation determination unit 25 calculates a probability at which a specific resource corresponds to a specific operator by using a feature value of the operator and the acquired resource information [first resource data] to thereby determine a corresponding relation between each operator and the resource (emphasis added).”),” and “the software extension (paragraph [0031], “The operator described herein corresponds to a software extension which utilizes a resource for managing an application and a component of a third party (emphasis added).”),” but the combination of Yu and Vasudevan does not explicitly disclose:
receiving a resource termination request, the resource termination request being a request to remove a resource during runtime of the software extension;
in response to receiving a resource termination request, determining whether the resource is associated with the software extension based on the first resource data and the second resource data; and
based on the resource being associated with the software extension, deny the resource termination request to prevent removal of the resource during the runtime of the software extension.
However, Jacobson discloses:
[…] based on the first resource data and the second resource data (paragraph [0017], “In the example shown in FIG. 1, sequencer 110 monitors installer 120 to identify actions taken by installer 120 during installation of the enterprise server application, and to identify resources [first resource data] which the application needs to execute properly (emphasis added).”; paragraph [0018], “When sequencer 110 identifies and extracts the resources [first resource data] needed by the application for proper execution, it creates package [second resource data] 130, which may include any or all of the identified resources, and/or derivations thereof (emphasis added).”; abstract, “[…] makes the package available to the application during execution in the cloud computing environment. The package may provide the application with resources it expects to have available during execution, such as the ability to store state information locally (emphasis added).”).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Jacobson into the combined teachings of Yu and Vasudevan to include “[…] based on the first resource data and the second resource data.” The modification would be obvious because one of ordinary skill in the art would be motivated to extract and generate resource data, that includes a set of resources, to provide an application with a package that “provides the resources which the application expects to be available to it during execution […] so that the application need not be substantially modified to execute in a cloud computing environment” which helps solve a significant barrier regarding customers commonly needing to “substantially modify an application for it to execute properly in a cloud computing environment” (Jacobson, paragraphs [0006, 0007, & 0018]).
However, Datta discloses:
receiving a resource termination request, the resource termination request being a request to remove a resource during [execution of a component] (paragraph [0044], “In one or more embodiments, request receiving component 122 can receive a removal request to remove resource 230 from storage by resource storage device 260, and […] based on resource stub 210, managing component 155 can remove of the resource from the first storage equipment (emphasis added).”);
in response to receiving a resource termination request, determining whether a resource is associated with [a resource stub based on a resource index] (paragraph [0044], “In one or more embodiments, request receiving component 122 can receive a removal request to remove resource 230 from storage by resource storage device 260, and […] based on resource stub 210, managing component 155 can remove of the resource from the first storage equipment (emphasis added).”; paragraph [0060], “In some implementations, not removing resource 230 based on the request from device 380A can be based on index information of resource index 228 that identified to managing component 155 that resource 230 was still referenced by resource stub 310B, stored on device 380B (emphasis added).”); and
based on the resource being associated with [a resource stub], deny the resource termination request to prevent removal of the resource during [execution of a component] (paragraph [0060], “In some implementations, not removing resource 230 based on the request from device 380A can be based on index information of resource index 228 that identified to managing component 155 that resource 230 was still referenced by resource stub 310B, stored on device 380B (emphasis added).”; paragraph [0044], “In one or more embodiments, request receiving component 122 can receive a removal request to remove resource 230 from storage by resource storage device 260, and […] based on resource stub 210, managing component 155 can remove of the resource from the first storage equipment (emphasis added).”).
Datta is within the same field of endeavor as the claimed invention regarding receiving and denying resource termination requests.
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Datta into the combined teachings of Yu, Vasudevan, Jacobson to include “receiving a resource termination request, the resource termination request being a request to remove a resource during runtime of the software extension; in response to receiving a resource termination request, determining whether the resource is associated with the software extension based on the first resource data and the second resource data; and based on the resource being associated with the software extension, deny the resource termination request to prevent removal of the resource during the runtime of the software extension.” The modification would be obvious because one of ordinary skill in the art would be motivated to deny a resource termination request in certain situations, such as a resource being referenced by a certain component, to help solve problems regarding the “modification or removal of data that is referenced by multiple enterprise systems” (Datta, paragraphs [0003 & 0060]).
Claim 13 is a method claim corresponding to system Claim 6 and is rejected for the same reasons as given in the rejection of that claim.
Claim 20 is a non-transitory computer-readable medium claim corresponding to system Claim 6 and is rejected for the same reasons as given in the rejection of that claim.
Allowable Subject Matter
Claims 4, 11, and 18 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form and if rewritten to overcome the claim objection including all of the limitations of the base claim and any intervening claims.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure:
US 2022/0303271 (hereinafter “Elsherif”) discloses generating resource manifests.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to FEVEN H HURUY whose telephone number is (571) 272-3826. The examiner can normally be reached Mon-Fri. 7:30am-3:45pm.
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, Wei Mui can be reached at (571) 272-3708. 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.
/F.H.H./Examiner, Art Unit 2191 /WEI Y MUI/Supervisory Patent Examiner, Art Unit 2191