Prosecution Insights
Last updated: April 19, 2026
Application No. 18/530,591

METHOD FOR CARRYING OUT A DECISION FOR UPGRADING AND/OR DEPLOYING SOFTWARE ON MULTIPLE HETEROGENOUS DEVICES

Final Rejection §103§112
Filed
Dec 06, 2023
Examiner
NGUYEN, DUY KHUONG THANH
Art Unit
2199
Tech Center
2100 — Computer Architecture & Software
Assignee
Carnegie Mellon University
OA Round
2 (Final)
82%
Grant Probability
Favorable
3-4
OA Rounds
2y 9m
To Grant
99%
With Interview

Examiner Intelligence

Grants 82% — above average
82%
Career Allow Rate
440 granted / 539 resolved
+26.6% vs TC avg
Strong +35% interview lift
Without
With
+35.2%
Interview Lift
resolved cases with interview
Typical timeline
2y 9m
Avg Prosecution
38 currently pending
Career history
577
Total Applications
across all art units

Statute-Specific Performance

§101
13.3%
-26.7% vs TC avg
§103
59.8%
+19.8% vs TC avg
§102
6.3%
-33.7% vs TC avg
§112
9.6%
-30.4% vs TC avg
Black line = Tech Center average estimate • Based on career data from 539 resolved cases

Office Action

