WO2021188821A1 - Recommendation of modifications in computing devices - Google Patents

Recommendation of modifications in computing devices Download PDF

Info

Publication number
WO2021188821A1
WO2021188821A1 PCT/US2021/023007 US2021023007W WO2021188821A1 WO 2021188821 A1 WO2021188821 A1 WO 2021188821A1 US 2021023007 W US2021023007 W US 2021023007W WO 2021188821 A1 WO2021188821 A1 WO 2021188821A1
Authority
WO
WIPO (PCT)
Prior art keywords
computing device
utilization
components
component
dynamic
Prior art date
Application number
PCT/US2021/023007
Other languages
French (fr)
Inventor
Narendra Kumar CHINCHOLIKAR
Manohar Lal KALWANI
Shivam SIDHARTH
Sandip BRAHMACHARY
Original Assignee
Hewlett-Packard Development Company, L.P.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Publication of WO2021188821A1 publication Critical patent/WO2021188821A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/04Arrangements for maintaining operational condition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/02Arrangements for optimising operational condition

Definitions

  • Computing devices include a variety of components to provide various functionalities to users.
  • a computing device may utilize components, such as applications, firmware and hardware to perform different functions and offer variety of capabilities to their users.
  • a computing device may include an audio decoder to decode audio files and a media player application to render and play the audio files.
  • the computing device may include a word processing application to facilitate creation, editing and presentation of documents.
  • Figure 1 illustrates a system for dynamically recommending upgrades to a computing device, in accordance with an example of the present subject matter
  • Figure 2 illustrates the system for dynamically recommending modifications to a computing device, in accordance with an example of the present subject matter
  • Figure 3 illustrates a method for dynamically recommending modifications to a computing device, in accordance with an example of the present subject matter
  • Figure 4 a system environment implementing a non-transitory computer-readable medium for dynamically recommending upgrades to a computing device, in accordance with an example of the present subject matter.
  • various applications of a computing device utilize different hardware of the computing device to provide different capabilities and functionalities to the computing device.
  • the computing device may include multiple applications and each of the applications may have application data that may be stored on a disk drive of the computing device.
  • the application data may be processed by a processor and while the application data is being processed, a random access memory (RAM) of the computing device may be utilized to facilitate faster access of the application data to the processor.
  • RAM random access memory
  • the available methods of upgrades are generally rule based and are carried out after predetermined time period which do not account for the usage and functionality of the components of the computing device.
  • the dynamic modifications to components of the computing device are identified based on determination of utilization of components of the computing device, determination of errors occurring in different components of the computing device, and dynamically analyzing them through a machine learning model trained through utilization and errors of multiple other computing devices.
  • Examples of the components of the computing device may include, but are not limited to, applications, firmware, and hardware of the computing device.
  • the utilization of components may be measured in terms of utilization parameters and the errors may be determined based on various notifications generated on the computing device.
  • the utilization parameters and the error notifications may be analyzed by utilizing a dynamic analysis model, where the dynamic analysis model is trained based on error notifications, resolutions of the error notifications, utilization parameters, and failures associated with components of multiple computing devices. Based on the analysis of the utilization parameters and the error notifications, modification of components of the computing device may be recommended.
  • the modifications of the components are recommended based on the analysis of the error notifications and utilization of the components using the trained dynamic analysis model, the recommended modifications facilitate provisioning of dynamic modifications to components of the computing device.
  • error notifications associated with a computing device from amongst multiple computing devices may be identified.
  • an error notification may be indicative of an operational fault associated with a component of the computing device.
  • the error notifications may then be analyzed through a dynamic error analysis model, where the dynamic error analysis model is trained based on error notifications and resolutions of the error notifications associated with components of the multiple computing devices. Based on the analysis, an upgrade of components of the computing device may be recommended.
  • utilization parameters associated with a computing device from amongst multiple computing devices may be analyzed. In said example, a utilization parameters indicates extent of use of a component of the computing device.
  • the utilization parameters may then be analyzed through a dynamic utilization prediction model, where the dynamic utilization prediction model is trained based on utilization parameters and failures associated with components of the multiple computing devices. Based on the analysis of the utilization parameters associated with the computing device, failure of components of the computing device may be predicted and accordingly, an upgrade for the components is recommended.
  • Figure 1 illustrates a system 100 for dynamically recommending upgrades to a computing device, in accordance with an example of the present subject matter.
  • the system 100 may dynamically recommend modifications to the computing device based on utilization parameters associated with the computing device, where a utilization parameter is indicative of extent of use of a component of the computing device.
  • examples of components may include, but are not limited to, various applications running on the computing device, firmware of the computing device, and hardware of the computing device.
  • examples of hardware of the computing device may include, but is not limited to, a processor, a storage drive, a battery, and a Random Access Memory (RAM).
  • the system 100 may include a communication engine 102 that may determine the utilization parameters associated with the computing device, where the computing device may be one of multiple computing devices in communication with the system 100.
  • the system 100 may further include an analysis engine 104 coupled to the communication engine 102 to analyze the utilization parameters through a dynamic utilization prediction model.
  • the dynamic utilization prediction model is a machine learning model that is trained based on utilization parameters and failures associated with components of the multiple computing devices that are in in communication with the system 100.
  • the system 100 may further include a prediction engine 106 coupled to the analysis engine 104, where the prediction engine 106 may utilize the dynamic utilization prediction model to predict failure of components of the computing device based on the analysis of the utilization parameters associated with the computing device.
  • system 100 may also include a recommendation engine 108 coupled to the prediction engine 106, where the recommendation engine 108 may recommend an upgrade to the components of the computing device.
  • the prediction of the failure of the components facilitates identification and upgradation of the that are vulnerable to failure, thereby avoiding malfunctioning of the computing device and possible failure of the entire computing device.
  • Figure 2 illustrates the system 100 for dynamically recommending modifications to a computing device, in accordance with another example of the present subject matter.
  • system 10 may include, but are not limited to, a mainframe server, a computer hardware server, a blade server, and a virtual server.
  • the system 100 may be communicatively coupled with multiple computing devices 202-1 , 202-2, ..., 202-n.
  • the multiple computing devices 202-1 , 202-2, ..., 202-n have been collectively referred to as the computing devices 202, hereinafter.
  • Examples of the multiple computing devices 202 may include, but are not limited to, laptop, desktop, smartphone, Personal digital assistant (PDA), and tablet.
  • the system 100 may be communicatively coupled to the multiple computing devices 202 via a network 204.
  • the network 204 may be a single network or a combination of multiple networks and may use a variety of different communication protocols.
  • the network 204 may be a wireless or a wired network, or a combination thereof. Examples of such individual networks 204 include, but are not limited to, Global System for Mobile Communication (GSM) network, Universal Mobile Telecommunications System (UMTS) network, Personal Communications Service (PCS) network, Time Division Multiple Access (TDMA) network, Code Division Multiple Access (CDMA) network, Next Generation Network (NON), Public Switched Telephone Network (PSTN).
  • GSM Global System for Mobile Communication
  • UMTS Universal Mobile Telecommunications System
  • PCS Personal Communications Service
  • TDMA Time Division Multiple Access
  • CDMA Code Division Multiple Access
  • NON Next Generation Network
  • PSTN Public Switched Telephone Network
  • the network 204 may include various network entities, such as gateways, routers; however, such entities have been omitted from the present description for the sake of brevity.
  • the system 100 may include a processor 206 and a memory 208 coupled to the processor 206.
  • processor(s) may be provided through the use of dedicated hardware as well as hardware capable of executing instructions.
  • the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared.
  • explicit use of the term “processor” would not be construed to refer exclusively to hardware capable of executing instructions, and may implicitly include, without limitation, digital signal processor (DSP) hardware, network processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA).
  • DSP digital signal processor
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • the memory 208 may include any computer-readable medium including, for example, volatile memory (e.g., RAM), and/or non-volatile memory (e.g., ROM, EPROM, flash memory, etc.).
  • volatile memory e.g., RAM
  • non-volatile memory e.g., ROM, EPROM, flash memory, etc.
  • the system 100 may also include engine(s) 210, which may include the communication engine 102, the analysis engine 104, the prediction engine 106, and the recommendation engine 108.
  • engine(s) 210 may include the communication engine 102, the analysis engine 104, the prediction engine 106, and the recommendation engine 108.
  • the engine(s) 210 may be implemented as a combination of hardware and firmware.
  • such combinations of hardware and firmware may be implemented in several different ways.
  • the firmware of the engine may be processor executable instructions stored on a non-transitory machine-readable storage medium and the hardware for the engine may include a processing resource (for example, implemented as either a single processor or a combination of multiple processors), to execute such instructions.
  • the machine-readable storage medium may store instructions that, when executed by the processing resource, implement the functionalities of the engine.
  • the system 100 may include the machine- readable storage medium for storing the instructions and the processing resource to execute the instructions.
  • machine-readable storage medium may be located within the system 100. However, in other examples, the machine-readable storage medium may be located at a different location but accessible to system 100 and the processor 206.
  • the system 100 may further include data 212, that serves, amongst other things, as a repository for storing data that may be fetched, processed, received, or generated by the engine(s) 210.
  • the data 212 may include communication data 214, analysis data 216, prediction data 218, and recommendation data 220. In an example, the data 212 may be stored in the memory 208.
  • the system 100 may recommend modifications to a computing device from amongst the multiple computing devices 202 based on utilization of the computing device.
  • the communication engine 102 may determine the utilization parameters associated with the computing device, where the utilization parameter may be indicative of extent of use of a component of the computing device.
  • the communication engine 102 may receive the utilization parameters associated with the computing device over the network 204.
  • the utilization parameters associated with the computing device may be determined by a utilization monitor of the computing device.
  • the utilization monitor may be an application installed on the computing device.
  • the utilization monitor may dynamically monitor an extent of utilization of the components of the computing device and may regularly transmit the same to the system 100 over the network 204.
  • the utilization monitor may record the utilization parameters associated with various components of the computing device. Examples of various utilization parameters associated with the various components include, but are not limited to, total storage space, free storage space, type, model, and encryption state associated with storage drives; name, number of cores, clock speed, utilization percentage, temperature and cache size of processors; capacity, cycle count, charge rate, discharge rate, temperature, and test results associated with batteries; and subscription and version information associated with applications installed on the computing device.
  • the utilization parameters associated with the computing device may then be stored in the communication data 214.
  • the analysis engine 104 may access the communication data 214 and access the utilization parameters stored therein.
  • the analysis engine 104 may analyze the utilization parameters through a dynamic utilization prediction model, where the analysis of the utilization parameters associated with the computing device may facilitate determination of health of components of the computing device.
  • the dynamic utilization prediction model may be a machine learning model created and trained based on utilization parameters and failures associated with components of the multiple computing devices 202.
  • the dynamic utilization prediction model may be created and trained in a manner similar to various machine learning models which include, but are not limited to, Decision Tree model, XGBoost model, Neural Network model, Logistic Regression model, Gaussian Naive Bayes (GNB) model, Random Forest model, Support Vector Machines (SVM) model, K-Nearest Neighbors (KNN) model, Long short-term memory (LSTM) model, and a combination thereof.
  • the dynamic utilization prediction model may be created and trained either on the system 100 or on another server communicatively coupled to the system 100.
  • the dynamic utilization prediction model is trained on the system 100.
  • information indicating various system failures experienced on the multiple computing devices 202 may also be received by the system 100.
  • utilization parameters associated with the components of the multiple computing devices during the various system failures may also be received by the system 100.
  • the utilization parameters associated with the components of the multiple computing devices 202 may be received from the multiple computing devices 202 in a manner similar to the reception of utilization parameters from the computing device.
  • the utilization parameters associated with the multiple computing devices 202 may also be similar to the utilization parameters associated with the computing device, for example total storage space, free storage space, type, model, and encryption state associated with storage drives; name, number of cores, clock speed, utilization percentage, temperature and cache size of processors; capacity, cycle count, charge rate, discharge rate, temperature, and test results associated with batteries; and subscription and version information associated with applications installed.
  • the information indicating the various system failures and the utilization parameters associated with the multiple computing devices may then be stored in a mapped relation.
  • the mapped relation may be analyzed using modelling techniques used by the various machine learning models to create the dynamic utilization prediction model.
  • the dynamic utilization prediction model may be created and trained based on the information received from computing devices having similar configurations with respect to the components assembled thereon. For instance, in an example, the dynamic utilization prediction model may be created and trained based on the information received from the computing devices having processors of similar processing capabilities. In another example, the dynamic utilization prediction model may be created and trained based on the information received from the computing devices having similar storage capabilities with respect to RAM and other storage drives.
  • the examples described above describes the creation and training of the dynamic utilization prediction model based on the information received from the computing devices having similar processing capabilities and storage capabilities, the creation and training of the dynamic utilization prediction model is not limited to such computing devices and may include computing devices having similarities with respect to other components included therein. Accordingly, the dynamic utilization prediction model may cater to computing devices having diverse configurations.
  • the dynamic utilization prediction model may further be trained based on reception and analysis of information indicating any new system failures and the data indicating the extent of the usage of the components of the multiple computing devices during the new system failures.
  • the prediction engine 106 may predict failure of the components of the computing device.
  • the prediction engine 106 may analyze the utilization parameters associated with the computing device regularly and accordingly, may predict the failure of the components of the computing device based on an average utilization of components of the computing device.
  • the failure of the components of the computing device may be predicted based on comparison of the health of the components of the computing device with health of the components of the multiple computing devices 202 through the dynamic utilization prediction model.
  • the creation and training of the dynamic utilization prediction model may comprise reception of information indicating the blue screen of death (BSOD) experienced on the multiple computing devices 202 at different instances and in different conditions.
  • BSOD blue screen of death
  • data indicating the utilization of components such as RAM, processor, and applications running on the multiple computing devices, when the multiple computing devices 202 experienced BSOD, may also be received.
  • the information indicating the BSODs along with the utilization of components may then be stored in a mapped relation.
  • the mapped relation may then be analyzed using modelling techniques used by the various machine learning models to create the dynamic utilization prediction model.
  • the dynamic utilization prediction model may then be used to predict the occurrence of BSOD based on the utilization of the components of the computing device.
  • the recommendation engine 108 may recommend upgrades of the components of the computing device.
  • the recommendation engine 108 may provide automatic upgrades to the components of the computing device. For instance, when the components to be upgraded are either applications installed on the computing device or firmware associated with the computing device, the upgrades may be automatically pushed to the computing device. In another instance, when the components to be upgraded are hardware components, an order of a new hardware component may be generated and sent to a vendor. Accordingly, the components of the computing device may be upgraded.
  • the system 100 may recommend modifications to the computing device from amongst the multiple computing devices 202 based on determination of errors occurring in the computing device. That is, the communication engine may identify error notifications associated with the computing device, where an error notification is indicative of an operational fault associated with a component of the computing device. In an example, the communication engine 102 may receive the error notifications associated with the computing device over the network 204.
  • the error notifications associated with the computing device may be identified by a notification monitor of the computing device.
  • the notification monitor may be an application installed on the computing device.
  • the notification monitor may dynamically monitor generation of any error notifications on the computing device and may regularly transmit the same to the system 100 over the network 204.
  • Examples of error notifications recorded by the notification monitor may include, but are not limited to, driver crash notifications, boot failure notifications, application failure notifications, notification indicating thermal state of the components of the computing system, and notifications indicating identification of malicious files on the computing device.
  • the error notifications associated with the computing device may then be stored in the communication data 214.
  • the analysis engine 104 may then access the communication data 214 and access the error notifications stored therein.
  • the analysis engine 104 may analyze the error notifications through a dynamic error analysis model, where the analysis of the error notifications associated with the computing device may facilitate determination of health of components of the computing device.
  • the dynamic error analysis model may be a machine learning model created and trained based on the error notifications and resolutions of the error notifications associated with components of the multiple computing devices 202. Similar to the dynamic utilization prediction model, the dynamic error analysis model may also be a machine learning model trained in a manner similar to the various machine learning models including, but not limited to, Decision Tree model, XGBoost model, Neural Network model, Logistic Regression model, GNB model, random forest model, SVM model, KNN model, LSTM model, and a combination thereof. [00050] The dynamic error analysis model may be created and trained either on the system 100 or on another server communicatively coupled to the system 100.
  • the dynamic error analysis model is created and trained on the system 100. Accordingly, information including error notifications associated with the multiple computing devices 202 may be received on the system 100. Along with the information including error notifications, information indicating resolutions to the error notifications associated with the components of the multiple computing devices 202 may also be received on the system 100. In an example, the error notifications associated with the components of the multiple computing devices 202 may be received from the multiple computing devices 202 in a manner similar to the reception of error notifications from the computing device. Further, in said example, the error notifications associated with the multiple computing devices 202 may also be similar to the error notifications associated with the computing device.
  • the information indicating the resolution of the error notifications associated with the components of the multiple computing devices 202 may include the modifications that were made to the components of the multiple computing devices 202 to resolve the error notifications received thereon. That is, the information indicating the resolutions to the error notifications associated with the components of the multiple computing devices 202 may include the modifications made to various applications installed on the multiple computing devices 202, firmware of the multiple computing devices 202, and hardware of the multiple computing devices 202.
  • the information including the error notifications along with their corresponding resolutions may then be stored in a mapped relation.
  • the mapped relation may then be analyzed using modelling techniques used by the various machine learning models to create the dynamic error analysis model. Further, the dynamic error analysis model may be trained based on reception and analysis of information indicating any new error notifications and their corresponding resolutions.
  • the recommendation engine 108 may recommend upgrades of the components of the computing device.
  • the system 100 may recommend modifications to the computing device from amongst the multiple computing devices 202 based on analysis of the error notifications and the utilization parameters associated with the computing device.
  • the communication engine 102 may receive the utilization parameters and error notifications associated with the computing device over the network 204. The utilization parameters and the error notifications associated with the computing device may then be stored in the communication data 214.
  • the analysis engine 104 may access the communication data 214 and access the utilization parameters and error notifications stored therein.
  • the analysis engine 104 may analyze the error notifications and the utilization parameters through a dynamic analysis model, where the analysis of the utilization parameters and the error notifications associated with the computing device may facilitate determination of health of components of the computing device.
  • the dynamic analysis model may be machine learning model trained based on the error notifications, resolutions of the error notifications, utilization parameters, and failures associated with components of the multiple computing devices 202. Similar to the dynamic error analysis model, the dynamic analysis model may also be trained in a manner similar to the various machine learning models including, but not limited to, Decision Tree model, XGBoost model, Neural Network model, Logistic Regression model, GNB model, random forest model, SVM model, KNN model, LSTM model, and a combination thereof.
  • the dynamic analysis model may be created and trained either on the system 100 or on another server communicatively coupled to the system 100.
  • information including error notifications and the utilization parameters associated with the computing device may be received.
  • information indicating resolutions to the error notifications and failures associated with the components of the multiple computing devices 202 may also be received.
  • the information including the error notifications along with their corresponding resolutions and the utilization parameters along with the failures associated therewith may then be stored in a mapped relations.
  • the mapped relations may then be analyzed using the modelling techniques used by the various machine learning models to create the dynamic analysis model.
  • the dynamic analysis model may be trained based on reception and analysis of information indicating any new error notifications, resolutions corresponding to the new error notifications, the utilization parameters associated with the multiple computing devices, and the failures associated with the components of the multiple computing devices 202.
  • the recommendation engine 108 may recommend modifications to components of the computing device.
  • the dynamic analysis model may be created and trained on the system 100. Accordingly, the system 100 may receive error notifications indicating boot up time of the multiple computing devices 202. Along with the slow booting time associated with the multiple computing devices 202, the system 100 may also receive various modifications made to the multiple computing devices 202 to speed up the booting of the computing devices 202. Examples of the modifications may include, but are not limited to, increasing size of the RAM of the multiple computing devices 202, defragmentation of various storage devices coupled to the multiple computing devices 202, upgradation of the various device drivers installed on the multiple computing devices 202, and replacing the various storage devices with storage devices having faster access speeds. Along with the modifications, the system 100 may also receive utilization parameters associated with the multiple computing devices.
  • the system may receive utilization parameters of the RAM, the storage devices, and the device drivers associated with the multiple computing devices.
  • the utilization parameters associated with the multiple computing devices 202 received by the system 100 may have been identified at the instance when the error notification indicating slow bootup was received on the multiple computing devices 202.
  • the above-described information may then be stored in a mapped relation and may be analyzed using modelling techniques used by the various machine learning models to create the dynamic analysis model.
  • the dynamic analysis model may also determine utilization parameters associated with the computing device.
  • the error notification along with the utilization parameters may then be analyzed using the dynamic analysis model, and accordingly an upgrade for components of the computing device is recommended.
  • the analysis engine 104 may also receive error notifications indicating the underutilization of components of the computing device. That is, the utilization monitor installed on the computing device may identify an extent of utilization of the components of the computing system to identify any components that may have average utilization below a threshold. Accordingly, the recommendation engine 108 may recommend the modifications to underutilized components, where the modifications may include downgrading of the underutilized components.
  • the utilization monitor may monitor the extent of utilization of a graphic processor coupled to a computing device.
  • the utilization monitor may determine the utilization of the graphic processor by various application installed on the computing device over a period of time. If the utilization of the graphics processor is identified to be below a threshold, the utilization monitor may generate an error notification and transmit the error notification to system 100 for analysis through the dynamic analysis model. Along with the error notification, the utilization monitor may also send information associated with various applications running on the computing device. The error notification along with the information associated with various applications running on the computing device may then be analyzed using the dynamic analysis model. Accordingly, the recommendation engine 108 may recommend the modifications to the graphic processor, where the modifications may include downgrading of the graphic processor.
  • Figure 3 illustrates a method 300 for dynamically recommending modifications to a computing device, in accordance with examples of the present subject matter.
  • the method 300 may be implemented in a variety of electronic pens, but for the ease of explanation, the description of the method 300 is provided in reference to the above-described system 100.
  • the order in which the method 300 is described is not intended to be construed as a limitation, and any number of the described method blocks may be combined in any order to implement the method 300, or an alternative method.
  • blocks of the method 300 may be performed in the system 100.
  • the blocks of the methods 300 may be executed based on instructions stored in a non-transitory computer- readable medium, as will be readily understood.
  • the non-transitory computer-readable medium may include, for example, digital memories, magnetic storage media, such as magnetic disks and magnetic tapes, hard drives, or optically readable digital data storage media.
  • utilization parameters and error notifications associated with a computing device from amongst a plurality of computing devices may be determined, where a utilization parameter is indicative of extent of use of a component of the computing device and an error notification is indicative of an operational fault associated with the component of the computing device.
  • the utilization parameters and error notifications may be determined by a communication engine 102 of the system 100.
  • the communication engine 102 may receive the utilization parameters and the error notifications from the computing device over a network, such as network 222.
  • the utilization parameters and the error notifications may be analyzed through a dynamic analysis model, where the dynamic analysis model is created based on error notifications, resolutions of the error notifications, utilization parameters, and failures associated with components of multiple computing devices.
  • the utilization parameters and the error notifications may be analyzed by an analysis engine 104 of the system 100.
  • modifications to components of the computing device is recommended.
  • the modifications may include upgrade and downgrade of the components of the computing device.
  • the modifications to the components of the computing device may be recommended by a recommendation engine 108 of the system 100.
  • Figure 4 illustrates a system environment 400 implementing a non-transitory computer-readable medium 402 for dynamically recommending upgrades to a computing device, in accordance with an example of the present subject matter.
  • the system environment 400 may be a system, such as the system 100.
  • the system environment 400 includes a processing resource 404 communicatively coupled to the non-transitory computer-readable medium 402 through a communication link 406.
  • the processing resource 404 fetches and executes computer-readable instructions from the non-transitory computer-readable medium 402.
  • the non-transitory computer-readable medium 402 can be, for example, an internal memory device or an external memory device.
  • the communication link 406 may be a direct communication link, such as any memory read/write interface.
  • the communication link 406 may be an indirect communication link, such as a network interface.
  • the processing resource 404 can access the non-transitory computer-readable medium 402 through a network 408.
  • the network 408 may be a single network or a combination of multiple networks and may use a variety of different communication protocols.
  • the processing resource 404 and the non-transitory computer- readable medium 402 may also be communicatively coupled to data source(s) 410.
  • the data source(s) 410 may be used to store data, such as error notifications associated with a computing device from amongst multiple computing devices, in an example.
  • the non-transitory computer-readable medium 402 includes a set of computer-readable instructions for dynamically recommending upgrades to the computing device from amongst the multiple computing devices.
  • the set of computer-readable instructions can be accessed by the processing resource 404 through the communication link 406 and subsequently executed to authorize the access to the computing system 200.
  • the non-transitory computer-readable medium 402 may include communication instructions 412.
  • the communication instructions 412 may, in one example, be a code executable to identify error notifications associated with the computing device.
  • the non-transitory computer-readable medium 402 may further include analysis instructions 414.
  • the analysis instructions 414 may, in one example, be a code executable to analyze the error notifications associated with the computing device.
  • the non-transitory computer-readable medium 402 may further include recommendation instructions 416.
  • the recommendation instructions 416 may, in one example, be a code executable to recommend upgrades for at least one component of the computing device.
  • the communication instructions 412 may identify the error notifications associated with the computing device.
  • An error notification may be indicative of an operational fault associated with a component of the computing device.
  • the analysis instructions 414 may analyze the error notifications through a dynamic error analysis model, where the dynamic error analysis model is trained based on error notifications and resolutions of the error notifications associated with components of the plurality of the computing devices.
  • the recommendation instructions 416 may recommend an upgrade for at least one component of the computing device.

