Prosecution Insights
Last updated: April 19, 2026
Application No. 18/000,860

EVOLUTIONARY NETWORK RE-CONFIGURATION

Final Rejection §103
Filed
Dec 06, 2022
Examiner
GARCIA-CHING, KARINA J
Art Unit
2449
Tech Center
2400 — Computer Networks
Assignee
British Telecommunications Public Limited Company
OA Round
4 (Final)
63%
Grant Probability
Moderate
5-6
OA Rounds
3y 7m
To Grant
99%
With Interview

Examiner Intelligence

Grants 63% of resolved cases
63%
Career Allow Rate
131 granted / 209 resolved
+4.7% vs TC avg
Strong +38% interview lift
Without
With
+37.8%
Interview Lift
resolved cases with interview
Typical timeline
3y 7m
Avg Prosecution
13 currently pending
Career history
222
Total Applications
across all art units

Statute-Specific Performance

§101
12.1%
-27.9% vs TC avg
§103
53.4%
+13.4% vs TC avg
§102
8.9%
-31.1% vs TC avg
§112
19.6%
-20.4% vs TC avg
Black line = Tech Center average estimate • Based on career data from 209 resolved cases

Office Action

§103
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-4 and 10-14 are pending in this Office Action. Claims 1-4 and 10-14 are rejected. This rejection is FINAL. Information Disclosure Statement The information disclosure statement(s) (IDS) submitted on 06/24/2025 is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement(s) is being considered if signed and initialed by the Examiner. Response to Arguments Applicant’s arguments filed in the amendment filed 06/24/2025, have been fully considered but they are not persuasive. The reasons are set forth below. 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 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. 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 of this title, 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. The factual inquiries set forth in Graham v. John Deere Co., 383 U.S. 1, 148 USPQ 459 (1966), that are applied for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows: 1. Determining the scope and contents of the prior art. 2. Ascertaining the differences between the prior art and the claims at issue. 3. Resolving the level of ordinary skill in the pertinent art. 4. Considering objective evidence present in the application indicating obviousness or nonobviousness. Claims 1-3, 10, and 12-14 are rejected under 35 U.S.C. 103 as being unpatentable over Di-Cairano-Gilfedder et al. (U.S. Publication No. 2018/0219735), hereinafter “Di-Cairano” in view of Dowlatkhah et al. (U.S. Publication No. 2019/0191305), hereinafter “Dowlatkhah” and further in view of Niestemski et al. (U.S. Publication No. 2016/0094424), hereinafter “Niestemski”. As per claim 1, Di-Cairano discloses a computer implemented method of adapting a configuration of a software defined network to improve a measure of network performance towards an objective measure of performance (A software defined network will be taught later. Di-Cairano: paragraph 0031; This embodiment is a mechanism for resource provisioning in a Network Function Virtualised network, arranged to optimise the chaining geographically. Based on the expected services' demand, the mechanism applies an optimisation process that clusters the virtual resources required to deliver such services. The optimisation seeks maximisation of service coverage and utilisation of chained resources while at the same time seeks minimisation of delay between physical resources as well as utilisation variance across clusters), the software defined network including a plurality of network nodes communicating via the software defined network (Di-Cairano: Fig. 1, paragraphs 0002, 0034; The principle of the virtualisation is achieved by defining and assigning a “service chain”, which is a set of physical resources (e.g. servers, routers) which are grouped (“chained”) together to deliver a given functionality such as for example firewall functions, routing functions, and Wide Area Network (WAN) acceleration functions…The purpose of “chaining” is to group the resources to meet the demand for the services they can provide…As depicted schematically in FIG. 1, the optimisation process is performed by a network orchestrator 19 which has an optimisation processor 197 to run the optimisation process, and a configuration processor 198 to control the individual network elements to perform the functions selected by the optimisation process), the method comprising: generating a candidate adjusted configuration for the software defined network by applying an evolutionary algorithm (Di-Cairano: paragraphs 0017-0020; Preferably, a plurality of candidate configurations are generated…The plurality of candidate configurations may be generated by a genetic algorithm process…a plurality of candidate configurations are each assessed to identify their fitness to meet the required services, and the amount of modification required to transform the existing configuration to the candidate configuration, and a configuration is selected from the candidate configurations, according to their fitness scores and modification requirements), resulting in a plurality of candidate adjusted configurations, each associated with a respective network node of the plurality of network nodes (Di-Cairano: paragraphs 0017-0020, 0065 Preferably, a plurality of candidate configurations are generated…The plurality of candidate configurations may be generated by a genetic algorithm process…a plurality of candidate configurations are each assessed to identify their fitness…In this embodiment, an iterative genetic algorithm process 400 is used to identify an optimum configuration for each cluster/factor combination. This is done by performance of a fitness function 404 on a configuration, and then modifying (“mutating”) that configuration (step 408) a number of times, and assessing the fitness of the mutated configurations, in order to identify the optimum configuration which is recorded (step 406)); determining whether each of the plurality of generated candidate adjusted configuration provides an improvement to the measure of network performance (Di-Cairano: paragraphs 0057, 0070-0072; The fourth stage in the process is a generation of a number of possible candidate cluster arrangements (step 243) and an optimisation process (step 400) to identify the most suitable clustering arrangement…By definition of F(C(N, H)) (step 404), the optimisation process will seek to maximise its components D(Ci) and U(Ci), while minimising the variance component V(C(N, H)) in the denominator and the latency K of the configuration under consideration (derived in step 495), weighted by expected utilisation of each cluster in the configuration. Each configuration is stored in a store 406, ranked in order of “fitness” (step 405)…The optimisation process 400 then seeks to improve the fitness function by, for example, applying genetic algorithm techniques such as crossover and mutation operations to the original solution (step 408). This process continues over several iterations until a predetermined condition is met (step 407), such as total number of iterations, or number of iterations since an improvement has been identified…This process is then repeated with different choices of centre points (step 401)…For each choice N of number of clusters and set of factors H, the optimisation 400 identifies clustering and ranks them in order of highest fitness function F(C(N, H)) (406)), for any generated candidate adjusted configuration determined to provide an improvement to the measure of network performance, storing, by the respective network node of the plurality of network nodes, the associated candidate adjusted configuration in a distributed database accessible to the plurality of network nodes for access by others of the plurality of network nodes (A distributed database will be taught later. Di-Cairano: paragraphs 0070, 0074, 0081; Each configuration is stored in a store 406, ranked in order of “fitness” (step 405)…For this purpose the evaluation process 500 identifies not only the optimum structures, but also the quasi-optimal structures which are defined as all those structures whose fitness value is within a tolerance range d of this optimum value—i.e. F>dF*, with 0<d<1 tolerance factor 0<d<1…Once this evaluation process (500) is completed, the configuration data is retrieved as before from the store 406 (step 247), together with the additional optimum reconfiguration data 510); accessing, by each network node of the plurality of network nodes, the candidate adjusted configurations stored in the distributed database (Di-Cairano: paragraph 0075; In this case the structures are retrieved from the store (406), together with their respective fitness functions F (determined in step 404) and their associated cost of upgrade is determined as follows); recording, by each network node of the plurality of network nodes, the determined performance of the software defined network provided by a candidate adjusted configuration in the distributed database in association with the candidate adjusted configuration (Determined performance will be taught later. Di-Cairano: paragraphs 0070, 0079; Each configuration is stored in a store 406, ranked in order of “fitness” (step 405)…The process 504-509 is performed for all clusters of the structure and the total upgrade cost for the structure then determined (step 509) and stored (510). Therefore it would have been obvious to one of ordinary skill prior to the effective filing date to store the performance with the configuration in order to identify the determined performance of the configuration); and selecting, in common by the plurality of network nodes, a candidate adjusted configuration from among the candidate adjusted configurations stored in the distributed database providing a greatest improvement to the measure of network performance of the software defined network for adapting the configuration of the software defined network (Di-Cairano: paragraphs 0082-0083; The optimum clustering structure is then selected (step 248) as being the quasi-optimal clustering structure recorded in the store 510 which has the smallest upgrade cost f(R) (508). By its definition, this optimal structure will meet performance targets, minimise cost of upgrades and have a fitness function that is within the allowable “delta” margin of the optimum value best F*…This configuration can then be retrieved from the store 406 and passed to the configuration processor 198 to configure the various network elements (10, 11, 12, . . . etc) in accordance with the optimised arrangement (step 249, FIG. 2)). However Di-Cairano does not explicitly mention a software defined network; wherein the determining is performed by each network node. However Dowlatkhah teaches: a software defined network (Dowlatkhah: paragraphs 0031, 0061; a NESP 182 can include a Software Defined Network (SDN), or SDN Network 250. The SDN Network 250 can be controlled by one or more SDN Controllers. For example, the SDN network 250 can include a Manager SDN Controller 230, an Access SDN Controller 235, a Core SDN Controller 240, and/or a Transport SDN Controller 245… the level 3 Manager SDN Controller 230 can manage one or more sets of level 2 SDN Controllers 235-245 in the SDN Network 250. The Manager SDN Controller 230 can configure and/or reconfigure the instantiated SDN Controllers 235-245 to optimize the SDN Network 250 according to loading created by the service requests. For example, the Manager SDN Controller 230 can invention automatically instantiate multiple levels of fully distributed SDN Controllers 235-245. Likewise the level 2 SDN Controllers 235-245 can instantiate and/or configure and/or reconfigure VNF elements at level 2); included at each network node of the plurality of network nodes; wherein the determining is performed by each network node of the plurality of network nodes with respect to a respective associated generated candidate adjusted configuration (Dowlatkhah: paragraphs 0031, 0117; The SDN Network 250 can be controlled by one or more SDN Controllers…In one or more embodiments, multiple computer systems or processors can provide the functionality illustrated and described herein with respect to each SDN Controller 230…Furthermore, software implementations (e.g., software programs, instructions, etc.) including, but not limited to, distributed processing or component/object distributed processing, parallel processing, or virtual machine processing can also be constructed to implement the methods described herein. Distributed processing environments can include multiple processors in a single machine, single processors in multiple machines, and/or multiple processors in multiple machines. Therefore it would have been obvious to one of ordinary skill prior to the effective filing date to include distributed processing of each respective adjusted configuration to allow for increased speed of determining improved performance configurations); storing, by the respective network node of the plurality of network nodes, the associated candidate adjusted configuration in a distributed database (Dowlatkhah: paragraphs 0117-0118; Furthermore, software implementations (e.g., software programs, instructions, etc.) including, but not limited to, distributed processing or component/object distributed processing, parallel processing, or virtual machine processing can also be constructed to implement the methods described herein. Distributed processing environments can include multiple processors in a single machine, single processors in multiple machines, and/or multiple processors in multiple machines.…While the tangible computer-readable storage medium 822 is shown in an example embodiment to be a single medium, the term “tangible computer-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions). It would have been obvious to one of ordinary skill prior to the effective filing date to combine the method of Di-Cairano with determining at each node in order to allow for increased speed of the determining by distributing the determining calculations to multiple devices. However Di-Cairano and Dowlatkhah do not explicitly mention determining a performance of the software defined network provided by each accessed candidate adjusted configuration. However Niestemski teaches: determining a performance of the software defined network provided by each accessed candidate adjusted configuration (Niestemski: paragraph 0041, 0053, 0056; The simulator 408 executes simulations of one or more alternative configurations of VMs on the servers of the server cluster in order to identify candidate configurations that decrease resource utilization of one or more servers. While described below in more detail, the simulations executed by the simulator 408 explore the simulated utilization metrics of various simulated configurations of VMs assigned to various servers of the server cluster…The recommendation engine 416 receives the output of the various configurations simulated by the simulator 408, compares it with the resource utilization of the current configuration stored in the utilization data store 404 and provides to a user one or more alternative configurations that reduce resource utilization on average for the overall cluster…This determined utilization metric then acts as a baseline for comparison used later in the method to determine whether a simulated alternative configuration will improve the performance of the server cluster by reducing resource utilization). It would have been obvious to one of ordinary skill prior to the effective filing date to combine the method of Di-Cairano and Dowlatkhah with determining a performance of the software defined network provided by each accessed candidate adjusted configuration in order to decrease wait times or delays associated with execution of computing functions (Niestemski: paragraph 0013). As per claim 2, the modified Di-Cairano teaches the method of claim 1, wherein determining the performance of the software defined network provided by each accessed candidate adjusted configuration comprises: executing a simulation of the software defined network in which the respective candidate adjusted configuration is applied; and determining the measure of network performance provided by the candidate adjusted configuration by measuring a performance of the simulated software defined network (Niestemski: paragraphs 0041, 0053, 0056; The simulator 408 executes simulations of one or more alternative configurations of VMs on the servers of the server cluster in order to identify candidate configurations that decrease resource utilization of one or more servers. While described below in more detail, the simulations executed by the simulator 408 explore the simulated utilization metrics of various simulated configurations of VMs assigned to various servers of the server cluster…The recommendation engine 416 receives the output of the various configurations simulated by the simulator 408, compares it with the resource utilization of the current configuration stored in the utilization data store 404 and provides to a user one or more alternative configurations that reduce resource utilization on average for the overall cluster…This determined utilization metric then acts as a baseline for comparison used later in the method to determine whether a simulated alternative configuration will improve the performance of the server cluster by reducing resource utilization). The same motivation to combine as the independent claim applies here. As per claim 3, the modified Di-Cairano teaches the method of claim 1, further comprising: sharing, by each network node of the plurality of network nodes, the candidate adjusted configuration providing the improvement to the measure of network performance with the other network nodes of the plurality of network nodes via a distributed data structure accessible to the plurality of network nodes (Dowlatkhah: paragraphs 0117-0118; Furthermore, software implementations (e.g., software programs, instructions, etc.) including, but not limited to, distributed processing or component/object distributed processing, parallel processing, or virtual machine processing can also be constructed to implement the methods described herein. Distributed processing environments can include multiple processors in a single machine, single processors in multiple machines, and/or multiple processors in multiple machines.…While the tangible computer-readable storage medium 822 is shown in an example embodiment to be a single medium, the term “tangible computer-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. To the extent that “sharing” implies copying to multiple databases, it would have bene obvious to one of ordinary skill prior to the effective filing date to copy the data to each database to allow each device to have a full view of available configurations), each shared candidate adjusted configuration having associated a measure of network performance for the software defined network having the candidate adjusted configuration applied (Niestemski: paragraphs 0041, 0053, 0056; The simulator 408 executes simulations of one or more alternative configurations of VMs on the servers of the server cluster in order to identify candidate configurations that decrease resource utilization of one or more servers. While described below in more detail, the simulations executed by the simulator 408 explore the simulated utilization metrics of various simulated configurations of VMs assigned to various servers of the server cluster… The recommendation engine 416 receives the output of the various configurations simulated by the simulator 408, compares it with the resource utilization of the current configuration stored in the utilization data store 404 and provides to a user one or more alternative configurations that reduce resource utilization on average for the overall cluster…This determined utilization metric then acts as a baseline for comparison used later in the method to determine whether a simulated alternative configuration will improve the performance of the server cluster by reducing resource utilization), wherein the evolutionary algorithm is operable based on a population of candidate adjusted configurations in the distributed data structure (Di-Cairano: paragraph 0065; In this embodiment, an iterative genetic algorithm process 400 is used to identify an optimum configuration for each cluster/factor combination. This is done by performance of a fitness function 404 on a configuration, and then modifying (“mutating”) that configuration (step 408) a number of times, and assessing the fitness of the mutated configurations, in order to identify the optimum configuration which is recorded (step 406). This process is then repeated for different values of N and f (step 409, 401)). The same motivation to combine as the independent claim applies here. As per claim 10, the modified Di-Cairano teaches the method of claim 3, wherein the population of candidate adjustment configurations is a selected subset of the candidate adjustment configurations in the distributed data structure selected based on the measure of network performance associated with the candidate adjustment configurations in the distributed data structure (Di-Cairano: paragraphs 0070, 0074; Each configuration is stored in a store 406, ranked in order of “fitness” (step 405)… For this purpose the evaluation process 500 identifies not only the optimum structures, but also the quasi-optimal structures which are defined as all those structures whose fitness value is within a tolerance range d of this optimum value—i.e. F>dF*, with 0<d<1 tolerance factor 0<d<1). As per claim 12, the modified Di-Cairano teaches the method of claim 1 wherein the evolutionary algorithm is a genetic algorithm (Di-Cairano: paragraphs 0018, 0065; The plurality of candidate configurations may be generated by a genetic algorithm process…an iterative genetic algorithm process 400 is used to identify an optimum configuration for each cluster/factor combination). As per claim 13, Di-Cairano teaches a computer system comprising: for adapting a configuration of a software defined network to improve a measure of network performance towards an objective measure of performance (A software defined network will be taught later. Di-Cairano: paragraph 0031; This embodiment is a mechanism for resource provisioning in a Network Function Virtualised network, arranged to optimise the chaining geographically. Based on the expected services' demand, the mechanism applies an optimisation process that clusters the virtual resources required to deliver such services. The optimisation seeks maximisation of service coverage and utilisation of chained resources while at the same time seeks minimisation of delay between physical resources as well as utilisation variance across clusters), the software defined network including a plurality of network nodes communicating via the software defined network (Di-Cairano: Fig. 1, paragraphs 0002, 0034; The principle of the virtualisation is achieved by defining and assigning a “service chain”, which is a set of physical resources (e.g. servers, routers) which are grouped (“chained”) together to deliver a given functionality such as for example firewall functions, routing functions, and Wide Area Network (WAN) acceleration functions…The purpose of “chaining” is to group the resources to meet the demand for the services they can provide…As depicted schematically in FIG. 1, the optimisation process is performed by a network orchestrator 19 which has an optimisation processor 197 to run the optimisation process, and a configuration processor 198 to control the individual network elements to perform the functions selected by the optimisation process), by: applying, by each network node of the plurality of network nodes, an evolutionary algorithm (Distributed processing will be taught later. Di-Cairano: paragraphs 0017-0020; Preferably, a plurality of candidate configurations are generated…The plurality of candidate configurations may be generated by a genetic algorithm process…a plurality of candidate configurations are each assessed to identify their fitness to meet the required services, and the amount of modification required to transform the existing configuration to the candidate configuration, and a configuration is selected from the candidate configurations, according to their fitness scores and modification requirements) to generate a candidate adjusted configuration for the software defined network (Di-Cairano: paragraphs 0017-0020, 0065; Preferably, a plurality of candidate configurations are generated…The plurality of candidate configurations may be generated by a genetic algorithm process…a plurality of candidate configurations are each assessed to identify their fitness…In this embodiment, an iterative genetic algorithm process 400 is used to identify an optimum configuration for each cluster/factor combination. This is done by performance of a fitness function 404 on a configuration, and then modifying (“mutating”) that configuration (step 408) a number of times, and assessing the fitness of the mutated configurations, in order to identify the optimum configuration which is recorded (step 406)) and, responsive to a determination that the candidate adjusted configuration provides an improvement to the measure of network performance (Di-Cairano: paragraphs 0057, 0070-0072; The fourth stage in the process is a generation of a number of possible candidate cluster arrangements (step 243) and an optimisation process (step 400) to identify the most suitable clustering arrangement…By definition of F(C(N, H)) (step 404), the optimisation process will seek to maximise its components D(Ci) and U(Ci), while minimising the variance component V(C(N, H)) in the denominator and the latency K of the configuration under consideration (derived in step 495), weighted by expected utilisation of each cluster in the configuration. Each configuration is stored in a store 406, ranked in order of “fitness” (step 405)…The optimisation process 400 then seeks to improve the fitness function by, for example, applying genetic algorithm techniques such as crossover and mutation operations to the original solution (step 408). This process continues over several iterations until a predetermined condition is met (step 407), such as total number of iterations, or number of iterations since an improvement has been identified…This process is then repeated with different choices of centre points (step 401)…For each choice N of number of clusters and set of factors H, the optimisation 400 identifies clustering and ranks them in order of highest fitness function F(C(N, H)) (406)), storing, by the respective network node, the candidate adjusted configuration in a distributed database accessible to the plurality of network nodes for access by others of the plurality of network nodes (A distributed database will be taught later. Di-Cairano: paragraphs 0070, 0074, 0081; Each configuration is stored in a store 406, ranked in order of “fitness” (step 405)…For this purpose the evaluation process 500 identifies not only the optimum structures, but also the quasi-optimal structures which are defined as all those structures whose fitness value is within a tolerance range d of this optimum value—i.e. F>dF*, with 0<d<1 tolerance factor 0<d<1…Once this evaluation process (500) is completed, the configuration data is retrieved as before from the store 406 (step 247), together with the additional optimum reconfiguration data 510); and accessing, by each network node of the plurality of network nodes, the candidate adjusted configurations in the distributed database (Di-Cairano: paragraph 0075; In this case the structures are retrieved from the store (406), together with their respective fitness functions F (determined in step 404) and their associated cost of upgrade is determined as follows), wherein each network node of the plurality of network nodes records the determined performance provided by a candidate adjusted configuration in the distributed database in association with the candidate adjusted configuration (Determined performance will be taught later. Di-Cairano: paragraphs 0070, 0079; Each configuration is stored in a store 406, ranked in order of “fitness” (step 405)…The process 504-509 is performed for all clusters of the structure and the total upgrade cost for the structure then determined (step 509) and stored (510). Therefore it would have been obvious to one of ordinary skill prior to the effective filing date to store the performance with the configuration in order to identify the determined performance of the configuration), such that a candidate adjusted configuration providing a greatest improvement to the measure of network performance is selected by the plurality of network nodes for adapting the configuration of the software defined network (Di-Cairano: paragraphs 0082-0083; The optimum clustering structure is then selected (step 248) as being the quasi-optimal clustering structure recorded in the store 510 which has the smallest upgrade cost f(R) (508). By its definition, this optimal structure will meet performance targets, minimise cost of upgrades and have a fitness function that is within the allowable “delta” margin of the optimum value best F*…This configuration can then be retrieved from the store 406 and passed to the configuration processor 198 to configure the various network elements (10, 11, 12, . . . etc) in accordance with the optimised arrangement (step 249, FIG. 2)). However Di-Cairano does not explicitly mention by each network node of the plurality of network nodes; a software defined network. However Dowlatkhah teaches: a processor and memory storing computer program code (Dowlatkhah: paragraph 0114; The computer system 800 may include a processor (or controller) 802 (e.g., a central processing unit (CPU)), a graphics processing unit (GPU, or both), a main memory 804); a software defined network (Dowlatkhah: paragraphs 0031, 0061; a NESP 182 can include a Software Defined Network (SDN), or SDN Network 250. The SDN Network 250 can be controlled by one or more SDN Controllers. For example, the SDN network 250 can include a Manager SDN Controller 230, an Access SDN Controller 235, a Core SDN Controller 240, and/or a Transport SDN Controller 245… the level 3 Manager SDN Controller 230 can manage one or more sets of level 2 SDN Controllers 235-245 in the SDN Network 250. The Manager SDN Controller 230 can configure and/or reconfigure the instantiated SDN Controllers 235-245 to optimize the SDN Network 250 according to loading created by the service requests. For example, the Manager SDN Controller 230 can invention automatically instantiate multiple levels of fully distributed SDN Controllers 235-245. Likewise the level 2 SDN Controllers 235-245 can instantiate and/or configure and/or reconfigure VNF elements at level 2) by each network node of the plurality of network nodes (Dowlatkhah: paragraphs 0031, 0117; The SDN Network 250 can be controlled by one or more SDN Controllers…In one or more embodiments, multiple computer systems or processors can provide the functionality illustrated and described herein with respect to each SDN Controller 230… Furthermore, software implementations (e.g., software programs, instructions, etc.) including, but not limited to, distributed processing or component/object distributed processing, parallel processing, or virtual machine processing can also be constructed to implement the methods described herein. Distributed processing environments can include multiple processors in a single machine, single processors in multiple machines, and/or multiple processors in multiple machines. Therefore it would have been obvious to one of ordinary skill prior to the effective filing date to include distributed processing of each respective adjusted configuration to allow for increased speed of determining improved performance configurations); storing, by the respective network node, the candidate adjusted configuration in a distributed database accessible to the plurality of network nodes for access by others of the plurality of network nodes (Dowlatkhah: paragraphs 0117-0118; Furthermore, software implementations (e.g., software programs, instructions, etc.) including, but not limited to, distributed processing or component/object distributed processing, parallel processing, or virtual machine processing can also be constructed to implement the methods described herein. Distributed processing environments can include multiple processors in a single machine, single processors in multiple machines, and/or multiple processors in multiple machines.…While the tangible computer-readable storage medium 822 is shown in an example embodiment to be a single medium, the term “tangible computer-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions). It would have been obvious to one of ordinary skill prior to the effective filing date to combine the system of Di-Cairano with by each network node of the plurality of network nodes in order to allow for increased speed of the determining by distributing the determining calculations to multiple devices. However Di-Cairano and Dowlatkhah do not explicitly mention determining a performance of the software defined network provided by each accessed candidate adjusted configuration. However Niestemski teaches: determining a performance of the software defined network provided by each accessed candidate adjusted configuration (Niestemski: paragraphs 0041, 0053, 0056; The simulator 408 executes simulations of one or more alternative configurations of VMs on the servers of the server cluster in order to identify candidate configurations that decrease resource utilization of one or more servers. While described below in more detail, the simulations executed by the simulator 408 explore the simulated utilization metrics of various simulated configurations of VMs assigned to various servers of the server cluster… The recommendation engine 416 receives the output of the various configurations simulated by the simulator 408, compares it with the resource utilization of the current configuration stored in the utilization data store 404 and provides to a user one or more alternative configurations that reduce resource utilization on average for the overall cluster…This determined utilization metric then acts as a baseline for comparison used later in the method to determine whether a simulated alternative configuration will improve the performance of the server cluster by reducing resource utilization). It would have been obvious to one of ordinary skill prior to the effective filing date to combine the system of modified Di-Cairano with determining a performance of the software defined network provided by each accessed candidate adjusted configuration in order to decrease wait times or delays associated with execution of computing functions. (Niestemski: paragraph 0013). As per claim 14, it is substantially similar to claim 13 and is rejected in the same manner, the same art and reasoning applying. Further, Dowlatkhah also teaches a non-transitory computer-readable storage medium storing computer program code to, when loaded into a computer system and executed thereon (Dowlatkhah: paragraph 0118; The term “tangible computer-readable storage medium” shall also be taken to include any non-transitory medium that is capable of storing or encoding a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methods of the subject disclosure). The same motivation to combine as claim 13 applies here. Claims 4 and 11 are rejected under 35 U.S.C. 103 as being unpatentable over Di-Cairano-Gilfedder et al. (U.S. Publication No. 2018/0219735), hereinafter “Di-Cairano” in view of Dowlatkhah et al. (U.S. Publication No. 2019/0191305), hereinafter “Dowlatkhah” in view of Niestemski et al. (U.S. Publication No. 2016/0094424), hereinafter “Niestemski” and further in view of Stocker (EP 3472994 B1), hereinafter “Stocker”. As per claim 4, the modified Di-Cairano teaches the method of claim 3. However the modified Di-Cairano does not explicitly mention a distributed hash table. However Stocker teaches: wherein the distributed data structure is a distributed hash table (Stocker: paragraph 0039; distributed database that provides configuration data to a device…paragraph 0041; identifier of an entity may be stored as a hash…paragraph 0011; distributed hash table). Therefore it would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings as in Stocker with the teachings as in the modified Di-Cairano. The motivation for doing so would have been in order to control routing in a distributed system (Stocker: paragraph 0011). As per claim 11, the modified Di-Cairano teaches the method of claim 1. However the modified Di-Cairano does not explicitly mention blockchain. However Stocker teaches: wherein the distributed database is a blockchain data structure (Stocker: paragraphs 0062-0063; decentralized register for storing controlling and evaluating devices...paragraphs 0069, 0073; decentralized ledger such as a blockchain database to store data). Therefore it would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings as in Stocker with the teachings as in the modified Di-Cairano. The motivation for doing so would have been in order to store data in a tamper-proof manner (Stocker: paragraph 0066). REMARKS Applicant submitted arguments to overturn the rejection on 06/24/2025. The examiner maintains the rejections, see remarks below. The applicant Argues: Argument 1: Applicant argues at Remarks, page 6 that Di-Cairano does not teach “generating a candidate adjusted configuration for the software defined network by applying an evolutionary algorithm included at each network node of the plurality of network nodes.” In response, the examiner respectfully submits: The examiner respectfully disagrees. In response to applicant's arguments against the references individually, one cannot show nonobviousness by attacking references individually where the rejections are based on combinations of references. See In re Keller, 642 F.2d 413, 208 USPQ 871 (CCPA 1981); In re Merck & Co., 800 F.2d 1091, 231 USPQ 375 (Fed. Cir. 1986). Examiner cited Di-Cairano for an evolutionary algorithm (Non-Final, page 5) and cited Dowlatkhah for a distributed processing network (Non-Final, page 9). The combination teaches the evolutionary algorithm included at each network node. Examiner did not assert that Di-Cairano teaches the entire limitation, so the argument that Di-Cairano does not teach the entire limitation is unpersuasive. Argument 2: Applicant argues at Remarks, pages 6-7 that “storing…the associated candidate adjusted configuration in a distributed database accessible to the plurality of network nodes for access by others of the plurality of network nodes” because “there is no mention in Di-Cairano[] of a distributed database.” In response, the examiner respectfully submits: The examiner respectfully disagrees. In response to applicant's arguments against the references individually, one cannot show nonobviousness by attacking references individually where the rejections are based on combinations of references. See In re Keller, 642 F.2d 413, 208 USPQ 871 (CCPA 1981); In re Merck & Co., 800 F.2d 1091, 231 USPQ 375 (Fed. Cir. 1986). In citing Di-Cairano for other teachings of the quoted limitation, Examiner explicitly stated at Non-Final page 7 that “A distributed database will be taught later” and then later cited Dowlatkhah for a distributed database (see Non-Final, page 10). The combination teaches the storage of candidate configurations in a distributed database. Examiner did not assert that Di-Cairano teaches the entire limitation, so the argument that Di-Cairano does not teach the entire limitation is unpersuasive. Argument 3: Applicant argues at Remarks, page 7 that “selecting, in common by the plurality of network nodes” and “accessing, by each network node…the candidate adjusted configurations stored in the distributed database” are not taught because Di-Cairano “describes a centralized decision-making process.” Applicant argues that the fundamental distinctions “arise from the fact that Di-Cairano[] uses a centralized optimization processor…whereas claim 1, in contrast, is directed to a distributed architecture.” (Emphasis Applicant’s) Applicant concludes that “[g]iven this basic underlying distinction…one of ordinary skill in the art would not have considered or modified Di-Cairano[] without fundamentally changing a principal operation thereof.” In response, the examiner respectfully submits: Examiner agrees that Di-Cairano has centralized certain features, and Examiner agrees that the claim uses a distributed architecture. Applicant appears to concede or at least does not dispute that Dowlatkhah teaches a distributed architecture and distributed processing, i.e. the same thing Applicant argues is missing from Di-Cairano. Distributed processing is well-known and basic feature of computer networking, and some would say the original reason that ARPANet (the precursor to the internet) was created. The question of whether to centralize or distribute functionality is a common design choice in computer networking and in no way constitutes a fundamental change in principal operation. Rather distributing functionality represents a simple substitution for predictable effects compared to centralizing functionality. Di-Cairano chose to implement some of the functions centrally, but a person of ordinary would have recognized that they could has just as easily been implemented in a distributed fashion. The argument that there would be no motivation to modify Di-Cairano’s centralized system to make it distributed because it changes a fundamental principle of operation is unpersuasive. Argument 4: Applicant next discusses Dowlatkhah and argues at Remarks, pages 7-8 that Dowlatkhah “does not teach or even mention individual network nodes evaluating configuration adjustments” and does not teach “network nodes storing candidate adjusted configurations.” Applicant continues at Remarks, page 8 that “Fundamentally, then, Dowlatkhah does not have any disclosure of any individual network nodes evaluating configurations for performance improvement…Dowlatkhah instead focuses on SDN controllers managing network functions and resources in a more centralized approach, with the Manager SDN Controller (230) coordinating the instantiation and configuration of network elements.” In response, the examiner respectfully submits: Dowlatkhah teaches distributed computing. The fact that distributed computing is overseen by a controller node that coordinates the actions of the individual nodes performing the distributed processing does not change the fact that distributed processing is done by individual nodes. When Applicant points out that the SDN Controller “coordinates,” Applicant appears to acknowledge that other nodes are performing actions that require coordination. A person of ordinary skill aware of distributed processing would immediately understand that some or all of the nodes could partake in a given functionality. With respect to the configuration adjustments, Di-Cairano was cited for the feature, simply that Di-Cairano performed the feature centrally. This part of the argument, like those above, is an improper piecemeal attack on the rejection. The remainder of Applicant’s arguments at Remarks, pages 9-10 are that Niestemski does not cure and that no reference anticipates the entirety of claim limitations. This is not an anticipation rejection, and obviousness is a question of what was obvious to a person of ordinary skill over the combined teachings of all the references. Therefore, the analysis that Di-Cairano, standing on its own, does not teach the entirety of a limitation and further that Dowlatkhah, standing on its own, does not teach the entirety of the same limitation is irrelevant. The only question is whether that limitation (individually and considering in combination with the others) would have been obvious to a person of ordinary skill in light of the teachings of all the references together. Applicant does not dispute Di-Cairano’s teachings with respect to the usage of an evolutionary algorithm other than those actions are performed centrally. While Applicant focuses on Dowlatkhah’s SDN controllers (which, Examiner notes are themselves distributed) Applicant does not dispute that Dowlatkhah evidences that a person of ordinary skill could distribute functionality. Dowlatkhah paragraph 0094 states that “functions…described herein…can be embodied in a respective system having one or more computers or servers, either centralized or distributed…” Paragraph 0112 discloses a machine for performing functions, and states “in a networked deployment, the machine may operate…as a peer machine in a peer-to-peer (or distributed) environment. Paragraph 0117 explicitly discloses “software implementations[] including, but not limited to, distributed processing [or] parallel processing [] can also be constructed to implement the methods described herein.” Similarly, Dowlatkhah paragraph 0094 refers to “centralized or distributed” as alternate embodiments multiple times, which evidences that a person of ordinary skill did not view a change from centralized systems to distributed systems as being a fundamental change in the principle of operation. The sum of it is that Dowlatkhah evidences that it would have been obvious to a person of ordinary skill to modify the centralized system of Di-Cairano to make it a distributed system, which Applicant identifies as the distinction between Di-Cairano and the claims. The argument that the claims are nonobvious because Di-Cairano is centralized and it would have been nonobvious to have a distributed system is therefore unpersuasive. Examiner maintains the obviousness rejection. All claims remain rejected. Conclusion THIS ACTION IS MADE FINAL. 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 KARINA J. GARCIA-CHING whose telephone number is (571)270-7159. The examiner can normally be reached Monday - Wednesday (9:00 AM - 5:00 PM). 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. /KARINA J GARCIA-CHING/Examiner, Art Unit 2449 /VIVEK SRIVASTAVA/Supervisory Patent Examiner, Art Unit 2449
Read full office action

