Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
RECOVERY OF APPLICATION FROM ERROR
Document Type and Number:
WIPO Patent Application WO/2019/005294
Kind Code:
A1
Abstract:
Aspects of recovery of an application from an error. An error notification is received from an agent associated with an application, the error notification being indicative of an error encountered during execution of the application. The error notification is compared with error patterns stored in a database to determine a matching error pattern. Further, a recovery action is ascertained and the recovery action is provided to the agent to recover the application from the error.

Inventors:
M NAVIN PAUL (IN)
JAIN PIYUSH KUM (IN)
CHAMEGOWDA KEMPEGOWDA DHANANJAYA (IN)
Application Number:
PCT/US2018/031314
Publication Date:
January 03, 2019
Filing Date:
May 07, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HEWLETT PACKARD DEVELOPMENT CO (US)
International Classes:
G06F11/00
Foreign References:
US6859834B12005-02-22
US20030061265A12003-03-27
US20090193298A12009-07-30
US20140108868A12014-04-17
Other References:
See also references of EP 3646182A4
Attorney, Agent or Firm:
SORENSEN, C. Blake (US)
Download PDF:
Claims:
We Claim:

1. A method comprising:

receiving, by a server, an error notification from an agent at a manufacturing station connected to the server over a network, the error notification being indicative of an error in an application being executed on the manufacturing station;

comparing, by the server, the error notification with error patterns stored in a database to determine a matching error pattern;

ascertaining, by the server, a recovery action corresponding to the matching error pattern from the database; and

providing, by the server, the recovery action to the agent to recover the appiication from the error.

2. The method as claimed i claim 1 , further comprising

providing, by the server, an alert to a user to obtain the recovery action from the user when no matching error pattern is found for the error notification, wherein the user is identified from among a list of users based on the error notification; and

storing, by the server, the error notification in the database along with the corresponding recovery action obtained from the user.

3. The method as claimed in claim 1, wherein providing the recovery action comprises providing a set of instructions to be executed by an operator of the manufacturing station,

4. The method as claimed in claim 1, wherein providing the recovery action comprises triggering execution of a set of instructions on the manufacturing station to recover the application.

5. The method as claimed in claim 1, wherein the application is to perform operations on a component and the error notification comprises parameters related to the component and the application.

6. The method as claimed in claim 5, wherein an error pattern from among the error patterns stored in the database is determined to be the matching error pattern when a subset of the parameters of the error notif ication match with a corresponding subset of parameters of the error pattern.

7. Th method as claimed in claim 1 , further comprising, determining, by the server, a criticaiity levei of the error notification and notifying a user of the criticaiity level.

8. The method as claimed in claim 1 , further comprising analyzing, by the server, error notifications received from agents of a plurality of manufacturing stations and recovery actions corresponding to the error notifications to identif and store error patterns and associated recovery actions in the database.

9. A system comprising:

a processor;

an erro recovery module coupled to the processor, wherein the error recovery module is to:

receive a erro notification from an agent of a computing device, the error notification being indicative of an error in an application being executed at the computing device;

obtain a recovery action from a user when no matching error is found for the error notification from among errors stored in a database; and

provide the recovery action to the agent for recover of the application; and

a learning module coupled to the processor, wherein the learning module is' to:

■analyze error notifications received from agents of a plurality of computing devices and recovery actions taken for the error notifications; and

store error patterns and associated recovery actions, identified based on the analysis, in the database.

10. The system as claimed in claim 9, wherein the error recovery module i to:

compare parameters of the error notification with parameters of the errors stored in the database to identify a matching error, wherein the

13 parameters Include computing device related parameters and application related parameters; and

provide the recovery action corresponding to the matching error to the agent to recover the application.

11. The system as ciaimed in ciaim 9, wherein the error recovery module is to determine a criticailt level of the error notification based on a type of the error and a frequency of occurrence of thai type of error.

12. The system as claimed in claim 9, wherein the recovery action comprises a set of instructions executable to u date the application, and wherein the error recovery module is to trigger execution of the set of instructions at the computing device to recover the application.