Abstract

Techniques for dynamically recommending modifications to a computing device are described. In an example, various parameters associated with components of the computing device are identified and analyzed. Based on analysis of the various parameters associated with the components of the computing device with various parameters of other computing devices, modifications of components of the computing device are recommended.

Description

RECOMMENDATION OF MODIFICATIONS IN COMPUTING DEVICES
BACKGROUND
[0001] Computing devices include a variety of components to provide various functionalities to users. For instance, a computing device may utilize components, such as applications, firmware and hardware to perform different functions and offer variety of capabilities to their users.
[0002] In an example, a computing device may include an audio decoder to decode audio files and a media player application to render and play the audio files. Similarly, the computing device may include a word processing application to facilitate creation, editing and presentation of documents.
BRIEF DESCRIPTION OF DRAWINGS [0003] Figure 1 illustrates a system for dynamically recommending upgrades to a computing device, in accordance with an example of the present subject matter,
[0004] Figure 2 illustrates the system for dynamically recommending modifications to a computing device, in accordance with an example of the present subject matter,
[0005] Figure 3 illustrates a method for dynamically recommending modifications to a computing device, in accordance with an example of the present subject matter, and
[0006] Figure 4 a system environment implementing a non-transitory computer-readable medium for dynamically recommending upgrades to a computing device, in accordance with an example of the present subject matter.
DETAILED DESCRIPTION
[0007] Generally, various applications of a computing device utilize different hardware of the computing device to provide different capabilities and functionalities to the computing device. The computing device, for example, may include multiple applications and each of the applications may have application data that may be stored on a disk drive of the computing device. The application data may be processed by a processor and while the application data is being processed, a random access memory (RAM) of the computing device may be utilized to facilitate faster access of the application data to the processor.
[0008] With the evolution of the computing devices, the variety of the functionalities that the computing devices can offer have evolved. Accordingly, for such new functionalities to be provided to users, new and upgraded components are utilized by the computing devices. Hence, to cater to ever-growing functionalities, components of the computing device, such as applications, firmware and hardware are regularly upgraded. Generally available methods for identification of various upgrades for a computing device includes identification of configuration of components of the computing device, determination of functionalities to be provided, and thereupon, identifying upgrade of components of the computing device. In certain situations, depending upon failure of components of the computing device, upgrades are also identified for the computing device.
[0009] Thus, the available methods of upgrades are generally rule based and are carried out after predetermined time period which do not account for the usage and functionality of the components of the computing device.
[00010] According to example implementations of the present subject matter, techniques for dynamically recommending modifications to a computing device are described. In an example implementation of the present subject matter, the dynamic modifications to components of the computing device are identified based on determination of utilization of components of the computing device, determination of errors occurring in different components of the computing device, and dynamically analyzing them through a machine learning model trained through utilization and errors of multiple other computing devices.
[00011] Examples of the components of the computing device may include, but are not limited to, applications, firmware, and hardware of the computing device. In an example, the utilization of components may be measured in terms of utilization parameters and the errors may be determined based on various notifications generated on the computing device. In said example, the utilization parameters and the error notifications may be analyzed by utilizing a dynamic analysis model, where the dynamic analysis model is trained based on error notifications, resolutions of the error notifications, utilization parameters, and failures associated with components of multiple computing devices. Based on the analysis of the utilization parameters and the error notifications, modification of components of the computing device may be recommended.
[00012] As the modifications of the components are recommended based on the analysis of the error notifications and utilization of the components using the trained dynamic analysis model, the recommended modifications facilitate provisioning of dynamic modifications to components of the computing device.
[00013] In another example, error notifications associated with a computing device from amongst multiple computing devices may be identified. In said example, an error notification may be indicative of an operational fault associated with a component of the computing device. The error notifications may then be analyzed through a dynamic error analysis model, where the dynamic error analysis model is trained based on error notifications and resolutions of the error notifications associated with components of the multiple computing devices. Based on the analysis, an upgrade of components of the computing device may be recommended. [00014] In yet another example, utilization parameters associated with a computing device from amongst multiple computing devices may be analyzed. In said example, a utilization parameters indicates extent of use of a component of the computing device. The utilization parameters may then be analyzed through a dynamic utilization prediction model, where the dynamic utilization prediction model is trained based on utilization parameters and failures associated with components of the multiple computing devices. Based on the analysis of the utilization parameters associated with the computing device, failure of components of the computing device may be predicted and accordingly, an upgrade for the components is recommended.
[00015] The above techniques are further described with reference to Figure 1 to Figure 4. It should be noted that the description and the figures merely illustrate the principles of the present subject matter along with examples described herein and should not be construed as a limitation to the present subject matter. It is, thus understood that various arrangements may be devised that although not explicitly described or shown herein, embody the principles of the present subject matter. Moreover, all statements herein reciting principles, aspects, and implementations of the present subject matter, as well as specific examples thereof, are intended to encompass equivalents thereof.
[00016] Figure 1 illustrates a system 100 for dynamically recommending upgrades to a computing device, in accordance with an example of the present subject matter.
[00017] In an example, the system 100 may dynamically recommend modifications to the computing device based on utilization parameters associated with the computing device, where a utilization parameter is indicative of extent of use of a component of the computing device. In said example, examples of components may include, but are not limited to, various applications running on the computing device, firmware of the computing device, and hardware of the computing device. Further, examples of hardware of the computing device may include, but is not limited to, a processor, a storage drive, a battery, and a Random Access Memory (RAM). [00018] The system 100 may include a communication engine 102 that may determine the utilization parameters associated with the computing device, where the computing device may be one of multiple computing devices in communication with the system 100. The system 100 may further include an analysis engine 104 coupled to the communication engine 102 to analyze the utilization parameters through a dynamic utilization prediction model. In an example, the dynamic utilization prediction model is a machine learning model that is trained based on utilization parameters and failures associated with components of the multiple computing devices that are in in communication with the system 100.
[00019] The system 100 may further include a prediction engine 106 coupled to the analysis engine 104, where the prediction engine 106 may utilize the dynamic utilization prediction model to predict failure of components of the computing device based on the analysis of the utilization parameters associated with the computing device.
[00020] Moreover, the system 100 may also include a recommendation engine 108 coupled to the prediction engine 106, where the recommendation engine 108 may recommend an upgrade to the components of the computing device.
[00021] The prediction of the failure of the components facilitates identification and upgradation of the that are vulnerable to failure, thereby avoiding malfunctioning of the computing device and possible failure of the entire computing device.
[00022] Figure 2 illustrates the system 100 for dynamically recommending modifications to a computing device, in accordance with another example of the present subject matter. Examples of system 10 may include, but are not limited to, a mainframe server, a computer hardware server, a blade server, and a virtual server.
[00023] In an example, the system 100 may be communicatively coupled with multiple computing devices 202-1 , 202-2, ..., 202-n. For the ease of reference, the multiple computing devices 202-1 , 202-2, ..., 202-n have been collectively referred to as the computing devices 202, hereinafter. Examples of the multiple computing devices 202 may include, but are not limited to, laptop, desktop, smartphone, Personal digital assistant (PDA), and tablet.
[00024] The system 100 may be communicatively coupled to the multiple computing devices 202 via a network 204.
[00025] The network 204 may be a single network or a combination of multiple networks and may use a variety of different communication protocols. The network 204 may be a wireless or a wired network, or a combination thereof. Examples of such individual networks 204 include, but are not limited to, Global System for Mobile Communication (GSM) network, Universal Mobile Telecommunications System (UMTS) network, Personal Communications Service (PCS) network, Time Division Multiple Access (TDMA) network, Code Division Multiple Access (CDMA) network, Next Generation Network (NON), Public Switched Telephone Network (PSTN). Depending on the technology, the network 204 may include various network entities, such as gateways, routers; however, such entities have been omitted from the present description for the sake of brevity.
[00026] The system 100 may include a processor 206 and a memory 208 coupled to the processor 206. The functions of the various elements shown in the Figures, including any functional blocks labelled as “processor(s)”, may be provided through the use of dedicated hardware as well as hardware capable of executing instructions. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. Moreover, explicit use of the term “processor” would not be construed to refer exclusively to hardware capable of executing instructions, and may implicitly include, without limitation, digital signal processor (DSP) hardware, network processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA). Other hardware, standard and/or custom, may also be coupled to processor 206. [00027] The memory 208 may include any computer-readable medium including, for example, volatile memory (e.g., RAM), and/or non-volatile memory (e.g., ROM, EPROM, flash memory, etc.).
[00028] Further, the system 100 may also include engine(s) 210, which may include the communication engine 102, the analysis engine 104, the prediction engine 106, and the recommendation engine 108.
[00029] In an example, the engine(s) 210 may be implemented as a combination of hardware and firmware. In examples described herein, such combinations of hardware and firmware may be implemented in several different ways. For example, the firmware of the engine may be processor executable instructions stored on a non-transitory machine-readable storage medium and the hardware for the engine may include a processing resource (for example, implemented as either a single processor or a combination of multiple processors), to execute such instructions.
[00030] In accordance to implementations of the present subject matter, the machine-readable storage medium may store instructions that, when executed by the processing resource, implement the functionalities of the engine. In such implementations, the system 100 may include the machine- readable storage medium for storing the instructions and the processing resource to execute the instructions.
[00031] In an example of the present subject matter, machine-readable storage medium may be located within the system 100. However, in other examples, the machine-readable storage medium may be located at a different location but accessible to system 100 and the processor 206. [00032] The system 100 may further include data 212, that serves, amongst other things, as a repository for storing data that may be fetched, processed, received, or generated by the engine(s) 210. The data 212 may include communication data 214, analysis data 216, prediction data 218, and recommendation data 220. In an example, the data 212 may be stored in the memory 208. [00033] In an example of the present subject matter, the system 100 may recommend modifications to a computing device from amongst the multiple computing devices 202 based on utilization of the computing device. In operation, the communication engine 102 may determine the utilization parameters associated with the computing device, where the utilization parameter may be indicative of extent of use of a component of the computing device. The communication engine 102 may receive the utilization parameters associated with the computing device over the network 204.
[00034] In an example, the utilization parameters associated with the computing device may be determined by a utilization monitor of the computing device. In said example, the utilization monitor may be an application installed on the computing device. The utilization monitor may dynamically monitor an extent of utilization of the components of the computing device and may regularly transmit the same to the system 100 over the network 204. The utilization monitor may record the utilization parameters associated with various components of the computing device. Examples of various utilization parameters associated with the various components include, but are not limited to, total storage space, free storage space, type, model, and encryption state associated with storage drives; name, number of cores, clock speed, utilization percentage, temperature and cache size of processors; capacity, cycle count, charge rate, discharge rate, temperature, and test results associated with batteries; and subscription and version information associated with applications installed on the computing device. The utilization parameters associated with the computing device may then be stored in the communication data 214. [00035] The analysis engine 104 may access the communication data 214 and access the utilization parameters stored therein. The analysis engine 104 may analyze the utilization parameters through a dynamic utilization prediction model, where the analysis of the utilization parameters associated with the computing device may facilitate determination of health of components of the computing device.
[00036] In an example, the dynamic utilization prediction model may be a machine learning model created and trained based on utilization parameters and failures associated with components of the multiple computing devices 202. The dynamic utilization prediction model may be created and trained in a manner similar to various machine learning models which include, but are not limited to, Decision Tree model, XGBoost model, Neural Network model, Logistic Regression model, Gaussian Naive Bayes (GNB) model, Random Forest model, Support Vector Machines (SVM) model, K-Nearest Neighbors (KNN) model, Long short-term memory (LSTM) model, and a combination thereof.
[00037] The dynamic utilization prediction model may be created and trained either on the system 100 or on another server communicatively coupled to the system 100.
[00038] In an example, the dynamic utilization prediction model is trained on the system 100. In operation, information indicating various system failures experienced on the multiple computing devices 202 may also be received by the system 100. Along with the information indicating various system failures, utilization parameters associated with the components of the multiple computing devices during the various system failures may also be received by the system 100. In an example, the utilization parameters associated with the components of the multiple computing devices 202 may be received from the multiple computing devices 202 in a manner similar to the reception of utilization parameters from the computing device. Further, in said example, the utilization parameters associated with the multiple computing devices 202 may also be similar to the utilization parameters associated with the computing device, for example total storage space, free storage space, type, model, and encryption state associated with storage drives; name, number of cores, clock speed, utilization percentage, temperature and cache size of processors; capacity, cycle count, charge rate, discharge rate, temperature, and test results associated with batteries; and subscription and version information associated with applications installed. The information indicating the various system failures and the utilization parameters associated with the multiple computing devices may then be stored in a mapped relation. The mapped relation may be analyzed using modelling techniques used by the various machine learning models to create the dynamic utilization prediction model.
[00039] In an example, the dynamic utilization prediction model may be created and trained based on the information received from computing devices having similar configurations with respect to the components assembled thereon. For instance, in an example, the dynamic utilization prediction model may be created and trained based on the information received from the computing devices having processors of similar processing capabilities. In another example, the dynamic utilization prediction model may be created and trained based on the information received from the computing devices having similar storage capabilities with respect to RAM and other storage drives. Although the examples described above describes the creation and training of the dynamic utilization prediction model based on the information received from the computing devices having similar processing capabilities and storage capabilities, the creation and training of the dynamic utilization prediction model is not limited to such computing devices and may include computing devices having similarities with respect to other components included therein. Accordingly, the dynamic utilization prediction model may cater to computing devices having diverse configurations.
[00040] In said example, the dynamic utilization prediction model may further be trained based on reception and analysis of information indicating any new system failures and the data indicating the extent of the usage of the components of the multiple computing devices during the new system failures. [00041] Based on the analysis of the utilization parameters associated with the computing device by the dynamic utilization prediction model, the prediction engine 106 may predict failure of the components of the computing device. In an example, the prediction engine 106 may analyze the utilization parameters associated with the computing device regularly and accordingly, may predict the failure of the components of the computing device based on an average utilization of components of the computing device.
[00042] In an example, the failure of the components of the computing device may be predicted based on comparison of the health of the components of the computing device with health of the components of the multiple computing devices 202 through the dynamic utilization prediction model.
[00043] In an illustrative example, the creation and training of the dynamic utilization prediction model may comprise reception of information indicating the blue screen of death (BSOD) experienced on the multiple computing devices 202 at different instances and in different conditions. Along with the information indicating the occurrence of the BSOD on the multiple computing devices 202, data indicating the utilization of components, such as RAM, processor, and applications running on the multiple computing devices, when the multiple computing devices 202 experienced BSOD, may also be received. The information indicating the BSODs along with the utilization of components may then be stored in a mapped relation. The mapped relation may then be analyzed using modelling techniques used by the various machine learning models to create the dynamic utilization prediction model. The dynamic utilization prediction model may then be used to predict the occurrence of BSOD based on the utilization of the components of the computing device.
[00044] Based on the prediction of failure of the components of the computing device, the recommendation engine 108 may recommend upgrades of the components of the computing device. In an example, the recommendation engine 108 may provide automatic upgrades to the components of the computing device. For instance, when the components to be upgraded are either applications installed on the computing device or firmware associated with the computing device, the upgrades may be automatically pushed to the computing device. In another instance, when the components to be upgraded are hardware components, an order of a new hardware component may be generated and sent to a vendor. Accordingly, the components of the computing device may be upgraded. [00045] In another example of the present subject matter, the system 100 may recommend modifications to the computing device from amongst the multiple computing devices 202 based on determination of errors occurring in the computing device. That is, the communication engine may identify error notifications associated with the computing device, where an error notification is indicative of an operational fault associated with a component of the computing device. In an example, the communication engine 102 may receive the error notifications associated with the computing device over the network 204.
[00046] In an example, the error notifications associated with the computing device may be identified by a notification monitor of the computing device. In said example, the notification monitor may be an application installed on the computing device. The notification monitor may dynamically monitor generation of any error notifications on the computing device and may regularly transmit the same to the system 100 over the network 204.
[00047] Examples of error notifications recorded by the notification monitor may include, but are not limited to, driver crash notifications, boot failure notifications, application failure notifications, notification indicating thermal state of the components of the computing system, and notifications indicating identification of malicious files on the computing device. The error notifications associated with the computing device may then be stored in the communication data 214. [00048] The analysis engine 104 may then access the communication data 214 and access the error notifications stored therein. The analysis engine 104 may analyze the error notifications through a dynamic error analysis model, where the analysis of the error notifications associated with the computing device may facilitate determination of health of components of the computing device.
[00049] In an example, the dynamic error analysis model may be a machine learning model created and trained based on the error notifications and resolutions of the error notifications associated with components of the multiple computing devices 202. Similar to the dynamic utilization prediction model, the dynamic error analysis model may also be a machine learning model trained in a manner similar to the various machine learning models including, but not limited to, Decision Tree model, XGBoost model, Neural Network model, Logistic Regression model, GNB model, random forest model, SVM model, KNN model, LSTM model, and a combination thereof. [00050] The dynamic error analysis model may be created and trained either on the system 100 or on another server communicatively coupled to the system 100.
[00051] In an example, the dynamic error analysis model is created and trained on the system 100. Accordingly, information including error notifications associated with the multiple computing devices 202 may be received on the system 100. Along with the information including error notifications, information indicating resolutions to the error notifications associated with the components of the multiple computing devices 202 may also be received on the system 100. In an example, the error notifications associated with the components of the multiple computing devices 202 may be received from the multiple computing devices 202 in a manner similar to the reception of error notifications from the computing device. Further, in said example, the error notifications associated with the multiple computing devices 202 may also be similar to the error notifications associated with the computing device. The information indicating the resolution of the error notifications associated with the components of the multiple computing devices 202 may include the modifications that were made to the components of the multiple computing devices 202 to resolve the error notifications received thereon. That is, the information indicating the resolutions to the error notifications associated with the components of the multiple computing devices 202 may include the modifications made to various applications installed on the multiple computing devices 202, firmware of the multiple computing devices 202, and hardware of the multiple computing devices 202.
[00052] The information including the error notifications along with their corresponding resolutions may then be stored in a mapped relation. The mapped relation may then be analyzed using modelling techniques used by the various machine learning models to create the dynamic error analysis model. Further, the dynamic error analysis model may be trained based on reception and analysis of information indicating any new error notifications and their corresponding resolutions.
[00053] Based on the analysis of the error notifications through the trained dynamic error analysis model, the recommendation engine 108 may recommend upgrades of the components of the computing device.
[00054] In yet another example of the present subject matter, the system 100 may recommend modifications to the computing device from amongst the multiple computing devices 202 based on analysis of the error notifications and the utilization parameters associated with the computing device. In an example, the communication engine 102 may receive the utilization parameters and error notifications associated with the computing device over the network 204. The utilization parameters and the error notifications associated with the computing device may then be stored in the communication data 214.
[00055] The analysis engine 104 may access the communication data 214 and access the utilization parameters and error notifications stored therein. The analysis engine 104 may analyze the error notifications and the utilization parameters through a dynamic analysis model, where the analysis of the utilization parameters and the error notifications associated with the computing device may facilitate determination of health of components of the computing device.
[00056] In an example, the dynamic analysis model may be machine learning model trained based on the error notifications, resolutions of the error notifications, utilization parameters, and failures associated with components of the multiple computing devices 202. Similar to the dynamic error analysis model, the dynamic analysis model may also be trained in a manner similar to the various machine learning models including, but not limited to, Decision Tree model, XGBoost model, Neural Network model, Logistic Regression model, GNB model, random forest model, SVM model, KNN model, LSTM model, and a combination thereof.
[00057] The dynamic analysis model may be created and trained either on the system 100 or on another server communicatively coupled to the system 100. In an example, information including error notifications and the utilization parameters associated with the computing device may be received. Along with the information including the error notifications and utilization parameters, information indicating resolutions to the error notifications and failures associated with the components of the multiple computing devices 202 may also be received. The information including the error notifications along with their corresponding resolutions and the utilization parameters along with the failures associated therewith may then be stored in a mapped relations. The mapped relations may then be analyzed using the modelling techniques used by the various machine learning models to create the dynamic analysis model.
[00058] Further, the dynamic analysis model may be trained based on reception and analysis of information indicating any new error notifications, resolutions corresponding to the new error notifications, the utilization parameters associated with the multiple computing devices, and the failures associated with the components of the multiple computing devices 202. [00059] Based on the analysis of the utilization parameters and the error notifications associated with the computing device, the recommendation engine 108 may recommend modifications to components of the computing device.
[00060] In an illustrative example, the dynamic analysis model may be created and trained on the system 100. Accordingly, the system 100 may receive error notifications indicating boot up time of the multiple computing devices 202. Along with the slow booting time associated with the multiple computing devices 202, the system 100 may also receive various modifications made to the multiple computing devices 202 to speed up the booting of the computing devices 202. Examples of the modifications may include, but are not limited to, increasing size of the RAM of the multiple computing devices 202, defragmentation of various storage devices coupled to the multiple computing devices 202, upgradation of the various device drivers installed on the multiple computing devices 202, and replacing the various storage devices with storage devices having faster access speeds. Along with the modifications, the system 100 may also receive utilization parameters associated with the multiple computing devices. For instance, the system may receive utilization parameters of the RAM, the storage devices, and the device drivers associated with the multiple computing devices. In an example, the utilization parameters associated with the multiple computing devices 202 received by the system 100, may have been identified at the instance when the error notification indicating slow bootup was received on the multiple computing devices 202. The above-described information may then be stored in a mapped relation and may be analyzed using modelling techniques used by the various machine learning models to create the dynamic analysis model.
[00061] In said illustrative example, when an error notification indicating slow booting of the computing device is determined, the dynamic analysis model may also determine utilization parameters associated with the computing device. The error notification along with the utilization parameters may then be analyzed using the dynamic analysis model, and accordingly an upgrade for components of the computing device is recommended.
[00062] In an example, the analysis engine 104 may also receive error notifications indicating the underutilization of components of the computing device. That is, the utilization monitor installed on the computing device may identify an extent of utilization of the components of the computing system to identify any components that may have average utilization below a threshold. Accordingly, the recommendation engine 108 may recommend the modifications to underutilized components, where the modifications may include downgrading of the underutilized components.
[00063] For instance, the utilization monitor may monitor the extent of utilization of a graphic processor coupled to a computing device. In such situation, the utilization monitor may determine the utilization of the graphic processor by various application installed on the computing device over a period of time. If the utilization of the graphics processor is identified to be below a threshold, the utilization monitor may generate an error notification and transmit the error notification to system 100 for analysis through the dynamic analysis model. Along with the error notification, the utilization monitor may also send information associated with various applications running on the computing device. The error notification along with the information associated with various applications running on the computing device may then be analyzed using the dynamic analysis model. Accordingly, the recommendation engine 108 may recommend the modifications to the graphic processor, where the modifications may include downgrading of the graphic processor.
[00064] Figure 3 illustrates a method 300 for dynamically recommending modifications to a computing device, in accordance with examples of the present subject matter. Although the method 300 may be implemented in a variety of electronic pens, but for the ease of explanation, the description of the method 300 is provided in reference to the above-described system 100. The order in which the method 300 is described is not intended to be construed as a limitation, and any number of the described method blocks may be combined in any order to implement the method 300, or an alternative method.
[00065] It may be understood that blocks of the method 300 may be performed in the system 100. The blocks of the methods 300 may be executed based on instructions stored in a non-transitory computer- readable medium, as will be readily understood. The non-transitory computer-readable medium may include, for example, digital memories, magnetic storage media, such as magnetic disks and magnetic tapes, hard drives, or optically readable digital data storage media.
[00066] At block 302, utilization parameters and error notifications associated with a computing device from amongst a plurality of computing devices may be determined, where a utilization parameter is indicative of extent of use of a component of the computing device and an error notification is indicative of an operational fault associated with the component of the computing device. In an example, the utilization parameters and error notifications may be determined by a communication engine 102 of the system 100. In said example, the communication engine 102 may receive the utilization parameters and the error notifications from the computing device over a network, such as network 222.
[00067] At block 304, the utilization parameters and the error notifications may be analyzed through a dynamic analysis model, where the dynamic analysis model is created based on error notifications, resolutions of the error notifications, utilization parameters, and failures associated with components of multiple computing devices. In an example, the utilization parameters and the error notifications may be analyzed by an analysis engine 104 of the system 100.
[00068] At block 306, based on the analysis of the utilization parameters and the error notifications associated with the computing device, modifications to components of the computing device is recommended. The modifications may include upgrade and downgrade of the components of the computing device. In an example, the modifications to the components of the computing device may be recommended by a recommendation engine 108 of the system 100.
[00069] Figure 4 illustrates a system environment 400 implementing a non-transitory computer-readable medium 402 for dynamically recommending upgrades to a computing device, in accordance with an example of the present subject matter. In an example implementation, the system environment 400 may be a system, such as the system 100. The system environment 400 includes a processing resource 404 communicatively coupled to the non-transitory computer-readable medium 402 through a communication link 406. In an example, the processing resource 404 fetches and executes computer-readable instructions from the non-transitory computer-readable medium 402.
[00070] The non-transitory computer-readable medium 402 can be, for example, an internal memory device or an external memory device. In an example implementation, the communication link 406 may be a direct communication link, such as any memory read/write interface. In another example implementation, the communication link 406 may be an indirect communication link, such as a network interface. In such a case, the processing resource 404 can access the non-transitory computer-readable medium 402 through a network 408. The network 408 may be a single network or a combination of multiple networks and may use a variety of different communication protocols.
[00071] The processing resource 404 and the non-transitory computer- readable medium 402 may also be communicatively coupled to data source(s) 410. The data source(s) 410 may be used to store data, such as error notifications associated with a computing device from amongst multiple computing devices, in an example. In an example implementation, the non-transitory computer-readable medium 402 includes a set of computer-readable instructions for dynamically recommending upgrades to the computing device from amongst the multiple computing devices. The set of computer-readable instructions can be accessed by the processing resource 404 through the communication link 406 and subsequently executed to authorize the access to the computing system 200.
[00072] In an example, the non-transitory computer-readable medium 402 may include communication instructions 412. The communication instructions 412 may, in one example, be a code executable to identify error notifications associated with the computing device. The non-transitory computer-readable medium 402 may further include analysis instructions 414. The analysis instructions 414 may, in one example, be a code executable to analyze the error notifications associated with the computing device. Furthermore, the non-transitory computer-readable medium 402 may further include recommendation instructions 416. The recommendation instructions 416 may, in one example, be a code executable to recommend upgrades for at least one component of the computing device.
[00073] The communication instructions 412, in an example, may identify the error notifications associated with the computing device. An error notification may be indicative of an operational fault associated with a component of the computing device.
[00074] The analysis instructions 414, in an example, may analyze the error notifications through a dynamic error analysis model, where the dynamic error analysis model is trained based on error notifications and resolutions of the error notifications associated with components of the plurality of the computing devices.
[00075] Further, based on the analysis of the error notifications, the recommendation instructions 416, in an example, may recommend an upgrade for at least one component of the computing device.
[00076] Although examples of the present subject matter have been described in language specific to methods and/or structural features, it is to be understood that the present subject matter is not limited to the specific methods or features described. Rather, the methods and specific features are disclosed and explained as examples of the present subject matter.