Prosecution Timeline

Dec 06, 2022
Application Filed
Jun 07, 2024
Non-Final Rejection — §103
Sep 12, 2024
Response Filed
Oct 15, 2024
Final Rejection — §103
Dec 19, 2024
Response after Non-Final Action
Feb 24, 2025
Interview Requested
Mar 04, 2025
Applicant Interview (Telephonic)
Mar 04, 2025
Examiner Interview Summary
Mar 06, 2025
Request for Continued Examination
Mar 10, 2025
Response after Non-Final Action
Mar 19, 2025
Non-Final Rejection — §103
Jun 24, 2025
Response Filed
Sep 29, 2025
Final Rejection — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12549647
Cross-Zone Data Processing
2y 5m to grant Granted Feb 10, 2026
Patent 12549435
FAILURE DETECTION AND RECOVERY TECHNIQUES FOR CONVERGED NETWORK ADAPTORS
2y 5m to grant Granted Feb 10, 2026
Patent 12381841
INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD AND INFORMATION PROCESSING PROGRAM
2y 5m to grant Granted Aug 05, 2025
Patent 12348601
COMMUNICATION APPARATUS AND COMMUNICATION METHOD
2y 5m to grant Granted Jul 01, 2025
Patent 12335358
IMAGE PROCESSING METHOD AND APPARATUS, DEVICE AND STORAGE MEDIUM
2y 5m to grant Granted Jun 17, 2025
Study what changed to get past this examiner. Based on 5 most recent grants.

AI Strategy Recommendation

Get an AI-powered prosecution strategy using examiner precedents, rejection analysis, and claim mapping.
Powered by AI — typically takes 5-10 seconds

Prosecution Projections

5-6
Expected OA Rounds
63%
Grant Probability
99%
With Interview (+37.8%)
3y 7m
Median Time to Grant
High
PTA Risk
Based on 209 resolved cases by this examiner. Grant probability derived from career allow rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month