13. The system as claimed in claim 9, further comprising a reporting module to generate a report based on the error notifications, error patterns, and the recovery actions.

14. A non-transitory computer readable medium comprising instructions that, when executed, cause a processor to;

compare an error notification received from an agent of a computing device with error patterns stored in a database to identify a matching error pattern, wherein the error notification comprises parameters related to an application being executed on the computing device;

determine a recovery action to be performed at the computing device for recovery of the application, wherein the recovery action is determined from the database when the matching error pattern is found and the recovery action is determined from a user when no matching error pattern is found; provide the recovery action to the agent for recovery of the application; analyze, from the database, error notifications received from agents of a plurality of computing devices and recovery actions taken fo the error notifications; and

identify error patterns and associated recovery actions based on analysis.

15. The non-transitory computer readable medium as claimed in ciaim 14, further comprising instructions that, when executed, cause the processor to

determine a criticaSity ievei of the error notification based on a type of the error and a frequency of occurrence of that type of error in the error notifications received from the agents of the plurality of computing devices; and

notify the user of the crtticaiity level.

Description:
RECOVERY OF APPLICATION FROM ERROR

BACKGROUND

[0001] Computing devices are often implemented in a networked environment to perform various functions. For this, one or more applications are executed on each computing device. For example, in a manufacturing set-up, there may be multiple computing devices, referred to as manufacturing stations. One or more applications may be executed on each manufacturing station by an operator for operating on components of a device being manufactured or assembled. The operations performed may include, for example, configuring, testing, and repairing the components, in another example, multiple computing devices may be present in a networked environment, such as a distributed computing network, a mobile computing network, and the like. Each computing device may execute one or more applications. At times, an error may occur when an application is being executed at a computing device and as a result, the operations of the computing device may get disrupted until the application recovers from the error.

BRIEF DESCRIPTION OF FIGURES

[0002] The detailed description is provided with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figur in which the reference numbe first appears. The same numbers are used throughout the figures to reference like features and components.

[0003] Fig.1 illustrates an example system for implementing recovery of an application at a computing device, in accordance with principles of the present subject matter.

[0004] Fig. 2 illustrates an example environment for implementing recovery of an application, in accordance with principles of the present subject matter.

[0005] Fig. 3 illustrates an example method for application recovery, in accordance with principles of the present subject matter. 0006] Fig. 4 illustrates another exampie method for application recovery, in accordance with principles of the present subject matter.

[0007] Fig. 5 illustrates an example computer readable medium implementation for application recovery, in accordance with principles of the present subject matter.

DETAILED DESCRIPTION

