Prosecution Insights
Last updated: April 19, 2026
Application No. 18/065,649

SCHEDULING A SOFTWARE UPDATE ON AN INDUSTRIAL MACHINE

Non-Final OA §103§112
Filed
Dec 14, 2022
Examiner
GOORAY, MARK A
Art Unit
2199
Tech Center
2100 — Computer Architecture & Software
Assignee
International Business Machines Corporation
OA Round
1 (Non-Final)
76%
Grant Probability
Favorable
1-2
OA Rounds
3y 11m
To Grant
99%
With Interview

Examiner Intelligence

Grants 76% — above average
76%
Career Allow Rate
305 granted / 400 resolved
+21.3% vs TC avg
Strong +63% interview lift
Without
With
+63.3%
Interview Lift
resolved cases with interview
Typical timeline
3y 11m
Avg Prosecution
23 currently pending
Career history
423
Total Applications
across all art units

Statute-Specific Performance

§101
20.4%
-19.6% vs TC avg
§103
48.8%
+8.8% vs TC avg
§102
13.9%
-26.1% vs TC avg
§112
14.2%
-25.8% vs TC avg
Black line = Tech Center average estimate • Based on career data from 400 resolved cases

Office Action

§103 §112
DETAILED ACTION 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. Claims 1-20 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention. Claim 1 claims, “calculating, by the processor, using the plurality of log files, an installation time estimate to perform the software installation;”. It is unclear to the examiner how the installation time estimate to perform the software installation is calculated from information that has nothing to do with the software update. Claims 2-7 are rejected for being dependent on rejected claim 1. Claims 8-20 rejected for containing similar limitations to claim 1-7. Claim Rejections - 35 USC § 103 In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status. The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action: A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made. Claims 1-5, 7-12 and 14-19 are rejected under 35 U.S.C. 103 as being unpatentable over Zhu (US 2023/0236823 A1) and further in view of Dain (US 2013/0179877 A1) and Gibson et al. (US 2023/0168666 A1). As per claim 1, Zhu teaches the invention as claimed including, “A method for scheduling a software update installation on industrial machines in an Internet of Things (IoT) environment, comprising: receiving, by a processor, a plurality of log files and IoT data feeds related to a set of industrial machines;” Zhu teaches, an Internet of Things system includes a server and a plurality of terminals. Different services can be deployed in each terminal (0108). A server obtains service status information of the service from the terminal. The server obtains the service priority from the service status information. The server continues to obtain updates service status information from the terminal (0187- 0189). The examiner states that it would have been obvious to one of ordinary skill in the art for the terminals which the IOT services reside to be the industrial machines. This is nothing more than a design choice as the reference is configured to control operations of the transceiver for performing upgrades (0216, 0233, 0242, 0256, 0259) and would have been obvious to try. “calculating, by the processor, using the plurality of log files, an installation time estimate to perform the software installation; analyzing, by the processor, using the plurality of log files and IoT data feeds, a set of activities and an activity sequence related to a workflow execution using a machine learning technique to identify a planned time and sequence of a software update installation on an industrial machine among the set of industrial machines based on the installation time estimate, wherein the set of industrial machines are part of an integrated workflow system;” Zhu teaches, the server determines, based on information such as the subscribed service status information, an upgrade package priority and an upgrade package type and a occasion (time) for performing a software upgrade procedure of the terminal. (0109-0110). It is determined whether the service priority is higher than the upgrade package priority, the terminal stops the service and the server sends the upgrade package and starts the software upgrade (00189-0193). Also see 0197. However, Zhu does not explicitly appear to teach, “receiving, by a processor, a plurality of log files and IoT data feeds related to a set of industrial machines; calculating, by the processor, using the plurality of log files, an installation time estimate to perform the software installation; analyzing, by the processor, using the plurality of log files and IoT data feeds, a set of activities and an activity sequence related to a workflow execution using a machine learning technique to identify a planned time and sequence of a software update installation on an industrial machine among the set of industrial machines based on the installation time estimate, wherein the set of industrial machines are part of an integrated workflow system;” Dain teaches an activity tracking module that tracks the type of activity, start/stop times, resource utilization (disk, CPU, network, etc.), priority, and keeps a historical record of activity on a particular system (0031-0033). Also see 0049-0051. Dain further teaches, A scheduling model uses the history file provided by the activity tracking module to identify trends and predict system idle time. The module takes into account the code update images that are needed along with a time estimation of how long each update is expected to take and derives an update schedule for each customer environment (0033-0035). The system recommends an upgrade schedule based on their specific environment and usage. New firmware/sw updates are detected, idle time for each system is determined, and a recommended upgrade strategy that minimized the impact to production activities is made (0026). System dynamically identifies/learn free windows by trending system activity over time and making educated predictions to future free windows via code automation (0027). Also see 0028. Also see figure 7. Runtime tasks have priorities/importance that are used to generate the schedule (0029). Also see 0053. It would have been obvious to one of ordinary skill in the art before the effective filing date to modify Zhu et al. with Dain because both teach scheduling an update. Zhu teaches an update for IOT devices, while Dain teaches updating devices within a network. Therefore, both are similar devices and using the known technique of machine learning to predict free windows to perform an update on a system will provide similar results of minimizing the impact on the system in Zhu and therefore would have been obvious. Zhu and Dain do not explicitly appear to teach, “performing, by the processor, a digital twin simulation to identify a potential negative impact in the workflow execution based on a downtime of the industrial machine during the planned time of the software update installation; and proactively reconfiguring, by the processor, a resource allocation to minimize the potential negative impact.” Gibson et al. teaches, determining a downtime event (0020). A machine learned model can determine if the downtime should result in a control action based on a downtime impact alert (0021). In response to determine the impact probability of the downtime event, a control action associated with the production facility is performed. This include recommending one or more production resources. (0058). Can recommend/scheduling overtime (0059). The system can determine the impact probability of a downtime event based on the data indicative of the current production environment (0045-0046). Determining that the downtime event has 0 % impact probability of a stall of production for an entire facility. No control action is performed (0051). Control action is scaled to be proportion to the impact probability of the associated downtime event (0052). Also see 0055. It would have been obvious to one of ordinary skill in the art before the effective filing date to modify Zhu and Dain with Gibson. Zhu and Dain both teach the scheduling of an update on a system. Zhu teaches the use of priority when performing an upgrade in order to not interrupt an important service of the internet of things device (0003). Zhu further teaches stopping (downtime) a service prior to performing the update. Dain teaches, learning the optimal window (time) to perform code upgrades on multiple systems taking into account a multitude of production activities (0023). An upgrade strategy is provided that minimized the impact of the production activities (0026). Dain also teaches the use of priority to perform an update. Therefore, both Zhu and Dain teach finding a good time to perform an update which involves downtime of the system. Gibson et al. teaches determining the impact of downtime and performing a control action based in the impact. Since both Zhu and Dain can cause downtime impacting the system, Gibson et al. will allow the system to predict the impact and perform an action to mitigate the impact. This known technique will improve the impact of downtime in similar devices of Zhu and Dain and therefore the combination would have been obvious. As per claim 2, Zhu and Dain further teach, “The method of claim 1, further comprising performing, by the processor, the software installation on the industrial machine based on the planned time and sequence.” See Zhu 0193-0196. See Dain paragraph 0035. Also see figure 7. As per claim 3, Dain further teaches, “The method of claim 1, wherein the step of analyzing the set of activities and the activity sequence related to a workflow execution includes identifying how the industrial machine collaborates with the remaining industrial machines in the set of industrial machines.” A scheduling model uses the history file provided by the activity tracking module to identify trends and predict system idle time. The module takes into account the code update images that are needed along with a time estimation of how long each update is expected to take and derives an update schedule for each customer environment (0033-0035). The system recommends an upgrade schedule based on their specific environment and usage. New firmware/sw updates are detected, idle time for each system is determined, and a recommended upgrade strategy that minimized the impact to production activities is made (0026). System dynamically identifies/learn free windows by trending system activity over time and making educated predictions to future free windows via code automation (0027). Also see 0028. Also see figure 7. The upgrade can be automatically scheduled based on runtime task priority/importance (0029). Also see 0053. The illustrated embodiments provide system-wide coordination of activities based on predicted idle times, as multiple nodes in a system share resources among each other due to activities such as replication. A system-wide staggered code update schedule is applied to prevent all nodes from being upgraded at the same time, even if they have the same idle window0s (0028). As per claim 4, Dain and Gibson et al. further teach, “The method of claim 1, wherein the step of analyzing the set of activities and the activity sequence related to a workflow execution includes identifying which activities among the set of activities is performed in parallel and which activities among the set of activities are performed in sequence and an estimated time duration to perform each activity among the set of activities.” A scheduling model uses the history file provided by the activity tracking module to identify trends and predict system idle time. The module takes into account the code update images that are needed along with a time estimation of how long each update is expected to take and derives an update schedule for each customer environment (0033-0035). The system recommends an upgrade schedule based on their specific environment and usage. New firmware/sw updates are detected, idle time for each system is determined, and a recommended upgrade strategy that minimized the impact to production activities is made (0026). System dynamically identifies/learn free windows by trending system activity over time and making educated predictions to future free windows via code automation (0027). Also see 0028. Also see figure 7. The upgrade can be automatically scheduled based on runtime task priority/importance (0029). Also see 0053. The illustrated embodiments provide system-wide coordination of activities based on predicted idle times, as multiple nodes in a system share resources among each other due to activities such as replication. A system-wide staggered code update schedule is applied to prevent all nodes from being upgraded at the same time, even if they have the same idle window0s (0028). Gibson et al. teaches, the system can forecast the workflow of a production facility (0024) and distributed components can operate sequentially or in parallel (0035). As per claim 5, Dain further teaches, “The method of claim 1, wherein the step of analyzing the set of activities and the activity sequence related to a workflow execution further comprises: identifying a step of an activity related to the industrial machine that does not require computing capability; and calculating whether a time required to complete the step is sufficient to perform the software update installation based on the installation time estimate.” Dain teaches determining idle time for each system in the customer sysplex and based on the estimated time to perform the upgrade coupled with the idle time for each system, provides a recommended upgrade strategy that minimized the impact to production activities (0026). Also see 0033. As per claim 7, Dain and Zhu further teach, “The method of claim 1, further comprising proactively engaging, by the processor, the industrial machine to complete a predefined task in advance of the planned time of the software update installation.” Dain teaches, the upgrade can be automatically scheduled based on runtime task priority/importance (0029). Also see 0053. Zhu teaches, the server obtains the service priority and compares the service priority with the upgrade package priority. The server continues to obtain updated service status information from the terminal when the service priority is higher than the upgrade package priority (0188-0193). As per claims, 8-12 and 14-19, they contain similar limitations to claim 1-5 and 7 and are therefore rejected for similar reasons. Claims 6, 13 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Zhu (US 2023/0236823 A1), Dain (US 2013/0179877 A1) and Gibson et al. (US 2023/0168666 A1) as applied to claims 1, 8 and 15 above, further in view of Humphrey et al. (US2015/0310674 A1). As per claim 6, Zhu and Dain do not explicitly teach, “The method of claim 1, further comprising identifying, by the processor, a location on an industrial floor to move the industrial machine to perform the software update installation.” Humphery et al. teaches, the system includes a network, a service apparatus configured to provide a service to work equipment (0005). The service vehicle and the work vehicle may be at least partially autonomous. For instance, the vehicles may be automatically controlled or operated according to stored instructions (computer/iot device) (0018). The work service vehicle or work equipment may be routed between work locations of the system based on stored instruction and/or information related to the other components of the system (0018). A service may be provided at a service location. The service location may include tooling or materials that may be used to provide a service to the work vehicle. Vehicles are directed to one of the service locations in order for the vehicle to receive service (0024). The server may be configured to determine the service location for a scheduled service based on the information received form the components of the system (0027). Zhu teaches installing the update (0193-0196). Dain teaches installing the update (0035). Also see figure 7. It would have been obvious to one of ordinary skill in the art before the effective filing date to modify Zhu and Dain et al. with Humphery et al. All references teach a network of multiple devices that perform different services. Both Zhu and Dain teach the updating of these devices. Humphrey et al. teaches a autonomous work vehicle that needs to move to a specific location during a scheduled idle time to be serviced. Since the work vehicle of Humphery et al. is autonomous and follows instructions, the examiner interprets is to be a IOT device. Humphery teaches servicing the autonomous work vehicle at a specific service location during a predicted service window (0022 and 0024). The service may be any type of service that may be required or recommended to maintain operation of the inspected equipment (0015). Therefore, the service could include a software upgrade at taught by Zhu and Dain, since the autonomous vehicle is s a computer which is similar to a terminal of Zhu. Simple substitution of one known element for another such as the autonomous vehicle being a terminal of Zhu would lead to the predicable result of it being updated as at specific location during a specific window and would produce predictable results. Therefore, it would have been obvious to one of ordinary skill. As per claims 13 and 20, they contain similar limitation to claim 6 and are therefore rejected for similar reason. Conclusion Any inquiry concerning this communication or earlier communications from the examiner should be directed to MARK A GOORAY whose telephone number is (571)270-7805. The examiner can normally be reached Monday - Friday 10:00am - 6:00pm. 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 571-272-3759. 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. /MARK A GOORAY/ Examiner, Art Unit 2199 /LEWIS A BULLOCK JR/ Supervisory Patent Examiner, Art Unit 2199
Read full office action

