Detailed Action
1. This office action is in response to communication filed October 3, 2023. Claims 1-20 are currently pending and claims 1, 12, and 17 are the independent claims.
Notice of Pre-AIA or AIA Status
2. The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
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.
3. Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed
to an abstract idea without significantly more.
As per claim 1, the claim recites “A device, comprising: a processor; and a memory that stores executable instructions that, when executed by the processor, facilitate performance of operations, comprising: determining that a build pipeline device, configured to receive source code and build a containerized workload, has generated a container image associated with the source code; parsing the source code and the container image to identify a hypertext transfer protocol request; in response to determining that a proxy setting is to be used for the hypertext transfer protocol request, determining a proxy variable; and updating a container specification for the containerized workload to include the proxy variable.”
Under Step 2A, Prong I, the limitation “parsing the source code and the container image to identify a hypertext transfer protocol request” as drafted, is a process that, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person may read through source code/container image information with the help of pen and paper to identify a hypertext transfer protocol request. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
Under Step 2A, Prong I, the limitation “in response to determining that a proxy setting is to be used for the hypertext transfer protocol request, determining a proxy variable” as drafted, is a process that, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person may search for proxy variables such as HTTP_PROXY, HTTPS_PROXY, and/or NO_PROXY with the help of pen and paper or in the human’s mind to identify a proxy variable (seen in Specification [0020]). If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
This judicial exception is not integrated into a practical application. In particular under step 2A Prong II, claim 1 recites the additional elements “A device, comprising: a processor; and a memory that stores executable instructions that, when executed by the processor, facilitate performance of operations, comprising: determining that a build pipeline device, configured to receive source code and build a containerized workload, has generated a container image associated with the source code; and … updating a container specification for the containerized workload to include the proxy variable.” The additional elements “A device, comprising: a processor; and a memory that stores executable instructions that, when executed by the processor, facilitate performance of operations, comprising …” can be interpreted as a generic computing components for performing the steps of the application, thus this computer/device is an additional element. The claim is directed to an abstract idea.
Under Step 2B, the claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract ideas into a practical application, the additional element “determining that a build pipeline device, configured to receive source code and build a containerized workload, has generated a container image associated with the source code” represents the well-understood, routine, conventional activity of receiving or transmitting data over a network (buySAFE, Inc. v. Google, Inc., 765 F.3d 1350, 1355, 112 USPQ2d 1093, 1096 (Fed. Cir. 2014) (computer receives and sends information over a network)). Also, the additional element “updating a container specification for the containerized workload to include the proxy variable” represents the well-understood, routine, conventional activity of storing and retrieving information in memory, Versata Dev. Group, Inc. v. SAP Am., Inc., 793 F.3d 1306, 1334, 115 USPQ2d 1681, 1701 (Fed. Cir. 2015). The additional elements amount to mere instructions to apply an exception of receiving a container image for a containerized workload and updating the container specification of the containerized workload to include a proxy variable with the use of generic computer components. The additional elements that are well-understood, routine, conventional activity do not amount to significantly more, and are thus, not an inventive concept. Accordingly, the claim does not appear to be patent eligible under 35 U.S.C. 101.
As per claim 2, it incorporates the deficiencies of independent claim 1 upon which it depends, and further recites, “wherein the updating of the container specification results in an updated containerized workload comprising machine generated proxy settings, and wherein the updated containerized workload is deployed to a container runtime environment”, which conceptually, with broadest reasonable interpretation, merely provides further clarification as to the updating of the container specification/containerized workload, which does not integrate the abstract idea/mental process into a practical application and is not significantly more than the abstract idea/mental process. Therefore, claim 2 fails to correct the deficiencies of claim 1 and is rejected for similar reasoning as claim 1, above.
As per claim 3, it incorporates the deficiencies of independent claim 1 upon which it depends, and further recites, “wherein the containerized workload is at least one of a containerized microservice, a containerized application, or a containerized infrastructure service”, which conceptually, with broadest reasonable interpretation, merely provides further clarification as to the implementation of the containerized workload, which does not integrate the abstract idea/mental process into a practical application and is not significantly more than the abstract idea/mental process. Therefore, claim 3 fails to correct the deficiencies of claim 1 and is rejected for similar reasoning as claim 1, above.
As per claim 4, it incorporates the deficiencies of independent claim 1 upon which it depends, and further recites, “wherein the hypertext transfer protocol request comprises a uniform resource identifier or a uniform resource locator”, which conceptually, with broadest reasonable interpretation, merely provides further clarification as to the hypertext transfer protocol request’s makeup, which does not integrate the abstract idea/mental process into a practical application and is not significantly more than the abstract idea/mental process. Therefore, claim 4 fails to correct the deficiencies of claim 1 and is rejected for similar reasoning as claim 1, above.
As per claim 5, it incorporates the deficiencies of independent claim 1 upon which it depends, and further recites, “wherein the hypertext transfer protocol request represents a call to service that is performed by the containerized workload”, which conceptually, with broadest reasonable interpretation, merely provides further clarification as to the hypertext transfer protocol request being handled by the containerized workload, which does not integrate the abstract idea/mental process into a practical application and is not significantly more than the abstract idea/mental process. Therefore, claim 5 fails to correct the deficiencies of claim 1 and is rejected for similar reasoning as claim 1, above.
As per claim 6, it incorporates the deficiencies of independent claim 1 upon which it depends, and further recites, “wherein the proxy variable represents a setting for one or more HTTP_PROXY settings, one or more HTTPS_PROXY settings, or one or more NO_PROXY settings”, which conceptually, with broadest reasonable interpretation, merely provides further clarification as to the proxy variable settings, which does not integrate the abstract idea/mental process into a practical application and is not significantly more than the abstract idea/mental process. Therefore, claim 6 fails to correct the deficiencies of claim 1 and is rejected for similar reasoning as claim 1, above.
As per claim 7, it incorporates the deficiencies of independent claim 1 upon which it depends, and further recites, “wherein the proxy variable comprises a uniform resource identifier or a uniform resource locator of a proxy server or a domain associated with the hypertext transfer protocol request”, which conceptually, with broadest reasonable interpretation, merely provides further clarification as to the proxy variable’s relation to the hypertext transfer protocol request, which does not integrate the abstract idea/mental process into a practical application and is not significantly more than the abstract idea/mental process. Therefore, claim 7 fails to correct the deficiencies of claim 1 and is rejected for similar reasoning as claim 1, above.
As per claim 8, it incorporates the deficiencies of independent claim 1 upon which it depends, and further recites, “wherein a value of the proxy variable is stored at a known endpoint and deployment target pair data store that is configurable based on a deployment environment”, which conceptually, with broadest reasonable interpretation, merely provides further clarification as to the proxy variable’s storage technique to a configurable data store, which does not integrate the abstract idea/mental process into a practical application and is not significantly more than the abstract idea/mental process. Therefore, claim 8 fails to correct the deficiencies of claim 1 and is rejected for similar reasoning as claim 1, above.
As per claim 9, it incorporates the deficiencies of dependent claim 8 upon which it depends, and further recites, “wherein the value of the proxy variable is stored as a key-value pair that is paired with a domain of the hypertext transfer protocol request”, which conceptually, with broadest reasonable interpretation, merely provides further clarification as to the proxy variable’s storage technique to pair it with the domain of the hypertext transfer protocol request, which does not integrate the abstract idea/mental process into a practical application and is not significantly more than the abstract idea/mental process. Therefore, claim 9 fails to correct the deficiencies of claim 8 and is rejected for similar reasoning as claim 8, above.
As per claim 10, it incorporates the deficiencies of dependent claim 8 upon which it depends, and further recites, “wherein the value of the proxy variable is stored as a reference to an API object”, which conceptually, with broadest reasonable interpretation, merely provides further clarification as to the proxy variable’s storage technique to attach it to an API object, which does not integrate the abstract idea/mental process into a practical application and is not significantly more than the abstract idea/mental process. Therefore, claim 10 fails to correct the deficiencies of claim 8 and is rejected for similar reasoning as claim 8, above.
As per claim 11, it incorporates the deficiencies of independent claim 1 upon which it depends, and further recites, “wherein the updating of the container specification comprises inserting the proxy variable or overwriting an incorrectly specified proxy variable”, which conceptually, with broadest reasonable interpretation, merely provides further clarification as to the updating of the container specification with the most up-to-date version of the proxy variable, which does not integrate the abstract idea/mental process into a practical application and is not significantly more than the abstract idea/mental process. Therefore, claim 11 fails to correct the deficiencies of claim 1 and is rejected for similar reasoning as claim 1, above.
As per claim 12, the claim recites “A non-transitory computer-readable medium comprising instructions that, in response to execution, cause a system comprising a processor to perform operations, comprising: determining that a build pipeline device, comprising a capability to receive source code and to build a containerized workload, has generated a container image associated with the source code; scanning the source code and the container image to identify a hypertext transfer protocol request; retrieving, from a key-value pair data store, key-value pairs that indicate proxy setting variables; and updating a container specification for the containerized workload to include the proxy setting variables.”
Under Step 2A, Prong I, the limitation “scanning the source code and the container image to identify a hypertext transfer protocol request” as drafted, is a process that, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person may read through source code/container image information with the help of pen and paper to identify a hypertext transfer protocol request. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
This judicial exception is not integrated into a practical application. In particular under step 2A Prong II, claim 12 recites the additional elements “A non-transitory computer-readable medium comprising instructions that, in response to execution, cause a system comprising a processor to perform operations, comprising: determining that a build pipeline device, comprising a capability to receive source code and to build a containerized workload, has generated a container image associated with the source code; … retrieving, from a key-value pair data store, key-value pairs that indicate proxy setting variables; and updating a container specification for the containerized workload to include the proxy setting variables.” The additional elements “A non-transitory computer-readable medium comprising instructions that, in response to execution, cause a system comprising a processor to perform operations, comprising …” can be interpreted as a generic computing components for performing the steps of the application, thus this computer/device is an additional element. The additional element “retrieving, from a key-value pair data store, key-value pairs that indicate proxy setting variables” represents the insignificant extra solution activity of mere data gathering and a generic transmission of data under MPEP 2106.05(g). The claim is directed to an abstract idea.
Under Step 2B, the claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract ideas into a practical application, the additional element “determining that a build pipeline device, comprising a capability to receive source code and to build a containerized workload, has generated a container image associated with the source code” represents the well-understood, routine, conventional activity of receiving or transmitting data over a network (buySAFE, Inc. v. Google, Inc., 765 F.3d 1350, 1355, 112 USPQ2d 1093, 1096 (Fed. Cir. 2014) (computer receives and sends information over a network)). Also, the additional element “updating a container specification for the containerized workload to include the proxy setting variables” represents the well-understood, routine, conventional activity of storing and retrieving information in memory, Versata Dev. Group, Inc. v. SAP Am., Inc., 793 F.3d 1306, 1334, 115 USPQ2d 1681, 1701 (Fed. Cir. 2015). The additional elements amount to mere instructions to apply an exception of receiving a container image for a containerized workload and updating the container specification of the containerized workload to include a proxy variable with the use of generic computer components. The additional elements that are well-understood, routine, conventional activity do not amount to significantly more, and are thus, not an inventive concept. Accordingly, the claim does not appear to be patent eligible under 35 U.S.C. 101.
Claim 13 is rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more. The claim recites the same claimed language as claim 6 above other than being a non-transitory computer-readable medium claim rather than a device claim. Claim 13 is rejected under 35 U.S.C. 101 for the same reasons as claim 6 above.
Claim 14 is rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more. The claim recites the same claimed language as claim 3 above other than being a non-transitory computer-readable medium claim rather than a device claim. Claim 14 is rejected under 35 U.S.C. 101 for the same reasons as claim 3 above.
Claim 15 is rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more. The claim recites the same claimed language as claim 4 above other than being a non-transitory computer-readable medium claim rather than a device claim. Claim 15 is rejected under 35 U.S.C. 101 for the same reasons as claim 4 above.
Claim 16 is rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more. The claim recites the same claimed language as claim 8 above other than being a non-transitory computer-readable medium claim rather than a device claim. Claim 16 is rejected under 35 U.S.C. 101 for the same reasons as claim 8 above.
Claim 17 is rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more. The claim recites the same claimed language as claim 1 above other than being a method claim rather than a device claim. Claim 17 is rejected under 35 U.S.C. 101 for the same reasons as claim 1 above.
Claim 18 is rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more. The claim recites the same claimed language as claim 2 above other than being a method claim rather than a device claim. Claim 18 is rejected under 35 U.S.C. 101 for the same reasons as claim 2 above.
As per claim 19, it incorporates the deficiencies of independent claim 17 upon which it depends, and further recites, “retrieving, by the device, the proxy variable from a configurable data store based on the hypertext transfer protocol request”, which conceptually, with broadest reasonable interpretation, merely provides further clarification as to the retrieving of the proxy variable based on the hypertext transfer protocol request, which does not integrate the abstract idea/mental process into a practical application and is not significantly more than the abstract idea/mental process. Therefore, claim 19 fails to correct the deficiencies of claim 1 and is rejected for similar reasoning as claim 1, above.
As per claim 20, it incorporates the deficiencies of independent claim 17 upon which it depends, and further recites, “determining, by the device, the proxy variable by literal value or by reference”, which conceptually, with broadest reasonable interpretation, merely provides further clarification as to the proxy variable’s determination either based on its value or by reference to its previous usage, which does not integrate the abstract idea/mental process into a practical application and is not significantly more than the abstract idea/mental process. Therefore, claim 20 fails to correct the deficiencies of claim 1 and is rejected for similar reasoning as claim 1, above.
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.
4. Claims 1-5, 7-8, 10-12, 14-20 are rejected under 35 U.S.C. 103 as being unpatentable over Kumar et al. (U.S. Patent No. 9,367,305) – hereinafter “Kumar” in view of Du et al. (U.S. Patent No. 11,792,301) – hereinafter “Du”.
Regarding independent claim 1, Kumar discloses:
A device, comprising:
a processor; and
a memory that stores executable instructions that, when executed by the processor, facilitate performance of operations, comprising:
determining that a build pipeline device, configured to receive source code and build a containerized workload, has generated a container image associated with the source code; (Col. 12, Lines 38-42 “The method 400 includes receiving 410, by the processor, a source element associated with the source application. In some embodiments, receiving 410 a source element associated with the source application further includes receiving the source element from a source control system.” and Col. 13, Lines 1-7 “The method 400 also includes providing 440, by the processor, the container configuration for execution to an execution environment enabled to execute containers. In some embodiments, providing 440 the container configuration for execution creates a running container within the execution environment, the method further comprising generating a container image from the running container.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the source code/source element is received by the processor and soon after generates the container image from the running container.
parsing the source code and the container image to identify a hypertext transfer protocol request; (Col. 17, Lines 19-26 “In some embodiments, the communications mapping module 610 inspects configurations files for uniform resource indicators (“URLs”). If a URL is identified within the source element of, for example, http server sub-application 710B which references the application server 710D, the communications mapping module 610 adds a dependency from node 710B to node 710D in graph 700.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the URL corresponds to the recited hypertext transfer protocol request and is identified within the configuration files.
Kumar does not explicitly disclose:
in response to determining that a proxy setting is to be used for the hypertext transfer protocol request, determining a proxy variable; and
updating a container specification for the containerized workload to include the proxy variable.
However, Du discloses:
in response to determining that a proxy setting is to be used for the hypertext transfer protocol request, determining a proxy variable; and (Col. 2, Lines 49-53 “To process network traffic, individual side car proxies 106 can be provided with a manifest file that defines one or more routes or rules for processing traffic on behalf of the virtual node 103”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the manifest file with rules corresponds to a proxy variable and handles traffic processing.
updating a container specification for the containerized workload to include the proxy variable. (Col. 8, Line 64- Col. 9, Line 4 “The control plane service 116 could then push or send the manifest file to the appropriate sidecar proxy 106. In some instances, sending the new manifest file to the sidecar proxy 106 will cause the sidecar proxy 106 to automatically update its traffic processing rules. In other instances, the control plane service 116 could send a command to the sidecar proxy 106 to reload the manifest file to update its configuration.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the sidecar proxy is within a Virtual Node and coupled to a container, so the reloaded manifest file updates the configuration of the container.
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to add in response to determining that a proxy setting is to be used for the hypertext transfer protocol request, determining a proxy variable and updating a container specification for the containerized workload to include the proxy variable as seen in Du's invention into Kumar's invention because these modifications allow applying a known technique to a known device ready for improvement to yield predictable results such that a container specification includes the proxy variable to more clearly sync up the container workspace and its network settings.
Regarding claim 2, Kumar discloses the device of claim 1, but does not explicitly disclose:
wherein the updating of the container specification results in an updated containerized workload comprising machine generated proxy settings, and wherein the updated containerized workload is deployed to a container runtime environment.
However, Du discloses:
wherein the updating of the container specification results in an updated containerized workload comprising machine generated proxy settings, and wherein the updated containerized workload is deployed to a container runtime environment. (Col. 8, Line 64- Col. 9, Line 4 “The control plane service 116 could then push or send the manifest file to the appropriate sidecar proxy 106. In some instances, sending the new manifest file to the sidecar proxy 106 will cause the sidecar proxy 106 to automatically update its traffic processing rules. In other instances, the control plane service 116 could send a command to the sidecar proxy 106 to reload the manifest file to update its configuration.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the sidecar proxy is within a Virtual Node and coupled to a container, so the reloaded manifest file updates the configuration of the container.
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to add wherein the updating of the container specification results in an updated containerized workload comprising machine generated proxy settings, and wherein the updated containerized workload is deployed to a container runtime environment as seen in Du's invention into Kumar's invention because these modifications allow applying a known technique to a known device ready for improvement to yield predictable results such that an update container is executed with the proper proxy settings to properly communicate.
Regarding claim 3, Kumar discloses the device of claim 1, wherein the containerized workload is at least one of a containerized microservice, a containerized application, or a containerized infrastructure service. (Col. 5, Lines 52-62 “Once created, the resultant container (or “target container”) 120 includes at least the dependency component(s) (not shown in FIG. 1) for running the application 130. In some embodiments, one or more of the source elements 132 also become target elements. In other words, a set of target elements is added to the target container configuration 120 that includes the dependency component(s) and, in some situations, one or more of the source elements 132. As such, the target container configuration 120 includes application components necessary for the execution environment 140 to run the application 130 within an executing container.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the target container configuration includes application components necessary for the execution environment to run the application within an executing container.
Regarding claim 4, Kumar discloses the device of claim 1, wherein the hypertext transfer protocol request comprises a uniform resource identifier or a uniform resource locator. (Col. 17, Lines 19-26 “In some embodiments, the communications mapping module 610 inspects configurations files for uniform resource indicators (“URLs”). If a URL is identified within the source element of, for example, http server sub-application 710B which references the application server 710D, the communications mapping module 610 adds a dependency from node 710B to node 710D in graph 700.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the URL corresponds to the recited hypertext transfer protocol request and is identified within the configuration files.
Regarding claim 5, Kumar discloses the device of claim 1, but does not explicitly disclose:
wherein the hypertext transfer protocol request represents a call to service that is performed by the containerized workload.
However, Du discloses:
wherein the hypertext transfer protocol request represents a call to service that is performed by the containerized workload. (Col. 3, Lines 17-27 “The application mesh 100 can also include a virtual gateway 113, which can be used to process network traffic entering the application mesh 100 from other sources (e.g., request from client devices connected to the internet) or traffic from individual virtual nodes 103 destined for locations outside of the application mesh (e.g., responses to requests from client devices connected to the internet or requests sent to third-party services outside the application mesh 100). The virtual gateway 113 can include a proxy service or act as a proxy service in order to process the network traffic.” and Col. 3, Lines 53-65 “When a client sends a request for a virtual service 203 to virtual gateway 113, the virtual gateway 113 can evaluate the request. This can include evaluating the uniform resource locator (URL) path included in the request (e.g., in a hypertext transfer protocol (http) request), and determining which virtual node 103 is the destination of the request. The virtual gateway 113 could then forward the request to the appropriate virtual node 103. For example, if the virtual gateway 113 determined that the request was destined for the virtual node 103b, the virtual gateway 113 could forward the request to the sidecar proxy 106b. The virtual gateway 113 could then provide the request to the container 109b for processing.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the containerized workload including the virtual gateway evaluates requests including URL paths to determine where to route the request.
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to add wherein the hypertext transfer protocol request represents a call to service that is performed by the containerized workload as seen in Du's invention into Kumar's invention because these modifications allow the simple substitution of one known element for another to obtain predictable results such that the containerized workload handles the HTTP requests rather than outsourcing the requests to another device/system.
Regarding claim 7, Kumar discloses the device of claim 1, but does not explicitly disclose:
wherein the proxy variable comprises a uniform resource identifier or a uniform resource locator of a proxy server or a domain associated with the hypertext transfer protocol request.
However, Du discloses:
wherein the proxy variable comprises a uniform resource identifier or a uniform resource locator of a proxy server or a domain associated with the hypertext transfer protocol request. (Col. 3, Lines 53-65 “When a client sends a request for a virtual service 203 to virtual gateway 113, the virtual gateway 113 can evaluate the request. This can include evaluating the uniform resource locator (URL) path included in the request (e.g., in a hypertext transfer protocol (http) request), and determining which virtual node 103 is the destination of the request. The virtual gateway 113 could then forward the request to the appropriate virtual node 103. For example, if the virtual gateway 113 determined that the request was destined for the virtual node 103b, the virtual gateway 113 could forward the request to the sidecar proxy 106b. The virtual gateway 113 could then provide the request to the container 109b for processing.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the containerized workload including the virtual gateway evaluates requests including URL paths to determine where to route the request.
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to add wherein the proxy variable comprises a uniform resource identifier or a uniform resource locator of a proxy server or a domain associated with the hypertext transfer protocol request as seen in Du's invention into Kumar's invention because these modifications allow applying a known technique to a known device ready for improvement to yield predictable results such that the proxy variable includes URIs/URLs of a proxy server to contact or a domain to communicate with via HTTP request.
Regarding claim 8, Kumar discloses the device of claim 1, but does not explicitly disclose:
wherein a value of the proxy variable is stored at a known endpoint and deployment target pair data store that is configurable based on a deployment environment.
However, Du discloses:
wherein a value of the proxy variable is stored at a known endpoint and deployment target pair data store that is configurable based on a deployment environment. (Col. 2, Lines 49-53 “To process network traffic, individual side car proxies 106 can be provided with a manifest file that defines one or more routes or rules for processing traffic on behalf of the virtual node 103” and Col. 6, Lines 1-7 “Also, various data can be stored in a data store 316 that is accessible to the computing environment 303. The data store 316 can be representative of a plurality of data stores 316, which can include relational databases or non-relational databases such as object-oriented databases, hierarchical databases, hash tables or similar key-value data stores, as well as other data storage applications or data structures.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the key-value pairs in the data stores, an example of a configurable data store, can be retrieved in relation to the rules of the manifest file which corresponds to a proxy variable and handles traffic processing.
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to add wherein a value of the proxy variable is stored at a known endpoint and deployment target pair data store that is configurable based on a deployment environment as seen in Du's invention into Kumar's invention because these modifications allow applying a known technique to a known device ready for improvement to yield predictable results such that the proxy variable is stored for future verification of the proxy settings of the container.
Regarding claim 10, Kumar discloses the device of claim 8, wherein the value of the proxy variable is stored as a reference to an API object. (Col. 17, Lines 19-37 “In some embodiments, the communications mapping module 610 inspects configurations files for uniform resource indicators (“URLs”). If a URL is identified within the source element of, for example, http server sub-application 710B which references the application server 710D, the communications mapping module 610 adds a dependency from node 710B to node 710D in graph 700. Some example environment variables that provide URLs indicating communications dependencies include, for example: FULL_API_DOMAIN=http://forrest-api-codenow.runnableapp.com GITHUB_CALLBACK_URL=http://forrest-api-codenow.runnableapp.com/auth/github/callback GITHUB_HOOK_URL=http://forrest-api-codenow.runnableapp.com/actions/github DOMAIN=runnable3.net REDIS_NAMESPACE=“runnable:ryan-api” ENABLE_BUILDS_ON_GIT_PUSH=false”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the URL corresponds to the recited hypertext transfer protocol request and is identified within the configuration files, so the proxy variable URL is stored as a reference to the API domain.
Regarding claim 11, Kumar discloses the device of claim 1, but does not explicitly disclose:
wherein the updating of the container specification comprises inserting the proxy variable or overwriting an incorrectly specified proxy variable.
However, Du discloses:
wherein the updating of the container specification comprises inserting the proxy variable or overwriting an incorrectly specified proxy variable. (Col. 2, Lines 49-53 “To process network traffic, individual side car proxies 106 can be provided with a manifest file that defines one or more routes or rules for processing traffic on behalf of the virtual node 103” and Col. 8, Line 64- Col. 9, Line 4 “The control plane service 116 could then push or send the manifest file to the appropriate sidecar proxy 106. In some instances, sending the new manifest file to the sidecar proxy 106 will cause the sidecar proxy 106 to automatically update its traffic processing rules. In other instances, the control plane service 116 could send a command to the sidecar proxy 106 to reload the manifest file to update its configuration.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the sidecar proxy is within a Virtual Node and coupled to a container, so the manifest file with rules corresponds to a proxy variable and the reloaded manifest file updates the configuration of the container.
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to add wherein the updating of the container specification comprises inserting the proxy variable or overwriting an incorrectly specified proxy variable as seen in Du's invention into Kumar's invention because these modifications allow applying a known technique to a known device ready for improvement to yield predictable results such that the proxy variable is updated in the container specification to ensure proper handling of communication via proxy.
Regarding independent claim 12, Kumar discloses:
A non-transitory computer-readable medium comprising instructions that, in response to execution, cause a system comprising a processor to perform operations, comprising:
determining that a build pipeline device, comprising a capability to receive source code and to build a containerized workload, has generated a container image associated with the source code; (Col. 12, Lines 38-42 “The method 400 includes receiving 410, by the processor, a source element associated with the source application. In some embodiments, receiving 410 a source element associated with the source application further includes receiving the source element from a source control system.” and Col. 13, Lines 1-7 “The method 400 also includes providing 440, by the processor, the container configuration for execution to an execution environment enabled to execute containers. In some embodiments, providing 440 the container configuration for execution creates a running container within the execution environment, the method further comprising generating a container image from the running container.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the source code/source element is received by the processor and soon after generates the container image from the running container.
scanning the source code and the container image to identify a hypertext transfer protocol request; (Col. 17, Lines 19-26 “In some embodiments, the communications mapping module 610 inspects configurations files for uniform resource indicators (“URLs”). If a URL is identified within the source element of, for example, http server sub-application 710B which references the application server 710D, the communications mapping module 610 adds a dependency from node 710B to node 710D in graph 700.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the URL corresponds to the recited hypertext transfer protocol request and is identified within the configuration files.
Kumar does not explicitly disclose:
retrieving, from a key-value pair data store, key-value pairs that indicate proxy setting variables; and
updating a container specification for the containerized workload to include the proxy setting variables.
However, Du discloses:
retrieving, from a key-value pair data store, key-value pairs that indicate proxy setting variables; and (Col. 2, Lines 49-53 “To process network traffic, individual side car proxies 106 can be provided with a manifest file that defines one or more routes or rules for processing traffic on behalf of the virtual node 103” and Col. 6, Lines 1-7 “Also, various data can be stored in a data store 316 that is accessible to the computing environment 303. The data store 316 can be representative of a plurality of data stores 316, which can include relational databases or non-relational databases such as object-oriented databases, hierarchical databases, hash tables or similar key-value data stores, as well as other data storage applications or data structures.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the key-value data stores can be retrieved in relation to the rules of the manifest file which corresponds to a proxy variable and handles traffic processing.
updating a container specification for the containerized workload to include the proxy setting variables. (Col. 8, Line 64- Col. 9, Line 4 “The control plane service 116 could then push or send the manifest file to the appropriate sidecar proxy 106. In some instances, sending the new manifest file to the sidecar proxy 106 will cause the sidecar proxy 106 to automatically update its traffic processing rules. In other instances, the control plane service 116 could send a command to the sidecar proxy 106 to reload the manifest file to update its configuration.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the sidecar proxy is within a Virtual Node and coupled to a container, so the reloaded manifest file updates the configuration of the container.
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to add retrieving, from a key-value pair data store, key-value pairs that indicate proxy setting variables and updating a container specification for the containerized workload to include the proxy setting variables as seen in Du's invention into Kumar's invention because these modifications allow applying a known technique to a known device ready for improvement to yield predictable results such that a container specification includes the proxy variable from a key-value pair to more clearly sync up the container workspace and its network settings.
Regarding claim 14, it is a non-transitory computer-readable medium claim having the same limitations as cited in device claim 3. Thus, claim 14 is also rejected under the same rationale as addressed in the rejection of claim 3 above.
Regarding claim 15, it is a non-transitory computer-readable medium claim having the same limitations as cited in device claim 4. Thus, claim 15 is also rejected under the same rationale as addressed in the rejection of claim 4 above.
Regarding claim 16, it is a non-transitory computer-readable medium claim having the same limitations as cited in device claim 8. Thus, claim 16 is also rejected under the same rationale as addressed in the rejection of claim 8 above.
Regarding claim 17, it is a method claim having the same limitations as cited in device claim 1. Thus, claim 17 is also rejected under the same rationale as addressed in the rejection of claim 1 above.
Regarding claim 18, it is a method claim having the same limitations as cited in device claim 2. Thus, claim 18 is also rejected under the same rationale as addressed in the rejection of claim 2 above.
Regarding claim 19, Kumar discloses the method of claim 17, but does not explicitly disclose:
further comprising retrieving, by the device, the proxy variable from a configurable data store based on the hypertext transfer protocol request.
However, Du discloses:
further comprising retrieving, by the device, the proxy variable from a configurable data store based on the hypertext transfer protocol request. (Col. 2, Lines 49-53 “To process network traffic, individual side car proxies 106 can be provided with a manifest file that defines one or more routes or rules for processing traffic on behalf of the virtual node 103” and Col. 6, Lines 1-7 “Also, various data can be stored in a data store 316 that is accessible to the computing environment 303. The data store 316 can be representative of a plurality of data stores 316, which can include relational databases or non-relational databases such as object-oriented databases, hierarchical databases, hash tables or similar key-value data stores, as well as other data storage applications or data structures.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the key-value pairs in the data stores, an example of a configurable data store, can be retrieved in relation to the rules of the manifest file which corresponds to a proxy variable and handles traffic processing.
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to add retrieving, by the device, the proxy variable from a configurable data store based on the hypertext transfer protocol request as seen in Du's invention into Kumar's invention because these modifications allow applying a known technique to a known device ready for improvement to yield predictable results such that the proxy variable that was previously stored is now retrieved for verification of the proxy settings of the container.
Regarding claim 20, Kumar discloses the method of claim 17, but does not explicitly disclose:
further comprising determining, by the device, the proxy variable by literal value or by reference.
However, Du discloses:
further comprising determining, by the device, the proxy variable by literal value or by reference. (Col. 2, Lines 49-53 “To process network traffic, individual side car proxies 106 can be provided with a manifest file that defines one or more routes or rules for processing traffic on behalf of the virtual node 103”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the manifest file with rules corresponds to a proxy variable and handles traffic processing.
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to add determining, by the device, the proxy variable by literal value or by reference as seen in Du's invention into Kumar's invention because these modifications allow applying a known technique to a known device ready for improvement to yield predictable results such that the proxy variable is directly referenced from the manifest file with rules.
5. Claims 6, 9, and 13 are rejected under 35 U.S.C. 103 as being unpatentable over Kumar et al. (U.S. Patent No. 9,367,305) – hereinafter “Kumar”, in view of Du et al. (U.S. Patent No. 11,792,301) – hereinafter “Du”, and further in view of Kishimoto (U.S. Pub. No. 2013/0194630).
Regarding claim 6, Kumar discloses the device of claim 1, but does not explicitly disclose:
wherein the proxy variable represents a setting for one or more HTTP_PROXY settings, one or more HTTPS_PROXY settings, or one or more NO_PROXY settings.
However, Kishimoto discloses:
wherein the proxy variable represents a setting for one or more HTTP_PROXY settings, one or more HTTPS_PROXY settings, or one or more NO_PROXY settings. (Fig. 5 and [0092] “The line 518 declares "export:" and specifies that a setting item determined by an access key "sys/nw/tcpio/proxy/http" (setting value of the HTTP proxy server of the image forming apparatus) is extracted from the extraction-source image forming apparatus and that the extracted setting item is set in the distribution-destination image forming apparatus.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the proxy variable has a setting value of the HTTP proxy server of the image forming apparatus.
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to add wherein the proxy variable represents a setting for one or more HTTP_PROXY settings, one or more HTTPS_PROXY settings, or one or more NO_PROXY settings as seen in Kishimoto's invention into Kumar's invention because these modifications allow combining prior art elements according to known methods to yield predictable results such that the proxy variable setting directly relates to the HTTP_PROXY setting.
Regarding claim 6, Kumar discloses the device of claim 8, but does not explicitly disclose:
wherein the value of the proxy variable is stored as a key-value pair that is paired with a domain of the hypertext transfer protocol request.
However, Kishimoto discloses:
wherein the value of the proxy variable is stored as a key-value pair that is paired with a domain of the hypertext transfer protocol request. ([0113] “The line 615 specifies a correspondence between an access key and a real address for extracting (setting) a setting value of the DNS domain name set in the image forming apparatus 202. The line 616 specifies a correspondence between an access key and a real address for extracting (setting) a setting value of the HTTP proxy server set in the image forming apparatus 202.”) The citation is interpreted to read on the claimed invention because under broadest reasonable interpretation, the key-value pair/correspondence between access key and DNS domain name is set in the image forming apparatus. The key-value pair/correspondence between access key and proxy variable setting value is set in the image forming apparatus. As such, the proxy variable can be stored as a key-value pair with a domain of the HTTP request.
Therefore, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention to add wherein the value of the proxy variable is stored as a key-value pair that is paired with a domain of the hypertext transfer protocol request as seen in Kishimoto's invention into Kumar's invention because these modifications allow applying a known technique to a known device ready for improvement to yield predictable results such that the proxy variable is directly tied to the domain of the HTTP request that its containerized workload will handle.
Regarding claim 13, it is a non-transitory computer-readable medium claim having the same limitations as cited in device claim 6. Thus, claim 13 is also rejected under the same rationale as addressed in the rejection of claim 6 above.
Conclusion
6. The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Such prior art includes Lenrow et al. (U.S. Pub. No. 2023/0047880) which discloses containerized systems that include containerized applications deployed in a service mesh architecture with each containerized application connected to other containerized applications and to a mesh controller through a sidecar proxy and Sharma et al. (U.S. Pub. No. 2024/0422107) which discloses a container platform with an included service proxy that monitors for the addition and removal of service and endpoints objects, and it maintains the network configuration of the computing device to ensure communication among pods and containers using services.
Examiner has cited particular columns/paragraphs/sections and line numbers in the references applied and not relied upon to the claims above for the convenience of the applicant. Although the specified citations are representative of the teachings of the art and are applied to specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested from the applicant in preparing responses, to fully consider the references in entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the Examiner.
When responding to the Office action, applicant is advised to clearly point out the patentable novelty the claims present in view of the state of the art disclosed by the reference(s) cited or the objections made. A showing of how the amendments avoid such references or objections must also be present. See 37 C.F.R. 1.111(c).
When responding to this Office action, applicant is advised to provide the line and page numbers in the application and/or reference(s) cited to assist in locating the appropriate paragraphs.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to DANIEL B TRAINOR whose telephone number is (571)272-3710. The examiner can normally be reached Monday-Friday 9AM-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, Pierre Vital can be reached at (571) 272-4215. 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.
/D.T./Examiner, Art Unit 2198
/PIERRE VITAL/Supervisory Patent Examiner, Art Unit 2198