[00083 Aspects of recovery of an application from an error are described herein. Typically, to recover an application from an error and resume operations of the computing device executing the application, an operator of the computing device has to call an expert, such as a service engineer. The expert analyses the error and may provide a recovery solution, in a networked environment, it is possible that similar errors may be encountered during execution of applications at different computing devices in the network at different times. Even in such cases, the expert has to individually provide the soiution to recover the application at each computing device. When application error logs are collected remotely, they are generally used to create an . update, such as a patch, that is later rolled out to the computing devices after a time lag.

[0009] Aspects of the present subject matter are directed to facilitating recovery of an application from an error at a computing device so thai operations dependent on the executing application can continue with minima! disruption after an error has occurred. For this, an agent is associated with the application. The agent provides an error notification to a central system, such as a server, upon occurrence of an error. The error notification is compared by the server against error patterns stored in a database to find a matching error pattern. The database also includes a recovery action for each error pattern. The recovery action corresponding to the matching error pattern is sent to the agent to recover the application. In case there is no matching error pattern, an alert is provided to a user, such as a service engineer, who can then provide the recovery action.

[001 Q] In one exampie, the recovery action may include providing a set of instructions to an operator for recovering the application. In another example, the recovery action may include triggering a set of instructions to be automatically executed, for example, by the application or an operating system, at the computing device for recovering the application. The recover action performed and the error notification can be stored in the database and can be used for further analysis to identify new error patterns. Further, the central system can provide an aiert regarding the criticality ieve! of the error to the user to help prioritize analysts of errors and execution of recovery actions.

[001 1] The agent used at the computing device can be, for example, a plugin that connects to the central system using web Application Program interfaces (APIs), such as a light weight REST protocol. As the agent serves to communicate the error notification and receive the recovery action without performing any intermediate analysis, the agent is fast and efficient and not complex. Further, the agent doe not have to be updated when new errors are encountered since the central system learns new error patterns and associated recovery actions from the information stored in the database. Also, various reports can be generated by the central system for analysis by the user to identify and resolve systemic errors, monitor health of the network, and the like.

[0012] Aspects of the present subject matter are furthe described in conjunction with Fig.(s) 1-5. If should be noted that the description and figures merely illustrate the principles of the present subject matter, it will thus be appreciated that various arrangements that embody the principles of the present subject matter, although not explicitly described or shown herein, can be devised from the description and are included within its scope. 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.

[0013] Fig.1 illustrates an example system for implementing recovery of an application at a computing device, In accordance with principles of the present subject matter. As shown, system 102 may be communicatively coupled to a computing device 104. The system 102 may be implemented as, for example, a desktop computer, a server, a laptop computer, a mobile device, and the like. Similarly, the computing device 104 may be implemented as any computing device, mobile or fixed. In case of a networked environment, the system 102 may be a centra! system communicatively coupled with multiple computing devices. For discussion purposes, a single computing device 104 is illustrated -the figure, [00141 The system 102 includes a processor 108, an error recovery module 108, a learning module 110, and a database 112. The processor 106 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions. Among other capabilities, the processor 106 fetches and executes computer-readable instructions stored in a memory. The functions of the various elements shown in the figure, including any functional blocks labeled as processor, may be provided through the use of dedicated hardware as well as hardware capable of executing computer readable instructions.

[0015] The error recovery module 108 and the learning module 110, collectively referred to as modules, may be coupled to the processor 106, and may include, amongst other things, routines, programs, objects, components, data structures, and the like, which perform particular tasks or implement particular abstract data types. The modules may be implemented as hardware, software, or a combination of the two. The database 112 may serve as a repository for storing data that may be fetched, processed, received, or created by the modules or received from connected computing devices and storage devices. While the database 1 12 is shown as a part of the system 02, it will be understood that the database 112 may b external to the system 102 and can be accessed by the system 102 using various communication means.

[0016] Additionally, the system 102 may include various interfaces, memories, other modules, other data, and the like, which are not shown for brevity. The interfaces may include a variety of computer-readable instructions- based interfaces and hardware interfaces that allow interaction with other communication, storage, and computing devices, such as network entities, web servers, databases, and external repositories, and peripheral devices. The memories may include any non-transitory computer-readable medium including, for example, volatile memory {e.g., RAM), and/or non-volatile memory {e.g., EPRO , flash memory, etc.). The memories may include an external memory υπιί, such as a flash drive, a compact disk drive, an external hard disk drive, or the like. The other modules may include modules for operation of the system 102, such as operating system, and other applications that may be executed on the system 102. Other data may include data used, retrieved, stored, or in any way manipulated by the other modules.

|0017] The computing device 104 may also include processors, interfaces, modules, data, and the like, which are not shown for brevity. Additionally, the computing device 104 includes an agent 114 and an application 116. WhiSe the computing device 104 may include multiple applications and an agent corresponding to each application, a single application 116 and corresponding agent 1 14 have been illustrated for discussion purposes and should not be construed as a limitation. The agent 1 4 and the application 116 may he coupied to a processor of the computing device 104 and may be implemented as hardware, software, or a combination of the two. Further, the agent 114 and the application 116 may include, amongst other things, routines, programs, objects, components, data structures, and the like, which perform particular tasks or implement particular abstract data types.

[0018] in one implementation, the computing device 104 may be a manufacturing station in a computer integrated manufacturing {Ciivl} environment. As is understood, a Cllv environment is an automated environment for integration of components to manufacture an apparatus. For example, when a printer is manufactured in a CIM environment, various components of the printer, suc as memory, firmware, power components, electronic components and interfaces, and mechanical components, may be integrated a various stations. During integration, various operations, for example, configuration, testing, and repair, may be performed on the components to ensure that they work as per their respective specification. Accordingly, the application 116 may be a tool used at a computing device 104 for performing one or more operations on a component in an apparatus being manufactured.

[0019] During the execution of the application 116 at the computing device 104, an error may be encountered. For example, since the component may be updated or modified over previous versions, the application 116 may not be executing an appropriate script to configure or test the component. As a resuit, the operation at the computing device 104 may get disrupted until the application is recovered. As will be understood, recovery of the application may include one or more of re-starting the application, updating the script being run by the application, updating the application, changing component specifications used by the application, changing a. sequence of steps carried out by the application, and the like,

[OO203 The agent 114 can be, for example, a piugin that listens to events related to the application 116 at the computing device 104 and communicates the events to the system 102. The agent 114 may connect to the system 104 using Web Appiication Programming Interfaces <APis), such as light weight REST protocols, to facilitate fast and reliable communication, in one example, the agent 114 may send a notification to the error recovery module 108 to indicate that an error has been encountered during the execution of the application 116. in another example, the agent 114 may send notifications of various events that may occur during the execution of the application 116, including error and non-error events, to the error recovery module 108, The error recovery module 108 may then determine whether th event is an error. The error recovery module 108 may ignore the notification if the event is not an error or may take appropriate action on the event if it is an error. For ease of discussion, a notification corresponding to an error Is referred to as an error notification,

[0021 ] Upon receiving the error notification, the error recovery module 10S may compare the error notification with error patterns stored in the database 112 to determine whether a matching error pattern is present in the database 112, Error pattern can include an identification of the error, the appiication 118, etc. The error patterns may be learned from previously stored error notifications, as will be discussed later, it will be understood that in some implementations, the error recovery module 108 may seek to match the error notification with previous error notifications stored in the database 112, and such comparison is aiso included within the scope of determining a matching error pattern. Thus, in such implementations, the stored error patterns may include the error notifications previously received. 0022] to ease a matching error pattern is found, the error recovery module 1G8 may obtain a recovery action corresponding to the matching recover pattern from the database 112 and may send the recovery action to the agent 114. The agent 1 4 can provide the recovery action to the application 16, where, based on the recovery action to be taken, the application 116 may dtsplay a set of instructions to the operator for execution or may trigger execution of a set of instmctions for recovery of the application 1 6.