Claims

We Claim:
1. A method comprising: determining utilization parameters and error notifications associated with a computing device from amongst a plurality of computing devices, wherein a utilization parameter is indicative of extent of use of a component of the computing device and an error notifications is indicative of an operational fault associated with the component of the computing device; analyzing the utilization parameters and the error notifications utilizing a dynamic analysis model, wherein the dynamic analysis model is trained based on error notifications, resolutions of the error notifications, utilization parameters, and failures associated with components of the plurality of computing devices; and recommending modification of at least one component of the computing device based on the analyzing of the utilization parameters and the error notifications.
2. The method as claimed in claim 1 , wherein the analyzing the utilization parameters and the error notifications through a dynamic analysis model comprises: determining health of the components of the computing device; and predicting failure of the at least one component of the computing device.
3. The method as claimed in claim 2, wherein the dynamic analysis model is to compare the health of the components of the computing device with health of components of the plurality of the computing devices to predict failure of the at least one component of the computing device.
4. The method as claimed in claim 1 wherein the modification comprises one of upgrade and downgrade of the at least one component of the computing device.
5. The method as claimed in claim 4 further comprising performing one of: automatically providing one of the upgrade and the downgrade of the at least one component to the computing device.
6. The method as claimed in claim 1 , wherein the modification is for one of a hardware component of the computing device, a firmware component of the computing device, and a combination thereof.
7. The method as claimed in claim 1 , wherein the dynamic analysis model utilizes a plurality of trained machine learning models for determining health of the components of the computing device.
8. The method as claimed in claim 1 , wherein the determining the utilization parameters comprises monitoring one of utilization of processor of the computing device, utilization of random access memory (RAM) of the computing device, applications running on the computing device, and a combination thereof.
9. A system comprising: a communication engine to determine utilization parameters associated with a computing device from amongst a plurality of computing devices, wherein a utilization parameters is indicative of extent of use of a component of the computing device; and an analysis engine coupled to the communication engine to analyze the utilization parameters through a dynamic utilization prediction model, wherein the dynamic utilization prediction model is trained based on utilization parameters and failures associated with components of the plurality of the computing devices; a prediction engine coupled to the analysis engine to predict failure of at least one component of the computing device based on the analysis of the utilization parameters by the dynamic utilization prediction model; and a recommendation engine coupled to the prediction engine to recommend an upgrade of at least one component of the computing device.
10. The system as claimed in claim 9, wherein the analysis engine analyzes the utilization parameters associated with the computing device to determine health of the components of the computing device.
11. The system as claimed in claim 10, wherein the prediction engine predicts the failure of the at least one component based on comparison of the health of the components of the computing device with health of the components of the plurality of the computing devices.
12. The system as claimed in claim 9, wherein the at least one component of the computing device comprises of one of a processor, a storage drive, a battery, and a Random Access Memory (RAM).
13. A non-transitory computer-readable medium comprising instructions executable by a processing resource to: identify error notifications associated with a computing device from amongst a plurality of computing devices, wherein an error notification is indicative of an operational fault associated with a component of the computing device; analyze the error notifications through a dynamic error analysis model, wherein the dynamic error analysis model is trained based on error notifications and resolutions of the error notifications associated with components of the plurality of the computing devices; and recommend an upgrade of at least one component of the computing device.
14. The non-transitory computer-readable medium as claimed in claim 13, wherein the upgrade is for one of a hardware component, a firmware component, and a combination thereof of the computing device.
15. The non-transitory computer-readable medium as claimed in claim 13, further comprising automatically providing the upgrade of the at least one component to the computing device.
PCT/US2021/023007 2020-03-20 2021-03-18 Recommendation of modifications in computing devices WO2021188821A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN202021012270 2020-03-20
IN202021012270 2020-03-20

