4 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 .
Status of Claims
Claims 1-5, 7-12, 14-19, and 21are pending in this Office Action.
Drawings
The formal drawings received on 10/17/2024 have been entered.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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.
Claim(s) 1, 2, 5, 8, 9, 12, 15, 16, 19, is/are rejected under 35 U.S.C. 103 as being unpatentable over Vijaywargiya (US 20240192946) in view of Verma (US 20230023744), and further in view of Wei (US 20190102478).
1, 8, 15. Vijaywargiya teaches:
A system comprising: – in paragraphs [0010]-[0177] (Methods, systems, circuits, and apparatuses.)
a processor; and – in paragraphs [0010]-[0177] (A processor that may include execution units to execute an instruction.)
a memory including instructions that are executable by the processor for causing the processor to perform operations comprising: – in paragraphs [0010]-[0177] (A memory 920 may store instruction(s) 919 and/or data 921 represented by data signals that may be executed by processor 902.)
receiving, by a client device, a first indication of an event type associated with a software operator for executing and maintain a software application and being created using a language-agnostic operator framework; – in paragraphs [0010]-[0177] (The top-level service controller 554A receives the top-level service CRD 636 from the deployment manager operator 552. The deployment manager refers to a set of Kubernetes operators that provision and manage a set of resources on the plurality of nodes of the remote data center. In particular, each custom controller of an operator receives a custom resource definition declaring a target state of the resource to identify differences between a current state of the resource and a target state of the resource. An operator may be implemented using logic that performs a method of packaging, deploying, and managing an application (or service) (e.g., a Kubernetes application).)
receiving, by the client device, a second indication of a reconciler that is associated with the event type; and – in paragraphs [0010]-[0177] (The reconcile loop of the top-level service controller 554A creates a dependent resource CRD 642 designating a target state of the dependent resource. The dependent resource controller 554B receives the dependent resource CRD 642 from the top-level service controller 554A.)
Vijaywargiya does not explicitly teach:
the software operator is for executing and maintaining a software application and being created using a language-agnostic operator framework; deploying, by the client device, a pod including the reconciler and a container executing a controller associated with the software operator, the reconciler and the container being configured to communicate via a preselected communication protocol.
However, Verma teaches:
the software operator is for executing and maintaining a software application and being created using a language-agnostic operator framework; – in paragraphs [0002]-[0083] (Multi-controller declarative fault management and coordination for microservices in an environment such as, e.g., a Kubernetes environment. Kubernetes permits defining custom resources that make Kubernetes modular and extensible. Controllers can be implemented using the operators in a container orchestration platform such as, for example, Kubernetes, running as a pod with permissions to modify other resources (roles). At least portions of resources 110 are managed by controllers 106-1 and 106-2, wherein such controllers, for example, manage the state of resources, determine changes to one or more desired states, and determine one or more remediation actions to take to match the desired state(s) of at least a portion of the resources managed by the given controller.)
deploying, by the client device, a pod including the reconciler and a container executing a controller associated with the software operator, – in paragraphs [0002]-[0083] (Applications can be deployed on such a cluster of nodes as one or more pods, wherein a pod refers to the smallest deployable unit of computing that is created and managed on the cluster as a single entity. By way of example, a pod may contain one or more containers that require compute resources to execute. Watchers 104-1 and 104-2 watch/monitor one or more of the resources 110 for changes in their current state, trigger events to policy engine 102 corresponding to any impacted resources, and invoke callback functions received as actions from the policy engine 102. Controllers can be implemented using the operators in a container orchestration platform such as, for example, Kubernetes, running as a pod with permissions to modify other resources (roles). The multiple independent controllers include multiple operators in a Kubernetes system.)
the reconciler and the container being configured to communicate via a preselected communication protocol. – in paragraphs [0002]-[0083] (Watchers 104-1 and 104-2 watch/monitor one or more of the resources 110 for changes in their current state, trigger events to policy engine 102 corresponding to any impacted resources, and invoke callback functions received as actions from the policy engine 102. Such callback functions can include, for example, notifying controllers 106-1 and 106-2 for further coordination. A callback function can include a representational state transfer (REST) application programming interface (API) endpoint to be invoked over a hypertext transfer protocol (HTTP) connection.)
It would have been obvious for one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Vijaywargiya with Verma to include the software operator is for executing and maintaining a software application and being created using a language-agnostic operator framework; deploying, by the client device, a pod including the reconciler and a container executing a controller associated with the software operator, the reconciler and the container being configured to communicate via a preselected communication protocol, as taught by Verma, in paragraphs [0001]-[0018], to provide techniques for multi-controller declarative fault management and coordination for microservices.
Combination of Vijaywargiya and Verma does not explicitly teach:
communicate via a preselected communication protocol.
However, Wei teaches:
communicate via a preselected communication protocol – in paragraphs [0011]-[0147] (An API is any form of exposed interface which permits computers to communicate with other computers according to predefined rules/protocols.)
It would have been obvious for one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Vijaywargiya and Verma with Wei to include communicate via a preselected communication protocol, as taught by Vijaywargiya, in paragraphs [0002]-[0032], to solve the problem of provisioning and managing data center components efficiently.
2, 9, 16. The system of claim 1, – refer to the indicated claim for reference(s).
Verma teaches:
wherein the memory includes instructions that are executable by the processor for causing the processor to deploy the pod for: detecting, by the controller, an event associated with the reconciler; and invoking, by the controller, the reconciler via the preselected communication protocol; and processing, by the reconciler, the event in response to being invoked by the controller to provide a response associated with the event to the controller via the preselected communication protocol. – in paragraphs (Applications can be deployed on such a cluster of nodes as one or more pods, wherein a pod refers to the smallest deployable unit of computing that is created and managed on the cluster as a single entity. By way of example, a pod may contain one or more containers that require compute resources to execute. Watchers 104-1 and 104-2 watch/monitor one or more of the resources 110 for changes in their current state, trigger events to policy engine 102 corresponding to any impacted resources, and invoke callback functions received as actions from the policy engine 102. Controllers 106-1 and 106-2 register policies with actions to invoke callback functions upon receipt of specific events. By way merely of example, a callback function can include a representational state transfer (REST) application programming interface (API) endpoint to be invoked over a hypertext transfer protocol (HTTP) connection. Alternatively, for example, a callback function can include a remote procedure call to be invoked using a remote procedure call framework. Watchers 104-1 and 104-2 watch/monitor one or more of the resources 110 for changes in their current state, trigger events to policy engine 102 corresponding to any impacted resources, and invoke callback functions received as actions from the policy engine 102. Such callback functions can include, for example, notifying controllers 106-1 and 106-2 for further coordination.)
5, 12, 19. The system of claim 1, – refer to the indicated claim for reference(s).
Wei teaches:
wherein the preselected communication protocol comprises a remote procedure call (RPC) protocol, a Google remote procedure call (gRPC) protocol, or a JavaScript object notation (JSON) message protocol. – in paragraphs [0011]-[0147] (A web API is an API for either a web server or a web browser. It exposes one or more endpoints to a defined request-response message system, typically expressed in JavaScript Object Notation (JSON) or Extensible Markup Language (XML), via the web, most commonly by means of an HTTP based web server.)
Claim(s) 3, 10, 17, 21 is/are rejected under 35 U.S.C. 103 as being unpatentable over Vijaywargiya (US 20240192946) in view of Verma (US 20230023744), and further in view of Wei (US 20190102478) and Ueno (US 20240289227).
3, 10, 17. The system of claim 2, – refer to the indicated claim for reference(s).
Combination of Vijaywargiya, Verma, and Wei does not explicitly teach:
wherein the memory includes instructions that are executable by the processor for causing the processor to detect the event associated with the reconciler by: querying, by the controller, the reconciler to determine the event type that is associated with the reconciler; generating, by the controller, a routing table that associates the reconciler with the event type; in response to receiving the event, determining, by the controller, the event is associated with the event type; and determining, by the controller and based on the routing table, that the event is associated with the reconciler.
However, Ueno teaches:
wherein the memory includes instructions that are executable by the processor for causing the processor to detect the event associated with the reconciler by: querying, by the controller, the reconciler to determine the event type that is associated with the reconciler; generating, by the controller, a routing table that associates the reconciler with the event type; in response to receiving the event, determining, by the controller, the event is associated with the event type; and determining, by the controller and based on the routing table, that the event is associated with the reconciler. – in paragraphs (The routing table (also referred to as a table) 15c manages containers of transmission destinations of packets transmitted from the facing device 24 to the Pods 15a and 15b of the worker nodes 15J and 15K via the network 22 with route information indicating the transmission destinations. If transmission destination management of the table 15c is incorrect, the packet does not reach an appropriate container. For this reason, the abnormality detection unit 17 detects whether the transmission destination management of the table 15c is normal or abnormal.)
It would have been obvious for one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Vijaywargiya, Verma, and Wei with Ueno to include wherein the memory includes instructions that are executable by the processor for causing the processor to detect the event associated with the reconciler by: querying, by the controller, the reconciler to determine the event type that is associated with the reconciler; generating, by the controller, a routing table that associates the reconciler with the event type; in response to receiving the event, determining, by the controller, the event is associated with the event type; and determining, by the controller and based on the routing table, that the event is associated with the reconciler, as taught by Ueno, in paragraphs [0001]-[0021], to recover from a failure occurring in a virtualization system earlier than recovery by a failure recovery function of container virtualization software.
21. The system of claim 1, – refer to the indicated claim for reference(s).
Combination of Vijaywargiya, Verma, and Wei does not explicitly teach:
wherein the memory includes instructions that are executable by the processor for causing the processor to deploy the pod for: querying, by the controller and via the preselected communication protocol, the reconciler to determine the event type associated with the reconciler; generating, by the controller, a routing table associating the reconciler with the event type; and adding, by the controller, a watcher for the event type to an application programming interface service that receives events.
However, Ueno teaches:
wherein the memory includes instructions that are executable by the processor for causing the processor to deploy the pod for: querying, by the controller and via the preselected communication protocol, the reconciler to determine the event type associated with the reconciler; generating, by the controller, a routing table associating the reconciler with the event type; and adding, by the controller, a watcher for the event type to an application programming interface service that receives events. – in paragraphs (The routing table (also referred to as a table) 15c manages containers of transmission destinations of packets transmitted from the facing device 24 to the Pods 15a and 15b of the worker nodes 15J and 15K via the network 22 with route information indicating the transmission destinations. If transmission destination management of the table 15c is incorrect, the packet does not reach an appropriate container. For this reason, the abnormality detection unit 17 detects whether the transmission destination management of the table 15c is normal or abnormal.)
It would have been obvious for one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Vijaywargiya, Verma, and Wei with Ueno to include wherein the memory includes instructions that are executable by the processor for causing the processor to deploy the pod for: querying, by the controller and via the preselected communication protocol, the reconciler to determine the event type associated with the reconciler; generating, by the controller, a routing table associating the reconciler with the event type; and adding, by the controller, a watcher for the event type to an application programming interface service that receives events, in paragraphs [0001]-[0021], to recover from a failure occurring in a virtualization system earlier than recovery by a failure recovery function of container virtualization software.
Claim(s) 4, 11, 18 is/are rejected under 35 U.S.C. 103 as being unpatentable over Vijaywargiya (US 20240192946) in view of Verma (US 20230023744), and further in view of Wei (US 20190102478) and Brown (US 20030110242).
4, 11, 18. The system of claim 1, – refer to the indicated claim for reference(s).
Combination of Vijaywargiya, Verma, and Wei does not explicitly teach:
wherein the container is in a first programming language and the reconciler is in a second programming language.
However, Brown teaches:
wherein the container is in a first programming language and the reconciler is in a second programming language. – in paragraphs [0015]-[0101] (The Web service containers at two different network nodes can be implemented in different programming languages and run on different platforms.)
It would have been obvious for one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Vijaywargiya, Verma, and Wei with Brown to include wherein the container is in a first programming language and the reconciler is in a second programming language, as taught by Brown, in paragraphs [0001]-[0019], to dynamically reconfiguring Web services infrastructure based upon context.
Claim(s) 7, 14 is/are rejected under 35 U.S.C. 103 as being unpatentable over Vijaywargiya (US 20240192946) in view of Verma (US 20230023744), and further in view of Wei (US 20190102478) and Gould (US 8555297).
7, 14. The system of claim 1, – refer to the indicated claim for reference(s).
Combination of Vijaywargiya, Verma, and Wei does not explicitly teach:
wherein the container is configured to run in a first address space of the pod and the reconciler is configured to run in a second address space of the pod.
However, Gould teaches:
wherein the container is configured to run in a first address space of the pod and the reconciler is configured to run in a second address space of the pod. – on lines 1-67 in columns 1-33 (The client container may include code executing in a first address space and said server container includes code executing in a second address space different than said first address space.)
It would have been obvious for one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Vijaywargiya, Verma, and Wei with Gould to include wherein the container is configured to run in a first address space of the pod and the reconciler is configured to run in a second address space of the pod, as taught by Gould, on lines 1-67 in columns 1-4, to provide techniques used for communicating between different code modules.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MUHAMMAD RAZA whose telephone number is (571)272-7734. The examiner can normally be reached Monday-Friday, 7:00 A.M.-5:00 P.M..
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, Vivek Srivastava can be reached at (571)272-7304. 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.
/MUHAMMAD RAZA/Primary Examiner, Art Unit 2449