Prosecution Timeline

Dec 14, 2022
Application Filed
Oct 19, 2023
Response after Non-Final Action
Feb 06, 2026
Non-Final Rejection — §103, §112 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12596627
AGENTLESS SYSTEM AND METHOD FOR DISCOVERING AND INSPECTING APPLICATIONS AND SERVICES IN COMPUTE ENVIRONMENTS
2y 5m to grant Granted Apr 07, 2026
Patent 12572444
COMPATIBILITY CHECK FOR CONTINUOUS GLUCOSE MONITORING APPLICATION
2y 5m to grant Granted Mar 10, 2026
Patent 12566587
REAL-TIME COMPUTING RESOURCE DEPLOYMENT AND INTEGRATION
2y 5m to grant Granted Mar 03, 2026
Patent 12535995
COMPUTER CODE GENERATION FROM TASK DESCRIPTIONS USING NEURAL NETWORKS
2y 5m to grant Granted Jan 27, 2026
Patent 12536091
PROGRAM ANALYSIS APPARATUS, PROGRAM ANALYSIS METHOD, AND NON-TRANSITORY COMPUTER READABLE MEDIUM STORING PROGRAM
2y 5m to grant Granted Jan 27, 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

1-2
Expected OA Rounds
76%
Grant Probability
99%
With Interview (+63.3%)
3y 11m
Median Time to Grant
Low
PTA Risk
Based on 400 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