Publications (1)

Publication Number Publication Date
WO2021188821A1 true WO2021188821A1 (en) 2021-09-23

Family

ID=77771389

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2021/023007 WO2021188821A1 (en) 2020-03-20 2021-03-18 Recommendation of modifications in computing devices

Country Status (1)

Country Link
WO (1) WO2021188821A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140201571A1 (en) * 2005-07-11 2014-07-17 Brooks Automation, Inc. Intelligent condition monitoring and fault diagnostic system for preventative maintenance
US20150074469A1 (en) * 2013-09-09 2015-03-12 International Business Machines Corporation Methods, apparatus and system for notification of predictable memory failure
US20160021173A1 (en) * 2014-07-16 2016-01-21 TUPL, Inc. Resource management in a big data environment
US9720709B1 (en) * 2014-06-19 2017-08-01 Amazon Technologies, Inc. Software container recommendation service
US20180337828A1 (en) * 2017-05-19 2018-11-22 Microsoft Technology Licensing, Llc System and method for mapping a connectivity state of a network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140201571A1 (en) * 2005-07-11 2014-07-17 Brooks Automation, Inc. Intelligent condition monitoring and fault diagnostic system for preventative maintenance
US20150074469A1 (en) * 2013-09-09 2015-03-12 International Business Machines Corporation Methods, apparatus and system for notification of predictable memory failure
US9720709B1 (en) * 2014-06-19 2017-08-01 Amazon Technologies, Inc. Software container recommendation service
US20160021173A1 (en) * 2014-07-16 2016-01-21 TUPL, Inc. Resource management in a big data environment
US20180337828A1 (en) * 2017-05-19 2018-11-22 Microsoft Technology Licensing, Llc System and method for mapping a connectivity state of a network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GUPTA LAV; SAMAKA M.; JAIN RAJ; ERBAD AIMAN; BHAMARE DEVAL; CHAN H. ANTHONY: "Fault and Performance Management in Multi-Cloud Based NFV Using Shallow and Deep Predictive Structures", 2017 26TH INTERNATIONAL CONFERENCE ON COMPUTER COMMUNICATION AND NETWORKS (ICCCN), IEEE, 31 July 2017 (2017-07-31), pages 1 - 8, XP033154100, DOI: 10.1109/ICCCN.2017.8038530 *