[00233 However, in case a matching error pattern is not found in the database 112, the error recovery module 108 may send an alert to a user. The user may be, for exampie, a service engineer or an expert monitoring the system 102 and the alert may be a message displayed on the system 102. In another exampie, the alert may be an email message sent to an email id of the user or a message sent to a mobile device of the user to notify the user of the error, Th error recovery module 108 may also determine a criticaiity of the error and notify the user of the criticaiity as a part of the alert. In one example, the criticaiity of the error may be determined based on a type of error and a frequency of occurrence of that type of error.

[0024] The error recovery module 103 may then obtain the recovery action from the user and may provide the recovery action to the agent 114 for recovery of the application as discussed above.

[00253 Further, the learning module 110 may store the error notification in the database 11 with the corresponding recovery action obtained from the user or from the database 112, in one exampie, when there is a plurality of computing devices communicatively coupled to the system 102, the learning module 110 may store error notifications received from agents in each of the plurality of computing devices and recovery actions associated with the error notifications in the database 1 2. The learning module 110 may Implement deep learning techniques to analyze the error notifications to learn error patterns and may store the error patterns along with associated recovery actions in the database 112 for subsequent use.

[0028] As is understood, deep Seaming uses multi-layered hierarchical neural networks to identif patterns. In the present subject matter, for example, each error and consequently each error notification may be associated with parameters, such as application related parameters, componen related parameters, and computing device related parameters. For example, application related parameters may identify the application being executed and the type of error encountered; the component related parameters may identify the component and the operation that was being performed by the application at. he time of the error; and the computing device related parameters may identify the resources, such as processor, memory, operating system and other resources, available with the computing device. Based on the parameters, error patterns may be identified, for example, by identifying the common parameters that are present when a particular error occurs at different times. Accordingly, over time, the learning module 110 in the system 102 can learn erro patterns and associate the error patterns with recovery actions that were taken. Thus, the parameters n th error notification may be compared with parameters in the error patterns stored in the database 112 to determine the matching error pattern.

[0027] Further, the system 102 may also generate reports at specified time intervals or on receiving a user request. The reports may provide information, such a types of errors encountered, number and frequency of errors, criticality of errors, the user who acted on the errors, and the iike.

[0028] Aspects of implementation of recovery of application from an error will now b described with reference to an example CM environment for printer manufacture. It will, however, be understood that the present subject matter is not limited to this example but is applicable for recovery of any application in any networked environment and hence all such implementations are intended to be covered within the scope of the present subject matter.

[00293 Fig. 2 illustrates an example environment 202 for implementing recovery of an application, in accordance with principles of the present subject matter. The environment 202 may correspond to a CM set-up for printer manufacture. The environment 202 includes a plurality of manufacturing stations 204-1 , 204-2...204-n, individually referred to as a station 204. The manufacturing stations 204-1 , 204-2...204-n, are communicatively coupled through a network 206 with a central system, such as the server 208. 0030] For examp!e station 204-1 may be a power component station and may be used for refiash and power up operations, station 204-2 may be a mechanical component station, station 204-3 may be a repair station, station 204- 4 may be a scanner and paper feed station, and so on. Similarly, there may be an end of One station, a packaging and shipping station, etc. Further, there may be multiple stations to perform similar functions. For example, ther may be multiple repair stations or multiple mechanical component stations, and the like. Further, one or more components may be operated upon at each station 204.

[0031] Each manufacturing station 204 may be implemented as a computing device and may include processor, memory, interfaces, etc., as discussed earlier with reference to computing device 104. Also, each manufacturing station 204 may include one or more applications, such as application 212-1. 212-2, ,,212-m, individually referred to as application 212, to operate upon the one or more components. Each application 212 can be associated with an agent, such as agent 210-1 , 210~2...210~p, individuaily referred to as agent 210. In one example, each application 212 may be associated with a respective agent 210. I another example, two o more applications may share an agent 210. However, for illustration purposes and not as limitation, each station 204 is shown as including an application 212 and an agent 210.

[0032] The network 206 may be a wireless network, a wired network, or a combination thereof. The network 206 can also be an individual network or a collection of many such individual networks, interconnected with each other and functioning as a single large network, e.g., the Internet or an intranet. The network 206 can include different types of networks, such as intranet, local area network {LAN}, wide area network (WAN), the internet, and such. The network 206 may also include individual networks, such as, but not limited to, Giobai System for Communication (GSM) network, Universal Telecommunications System (UMTS) network, Long Term Evolution (LTE) network, etc. Accordingly, the network 206 includes various network entities, such as base stations, gateways, servers, and routers: however, such details have been omitted to maintain the brevity of the description. [0033] in one implementation, white the application 212 is being executed at station 204, an error may be encountered and the agent 210 may provide an error notification to the server 208. The server 208 can be implemented as a computing system and may include processor, memory, interfaces, etc., as discussed earlier with reference to system 102, Further, the server 208 may include an error recovery module 214 and a learning module 216, which may be respectively similar to the error recovery module 108 and the learning module 1 10 discussed earlier. The server 208 is also associated with a database 218 that inciudes at least error notifications, error patterns, and recovery actions. While the database 218 is shown external to the server 208, it will be understood that in different implementations it may be partly or wholly hosted in the server 208.

[0034] Consider an example where a station 204 is a refiash station where the application 212 is responsible for reflashing firmware on a printer board. Reflashing includes writing or updating data in memory, suc as flash memory, of the firmware. In this case, the component being operated upon is a printer board. During execution of the application 212, an error may occur, for example, when the application 212 is unable to communicate with the printer board over a communication channel, such as a Universal Serial Bus (USB), after reflashing.

[0035] The communication error may occur, for example, if the region settings are not properly set in the printer board before the reflashing. Generally, based on regulatory guidelines or commercial considerations, a printer being manufactured for sal in one region may have different settings from a printer being manufactured fo sale in another region. The settings may be stored as region settings in each printer. Accordingly, the script used fo reflashing wili have to vary. However, if the region settings are not correctly set, then the reflashed firmware will be incompatible with the region settings and can lead to loss in communication upon reflashing,

[0036] In the above example, the agent 210 will send an error notification to the error recovery module 214 indicating that after refiash, the application 212 is unable to communicate with the printer board over a USB channel. The error recovery module 214 can determine from the database 218 whether a similar error was encountered earlier, based on a comparison of the error notification with the stored error patterns, and what recovery action was taken. For example, the error recovery module 214 can find that a recovery action exists in the database 218 for a matching error pattern. The recovery action can be to execute diagnostic commands at the station 204 to reset invalid region settings and then refiash the printer board, in this example, the recovery action can be sent to the agent 2 0 which will provide the recovery action to the application 212 for execution and recovery from the error. In other examples, the recovery action ma be displayed to the operator at the station 204 who may then execute the recovery action.

[0037] Another example of an error notification may include an indication that the application 212 is unable to communicat with a printer after complete assembly of the printer and a recover action can include reinitializing communication drivers at the station 204,

[0038] !n one implementation, upo receiving th error notification, the error recovery module 214 may also display the error notification on a display device associated with the server 208 to alert a user of the error. The user can be a service engineer or a technical expert monitoring th errors in the environment 202. The error recovery module 214 may additionally display a criticality level of the error corresponding to the error notification on the display.

[0039] The criticality level of the error may be determined by the error recovery module 214 based on the type of error and frequency of error. Types of high criticality level errors may include repeated errors and recurring errors. For example, if the error is a repeated error for which no matching error pattern was found in the database 2 8, then it may be provided with a high criticality tevei. in another example, if the error recurs on the same station in the same operating cycle, it may be provided a high criticality level. Considering the above example of firmware reflashing, if after resetting the region setting, the application 212 encounters the same error of being unabl to communicate with the printer board over USB channel, then the error may be provided with a high criticality level, in yet another example, if the error occurs frequently when operations are performed on different apparatuses, then it ma be provided a high criticality level. 0040} On the other hand, in ease of an error that Is, for example, resolved based on the reoovery action that was provided or that does not occur frequently, the error ma be provided a low criticaiity level. St wl be understood that the basis on which the criticaiit ievei is to be determined may be configurabie and different users may configure different ruies in the error recovery module 214 for determination of the criticaiity level.

[0041] Further, the learning module 216 may store the error notification and the recovery action in the database 218 and may apply deep learning techniques to identify new error patterns and associated recovery actions. As there may be a pluraiity of stations 204 in the environment 202. the Seaming moduie 216 can more efficient!y learn new error patterns and associated recovery actions. The new error patterns and associated recover actions may also be stored in the database 218 for subsequent use,

0042] As the Seaming module 216 saves each error notification and recovery action in the database 218, each time a new error notification is received, the error recovery moduie 214 can determine the type and frequency of occurrence of the error from the database 218 to determine the criticaiity SeveS.

