US-12619208-B2 - Software compatibility prediction and remediation for industrial systems
Abstract
Systems and methods for software compatibility prediction and remediation for industrial systems. One system includes an electronic processor configured to receive a software inventory for an industrial system and compatibility data associated with each piece of software included in the software inventory. The electronic processor is also configured to generate, via a compatibility engine, a compatibility mapping based on the software inventory and the compatibility data. The electronic processor is also configured to determine, based on the compatibility mapping, a set of compatibility statuses associated with the industrial system. The electronic processor is also configured to generate a graphical user interface (GUI) for display, the GUI including the software inventory, the set of compatibility statuses, and an interactive graphical representation of the compatibility mapping, and, in response to receiving a user interaction with the GUI, dynamically update the GUI based on the user interaction.
Inventors
- Kerwen Changyuan Zhang
- Davis Biao Ma
- Courtney D. PICOU
- Angela Hexiao LENG
- Leon Tengfei LIANG
- July Lei ZHU
Assignees
- ROCKWELL AUTOMATION TECHNOLOGIES, INC.
Dates
- Publication Date
- 20260505
- Application Date
- 20230320
Claims (20)
- 1 . A system for software compatibility prediction and remediation for industrial systems, the system comprising: an electronic processor configured to: receive a software inventory for an industrial system, the software inventory including one or more pieces of software associated with the industrial system; receive compatibility data associated with each piece of software included in the software inventory; generate, via a compatibility engine, a compatibility mapping based on the software inventory and the compatibility data; determine, based on the compatibility mapping, a set of compatibility statuses associated with the industrial system; generate a graphical user interface (GUI) for display, the GUI including the software inventory, the set of compatibility statuses, and an interactive graphical representation of the compatibility mapping; and in response to receiving a user interaction with the GUI, determine a software recommendation for at least one piece of software based on the set of compatibility statuses and an update constraint for a first piece of software, the update constraint preventing the first piece of software from being updated, and dynamically update the GUI based on the user interaction.
- 2 . The system of claim 1 , wherein the interactive graphical representation includes a list of available versions for each piece of software associated with the industrial system.
- 3 . The system of claim 1 , wherein the user interaction with the GUI includes a selection, from the interactive graphical representation, of a new version for a first piece of software included in the software inventory, the new version different than an installed version of the first piece of software.
- 4 . The system of claim 3 , wherein the electronic processor is configured to dynamically update the GUI by modifying the interactive graphical representation based on the new version.
- 5 . The system of claim 4 , wherein the electronic processor is configured to modify the interactive graphical representation to indicate a first version grouping and a second version grouping, wherein the first version grouping includes software versions that are compatible with the new version and the second version grouping includes software versions that are incompatible with the new version.
- 6 . The system of claim 5 , wherein the electronic processor is configured to modify the interactive graphical representation to indicate the first version grouping and the second version grouping by altering a display parameter of each software version such that the first version grouping is visually distinguished from the second version grouping in the interactive graphical representation.
- 7 . The system of claim 1 , wherein the software recommendation includes a first software recommendation representing a minimum upgrade and a second software recommendation representing a maximum upgrade.
- 8 . The system of claim 1 , wherein the user interaction includes activating the update constraint for the first piece of software.
- 9 . The system of claim 8 , wherein the electronic processor is configured to determine the software recommendation based on the activation of the update constraint.
- 10 . The system of claim 8 , wherein the electronic processor is configured to dynamically update the GUI based on the activation of the update constraint for the first piece of software.
- 11 . The system of claim 1 , wherein the industrial system includes a plurality of industrial subsystems, wherein a first industrial subsystem of the plurality of industrial subsystems is associated with a first geographical location and a second industrial subsystem of the plurality of industrial subsystems is associated with a second geographical location different from the first geographical location.
- 12 . The system of claim 1 , wherein the electronic processor is further configured to: determine, based on the set of compatibility status, a compatibility fault associated with at least two pieces of software executing within the industrial system; and generate and provide a warning for display via the GUI, the warning including an indication of the compatibility fault.
- 13 . The system of claim 1 , wherein the update constraint prevents a manual update and an automatic update of the first piece of software.
- 14 . A method for software compatibility prediction and remediation for industrial systems, the system comprising: receiving, with an electronic processor, a software inventory for an industrial system, the software inventory including one or more pieces of software associated with the industrial system; receiving, with the electronic processor, compatibility data associated with each piece of software included in the software inventory; generating, with the electronic processor, via a compatibility engine, a compatibility mapping based on the software inventory and the compatibility data; determining, with the electronic processor, based on the compatibility mapping, a set of compatibility statuses associated with the industrial system; generating, with the electronic processor, a graphical user interface (GUI) for display, the GUI including the software inventory, the set of compatibility statuses, and an interactive graphical representation of the compatibility mapping; receiving, with the electronic processor, an activation of an update constraint for a first piece of software, the update constraint preventing the first piece of software from being updated; determining, with the electronic processor, a software recommendation for at least one piece of software based on the set of compatibility statuses and the update constraint; and dynamically updating, with the electronic processor, the GUI to include the software recommendation.
- 15 . The method of claim 14 , further comprising: performing a software upgrade to at least one piece of software.
- 16 . The method of claim 15 , wherein performing the software upgrade includes receiving, via the GUI, an upgrade selection associated with the software recommendation, wherein the software upgrade is based on the software recommendation.
- 17 . The method of claim 14 , wherein determining the compatibility mapping includes determining a custom compatibility mapping based on the industrial system.
- 18 . A non-transitory, computer-readable medium storing instructions that, when executed by an electronic processor, perform a set of functions, the set of functions comprising: receiving a software inventory for an industrial system, the software inventory including one or more pieces of software installed within the industrial system; receiving compatibility data associated with each piece of software included in the software inventory; generating, via a compatibility engine, a compatibility mapping based on the software inventory and the compatibility data; determining, based on the compatibility mapping, a set of compatibility statuses associated with the industrial system; determining, based on the set of compatibility statuses and an update constraint for a first piece of software, a software recommendation for the industrial system, wherein the update constraint prevents the first piece of software from being updated; generating a graphical user interface (GUI) for display, the GUI including the software inventory, the set of compatibility statuses, an interactive graphical representation of the compatibility mapping, and the software recommendation; and in response to receiving a user interaction with the GUI, performing, based at least in part on the software recommendation, a software update associated with the industrial system.
- 19 . The computer readable medium of claim 18 , wherein the set of functions further includes: receiving an activation of the update constraint for the first piece of software.
- 20 . The computer readable medium of claim 18 , wherein the set of functions further includes: determining, based on the set of compatibility status, a compatibility fault associated with at least two pieces of software associated with the industrial system; and generating and providing a warning for display via the GUI, the warning including an indication of the compatibility fault.
Description
SUMMARY The following presents a simplified summary of the disclosed technology herein in order to provide a basic understanding of some aspects of the disclosed technology. This summary is not an extensive overview of the disclosed technology. It is intended neither to identify key or critical elements of the disclosed technology nor to delineate the scope of the disclosed technology. Its sole purpose is to present some concepts of the disclosed technology in a simplified form as a prelude to the more detailed description that is presented later. The technology disclosed herein relates generally to industrial systems, and, more particularly, to software compatibility prediction and remediation for industrial systems. Industrial systems (including one or more industrial devices) operate according to one or more pieces of software. The compatibility of the software executing within an industrial system can impact the performance and functionality of the industrial system. For instance, when software executed within an industrial system is incompatible, the industrial system may not perform according to specifications, may not be able to execute an industrial task, etc. Currently, when a user wants to check software compatibility for their industrial system, the user generally has to search for each piece of software individually and manually within a software inventory. Such software inventories are generally large in size and complex. For instance, the software inventory often includes software not even implemented within the user's industrial system, includes multiple versions or variations of a piece of software, etc. Additionally, while the software inventory may provide compatibility information for various pieces of software, a user may not be able to determine whether one piece of software is compatible with another piece of software based on the compatibility information provided within the software inventory. For instance, the user may not be able to determine compatibility until actually implementing the software on the user's industrial system. Such a trial-and-error approach may lead to industrial system downtime and, in some instances, damage to the industrial system. Further, the software inventory may not take into account user-specific constraints associated with a user's industrial system, industry, etc. For instance, when the user is operating within the pharmaceutical industry (or another highly regulated industry), the user's industrial system may be constrained by a number of regulatory constraints (e.g., a regulatory entity's approval, etc.). As one non-limiting example, when a user wants to update a first piece of software from a first version to a second version and the user's industrial system also implements a first version of a second piece of software, the software inventory may indicate that the second version of the first piece of software is not compatible with the first version of the second piece software but is compatible with the second version of the second piece of software. However, the user may be constrained to the first version of the second piece of software, such as, e.g., when a regulatory agency approved a product manufactured using the first version of the second piece of software. As such, current approaches are prone to human-error, expensive and time-consuming trial and error, industrial system downtime or damage, etc. Some existing solutions include digital compatibility tools that check software compatibility, such as, e.g., web-based compatibility tools. However, these existing solutions still fail to solve the technical problems outlined above and, as such, may technical challenges remain with respect to software compatibility within the context of industrially systems and the field of industrial automation. For instance, existing compatibility tools still require manual entry of implemented (or on-premises) software in order to check compatibility. Additionally, existing compatibility tools do not support enterprise level compatibility checks (e.g., compatibility checks across multiple industrial systems, industrial sites, industrial processes, or geographical locations, etc.). For instance, when using existing compatibility tools, software compatibility is checked on an interactive basis (e.g., one piece of software at a time). Existing compatibility tools present information in a one-to-many manner. Thus, to collect meaningful information for a large system, a user iterates through many combinations. Existing compatibility tools do not present compatibility information in context of user's installed base or industrial system. Existing compatibility tools do not provide proper analysis of a user's actual implemented industrial system. Existing compatibility tools do not support or enable consideration of constrains (e.g., fixed constrains or variable constraints). To solve these and other technical problems, the technology disclosed herein include method