DETAILED ACTION
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 .
Continued Examination Under 37 CFR 1.114
A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on 11/14/2025 has been entered.
This action is responsive to the Applicant’s amendments filed on 11/14/2025. Claims 1-20 remain pending in the application. Claims 1, 3, 9, and 15 have been amended. Any examiner’s note, objection, and rejection not repeated is withdrawn due to Applicant’s amendment.
Examiner’s Note
The Examiner cites particular columns, paragraphs, figures, and line numbers in the references as applied to the claims below for the convenience of the applicant. Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may also apply. It is respectfully requested that, in preparing responses, the Applicant fully consider the references in its 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.
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-3, 9, 13, and 15-17 are rejected under 35 U.S.C. 103 as being unpatentable over Pabón et al. (US 20230195535 A1) hereafter referred to as Pabón in view of Kulkarni et al. (US 20240111630 A1) hereafter Kulkarni, further in view of Tarrant (US 20200136900 A1), further in view of Bai et al. (US 20200151023 A1).
Regarding claim 1, Pabón teaches:
A method comprising:
establishing a microservice architecture application including a plurality of microservices, each microservice configured to perform a piecemeal function of an overall application function, the plurality of microservices managed by an application control plane (Paragraph 190; “The functions, as microservices, may split into control planes, user and data planes, or even state machines, allowing for independent optimization and scaling techniques to be applied. Such user and data planes may be enabled through increased accelerators, both those residing in server platforms, such as FPGAs and Smart NICs, and through SDN-enabled merchant silicon and programmable ASICs”. Paragraph 253 confirms that there is a control plane that manages the microservice application, “A control plane of the container system 400 may implement services that include: deploying applications via a controller 412, monitoring applications via the controller 412, providing an interface via an API server 414, and scheduling deployments via scheduler 416”, the control plane 400 corresponding to the application control plane. Paragraph 254 confirms this hierarchy, “For example, a containerized application may request a storage class from the control plane, where the request is handled by the container manager, and the container manager communicates the request to the control plane using the agent 418.”);
linking in a cluster, by the application control plane, a set of nodes associated with a subset of the plurality of microservices and a corresponding set of data planes, wherein the set of data planes communicate packets and application requests/responses between the plurality of microservices (Paragraph 110; “If multiple storage clusters are configured into a storage grid, the multiple storage clusters are connected using the Internet or other long-distance networking links, such as a “metro scale” link or private link that does not traverse the internet”, where the storage cluster corresponds to the applicant’s set of nodes associated with a subset of the plurality of microservices and corresponding set of data planes. Paragraph 120 confirms the control plane has authority over the underlying node interaction, thereby having performed the linking in a cluster, “FIG. 2E is a blade 252 hardware block diagram, showing a control plane 254, compute and storage planes 256, 258, and authorities 168 interacting with underlying physical resources, using embodiments of the storage nodes 150”. Paragraph 127 further discloses “The embodiments described herein may utilize various software, communication and/or networking protocols... The routing of packets between networked systems may include Equal-cost multi-path routing (‘ECMP’)”, in which Paragraph 110 discloses “multiple storage clusters are configured into a storage grid, the multiple storage clusters are connected using the Internet”, corresponding to the data planes communicating packets between the plurality of microservices. Paragraph 100 discloses “segment host requests the data be sent to storage node 150 by requesting pages from storage and then sending the data to the storage node making the original request.”, showing that requests/responses between the plurality of microservices, each of the storage nodes, are communicated.);
and updating, by the application control plane, configurations of nodes in the cluster executing at the application control plane to a latest configuration (Paragraph 94; “Storage nodes 150 are hot pluggable, meaning that a storage node 150 can be inserted into a slot 142 in the chassis 138, or removed from a slot 142, without stopping or powering down the system. Upon insertion or removal of storage node 150 from slot 142, the system automatically reconfigures in order to recognize and adapt to the change. Reconfiguration, in some embodiments, includes restoring redundancy and/or rebalancing data or load”, where reconfiguration corresponds to the applicant’s updating and latest configuration corresponds to the current state of storage nodes after the hot plug event, corresponding to the applicant’s latest configuration).
While Pabón teaches storage nodes, Pabón does not teach processing nodes that execute microservices compatible to receive a same configuration; or sending the latest configuration to each corresponding data plane that caches the local configuration at the local disk.
However, Kulkarni teaches:
processing nodes that execute microservices compatible to receive a same configuration (Paragraphs 26, 35; “FIG. 1B illustrates consistency group 1 denoted by a dashed boundary, which includes microservice A-1 of service category A, microservice B-1 of service category B, and microservice C-1 of service category C” discloses microservices operating in a distributed microservice architecture to perform processing operations, thereby being executed on underlying processing nodes. “A consistency group may also define group-wide parameter thresholds (e.g., thresholds for cumulative CPU usage, threads, and/or any other parameters for all microservices within the consistency group) in addition or alternative to microservice-specific parameter thresholds” show that the consistency group contains shared parameters that are passed to all processing nodes within the consistency group.);
the subset of the plurality of microservices perform a subset of the piecemeal functions of the overall application function (Paragraph 26; “each consistency group may be defined by associated with performance of a distributed operation within the microservice architecture 100, as indicated in FIG. 1B by “Operation 1” being associated with consistency group 1 by grouping within a similar boundary box. For example, consistency group 1 may include all microservices utilized for performance of a compliance check operation, job scheduling and processing operation, copy management operation, or other type of operation (even where the needed microservices are associated with different service categories).”, each consistency group is a subset of the plurality of microservices which perform a subset of the piecemeal functions, i.e. performance of a compliance check operation, job scheduling and processing, etc., of the overall application function.).
Pabón and Kulkarni are considered to be analogous to the claimed invention because they are in the same field of resource provisioning. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Pabón to incorporate the teachings of Kulkarni and perform a simple substitution of the microservice storage nodes of Pabón for the microservice processing nodes of Kulkarni. A person of ordinary skill in the art would have recognized storage nodes and processing nodes as alternatives in microservice architectures whose implementation would yield the predictable result of enabling independent scaling of each of the components necessary for microservice application execution. Further, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have the subset of the plurality of microservices perform a subset of the piecemeal functions of the overall application function. In combination with the substitution of storage nodes for processing nodes, a person of ordinary skill in the art would recognize that distributing functionality across multiple microservices is a known method in microservice architecture and applying the technique would have yielded the predictable result of modularized execution of the overall application function, improving scalability and maintainability.
Pabón in view of Kulkarni does not teach sending, by the application control plane, the latest configuration to each of the corresponding data planes associated with the cluster, wherein each data plane caches the latest configuration on a local storage disk of an associated processing node in the cluster.
However, Tarrant teaches:
sending, by the application control plane, the latest configuration to each of the corresponding data planes associated with the cluster, wherein each data plane caches the latest configuration on a local storage disk of an associated processing node in the cluster (Paragraph 24; “As an example of the operation of the global state manager described above, a computing device such as processing device 104 can perform the operations of process 400 shown in FIG. 4 to provide node configuration sharing and validation in a grid network. More specifically, at block 402, processing device 104 sends a join request to at least one peer node 150a-c. At block 404, the processing device 104 receives, as a response, a join command from a peer node. The request and response can be sent over the grid network through I/O module 110. The join command includes the current global configuration state”, where the node configuration sharing and validation in a grid network via the join command including the current global configuration state corresponds to the applicant’s sending via application control plane, the latest configuration to each corresponding data plane in the cluster. The configuration is stored in local memory as disclosed in Paragraph 16, referencing element 106, “The join command includes the current global configuration state embedded therein. This global configuration state is stored in memory device 106 as a configuration file 160.”).
Pabón, Kulkarni, and Tarrant are considered to be analogous to the claimed invention because they are in the same field of resource provisioning in grid networks. Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the invention to have combined the teachings of Pabón in view of Kulkarni with Tarrant to send the latest configuration to each data plane associated with the cluster and cache the configuration information at a local disk. A person of ordinary skill in the art would be motivated to implement this solution as ensuring each data plane operates under the same, up-to-date configuration would avoid inconsistent behavior originating from configuration version mismatches. Storing the information on the local disk would be faster and less resource intensive than making a remote call each time configuration information is required.
Pabón in view of Kulkarni, further in view of Tarrant does not teach the data planes being compatible to receive a same configuration.
However, Bai teaches:
data planes that are compatible to receive a same configuration (Paragraphs 71; “where the control planes 608a-n use the same or similar formats or protocols, the resource bindings 604a-n may include similar or identical information provided to each of the control planes 608a-n at the respective datacenters 606a-n.” corresponds to a set of data planes that are compatible to receive a same configuration because it shows that the data planes can all receive and operate using the same first information, corresponding to the configuration, provided to each data plane.).
Pabón, Kulkarni, Tarrant, and Bai are considered to be analogous to the claimed invention because they are in the same field of resource provisioning in grid networks. Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the invention to have combined the teachings of Pabón in view of Kulkarni, further in view of Tarrant with Bai to have the data planes be compatible to receive the same configuration. A person of ordinary skill in the art would have recognized application of a common configuration cross multiple data planes is a known method in distributed microservice-based systems and would have yielded the predictable result of uniform configuration management and simplified control across the data planes.
Regarding claim 9, Pabón teaches:
A method comprising:
at a first data plane of a first microservice of a plurality of microservices in a distributed gateway architecture, communicating with an application control plane that manages a microservice architecture application, each microservice of the plurality of microservices configured to perform a piecemeal function of an overall application function, wherein the first data plane is associated with a cluster of data planes, wherein the first data plane communicates packets and application requests/responses between the plurality of microservices; (Paragraph 190; “The functions, as microservices, may split into control planes, user and data planes, or even state machines, allowing for independent optimization and scaling techniques to be applied. Such user and data planes may be enabled through increased accelerators, both those residing in server platforms, such as FPGAs and Smart NICs, and through SDN-enabled merchant silicon and programmable ASICs”, where the plurality of data planes corresponds to the applicant’s cluster of data planes associated with a microservice. Paragraph 127 further discloses “The embodiments described herein may utilize various software, communication and/or networking protocols... The routing of packets between networked systems may include Equal-cost multi-path routing (‘ECMP’)”, in which Paragraph 110 discloses “multiple storage clusters are configured into a storage grid, the multiple storage clusters are connected using the Internet”, corresponding to the data planes communicating packets between the plurality of microservices. Paragraph 100 discloses “segment host requests the data be sent to storage node 150 by requesting pages from storage and then sending the data to the storage node making the original request.”, showing that requests/responses between the plurality of microservices, each of the storage nodes, are communicated).
Pabón teaches communicating between the application control plane and associated data planes. It would have been obvious to a person of ordinary skill in the art to establish communication prior to communicating, as establishing a connection to communicate between components is a known method in the art yielding the predictable result of enabling data exchange between system components.
Pabón does not teach that the nodes are processing nodes that execute microservices compatible to receive a same configuration; or data planes being compatible to receive a same configuration.
However, Kulkarni teaches:
the first microservice performs a subset of the piecemeal functions of the overall application function (Paragraph 26, Fig. 1; “each consistency group may be defined by associated with performance of a distributed operation within the microservice architecture 100, as indicated in FIG. 1B by “Operation 1” being associated with consistency group 1 by grouping within a similar boundary box. For example, consistency group 1 may include all microservices utilized for performance of a compliance check operation, job scheduling and processing operation, copy management operation, or other type of operation (even where the needed microservices are associated with different service categories).”, each consistency group is a subset of the plurality of microservices which perform a subset of the piecemeal functions, i.e. performance of a compliance check operation, job scheduling and processing, etc., of the overall application function. Each microservice performs a subset of the overall function as grouped by consistency groups as evidenced in the Fig. 1 table.).
Pabón and Kulkarni are considered to be analogous to the claimed invention because they are in the same field of resource provisioning. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Pabón to incorporate the teachings of Kulkarni and have the subset of the plurality of microservices perform a subset of the piecemeal functions of the overall application function. A person of ordinary skill in the art would recognize that distributing functionality across multiple microservices is a known method in microservice architecture and applying the technique would have yielded the predictable result of modularized execution of the overall application function, improving scalability and maintainability.
Pabón in view of Kulkarni does not teach receiving a latest configuration file, caching the latest configuration file, or accessing the configuration file to service a microservice.
However, Tarrant teaches:
receiving a latest configuration sent to each data plane associated with the cluster (Paragraph 21; “At block 302, processing device 104 receives, from a peer node, using I/O module 110, a global configuration state for provisioning nodes in a cluster for running an application”);
caching, by the first data plane, the latest configuration on a local storage disk (Paragraph 16; “In this example, when node 102 joins the cluster, it issues a join request to peer node 150a, which issues a response in the form of a join command. The join command includes the current global configuration state embedded therein. This global configuration state is stored in memory device 106 as a configuration file 160”, where storing in a memory device corresponds to the applicant’s caching);
and accessing the configuration at the local storage disk to serve the first microservice (Paragraph 18; “The local configuration is a list of all attributes used by the node to configure itself for use in the cluster and their values. This list can be stored in memory device 106 as a file or collection of files. The processing device can then run the application 210 on the local node using the local configuration 207. The global configuration state can be sent or received from peer nodes 150a-c”, where in order to use the local configuration, the configuration file must be accessed).
Pabón, Kulkarni and Tarrant are considered to be analogous to the claimed invention because they are in the same field of resource provisioning in grid networks. Therefore, it would have been obvious to a person of ordinary skill in the art to have combined the teachings of Pabón in view of Kulkarni with Tarrant to receive, cache, and access a local configuration file. Doing so would represent an expected design choice for improving performance, fault tolerance, and operational consistency yielding the ability to avoid downtime during a loss in connectivity and a reduction in dependency on external systems.
Pabón in view of Kulkarni, further in view of Tarrant does not teach the data planes being compatible to receive a same configuration.
However, Bai teaches:
data planes that are associated with a cluster of data planes that are compatible to receive a same configuration from the application control plane (Paragraphs 71; “where the control planes 608a-n use the same or similar formats or protocols, the resource bindings 604a-n may include similar or identical information provided to each of the control planes 608a-n at the respective datacenters 606a-n.” corresponds to a set of data planes that are compatible to receive a same configuration because it shows that the data planes can all receive and operate using the same first information, corresponding to the configuration, provided to each data plane. Unified deployment system performs actions on associated clusters as evidenced by Paragraph 58; “unified deployment system 104 deploys a second cloud-native service by providing the second resource binding 412b and associated application data 402 to the second control plane 406b on a first node cluster 410a”, functionally performing the same action and communications as the application control plane.).
Pabón, Kulkarni, Tarrant, and Bai are considered to be analogous to the claimed invention because they are in the same field of resource provisioning in grid networks. Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the invention to have combined the teachings of Pabón in view of Kulkarni further in view of Tarrant with Bai to have the data planes be compatible to receive the same configuration. A person of ordinary skill in the art would have recognized application of a common configuration cross multiple data planes is a known method in distributed microservice-based systems and would have yielded the predictable result of uniform configuration management and simplified control across the data planes.
Claim 15 contains the same limitations as those of claim 9, directed towards a system, additionally reciting a microservice executing on a node; and a memory having instructions stored thereon, that, when executed cause the node to perform actions. Pabón teaches:
a microservice executing on a node (Paragraphs 430-431; “Deployable components described herein may also refer to functions, services, microfunctions, microservices…”. Further, “Certain implementations of the controller 502 may be configured to orchestrate execution of deployable components of a software application, including serverless functions and other such deployable components described above, by deploying these components across not only different computing resources of a node or different nodes of a cluster, but also across different clusters (e.g., including different clusters in a same data center or different clusters distributed to data centers located in different geographies)” explicitly describes deployment and orchestration of microservices across nodes in a cluster);
and a memory having instructions stored thereon, that, when executed cause the node to perform actions (Paragraph 241; “a non-transitory computer-readable medium storing computer-readable instructions may be provided in accordance with the principles described herein. The instructions, when executed by a processor of a computing device, may direct the processor and/or computing device to perform one or more operations”).
Claim 15 is rejected for reasons similar to those of claim 9.
Regarding claim 2, Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai teach the method of claim 1. Pabón teaches:
wherein the microservice architecture application includes a plurality of clusters of microservices, each cluster associated with one or more categories, each category associated with one or more of a service group of microservices that together perform one or more related processes for the microservice architecture application or a type of function performed by microservices associated with the category (Paragraph 430-431; “Deployable components described herein may also refer to functions, services, microfunctions, microservices, function as a service (FaaS) offerings, and other such concepts that are related to serverless computing and offered for similar reasons to achieve similar results and benefits”, where the controller orchestrates components, corresponding to the applicant’s service group of microservice processes, of the overall application, as disclosed in Paragraph 431, “Certain implementations of the controller 502 may be configured to orchestrate execution of deployable components of a software application, including serverless functions and other such deployable components described above, by deploying these components across not only different computing resources of a node or different nodes of a cluster, but also across different clusters (e.g., including different clusters in a same data center or different clusters distributed to data centers located in different geographies)”).
Regarding claim 13, Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai teach the method of claim 9. Pabón teaches:
wherein the microservice architecture application includes a plurality of clusters of microservices, each cluster associated with one or more categories, each category associated with one or more of a service group of microservices that together perform one or more related processes for the microservice architecture application or a type of function performed by microservices associated with the category (Paragraph 430-431; “Deployable components described herein may also refer to functions, services, microfunctions, microservices, function as a service (FaaS) offerings, and other such concepts that are related to serverless computing and offered for similar reasons to achieve similar results and benefits”, where the controller orchestrates components, corresponding to the applicant’s service group of microservice processes, of the overall application, as disclosed in Paragraph 431, “Certain implementations of the controller 502 may be configured to orchestrate execution of deployable components of a software application, including serverless functions and other such deployable components described above, by deploying these components across not only different computing resources of a node or different nodes of a cluster, but also across different clusters (e.g., including different clusters in a same data center or different clusters distributed to data centers located in different geographies)”).
Regarding claim 3, Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai teach the method of claim 1. Pabón teaches:
wherein the nodes in the set of nodes are distributed among different data centers, geographies, and/or time zones (Paragraph 357; “a user may similarly rely on implementations of the controller 502 that will now be described to manage various details of the deployment of a job so as to use multi-duster computing resources (e.g., computing resources from different dusters within a single data center or even from dusters distributed to different geographies around the globe)”, where dusters correspond to the applicant’s nodes).
Kulkarni teaches:
processing nodes (Paragraphs 26, 35; “FIG. 1B illustrates consistency group 1 denoted by a dashed boundary, which includes microservice A-1 of service category A, microservice B-1 of service category B, and microservice C-1 of service category C” discloses microservices operating in a distributed microservice architecture to perform processing operations, thereby being executed on underlying processing nodes.).
Regarding claim 16, Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai teach the method of claim 15. Pabón teaches:
wherein the microservice architecture application includes a plurality of clusters, each cluster associated with one or more categories (Paragraph 430-431; “Deployable components described herein may also refer to functions, services, microfunctions, microservices, function as a service (FaaS) offerings, and other such concepts that are related to serverless computing and offered for similar reasons to achieve similar results and benefits”, where the controller orchestrates components, corresponding to the applicant’s service group of microservice processes, of the overall application, as disclosed in Paragraph 431, “Certain implementations of the controller 502 may be configured to orchestrate execution of deployable components of a software application, including serverless functions and other such deployable components described above, by deploying these components across not only different computing resources of a node or different nodes of a cluster, but also across different clusters (e.g., including different clusters in a same data center or different clusters distributed to data centers located in different geographies)”).
Regarding claim 17, Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai teach the system of claim 16. Pabón teaches:
wherein each category is associated with a service group of microservices that together perform a purpose for the microservice architecture application (Paragraph 430; “Deployable components described herein may also refer to functions, services, microfunctions, microservices, function as a service (FaaS) offerings, and other such concepts that are related to serverless computing and offered for similar reasons to achieve similar results and benefits”, where the controller orchestrates components, corresponding to the applicant’s service group of microservice processes, of the overall application)
Claims 4, 8, 11-12, 14, 19, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai, further in view of Bahl et al. (US 20210019194 A1) hereafter referred to as Bahl.
Regarding claim 4, Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai teach the method of claim 1. Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai does not teach determining one or more of the microservices of the subset that have a plugin installed or pushing a new configuration for the plugin to the data planes of the microservices.
However, Bahl teaches:
determining one or more of the microservices of the subset that have a plugin installed (Paragraph 83; “In addition, the decision module 424 can determine how and where to provision the computing resources for the application, intermediate components, and the microservice containers 228 based on the availability of unreserved computing resources and monetary cost constraints, SLA requirements, and other governance information applicable at various levels of the application hierarchy”, where the determination of where to provision computing resources, some of which being microservice containers, intermediate components corresponding to the applicant’s plugins, corresponds to the applicant’s determination of what microservices of the subset have a plugin installed);
and pushing, by the application control plane, a new configuration for the plugin to the data planes of the one or more microservices of the subset (Paragraph 92; “decision module 424 may determine to provision the unreserved computing instance to deploy the microservice container and additional instances (e.g., replicas) of the microservice container, and to hibernate or terminate the reserved computing instances”, where the provisioning and deployment of resources causes an update to the configuration, corresponding to the applicant’s new configuration for the intermediate resources, corresponding to the applicant’s plugin, to the data planes of microservice(s) in the subset).
Pabón, Kulkarni, Tarrant, Bai, and Bahl are considered to be analogous to the claimed invention because they are in the same field of resource orchestration in distributed systems. Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have combined the teachings of Pabón in view of Kulkarni, further in view of Tarrant further in view of Bai with Bahl to determine one or more of the microservices of the subset that have a plugin installed and push a new configuration for the plugin to the data planes of the microservices. The motivation to combine would come from avoiding unnecessary overhead by only pushing plug-in configuration updates to the relevant services that use the plug-in and minimizing risk of misconfiguration on other services. Identification of applicable services would be an obvious step for a person of ordinary skill in the art to make in the process of optimizing configuration update propagation.
Regarding claim 8, Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai teach the method of claim 1. Pabón in view of Kulkarni further in view of Tarrant further in view of Bai does not teach responding to an action at the application control plane by triggering an update to the data planes of the subset of microservices and identifying the action in the update.
However, Bahl teaches:
in response to an action at the application control plane, triggering an update to the data planes of the subset of microservices, wherein the update identifies the action (Paragraph 92; “As another example, if the decision module 424 determines that an additional computing instance must be provisioned for a microservice container currently deployed using a reserved computing instance, then the decision module 424 may check for the availability of unreserved computing resources. If unreserved computing resources are available, the decision module 424 may evaluate whether deploying the microservice container using the unreserved computing instance better satisfies the individual monetary cost constraint, SLA requirements, and other criteria for governing the microservice container”, where the criteria for constraints of the microservice not being met at the currently deployment of the application corresponds to the applicant’s action at the application control plane, and redeployment of resources from the decision module corresponds to the applicant’s identification of the action that triggered the update).
Pabón, Kulkarni, Tarrant, Bai, and Bahl are considered to be analogous to the claimed invention because they are in the same field of resource orchestration in distributed systems. Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have combined the teachings of Pabón in view of Kulkarni further in view of Tarrant further in view of Bai with Bahl to respond to an action at the application control plane by triggering an update to the data planes of the subset of microservices and identify the action in the update. Motivation to do so would come from the understanding that triggering the action for only a subset of microservices avoids risking service disruption in unrelated deployments. Identification of the action in the update would provide an improvement to debugging and consistency checking capabilities.
Regarding claim 14, Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai teach the method of claim 9. Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai does not teach responding to an action at the application control plane by triggering an update to the data planes of the subset of microservices and identifying the action in the update.
However, Bahl teaches:
receiving, from the application control plane, an update identifying an action at the application control plane, the update sent in response to the action at the application control plane (Paragraph 92; “the decision module 424 may determine to provision the unreserved computing instance to deploy the microservice container and additional instances”. The decision module is part of the control logic governing deployment, corresponding to the application control plane. Its determination to provision (or terminate) instances is an action at the control plane, and the decision is used to update the state of the system. “In addition, the decision module 424 may determine how and where to provision compute instances…”, where the action at the control plane of provisioning or termination of instances necessarily triggers updates communicated to lower-level resources and orchestration components. Therefore, the update is sent in response to the action taken by the decision module at the control plane).
Pabón, Kulkarni, Tarrant, Bai, and Bahl are considered to be analogous to the claimed invention because they are in the same field of resource orchestration in distributed systems. Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have combined the teachings of Pabón in view of Kulkarni further in view of Tarrant further in view of Bai with Bahl to respond to an action at the application control plane by triggering an update to the data planes of the subset of microservices and identify the action in the update. Motivation to do so would come from the understanding that triggering the action for only a subset of microservices avoids risking service disruption in unrelated deployments. Identification of the action in the update would provide an improvement to debugging and consistency checking capabilities.
Regarding claim 11, Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai teach the method of claim 9. Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai does not teach responding to the application control plane being down by continuing to service requests to a microservice based on the cached configuration.
However, Bahl teaches:
responsive to the application control plane being down, continuing, by the first data plane, to serve requests for the first microservice based on the cached configuration (Paragraph 43; “The controller manager 206 (e.g., Kubernetes® kube-controller-manager, Kubernetes® cloud-controller-manager, etc.) can comprise a collection of controllers for monitoring the shared state of the cluster and making changes to the shared state. Each controller can be a separate process logically, but to reduce complexity, the collection of controllers can be compiled into a single binary and execute within a single process. The controller manager 206 can include a node controller, replication controller, endpoints controller, an account and token controller, route controller, service controller, volume controller, among other controllers. The node controller can be responsible for managing pod availability and bringing nodes back up when they go down”, where the nodes correspond to the application control plane and when they go down, the node controller, corresponding to the first data plane, may continue to serve requests from the nodes through a distributed KV store, corresponding to the applicant’s cached configuration, as disclosed in Paragraph 45; “The container orchestrator 200 can use the distributed KV store 210 to store cluster state information. In a small, short-lived cluster, a single instance of the KV store 210 can run on the same host as other components of the master 202”).
Pabón, Kulkarni, Tarrant, Bai, and Bahl are considered to be analogous to the claimed invention because they are in the same field of resource orchestration in distributed systems. Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have combined the teachings of Pabón in view of Kulkarni further in view of Tarrant further in view of Bai with Bahl to respond to the application control plane being down by continuing to service requests to a microservice based on the cached configuration. Motivation for a person of ordinary skill in the art would come from wanting to ensure control plane outages have a minimal impact on the data plane. Continuing to service requests using the cached configuration would ensure service continuity during temporary outages.
Regarding claim 12, Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai teaches the method of claim 9. Tarrant teaches:
determining whether the first data plane can enable requested features of the configuration (Paragraph 259; “the container storage system 402 may be configured to determine the available storage resources in any suitable way, including based on a configuration file”);
and caching the configuration update at the local storage disk (Paragraph 163; “In such embodiments, the local storage 330, 334, 338 resources and block storage 342, 344, 346 resources that are utilized by the cloud computing instances 340a, 340b, 340n may effectively operate as cache”). Pabón in view of Kulkarni further in view of Tarrant further in view of Bai does not teach responding to receiving a configuration update from the application control plane or determining that a control plane does not contain new features from a newer version.
However, Bahl teaches:
responsive to receiving, from the application control plane, a configuration update (Paragraph 232; “The configuration file 1304 may also be loaded on first use, or every time data is requested. In such an example, if the internal data layout changed, such as moving volts AN to an offset of 1036 bytes, the configuration file 1304 could be updated along with the data collection firmware”);
and responsive to determining that the configuration update does not include new features from a newer version at the application control plane (Paragraph 376; “The updater program 2152 will check for newer versions of the packages installed on the IED by comparing the information stored in the local package list 2162 with the information stored in the remote server package list 2108, as described above”, where the check for newer versions of the packages installed on the IED corresponds to the applicant’s determining whether the configuration update contains new features from a newer version).
Pabón, Kulkarni, Tarrant, Bai, and Bahl are considered to be analogous to the claimed invention because they are in the same field of resource orchestration in distributed systems. Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have combined the teachings of Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai with Bahl to respond to receiving a configuration update and respond to a determination that the update does not contain new features from a newer version. A person having ordinary skill in the art would recognize that feature and version checks during configuration file parsing are routine in container-based systems such as gRPC and Kubernetes. This would help prevent undefined behavior and crashes from applying a configuration file that references unknown or unimplemented features, and ensure that updates occur when a newer configuration file is available for replacement.
Claim 19 contains the same limitations as those of claim 11, directed towards a system. Claim 19 is rejected for reasons similar to those of claim 11.
Regarding claim 20, Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai teaches the system of claim 15. Tarrant teaches:
determining whether the first data plane can enable requested features of the configuration (Paragraph 259; “the container storage system 402 may be configured to determine the available storage resources in any suitable way, including based on a configuration file”);
and caching the configuration update at the local storage disk (Paragraph 163; “In such embodiments, the local storage 330, 334, 338 resources and block storage 342, 344, 346 resources that are utilized by the cloud computing instances 340a, 340b, 340n may effectively operate as cache”). Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai does not teach responding to receiving a configuration update from the application control plane or determining that a control plane does not contain new features from a newer version.
However, Bahl teaches:
responsive to receiving, from the application control plane, a configuration update (Paragraph 232; “The configuration file 1304 may also be loaded on first use, or every time data is requested. In such an example, if the internal data layout changed, such as moving volts AN to an offset of 1036 bytes, the configuration file 1304 could be updated along with the data collection firmware”);
and responsive to determining that the configuration update does not include new features from a newer version at the application control plane (Paragraph 376; “The updater program 2152 will check for newer versions of the packages installed on the IED by comparing the information stored in the local package list 2162 with the information stored in the remote server package list 2108, as described above”, where the check for newer versions of the packages installed on the IED corresponds to the applicant’s determining whether the configuration update contains new features from a newer version).
Pabón, Kulkarni, Tarrant, Bai, and Bahl are considered to be analogous to the claimed invention because they are in the same field of resource orchestration in distributed systems. Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have combined the teachings of Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai with Bahl to respond to receiving a configuration update and respond to a determination that the update does not contain new features from a newer version. A person having ordinary skill in the art would recognize that feature and version checks during configuration file parsing are routine in container-based systems such as gRPC and Kubernetes. This would help prevent undefined behavior and crashes from applying a configuration file that references unknown or unimplemented features, and ensure that updates occur when a newer configuration file is available for replacement.
Claim 5 is rejected under 35 U.S.C. 103 as being unpatentable over Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai, further in view of Bahl, further in view of Coutinho Moraes et al. (US 20210382764 A1) hereafter referred to as Moraes.
Regarding claim 5, Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai, further in view of Bahl teach the method of claim 4. Pabón teaches:
data planes of one or more microservices of the subset (Paragraph 430; “Deployable components described herein may also refer to functions, services, microfunctions, microservices, function as a service (FaaS) offerings, and other such concepts that are related to serverless computing and offered for similar reasons to achieve similar results and benefits”, where the deployable components of a microservice correspond to the applicant’s data planes of one or more microservices of the subset). Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai further in view of Bahl does not teach having the same major version.
However, Moraes teaches:
having the same major version (Paragraph 19; “Different version numbers may indicate an interface or functionality of the application has changed”, where if the version number is different, functionality has changed. If the version number is the same, the functionality has not changed, corresponding to the applicant’s same major version).
Pabón, Kulkarni, Tarrant, Bai, Bahl, and Moraes are considered to be analogous to the claimed invention because they are in the same field of resource management in orchestration systems. Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have combined the teachings of Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai further in view of Bahl with Moraes to have the same major version across the data planes. Doing so would ensure that each of the individual components making up the microservices are running the most up-to-date version possible.
Claim 6 is rejected under 35 U.S.C. 103 as being unpatentable over Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai, further in view of Bahl, further in view of Willson et al. (US 10114637 B1) hereafter referred to as Willson.
Regarding claim 6, Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai, further in view of Bahl teach the method of claim 4. Pabón teaches:
data planes of the one or more microservices of the subset (Paragraph 430; “Deployable components described herein may also refer to functions, services, microfunctions, microservices, function as a service (FaaS) offerings, and other such concepts that are related to serverless computing and offered for similar reasons to achieve similar results and benefits”, where the deployable components of a microservice correspond to the applicant’s data planes of one or more microservices of the subset). Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai, further in view of Bahl does not teach minor versions of plugins are not newer than a version installed at the application control plane.
However, Willson teaches:
wherein minor versions of plugins are not newer than a version installed at the application control plane (Col. 9, lines 50-55; “If build file downloader 210 determines that a stored version of the shared build module is older than the most recent version of the shared build module, build file downloader 210 may determine whether or not to download the most recent version of the shared build module”, where the stored version corresponds to the applicant’s minor version).
Pabón, Kulkarni, Tarrant, Bai, Bahl, and Willson are considered to be analogous to the claimed invention because they are in the same field of resource management in orchestration systems. Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have combined the teachings of Pabón in view of Kulkarni, further in view of Tarrant further in view of Bai further in view of Bahl with Willson to have minor versions of microservices that are not newer than those installed at the application control plane. A person of ordinary skill in the art would recognize that it would not be possible to have a cluster at a newer minor version than the application control plane, as the application control plane would receive the update first, then update the clusters with relevant version information.
Claim 7 is rejected under 35 U.S.C. 103 as being unpatentable over Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai, further in view of Willson.
Regarding claim 7, Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai teach the method of claim 1. Pabón teaches:
data planes of the one or more microservices of the subset (Paragraph 430; “Deployable components described herein may also refer to functions, services, microfunctions, microservices, function as a service (FaaS) offerings, and other such concepts that are related to serverless computing and offered for similar reasons to achieve similar results and benefits”, where the deployable components of a microservice correspond to the applicant’s one or more microservices of the subset). Pabón in view of Kulkarni, further in view of Tarrant further in view of Bai does not teach pushing a new version of an application including a new plugin.
However, Willson teaches:
pushing a new version of an application, wherein the new version includes a new plugin (Col. 16, lines 28-34; “For minor updates (e.g., updates that are backwards compatible with previous versions of the shared build module and fix bugs in a previous version of the shared build module or add limited new functionality to the shared build module), build file downloader 632 may automatically download the new version of the shared build module”).
Pabón, Kulkarni, Tarrant, Bai, and Willson are considered to be analogous to the claimed invention because they are in the same field of resource management in orchestration systems. Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have combined the teachings of Pabón in view of Kulkarni further in view of Tarrant further in view of Bai with Willson to push a new version of an application including a new plugin to microservices of the subset. Motivation to do so would come from having the ability to enable updates to microservices including new plugins that may be used for additional functionality.
Claims 10 and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai, further in view of Chen et al. (US 20180109464 A1) hereafter referred to as Chen.
Regarding claim 10, Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai teach the method of claim 9. Pabón in view of Kulkarni further in view of Tarrant further in view of Bai does not teach responding to the application control plane being down by sending a request to reestablish communication with the application control plane.
However, Chen teaches:
responsive to the application control plane being down, sending, by the first data plane, a request to reestablish communication with the application control plane (Paragraph 13; “Responsive to failing to meet the SLOs after adjusting the resources, the container may be moved to the second host (block 474). For example, in response to determining that the SLO was not met by the threshold adjustment of the CPU, the daemon 196A may transmit a notification to the orchestrator 195A that the resource allocation of the CPU has not met the SLO despite being at the threshold limit, and the daemon 196A may request that the container be moved to a second host”, where the orchestrator failing to meet SLOs corresponds to the applicant’s application control plane being down, and the request to establish communication with a second host corresponds to the applicant’s request to reestablish communication).
Pabón, Kulkarni, Tarrant, Bai, and Chen are considered to be analogous to the claimed invention because they are in the same field of resource management in orchestration systems. Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have combined the teachings of Pabón in view of Kulkarni further in view of Tarrant further in view of Bai with Chen to send a request to reestablish communication with the application control plane in response to the application control plane being down. Motivation to perform this action would come from the goal of maintaining operational continuity of distributed systems by attempting to restore functionality, to minimize downtime, and to implement fault tolerance practices as understood in system design.
Regarding claim 18, Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai teach the system of claim 15. Pabón in view of Kulkarni, further in view of Tarrant, further in view of Bai does not teach responding to the application control plane being down by sending a request to reestablish communication with the application control plane.
However, Chen teaches:
responsive to the application control plane being down, sending, by the first data plane, a request to reestablish communication with the application control plane (Paragraph 13; “Responsive to failing to meet the SLOs after adjusting the resources, the container may be moved to the second host (block 474). For example, in response to determining that the SLO was not met by the threshold adjustment of the CPU, the daemon 196A may transmit a notification to the orchestrator 195A that the resource allocation of the CPU has not met the SLO despite being at the threshold limit, and the daemon 196A may request that the container be moved to a second host”, where the orchestrator failing to meet SLOs corresponds to the applicant’s application control plane being down, and the request to establish communication with a second host corresponds to the applicant’s request to reestablish communication).
Pabón, Kulkarni, Tarrant, Bai, and Chen are considered to be analogous to the claimed invention because they are in the same field of resource management in orchestration systems. Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to have combined the teachings of Pabón in view of Kulkarni further in view of Tarrant further in view of Bai with Chen to send a request to reestablish communication with the application control plane in response to the application control plane being down. Motivation to perform this action would come from the goal of maintaining operational continuity of distributed systems by attempting to restore functionality, to minimize downtime, and to implement fault tolerance practices as understood in system design.
Response to Arguments
Applicant's arguments filed 08/05/2025 have been fully considered but they are not persuasive. Applicant’s arguments are summarized below:
Tarrant and Yuen are not operated by an application control plane.
The cited prior art fails to anticipate the distinction in a contextual environment that does have variability.
The dependent claims are allowable at least based on the above.
The Examiner respectfully disagrees with A and C.
The interpretation of “application control plane” relies on the claimed functional behavior of the application control plane in light of the specification. Paragraphs 26 and 89 of the instant specification, among others, discloses “The plurality of microservices are connected at a control plane that monitors the output data from the microservices for running the applications” and “includes one or more configured entities used for managing the components of the example environment 900 and the microservice architecture application”. Tarrant’s processing device 104 performs communication with peer nodes, exchanges join commands, applies global config states, and enforces operational attributes between microservices (Paragraph 24), functionally attributing to the claimed application control plane. Yuen discloses a management and control component performing the same type of orchestration as required by the claimed limitation. However, upon further consideration, in light of the amendments to independent claims 1, 9, and 15, a new ground(s) of rejection is made in view of Pabón, Kulkarni, Tarrant, and Bai, under 35 U.S.C. 103. In particular, Pabón and Bai disclose functionality that corresponds to the applicant’s application control plane. The unified deployment system 104 of Bai may perform deployment of an application across a plurality of control planes, corresponding to data planes (Paragraph 71). It may also deploy new resource specifications to clusters of microservices within each control plane at each data center, as evidenced by Paragraphs 73 and 74.
The Examiner agrees that Yuen does not anticipate the environment in which the data planes have variability, as recited in amended independent claims 1, 9, and 15. Therefore, the previous rejection under 35 U.S.C. 103 is withdrawn. However, upon further consideration, a new ground(s) of rejection is made in view of Pabón, Kulkarni, Tarrant, and Bai, under 35 U.S.C. 103.
Independent claims 1, 9, and 15 remain rejected for the reasons stated above. Therefore, contrary to Applicant's arguments, because the dependent claims depend from an unpatentable claim and does not add limitations that overcome the rejection, it likewise remains rejected.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Santos et al. (US 11579911 B1) discusses techniques for utilizing a network orchestrator to emulate edge locations and update configurations to manage virtualized resources.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to KENNETH P TRAN whose telephone number is (571)272-6926. The examiner can normally be reached M-TH 4:30 a.m. - 12:30 p.m. PT, F 4:30 a.m. - 8:30 a.m. PT, or at Kenneth.Tran@uspto.gov.
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, April Blair can be reached at (571) 270-1014. 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.
/KENNETH P TRAN/ Examiner, Art Unit 2196
/APRIL Y BLAIR/ Supervisory Patent Examiner, Art Unit 2196