[0043] in addition to displaying the error notification and the criticaiity ievei of the error in the aSert, the error recovery moduie 214 can also display whether a matching error pattern was found and/or a recovery action was identified from the database 218 for the error notification. Further, the alert can be additionaily o alternatively provided as an email message or a message to a mobiSe device of the user,

[0044] For instance, in the above example related to reftasriing firmware, in case the error recovery module 214 is unable to find a matching error pattern, the error recovery moduie 214 can notify the user through the alert. According!y, the user can provide the recover action and can prioritize providing of the reoovery action based on the criticaiity level in case multiple error notifications are to be attended to. In case a plurality of users are available for attending to the error notification, the error recovery moduie 214 can further select the appropriate user to whom the error notification should be assigned for providing the recovery action. The selection of the appropriate user can be based on, for example, the component being operated on or the type of error. Further, the learning moduie 216 can also store the identit of the user, such as user name or user id, in the database to identify the user who was assigned the error notification for providing the recovery action.

[00453 server 208 can also provide various reports to the user for analysis of th error notifications received, recovery actions taken, frequently encountered error patterns, users to whom the error notifications were assigned for action, and the like. For this, the server 208 can include a reporting moduie 220 which can retrieve and analyze data from the database 218 for providing the reports. The reports may be generated based on the error notifications, error patterns, and the recovery actions stored in the database 218. The reports may be displayed on the display device or may be sent as documents through electronic communication channels.

[0046] Thus, by implementing various aspects of the present subject matter, applications can be efficiently and reliably recovered after an error is encountered and the operations at the station 204 can continue with minimal disruption. The methods used for the application recovery as discussed abov will now be further described with reference to Fig-is) 3 and 4.

