System and method for resilient automation upgrade
First Claim
1. A computer system for creating adapters that enable application automation comprising:
- (1) a portable unit in a first computer environment having one or more single execution features, several commands, or user generated macros to record and playback executable programs in one or more remote computers;
(2) an inspector to perform an analysis of an application and retrieve information on at least one of an underlying application framework, object metadata and properties, object type, associated actions, user interface layout and application response time;
(3) an exception manager to filter out (a) mismatched objects between versions of objects that semantically have a high probability of being synonyms and (b) one or more object properties that indicate that an object structure has changed;
(4) a semantic difference engine that locates a source object in a target hierarchy by taking into account labels in the source object and labels in a target object and inferring meaning of the labels in the source object and the target object, and further by inferring meaning of context of other fields, and controls within a sphere of activity of the labels in the source object and labels in the target object;
(5) a fingerprint generator to analyze (a) a screen writer for objects and (b) respective locations;
(6) a calibration manager to compare and analyze similar functional screens from different versions of an application;
(7) a screen repository to represent a set of screens to carry out selected business process;
(8) a screen serializer to store screen, related metadata and control structure in a machine readable format; and
(9) a learning mechanism to build an upgraded resilient automation adapter for (a) storing and mining features of an underlying application technology and object recognition criteria, and (b) learning critical identifying criteria for applying automated application updates, and including (i) filing information under appropriate categories, (ii) applying machine learning techniques, such as multiple regression, principal component analysis, and (iii) storing the results in a knowledge database.
2 Assignments
0 Petitions
Accused Products
Abstract
This invention generally relates to a process, system and computer code for enabling users to create adapters that enable application automation by collecting automation information; locate application controls and tracking changes between an older and a newer version of the application, such changes to include addition of one or more new data fields, removal of one or more data fields, change in data field type (i.e. type of data held in the field); change field layout; and change the underlying technology framework of the application; to present the changes using an exception management model to the user, so user can by way of example provide feedback in a visual instead of programmatic manner; store the changes, so as to make the adapters resilient to application changes and upgrades; and incorporating the changes to upgrade the application.
127 Citations
11 Claims
-
1. A computer system for creating adapters that enable application automation comprising:
-
(1) a portable unit in a first computer environment having one or more single execution features, several commands, or user generated macros to record and playback executable programs in one or more remote computers; (2) an inspector to perform an analysis of an application and retrieve information on at least one of an underlying application framework, object metadata and properties, object type, associated actions, user interface layout and application response time; (3) an exception manager to filter out (a) mismatched objects between versions of objects that semantically have a high probability of being synonyms and (b) one or more object properties that indicate that an object structure has changed; (4) a semantic difference engine that locates a source object in a target hierarchy by taking into account labels in the source object and labels in a target object and inferring meaning of the labels in the source object and the target object, and further by inferring meaning of context of other fields, and controls within a sphere of activity of the labels in the source object and labels in the target object; (5) a fingerprint generator to analyze (a) a screen writer for objects and (b) respective locations; (6) a calibration manager to compare and analyze similar functional screens from different versions of an application; (7) a screen repository to represent a set of screens to carry out selected business process; (8) a screen serializer to store screen, related metadata and control structure in a machine readable format; and (9) a learning mechanism to build an upgraded resilient automation adapter for (a) storing and mining features of an underlying application technology and object recognition criteria, and (b) learning critical identifying criteria for applying automated application updates, and including (i) filing information under appropriate categories, (ii) applying machine learning techniques, such as multiple regression, principal component analysis, and (iii) storing the results in a knowledge database. - View Dependent Claims (2)
-
-
3. A computerized method operable in a computer system to upgrade one or more remote computers using adapters comprising the steps of:
-
1. creating a portable unit in a first computer environment having one or more single execution features, several commands, or user generated macros to record and playback executable programs in one or more remote computers; 2. porting the portable unit to the one or more remote computers; 3. executing the portable unit in the one or more remote computers for; A. collecting automation information related to an application stored on the one or more remote computers, said automation information including;
(1) a control identification, representing information for application controls, that comprise a field or UI control used to add, remove or change application data or perform actions comprising clicking buttons or selecting one or more inputs from a list, application objects, fields and data properties;
(2) changes between an older and a newer version of the application;B. locating within the control identification one or more candidates for updating the adapter in one or more remote computers; C. determining if a unique control exists within a degree of probability and if a control type exists, then assigning a weight based upon the probability, wherein determining if a unique control exists within a degree of probability is performed by a semantic difference engine that locates a source object in a target hierarchy by taking into account labels in the source object and labels in a target object and inferring meaning of the labels in the source object and the target object, and further by inferring meaning of context of other fields, and controls within a sphere of activity of the labels in the source object and labels in the target object; D. computing attribute differences for each candidate located; E. computing a reference control path end with a match in a target screen; F. determining if a longest path overlap weight increases; G. locating a proximity of the candidates to neighboring candidates based on a visual presentation on a graphical user interface on a first computer; H. determining if a percentage of the control identifications match a reference screen; I. eliminating all controls under a probability threshold; and J. changing data field type, field layout, and underlying application technology framework. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10)
-
-
11. A non-transitory computer-readable medium having stored thereon computer-readable instructions for:
-
A. executing one or more programs on one or more local or remote computers, said programs identifying one or more data relationships that exist between and utilized by one or more applications resident on one or more local or remote computers; B. employing in a first computer, remote access technology to access and update software on one or more remote computers and creating one or more automation profiles for execution in one or more remote computers; C. (1) collecting automation information related to an application stored on the one or more remote computers, said information including (1) a control identification, representing information for application controls, application objects, fields and data properties;
(2) changes between an older and a newer version of the application;D. locating within the control identification one or more candidates for updating the one or more remote computers; E. determining if a unique application control, that comprises a field or UI control used to add, remove or change application data or perform actions comprising clicking buttons or selecting one or more inputs from a list, exists within a degree of probability and if a unique application control exists, then assigning a weight based upon the probability, wherein determining if a unique application control exists within a degree of probability is performed by a semantic difference engine that locates a source object in a target hierarchy by taking into account labels in the source object and labels in a target object and inferring meaning of the labels in the source object and the target object, and further by inferring meaning of context of other fields, and application controls within a sphere of activity of the labels in the source object and labels in the target object; F. computing attribute differences for each candidate located; G. computing a reference control path end with a match in a target screen; H. determining if a longest path overlap weight increases; I. locating a proximity of the candidates to neighboring candidates based on a visual presentation on a graphical user interface on a first computer; J. determining if a percentage of the control identifications match a reference screen; K. eliminating all controls under a probability threshold; and L. changing data field type, field layout, and underlying application technology framework.
-
Specification