§103 §112
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 . Response to Amendment This office action has been issued in response to amendment filed on 11/25/2025. Claims 1-11 have been amended. Claims 12-19 have been added. Claims 1-19 are pending, of which claims, of which claim 1, claim 9, claim 10 and claim 11 are in independent form. Accordingly, this action has been made FINAL. Response to Argument Based on applicant’s arguments, claims objections for claims 1-4, 6-7 and 9-11 have been withdrawn. Claims 9-10 have been amended not to invoke 112(f). Claim 7 have been amended to overcome 112 rejection. The 112 rejection for claim 7 have been withdrawn. Applicant's arguments with respect to claims 1-19 have been considered but are moot in view of the new ground(s) of rejection. Status of Claims Claims 1-19 are pending, of which claims, of which claim 1, 9, 10 and 11 are in independent form. Claim Rejections - 35 USC § 112 The following is a quotation of 35 U.S.C. 112(b): (b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention. The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph: The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention. Claim 6 recites the limitation “the connected device” at the end of the claim. There is insufficient antecedent basis for this limitation in the claim. The Office's Note: The Office has cited particular paragraphs / columns and line numbers in the reference(s) applied to the claims above for the convenience of the Applicant. Although the specified citations are representative of the teachings of the art and are applied to specific limitations within the individual claim(s), other passages and figures may apply as well. It is respectfully requested from the Applicant in preparing responses, to fully consider the references in entirety as potentially teaching all or part of the claimed invention, as well as the context of the cited passages as taught by the prior art or relied upon 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 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. Claim 1-19 rejected under 35 U.S.C. 103 as being obvious over Hussain et al. (US 10,684,840, herein after Hussain), in view of Thompson et al. (US 20130067454, herein after Thompson) and further in view of Santharam et al. (US 20170286081, herein after Santharam). Claim 1 is rejected, Hussain teaches a method for carrying out software management for multiple heterogenous devices, the method comprising the following steps (Hussain, abstract and summary): receiving, by a central orchestrator, a request to upgrade and/or deploy software on at least one of the devices (Hussain, US 10,684,840,column 4 , line 66, to column 5, line 20, In the example of FIG. 1, the request 105 is received by command interface 110, which may be an interface that allows customers and other users to issue various tasks, requests, and commands for execution on a fleet or other group of computing instances. Fig. 2, column 5, line 21-65, Action 213 indicates an action associated with the request 210, such as install or uninstall.); initiating, by the central orchestrator, a connection to the at least one of the devices(Hussain, column 4 , line 66, to column 5, line 20, Upon receiving the request 105, the command interface 110 may forward the request 105 may forward the request 105 to computing instances 120A-N for processing. In particular, in some examples, the request 105 may be provided to agents 121A-D executing respectively on each computing instance 120A-D. Agents 121A-D may generally be components for executing and managing various tasks and operations on computing instances 120A-D, such as through interaction with various agent plug-in components that may include specialized instructions for performing certain specific tasks and operations. In the example of FIG. 1, the agents 121A-D interact with respective package configuration plug-ins 122A-D, which are agent plug-ins that may include specialized instructions for implementing operations associated with the installation, uninstallation, updating, constraint enforcement, and other configuration-related aspects of software packages.); The Office would like to use prior art Thompson to back up Hussain to further teach limitation initiating, by the central orchestrator, a connection to the at least one of the devices(Thompson, fig. 1 and para [0039], the orchestrator may interact with the distributed processing system using input from a distributed processing plugin. The distributed processing plugin may include data collection routines that identify the devices being managed, determine the mechanisms for communicating to the devices, ensure availability of services offered by the distributed processing system, and includes the logic for determining a sequence of devices to update and how to prepare devices for updating. Fig. 3, component 302 – Orchestrator, component 312 – Send update request, component 346 and 348 - Prepare device for installation). It would have obvious to one having ordinary skill in the art before the effecting filing date of the claimed invention to combine the teachings of cited references. Thus, one of ordinary skill in the art before the effecting filling date of the claimed invention would have been motivated to incorporate Thompson into Hussain’s invention to update distributed processing systems. The command is transmitted to each of the devices causing an update to be performed by each of the devices. Easily performs updating of the distributed processing system. Ensures the availability of services offered by the distributed processing system during an update as suggested by Thompson (See abstract and summary of the invention.). Hussain and Thompson do not explicitly teach transmitting, by the central orchestrator, via the connection, and to the at least one device, at least one benchmark program that is executable on the at least one device and that, when executed on the at least one device, causes the at least one device to run one or more tests, results of which are at least one quantitative benchmark value characterizing a respective computational capability of the at least one device; receiving, by the central orchestrator and from the at least one device, the [results of the one or more tests; determining, by the central orchestrator, whether and in what variant the software is to be upgraded and/or deployed on the at least one device based on a comparison of the results of the one or more tests with requirements of the software; and carrying out the upgrading and/or deployment of the software according to the determination. However, Santharam teaches transmitting, by the central orchestrator, via the connection, and to the at least one device, at least one benchmark program that is executable on the at least one device and that, when executed on the at least one device, causes the at least one device to run one or more tests, results of which are at least one quantitative benchmark value characterizing a respective computational capability of the at least one device (Santharam, US 20170286081, fig. 1, component 124 – secondary installer application and para [0017-0020], The core installation package file 121 can cause a default installer application executable on the client device 106 to perform a silent installation of components included within the core installation package file 121, such as other installation package files 118 and a secondary installer application 124 that oversee the installation the installation package files 118 included within the core installation package file 121. Para [0029-0034], The secondary installer application 124 can run diagnostics on the client device 106 to generate diagnostic data that can include, for example, a version of an operating system 166 running on the client device 106, software components installed (or not installed) on the client device 106, versions of the software components installed on the client device 106, hardware and software capabilities, hardware and software configurations, and similar information. The diagnostic data can be used to generate device state information 212 describing a state of the client device 106. Para [0012-0015], the secondary installer application can communicate with the remote computing device to identify the required dependencies, verify that the client device is in compliance with one or more compliance rules.); receiving, by the central orchestrator and from the at least one device, the results of the one or more tests(Santharam, para [0044-0046], The secondary installer application 124 can run diagnostics on the client device 106 to generate diagnostic data 209 that can include, for example, a version of an operating system 166 running on the client device 106, software components installed (or not installed) on the client device 106, versions of the software components installed on the client device 106, hardware and software capabilities, hardware and software configurations, and similar actions. The diagnostic data 209 can be used to generate the device state information 212.); determining, by the central orchestrator, whether and in what variant the software is to be upgraded and/or deployed on the at least one device based on a comparison of the results of the one or more tests with requirements of the software(Santharam, para [0051-0052], Using the device state information 212 or the diagnostic data 209, the secondary installer application 124 can ultimately identify which software components require installation on the client device 106. In some examples, the device state information 212 and the diagnostic data 209 can be sent to the computing environment 103 to remotely identify which software components require installation on the client device 106. The software components that require installation on the client device 106 for a proper or intended execution of a client application 169 can be referred to as dependencies or software dependencies. Para [0034], In other examples, the secondary installer application 124 can communicate with the management service 115 to verify that the client device 106 is in compliance with one or more compliance rules 130. This can include communicating the device state information 212 to the computing environment 103 for remote analysis. If the secondary installer application 124 detects a vulnerability on the client device 106 not in conformance with a compliance rule 130, the secondary installer application 124 can abstain from performing an installation of the client application 169 or other software components until the vulnerability has been addressed or alleviated. Such vulnerability can include, for example, the presence of a virus or malware on the client device 106, the client device 106 being “rooted” or “jailbroken” where root access is provided to a user of the client device 106, the presence of particular applications or files, or other vulnerability as can be appreciated.); and carrying out the upgrading and/or deployment of the software according to the determination(Santharam, para [0034-0040], In other examples, the secondary installer application 124 can communicate with the management service 115 to verify that the client device 106 is in compliance with one or more compliance rules 130. This can include communicating the device state information 212 to the computing environment 103 for remote analysis. If the secondary installer application 124 detects a vulnerability on the client device 106 not in conformance with a compliance rule 130, the secondary installer application 124 can abstain from performing an installation of the client application 169 or other software components until the vulnerability has been addressed or alleviated. Such vulnerability can include, for example, the presence of a virus or malware on the client device 106, the client device 106 being “rooted” or “jailbroken” where root access is provided to a user of the client device 106, the presence of particular applications or files, or other vulnerability as can be appreciated.). It would have obvious to one having ordinary skill in the art before the effecting filing date of the claimed invention to combine the teachings of cited references. Thus, one of ordinary skill in the art before the effecting filling date of the claimed invention would have been motivated to incorporate Santharam into Hussain and Thompson’s invention to generating a core installation package. A client application is silently installed on the client device. A software dependency is required to be installed on the client device is identified for a proper execution of the client application. A second one of the installation packages files that corresponds to the software dependency are identified. A silent installation of the secondary installer application is caused on the client device as suggested by Santharam (See abstract and summary of the invention.). Claim 2 is rejected for the reasons set forth hereinabove for claim 1, Hussain, Thompson and Santharam teach the method of claim 1, wherein the devices are configured as nodes in an edge or cloud computing system, each of the nodes being capable of executing the software, the software including an application and/or an application container, the capabilities of the devices for executing the software differing from each other and each of the nodes being capable of hosting a platform neutral byte-code format runtime for executing the software in an intermediate byte code format( Hussain, column 4, line 6-65, FIG. 1 is a diagram illustrating an example software package installation and monitoring system that may be used in accordance with the present disclosure. As shown in FIG. 1, a user 100 may have a group of computing instances 120A-D that are operated on the user's behalf. The computing instances 120A-D may include, for example, virtual machine instances and/or managed computing hardware and/or software instances. In some examples, user 100 may be a customer of a cloud or other computing service provider that hosts execution of Computing instances 120A-D on the user's behalf. For example, the computer service provider may operate one or more data centers or other large collections of computing resources. In the example of FIG. 1, computing instances 120A-D have a number of different characteristics with respect to one another, such as different operating system types, different architecture (e.g., processor) types, different package manager types, different framework types, and other different characteristics. In particular, FIG. 1 shows that computing instance 120A has an Operating System XX (as indicated by the text OS=XX within computing instance 120A). Additionally, computing instance 120A has an Architecture AA (as indicated by the text OS=AA within Computing instance 120A). As also shown in FIG. 1, computing instance 120B has Operating System XX and Architecture BB, computing instance 120C has Operating System YY and Architecture AA, and computing instance 120D has Operating System YY and Architecture BB. It is noted that the different operating system and architecture types shown in FIG. 1 are merely non-limiting examples of different computing instance characteristics. Moreover, it is noted that any or all of computing instances 120A-D may, in some examples, represent any number of computing instances having their respective indicated characteristics. Hussain, column 8, line 6-31, In some examples, information collections 431-440 may each include data that enables installation and uninstallation of their respective package types 411-420 on a computing instance. In some examples, the information collections may include compressed data, such as in a .zip, .tar, or other similar file format. Santharam, para [0017-0020].). Claim 3 is rejected for the reasons set forth hereinabove for claim 1, Hussain, Thompson and Santharam teach the method of claim 1, wherein the determination is carried out based on the benchmark values determined for the at least one device and further ones of the devices to decide on which of the devices the software is upgraded and/or deployed( Hussain, column 5, line 21-65, Upon receiving the operating constraints 730 and associated information, monitoring components 712A-D may proceed to monitor the operations of the installed package components 611A-D in order to ensure that the package components 611A-D comply with the operating constraints 730. For example, if package components 611A-D issue a request and/or attempt to perform an operation that may result in meeting or exceeding a threshold amount (e.g., percentage) of usage of processing, memory, I/O, and/or other resources, then monitoring components 712A-D may wholly or partially deny or prohibit the request or operation. In some examples, the denied and/or prohibited request or operation may return an error message and/or may include instructions to re-attempt the request or operation at a later time. Also, in some examples, the denied and/or prohibited request or operation may be logged, for example along with associated metadata (e.g., name of package component issuing request, time of request, type of request, etc.), for further review or evaluation. In some examples, monitoring components 712A-D may be specific to a particular operating system type executed by a computing instance 120A-D. For example, as shown in FIG. 6, monitoring components 712A and 712B are designed for execution on Operating System XX employed by computing instances 120A and 120B, while monitoring components 712C and 712D are designed for execution on Operating System YY employed by computing instances 120C and 120D. Santharam, para [0034-0040], In other examples, the secondary installer application 124 can communicate with the management service 115 to verify that the client device 106 is in compliance with one or more compliance rules 130. This can include communicating the device state information 212 to the computing environment 103 for remote analysis. If the secondary installer application 124 detects a vulnerability on the client device 106 not in conformance with a compliance rule 130, the secondary installer application 124 can abstain from performing an installation of the client application 169 or other software components until the vulnerability has been addressed or alleviated. Such vulnerability can include, for example, the presence of a virus or malware on the client device 106, the client device 106 being “rooted” or “jailbroken” where root access is provided to a user of the client device 106, the presence of particular applications or files, or other vulnerability as can be appreciated.). Claim 4 is rejected for the reasons set forth hereinabove for claim 1, Hussain, Thompson and Santharam teach the method of claim 1, wherein the one or more tests determine at least one of the following capabilities of the at least one connected device: a computational capability specific for a computing performance of the connected device, a hardware capability characterizing on a hardware topology of the connected device, an architecture capability of the connected device, a performance capability specific for at least one performance related metric of the connected device, a software capability specific for a software of the connected device, including for a software version (Hussain, column 5, line 21-65, and column 20, line 15 to 25, The resources may in some embodiments be offered to clients in various units related to the web service, such as an amount of storage capacity for storage, processing capability for processing, as instances, as sets of related services and the like. A virtual computing instance may, for example, comprise one or more servers with a specified computational capacity (which may be specified by indicating the type and number of CPUs, the main memory size and so on) and a specified software stack (e.g., a particular version of an operating system, which may in turn run on top of a hypervisor). Santharam, para [0029-0034], The secondary installer application 124 can run diagnostics on the client device 106 to generate diagnostic data that can include, for example, a version of an operating system 166 running on the client device 106, software components installed (or not installed) on the client device 106, versions of the software components installed on the client device 106, hardware and software capabilities, hardware and software configurations, and similar information. The diagnostic data can be used to generate device state information 212 describing a state of the client device 106. Para [0012], the secondary installer application can communicate with the remote computing device to identify the required dependencies, verify that the client device is in compliance with one or more compliance rules.). Claim 5 is rejected for the reasons set forth hereinabove for claim 1, Hussain, Thompson and Santharam teach the method of claim 1, wherein the request includes an application manifest that specifies application requirements on the device for execution of the software, the determination being carried out based on a comparison of the results of the one or more tests and the application manifest( Hussain, column 5, line 21-65, For an installation request, an agent on a given computing instance may process the request by accessing a manifest (e.g., at the specified source or other known location) for the software package that indicates various computing instance characteristics (e.g., operating system types, architecture types, etc.) and various respective available versions of the software package. The agent may then select, based on characteristics of the computing instance, a package type for the computing instance, such as a package type corresponding to an appropriate version of the software package that is suitable for installation on an operating system type and architecture type of the computing instance. Hussain, column 5, line 21-65. Santharam, para [0029-0034], In other examples, the secondary installer application 124 can communicate with the management service 115 to verify that the client device 106 is in compliance with one or more compliance rules 130. This can include communicating the device state information 212 to the computing environment 103 for remote analysis. If the secondary installer application 124 detects a vulnerability on the client device 106 not in conformance with a compliance rule 130, the secondary installer application 124 can abstain from performing an installation of the client application 169 or other software components until the vulnerability has been addressed or alleviated. Such vulnerability can include, for example, the presence of a virus or malware on the client device 106, the client device 106 being “rooted” or “jailbroken” where root access is provided to a user of the client device 106, the presence of particular applications or files, or other vulnerability as can be appreciated.). Claim 6 is rejected for the reasons set forth hereinabove for claim 1, Hussain, Thompson and Santharam teach the method of claim 1,wherein the at least one benchmark and/or the software is provided by providing a location for downloading the at least one benchmark program and/or the software to the device so that the device carries out the downloaded benchmark program, and wherein the central orchestrator is executed by a central data processing apparatus different from the connected device ( Hussain, column 8, line 6-31, Package data 511 may include data included in or otherwise associated with a software package, such as installers (e.g., .msi files, .rpm files, etc.), executable files (e.g., .exe files), and other associated data and/or metadata. Installation instructions 512 may include instructions that are executable by one or more components (e.g., agents 121A-D and/or plug-ins 122A-D) for installing of the software package. For example, in some cases, installation instructions 512 may include instructions to execute one or more scripts to execute a .msi file or other installer within the package data 511. Additionally, in some examples, installation instructions 512 may employ certain specialized .msi or other installer execution capabilities that may be supported by agents 121A-D, plug-ins 122A-D, and/or command interface 110. Installation instructions 512 may also include instructions to reboot a computing instance after installation of the software package. Hussain, column 4, line 6-65. Santharam, fig. 1, component 124 – secondary installer application and para [0017], The core installation package file 121 can cause a default installer application executable on the client device 106 to perform a silent installation of components included within the core installation package file 121, such as other installation package files 118 and a secondary installer application 124 that oversee the installation the installation package files 118 included within the core installation package file 121. Para [0029-0034], The secondary installer application 124 can run diagnostics on the client device 106 to generate diagnostic data that can include, for example, a version of an operating system 166 running on the client device 106, software components installed (or not installed) on the client device 106, versions of the software components installed on the client device 106, hardware and software capabilities, hardware and software configurations, and similar information. The diagnostic data can be used to generate device state information 212 describing a state of the client device 106. Para [0012], the secondary installer application can communicate with the remote computing device to identify the required dependencies, verify that the client device is in compliance with one or more compliance rules.). Claim 7 is rejected for the reasons set forth hereinabove for claim 12, Hussain, Thompson and Santharam teach the method of claim 12, wherein the bytecode format is WebAssembly (Hussain, column 8, line 6-31, In some examples, information collections 431-440 may each include data that enables installation and uninstallation of their respective package types 411-420 on a computing instance. In some examples, the information collections may include compressed data, such as in a .zip, .tar, or other similar file format. Referring now to FIG. 5, an example information collection 431 now be described in detail. As shown in FIG.5, information collection 431 includes package data 511, installation instructions 512, and uninstallation instructions 513. Package data 511 may include data included in or otherwise associated with a software package, such as installers (e.g., .msi files, .rpm files, etc.), executable files (e.g., .exe files), and other associated data and/or metadata. Santharam, para [0029-0034].). Claim 8 is rejected for the reasons set forth hereinabove for claim 1, Hussain, Thompson and Santharam teach the method of claim 1, wherein the central orchestrator transmits the at least one benchmark program and receives the results of the one or more tests for each of the multiple heterogenous devices to automatically quantify the capabilities for executing the software by the devices and for different respective upgrades and/or deployments of the software on different ones of the devices(Thompson, paragraph [0002], a distributed system manager may identify updates to perform, identify devices to update, and perform the updates while maintaining service availability. The manager may consist of an orchestrator that uses a plug in architecture to interface with different update systems. The plugins may interface with an update system and respond to scan, download, and install commands from the orchestrator. The orchestrator may prepare each device within the distributed system for updating, then cause the updates to be performed via the plugins. In some embodiments, the logic for selecting devices to update and managing the workloads on the devices may be contained in a second type of plugin. Fig. 2, component 210 – Determine if update is applicable and component 214 – identify devices for installation. Santharam, fig. 2 and para [0029-0034], The secondary installer application 124 can run diagnostics on the client device 106 to generate diagnostic data that can include, for example, a version of an operating system 166 running on the client device 106, software components installed (or not installed) on the client device 106, versions of the software components installed on the client device 106, hardware and software capabilities, hardware and software configurations, and similar information. The diagnostic data can be used to generate device state information 212 describing a state of the client device 106. Para [0012], the secondary installer application can communicate with the remote computing device to identify the required dependencies, verify that the client device is in compliance with one or more compliance rules. Santharam, para [0044], The secondary installer application 124 can run diagnostics on the client device 106 to generate diagnostic data 209 that can include, for example, a version of an operating system 166 running on the client device 106, software components installed (or not installed) on the client device 106, versions of the software components installed on the client device 106, hardware and software capabilities, hardware and software configurations, and similar actions. The diagnostic data 209 can be used to generate the device state information 212.). As per claim 9, this is the apparatus claim to method claim 1. Therefore, it is rejected for the same reasons as above. Claim 10 is rejected, Hussain teaches a device for a computing system, the device comprising(Hussain, abstract and summary): a processor system that includes one or more processors, wherein the processor system is programmed to (Hussain, fig. 12, component 10a..n - processor): install on the device the received version of the software or software upgrade ( Hussain, fig. 5 and column 8, line 19 to 31, installation instructions 512 may include instructions that are executable by one or more components (e.g., agents 121A-D and/or plug-ins 122A-D) for installing of the software package. For example, in some cases, installation instructions 512 may include instructions to execute one or more scripts to execute a .msi file or other installer within the package data 511. Additionally, in some examples, installation instructions 512 may employ certain specialized .msi or other installer execution capabilities that may be supported by agents 121A-D, plug-ins 122A-D, and/or command interface 110. Installation instructions 512 may also include instructions to reboot a computing instance after installation of the software package. Hussain, column 9 , line 45, to column 10, line 29. Hussain, column 5, line 21-65. Hussain, column 8, line 6-31. Hussain, column 4, line 6-65.). Hussain does not explicitly teach orchestrator However, Thompson teaches orchestrator(Thompson, fig. 1 and para [0039], the orchestrator may interact with the distributed processing system using input from a distributed processing plugin. The distributed processing plugin may include data collection routines that identify the devices being managed, determine the mechanisms for communicating to the devices, ensure availability of services offered by the distributed processing system, and includes the logic for determining a sequence of devices to update and how to prepare devices for updating. Fig. 3, component 302 – Orchestrator, component 312 – Send update request, component 346 and 348 - Prepare device for installation) It would have obvious to one having ordinary skill in the art before the effecting filing date of the claimed invention to combine the teachings of cited references. Thus, one of ordinary skill in the art before the effecting filling date of the claimed invention would have been motivated to incorporate Thompson into Hussain’s invention to update distributed processing systems. The command is transmitted to each of the devices causing an update to be performed by each of the devices. Easily performs updating of the distributed processing system. Ensures the availability of services offered by the distributed processing system during an update as suggested by Thompson (See abstract and summary of the invention.). Hussain and Thompson do not explicitly teach receive, from a central orchestrator, at least one benchmark program that is executable on the device; execute the at least one benchmark program to run one or more tests, results of which are at least one quantitative benchmark value characterizing a computational capability of the device; transmit the results of the process one or more tests to the central orchestrator for use by the central orchestrator in determining whether and in what variant the software is to be upgraded and/or deployed on the device; receive, from the central orchestrator, a version of a software or software upgrade selected by the central orchestrator based on the transmitted results; and However, Santharam teaches receive, from a central orchestrator, at least one benchmark program that is executable on the device(Santharam, US 20170286081, fig. 1, component 124 – secondary installer application and para [0017-0020], The core installation package file 121 can cause a default installer application executable on the client device 106 to perform a silent installation of components included within the core installation package file 121, such as other installation package files 118 and a secondary installer application 124 that oversee the installation the installation package files 118 included within the core installation package file 121. Para [0029-0034]. Para [0012-0015], the secondary installer application can communicate with the remote computing device to identify the required dependencies, verify that the client device is in compliance with one or more compliance rules.); execute the at least one benchmark program to run one or more tests, results of which are at least one quantitative benchmark value characterizing a computational capability of the device(Santharam, para [0029-0034], The secondary installer application 124 can run diagnostics on the client device 106 to generate diagnostic data that can include, for example, a version of an operating system 166 running on the client device 106, software components installed (or not installed) on the client device 106, versions of the software components installed on the client device 106, hardware and software capabilities, hardware and software configurations, and similar information. The diagnostic data can be used to generate device state information 212 describing a state of the client device 106.); transmit the results of the process one or more tests to the central orchestrator for use by the central orchestrator in determining whether and in what variant the software is to be upgraded and/or deployed on the device(Santharam, para [0051-0052], Using the device state information 212 or the diagnostic data 209, the secondary installer application 124 can ultimately identify which software components require installation on the client device 106. In some examples, the device state information 212 and the diagnostic data 209 can be sent to the computing environment 103 to remotely identify which software components require installation on the client device 106. The software components that require installation on the client device 106 for a proper or intended execution of a client application 169 can be referred to as dependencies or software dependencies. Para [0034-0040], In other examples, the secondary installer application 124 can communicate with the management service 115 to verify that the client device 106 is in compliance with one or more compliance rules 130. This can include communicating the device state information 212 to the computing environment 103 for remote analysis. If the secondary installer application 124 detects a vulnerability on the client device 106 not in conformance with a compliance rule 130, the secondary installer application 124 can abstain from performing an installation of the client application 169 or other software components until the vulnerability has been addressed or alleviated. Such vulnerability can include, for example, the presence of a virus or malware on the client device 106, the client device 106 being “rooted” or “jailbroken” where root access is provided to a user of the client device 106, the presence of particular applications or files, or other vulnerability as can be appreciated.); receive, from the central orchestrator, a version of a software or software upgrade selected by the central orchestrator based on the transmitted results(Santharam, para [0070-0072], In step 609, the secondary installer application 124 can use the diagnostics obtained in step 603 to identify software components that require installation on the client device 106. In some examples, the diagnostics can be sent to the computing environment 103 to remotely identify which software components require installation on the client device 106. The software components can include, for example, applications, libraries, drivers, or similar components. In step 612, the client device 106 determines whether installation of a software dependency is required.); and It would have obvious to one having ordinary skill in the art before the effecting filing date of the claimed invention to combine the teachings of cited references. Thus, one of ordinary skill in the art before the effecting filling date of the claimed invention would have been motivated to incorporate Santharam into Hussain and Thompson’s invention to generating a core installation package. A client application is silently installed on the client device. A software dependency is required to be installed on the client device is identified for a proper execution of the client application. A second one of the installation packages files that corresponds to the software dependency are identified. A silent installation of the secondary installer application is caused on the client device as suggested by Santharam (See abstract and summary of the invention.). The Office notes that Santharam also teaches install on the device the received version of the software or software upgrade(Santharam, para [0071-0072], the client device 106 can oversee the silent installation of the installation package file 118 for the required software dependency. For example, the secondary installer application 124 can call the default installer application 206 to silently install one of the installation package files 118 copied to the memory of the client device 106.) As per claim 11, this is the medium claim to method claim 1. Therefore, it is rejected for the same reasons as above. Claim 12 is rejected for the reasons set forth hereinabove for claim 1, Hussain, Thompson and Santharam teach the method of claim 1, wherein the benchmark program is provided in a bytecode format that is executable irrespective of a hardware architecture of the device ( Santharam, para [0012-0015], the secondary installer application can communicate with the remote computing device to identify the required dependencies, verify that the client device is in compliance with one or more compliance rules. Para [0022-0025], capable of installation on different operating systems, types of client devices 106, or other variables. Hussain, column 8, line 6-31. Santharam, para [0029-0034], The secondary installer application 124 can run diagnostics on the client device 106 to generate diagnostic data that can include, for example, a version of an operating system 166 running on the client device 106, software components installed (or not installed) on the client device 106, versions of the software components installed on the client device 106, hardware and software capabilities, hardware and software configurations, and similar information. The diagnostic data can be used to generate device state information 212 describing a state of the client device 106. Para [0035-0040]. Hussain, column 4, line 6-65.). Claim 13 is rejected for the reasons set forth hereinabove for claim 1, Hussain, Thompson and Santharam teach the method of claim 1, wherein the one or more tests include a testing of an instruction-per-cycle rate (Santharam, para [0029-0034], The secondary installer application 124 can run diagnostics on the client device 106 to generate diagnostic data that can include, for example, a version of an operating system 166 running on the client device 106, software components installed (or not installed) on the client device 106, versions of the software components installed on the client device 106, hardware and software capabilities, hardware and software configurations, and similar information. The diagnostic data can be used to generate device state information 212 describing a state of the client device 106. Santharam, para [0012-0015]. Para [0035-0040]. Hussain, column 5, line 21-65, Upon receiving the operating constraints 730 and associated information, monitoring components 712A-D may proceed to monitor the operations of the installed package components 611A-D in order to ensure that the package components 611A-D comply with the operating constraints 730. For example, if package components 611A-D issue a request and/or attempt to perform an operation that may result in meeting or exceeding a threshold amount (e.g., percentage) of usage of processing, memory, I/O, and/or other resources, then monitoring components 712A-D may wholly or partially deny or prohibit the request or operation. Hussain, column 20, line 15 to 25, The resources may in some embodiments be offered to clients in various units related to the web service, such as an amount of storage capacity for storage, processing capability for processing, as instances, as sets of related services and the like. A virtual computing instance may, for example, comprise one or more servers with a specified computational capacity (which may be specified by indicating the type and number of CPUs, the main memory size and so on) and a specified software stack (e.g., a particular version of an operating system, which may in turn run on top of a hypervisor).). Claim 14 is rejected for the reasons set forth hereinabove for claim 1, Hussain, Thompson and Santharam teach the method of claim 1, wherein the one or more tests include a testing of a floating point performance (Santharam, para [0012-0015]. Para [0029-0034], The secondary installer application 124 can run diagnostics on the client device 106 to generate diagnostic data that can include, for example, a version of an operating system 166 running on the client device 106, software components installed (or not installed) on the client device 106, versions of the software components installed on the client device 106, hardware and software capabilities, hardware and software configurations, and similar information. The diagnostic data can be used to generate device state information 212 describing a state of the client device 106. Para [0035-0040]. Hussain, column 5, line 21-65, Upon receiving the operating constraints 730 and associated information, monitoring components 712A-D may proceed to monitor the operations of the installed package components 611A-D in order to ensure that the package components 611A-D comply with the operating constraints 730. For example, if package components 611A-D issue a request and/or attempt to perform an operation that may result in meeting or exceeding a threshold amount (e.g., percentage) of usage of processing, memory, I/O, and/or other resources, then monitoring components 712A-D may wholly or partially deny or prohibit the request or operation. Hussain, column 20, line 15 to 25, The resources may in some embodiments be offered to clients in various units related to the web service, such as an amount of storage capacity for storage, processing capability for processing, as instances, as sets of related services and the like. A virtual computing instance may, for example, comprise one or more servers with a specified computational capacity (which may be specified by indicating the type and number of CPUs, the main memory size and so on) and a specified software stack (e.g., a particular version of an operating system, which may in turn run on top of a hypervisor).). Claim 15 is rejected for the reasons set forth hereinabove for claim 1, Hussain, Thompson and Santharam teach the method of claim 1, wherein the one or more tests include a stress testing of a memory to determine a maximum memory bandwidth (Santharam, para [0029-0034], The secondary installer application 124 can run diagnostics on the client device 106 to generate diagnostic data that can include, for example, a version of an operating system 166 running on the client device 106, software components installed (or not installed) on the client device 106, versions of the software components installed on the client device 106, hardware and software capabilities, hardware and software configurations, and similar information. The diagnostic data can be used to generate device state information 212 describing a state of the client device 106. Para [0035-0040]. Para [0012-0015]. Hussain, column 5, line 21-65, Upon receiving the operating constraints 730 and associated information, monitoring components 712A-D may proceed to monitor the operations of the installed package components 611A-D in order to ensure that the package components 611A-D comply with the operating constraints 730. For example, if package components 611A-D issue a request and/or attempt to perform an operation that may result in meeting or exceeding a threshold amount (e.g., percentage) of usage of processing, memory, I/O, and/or other resources, then monitoring components 712A-D may wholly or partially deny or prohibit the request or operation. Hussain, column 20, line 15 to 25, The resources may in some embodiments be offered to clients in various units related to the web service, such as an amount of storage capacity for storage, processing capability for processing, as instances, as sets of related services and the like. A virtual computing instance may, for example, comprise one or more servers with a specified computational capacity (which may be specified by indicating the type and number of CPUs, the main memory size and so on) and a specified software stack (e.g., a particular version of an operating system, which may in turn run on top of a hypervisor).). Claim 16 is rejected for the reasons set forth hereinabove for claim 1, Hussain, Thompson and Santharam teach the method of claim 1, wherein the one or more tests include a testing of a memory usability (Santharam, para [0029-0034], The secondary installer application 124 can run diagnostics on the client device 106 to generate diagnostic data that can include, for example, a version of an operating system 166 running on the client device 106, software components installed (or not installed) on the client device 106, versions of the software components installed on the client device 106, hardware and software capabilities, hardware and software configurations, and similar information. The diagnostic data can be used to generate device state information 212 describing a state of the client device 106. Para [0035-0040]. Para [0012-0015]. Hussain, column 5, line 21-65, Upon receiving the operating constraints 730 and associated information, monitoring components 712A-D may proceed to monitor the operations of the installed package components 611A-D in order to ensure that the package components 611A-D comply with the operating constraints 730. For example, if package components 611A-D issue a request and/or attempt to perform an operation that may result in meeting or exceeding a threshold amount (e.g., percentage) of usage of processing, memory, I/O, and/or other resources, then monitoring components 712A-D may wholly or partially deny or prohibit the request or operation. Hussain, column 20, line 15 to 25, The resources may in some embodiments be offered to clients in various units related to the web service, such as an amount of storage capacity for storage, processing capability for processing, as instances, as sets of related services and the like. A virtual computing instance may, for example, comprise one or more servers with a specified computational capacity (which may be specified by indicating the type and number of CPUs, the main memory size and so on) and a specified software stack (e.g., a particular version of an operating system, which may in turn run on top of a hypervisor).). Claim 17 is rejected for the reasons set forth hereinabove for claim 1, Hussain, Thompson and Santharam teach the method of claim 1, wherein the one or more tests include a testing of a graphics processing unit (GPU) compute capability (Santharam, para [0029-0034], The secondary installer application 124 can run diagnostics on the client device 106 to generate diagnostic data that can include, for example, a version of an operating system 166 running on the client device 106, software components installed (or not installed) on the client device 106, versions of the software components installed on the client device 106, hardware and software capabilities, hardware and software configurations, and similar information. The diagnostic data can be used to generate device state information 212 describing a state of the client device 106. Para [0035-0040]. Para [0012-0015]. Hussain, column 5, line 21-65, Upon receiving the operating constraints 730 and associated information, monitoring components 712A-D may proceed to monitor the operations of the installed package components 611A-D in order to ensure that the package components 611A-D comply with the operating constraints 730. For example, if package components 611A-D issue a request and/or attempt to perform an operation that may result in meeting or exceeding a threshold amount (e.g., percentage) of usage of processing, memory, I/O, and/or other resources, then monitoring components 712A-D may wholly or partially deny or prohibit the request or operation. Hussain, column 20, line 15 to 25, The resources may in some embodiments be offered to clients in various units related to the web service, such as an amount of storage capacity for storage, processing capability for processing, as instances, as sets of related services and the like. A virtual computing instance may, for example, comprise one or more servers with a specified computational capacity (which may be specified by indicating the type and number of CPUs, the main memory size and so on) and a specified software stack (e.g., a particular version of an operating system, which may in turn run on top of a hypervisor).). Claim 18 is rejected for the reasons set forth hereinabove for claim 1, Hussain, Thompson and Santharam teach the method of claim 1, wherein the one or more tests include a testing of a floating point unit (FPU) compute capability (Santharam, para [0029-0034], The secondary installer application 124 can run diagnostics on the client device 106 to generate diagnostic data that can include, for example, a version of an operating system 166 running on the client device 106, software components installed (or not installed) on the client device 106, versions of the software components installed on the client device 106, hardware and software capabilities, hardware and software configurations, and similar information. The diagnostic data can be used to generate device state information 212 describing a state of the client device 106. Para [0035-0040]. Para [0012-0015]. Hussain, column 5, line 21-65, Upon receiving the operating constraints 730 and associated information, monitoring components 712A-D may proceed to monitor the operations of the installed package components 611A-D in order to ensure that the package components 611A-D comply with the operating constraints 730. For example, if package components 611A-D issue a request and/or attempt to perform an operation that may result in meeting or exceeding a threshold amount (e.g., percentage) of usage of processing, memory, I/O, and/or other resources, then monitoring components 712A-D may wholly or partially deny or prohibit the request or operation. Hussain, column 20, line 15 to 25, The resources may in some embodiments be offered to clients in various units related to the web service, such as an amount of storage capacity for storage, processing capability for processing, as instances, as sets of related services and the like. A virtual computing instance may, for example, comprise one or more servers with a specified computational capacity (which may be specified by indicating the type and number of CPUs, the main memory size and so on) and a specified software stack (e.g., a particular version of an operating system, which may in turn run on top of a hypervisor).). Claim 19 is rejected for the reasons set forth hereinabove for claim 1, Hussain, Thompson and Santharam teach the method of claim 1, wherein the one or more tests include a testing of a digital signal processor (DSP) compute capability (Santharam, para [0029-0034], The secondary installer application 124 can run diagnostics on the client device 106 to generate diagnostic data that can include, for example, a version of an operating system 166 running on the client device 106, software components installed (or not installed) on the client device 106, versions of the software components installed on the client device 106, hardware and software capabilities, hardware and software configurations, and similar information. The diagnostic data can be used to generate device state information 212 describing a state of the client device 106. Para [0035-0040]. Para [0012-0015]. Hussain, column 5, line 21-65, Upon receiving the operating constraints 730 and associated information, monitoring components 712A-D may proceed to monitor the operations of the installed package components 611A-D in order to ensure that the package components 611A-D comply with the operating constraints 730. For example, if package components 611A-D issue a request and/or attempt to perform an operation that may result in meeting or exceeding a threshold amount (e.g., percentage) of usage of processing, memory, I/O, and/or other resources, then monitoring components 712A-D may wholly or partially deny or prohibit the request or operation. Hussain, column 20, line 15 to 25, The resources may in some embodiments be offered to clients in various units related to the web service, such as an amount of storage capacity for storage, processing capability for processing, as instances, as sets of related services and the like. A virtual computing instance may, for example, comprise one or more servers with a specified computational capacity (which may be specified by indicating the type and number of CPUs, the main memory size and so on) and a specified software stack (e.g., a particular version of an operating system, which may in turn run on top of a hypervisor).). 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 DUY KHUONG THANH NGUYEN whose telephone number is (571)270-7139. The examiner can normally be reached Monday - Friday 0800-1630. 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, Lewis Bullock can be reached at 5712723759. 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. /DUY KHUONG T NGUYEN/ Primary Examiner, Art Unit 2199
Read full office action

Prosecution Timeline

Dec 06, 2023
Application Filed
Aug 22, 2025
Non-Final Rejection — §103, §112
Nov 25, 2025
Response Filed
Feb 17, 2026
Final Rejection — §103, §112 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12596634
TESTING A MACHINE LEARNING MODEL
2y 5m to grant Granted Apr 07, 2026
Patent 12596534
Spreadsheet-Based Software Application Development
2y 5m to grant Granted Apr 07, 2026
Patent 12578935
COMPOSITION OF PATTERN-DRIVEN REACTIONS IN REAL-TIME DATAFLOW PROGRAMMING
2y 5m to grant Granted Mar 17, 2026
Patent 12578960
DISTINGUISHING PATTERN DIFFERENCES FROM NON-PATTERN DIFFERENCES
2y 5m to grant Granted Mar 17, 2026
Patent 12572333
Vehicle Electronic Control Device and Program Rewriting Method
2y 5m to grant Granted Mar 10, 2026
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

3-4
Expected OA Rounds
82%
Grant Probability
99%
With Interview (+35.2%)
2y 9m
Median Time to Grant
Moderate
PTA Risk
Based on 539 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