[0047] Fig. 3 iiiustrates an example method for application recovery, in accordance with principles of the present subject matter. Fig. 4 iiiustrates another example method for application recovery, in accordance with principles of the present subject matter. The order in which the methods 300 and 400 are described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement methods 300 and 400, or an alternative method. Additionally, individual biocks may be deleted from the methods 300 and 400 without departing from the spirit and scope of the subject matte described herein. Furthermore, the methods 300 and 400 may be implemented in any suitable hardware, computer readable instructions, firmware, or combination thereof. For discussion, the methods 300 and 400 are described with reference to the implementations illustrated in Figs. 1 and 2.

[0048] A person skilled in the art will readily recognize that steps of the methods 300 and 400 can be performed b programmed computers, Herein, some examples are also intended to cover program storage devices and non- transitory computer readable medium, for example, digital data storag media, which are computer readable and encode computer-executable instructions, where said instructions perform some or ali of the steps of the described methods 300 and 400. The program storage devices may be, for example, digital memories, magnetic storage media, such as magnetic disks and magnetic tapes, hard drives, or optically readable digital data storage media.

[0049] With reference to method 300, as illustrated In Fig. 3, at block 302 an error notification is received from an agent of a manufacturing station, the error notification being indicative of an error in an application executed on the manufacturing station. For example, the error recovery module 214 may receive an error notification from the agent 210 when an error Is encountered during execution of the application 212. At block 304, the error notification is compared with error patterns stored n a database to determine a matching error pattern. For example, the error recovery module 214 may compare the error notification with error patterns stored in the database 218.