Similar Documents

Publication Publication Date Title
US10216558B1 (en) Predicting drive failures
US9721212B2 (en) Efficient on-device binary analysis for auto-generated behavioral models
US9686023B2 (en) Methods and systems of dynamically generating and using device-specific and device-state-specific classifier models for the efficient classification of mobile device behaviors
US9491187B2 (en) APIs for obtaining device-specific behavior classifier models from the cloud
US11023325B2 (en) Resolving and preventing computer system failures caused by changes to the installed software
US8572007B1 (en) Systems and methods for classifying unknown files/spam based on a user actions, a file's prevalence within a user community, and a predetermined prevalence threshold
US9383989B1 (en) Systems and methods for updating applications
US20150262067A1 (en) Behavioral Analysis for Securing Peripheral Devices
WO2017030687A1 (en) Methods and systems of building classifier models in computing devices
US20160232450A1 (en) Storage device lifetime monitoring system and storage device lifetime monitoring method thereof
US10909022B2 (en) Systems and methods for identifying and tracking application performance incidents
US10896037B2 (en) Method and apparatus for open source analytics for information handling systems
US11372841B2 (en) Anomaly identification in log files
WO2021142274A1 (en) Systems and methods for reducing forced application termination
US11379291B2 (en) Application logging mechanism
CN110602207A (en) Method, device, server and storage medium for predicting push information based on off-network
US11809271B1 (en) System and method for identifying anomalies in data logs using context-based analysis
US11442936B2 (en) Automatic control loop searching
WO2021188821A1 (en) Recommendation of modifications in computing devices
CN115905450A (en) Unmanned aerial vehicle monitoring-based water quality abnormity tracing method and system
US10310948B2 (en) Evaluation of risk of data loss and backup procedures
US20220398132A1 (en) Server Classification Using Machine Learning Techniques
US11632310B2 (en) Systems and methods for pattern-based quality of service (QoS) violation prediction
US20210406109A1 (en) Systems and methods for detecting behavioral anomalies in applications
US11188412B2 (en) System and method for improving server usage based on anomaly detection

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21772286

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21772286

Country of ref document: EP

Kind code of ref document: A1