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