[0050] in one example, the application may correspond to a component configuration, testing, and repair application and the error notification includes parameters indicative of the component being operated upon and the application being executed. Further, an error pattern from among the error patterns stored in the database is determined to be the matching error pattern when a subset of the parameters of the error notification match with a corresponding subset of parameters of the error pattern.

[0051] At block 308, a recovery action corresponding to the matching error pattern is ascertained from the database. For example, the error recovery module 214 may ascertain the recover action from the database 218. At block 308, the recovery action is provided to the agent for execution on the manufacturing station to recover the application from the error. For example, the error recovery module 214 may provide the recovery action to the agent 210 for recovery of the application 212. The agent 210 may trigger execution of the recovery action or may provide it to an operator for execution. 0052] to case the error recovery module 214 is unable to ascertain the recovery action from the database 218, it may provide an alert to a user as will be discussed further with reference to Fig. 4.

[0053] With reference to method 400, as illustrated in Fig. 4 S at block 402, an error notification indicative of an error in an appiication is received. For example, the error recovery moduie 214 on the server 208 may receive an error notification indicative of an error in an appiication 212 executed on a station 204. The error notification may be received from an agent 210 associated with the appiication 212. At block 404, a user is notified of the error notification and a criticaiity ieve! of the error. For example, the error recovery moduie 214 may notify a user by dispiaying the error notification and the criticaiity ievei of the error on a display device, in another example, the user may be notified through an emai message or a message sent to a mobile device of the user.

[0054] At block 406, it is determined if fhere a matching error in database. For example, the error recovery module 214 may determine whether there is a matching error in the database 218. If yes, then at block 408, a recovery action corresponding to the matching error is ascertained form the database. However, if no matching error pattern was found at block 408, then the method continues to block 410, where an alert Is provided to a user to obtain the recovery action, in one example, the user may be identified from among a list of users. For example, the error recovery module 214 may identify a user from a list of users, based on the type of error and expertise of the user, for providing the alert. The use can then provide the recovery action to the error recovery moduie 214 for example, through an interface on the server 208.

[0055] From blocks 408 and 410, once the recovery action has been determined either from the database or from the user, the method 400 proceeds to block 412 where the recovery action is provided to the agent for recovery of the appiication. For example, the recovery action may be provided to the agent 210 at the station 204 to recover the application 212. Additionally, at block 414, the error notification and the recovery action are stored in the database. Further, at block 416, the error notifications and corresponding recovery actions are analyzed to identify and store error patterns and associated recovery actions in the database. For example, the learning module 218 may analyze the error notifications and the recover actions to identify and store the error patterns in the database 218.

[0058] Fig. 5 illustrates an example computer readable medium implementation for application recovery, in accordance with principles of the present subject matter- A network environment 500 may comprise' at least a portion of a public networking environment or a private networking environment, or a combination thereof, in an implementation, the network environment 500 includes a processing resource 502 communicatively coupled to a non-transitory computer readable medium 504 through a communication link 506. In an example, the processing resource 502 may include one or more processors of a computing system, such -as of the system 102, as described earlier, for recovery of an application. The non-transitory computer readable medium 504 can be, for example, an internal memory device of the computing system or an external memory device, in an implementation, the communication iink 508 may be a direct communication Sink, such as any memory read/write interface, in another implementation, the communicatio link 508 may be an indirect communication link, such as a network interface, in such a case, the processing resource 502 ca access the non-transitory computer readable medium 504 through a network 508. The network 508 may be a single network or a combination of multiple networks and may use a variety of different communication protocols,

[0057] The processing resource 502 and the non-transitory computer readable medium 504 may also b coupled, over the communication link 508 and/or network 508t, o data source 510, such as databases that store error notifications, error patterns, and recovery actions, and to computing device(s) 512, such as manufacturing stations, that execute applications.

[0058] In an implementation, the non-transitory computer readable medium 504 includes a set of computer readable instructions for recovery of an application that encounters an error at a computing device 512. The set of computer readable instructions, referred to as instructions 514 hereinafter, can be accessed by the processing resource 502 and executed fo application recovery in accordance with the principles of the present subject matter. 0059] In an example, the instructions 514 include instructions 518 that cause the processing resource 502 to compare an error notification with error patterns stored in a database, such as data source 510, to identify a matching error pattern. The error notification may be received from an agent associated with the application being executed at a computing device 512. Further, instructions 514 include Instructions 518 to determine a recovery action to be performed. The recovery action is determined from th database when the matching error pattern is found. On the other hand, the recovery action is determined from a user when no matching error pattern is found.

[0060] The instructions 514 also include instructions 520 to provide the recovery action to the agent for recovery of the application and to store the error notification and the recovery action in the database. The instructions 514 further include instructions 522, to analyze error notifications and recovery actions, from the database, and identify error patterns and associated recovery actions based on the analysis.

[0061] The instructions 514 can include further instructions, such as for determining a criticaiity level of the error indicated in the error notification, generating reports, and the like, as described earlier.

[0082] Although Implementations for recovery of application from an error have been described in language specific to structural features and/or methods, it is to be understood that the invention is not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed and explained in the context of a few example implementations.