A method, apparatus, and computer instructions for managing software. A solution to a problem that has occurred with a program on a client data processing system is received by a server. This solution is created while solving the problem that occurred on the data processing system. The solution includes a process that may be executed on another data processing system to solve the same problem on that data processing system. The process is, for example, a script, a macro, or a set of computer executable steps or instructions. A database of solutions is selectively updated to reflect the new solution. In response to a request for a solution by another client system to a problem, the server will respond with the current solution that exists in the database.
|
1. A method in a data processing system for managing software, the method comprising:
identifying that a problem has occurred in a program that is in the client computer system;
responsive to identifying the problem, initiating, by a user of the client computer system, an agent that executes within the client computer system;
associating a problem identifier with the problem;
taking diagnostic steps, by the user, to diagnose the problem;
automatically recording, by the agent into a script in the client computer system, the diagnostic steps as the diagnostic steps are taken by the user, the user not taking any action to have the diagnostic steps recorded;
storing the problem identifier in the script;
indicating, by the user to the agent, that the problem has been diagnosed;
taking correction steps, by the user, to fix the problem;
automatically recording, by the agent into the script, the correction steps as the correction steps are taken by the user, the user not taking any action to have the correction steps recorded;
providing, by the user to the agent, an input to indicate whether the correction steps corrected the problem;
responsive to the correction steps correcting the problem;
automatically sending, by the agent, a solution to a server computer system, the solution including the correction steps and the problem identifier;
responsive to the server computer system receiving the solution, searching, by the server computer system, a rules database that is included in the server computer system for a stored solution that includes the problem identifier;
in response to locating the stored solution in the rules database in the server computer system, determining whether the stored solution includes stored correction steps that are the same as said correction steps;
in response to the stored correction steps being different from the correction steps, identifying differences between the stored correction steps and the correction steps, and notifying a server computer system administrator about the differences; and
responsive to the administrator approving an update, updating the stored solution to include said correction steps to form a second stored solution.
7. A data processing system for managing software, the data processing system comprising:
identifying means for identifying that a problem has occurred in a program that is in the client computer system;
responsive to identifying the problem, initiating means for initiating, by a user of the client computer system, an agent that executes within the client computer system;
a problem identifier that is associated with the problem;
diagnostic steps, taken by the user, to diagnose the problem;
the agent in the client computer system automatically recording the diagnostic steps into a script in the client database as the diagnostic steps are taken by the user, the user not taking any action to have the diagnostic steps recorded;
the script for storing the problem identifier;
indicating means for initiating, by the user to the agent, that the problem has been diagnosed;
correction steps, taken by the user, to fix the problem;
the agent automatically recording the correction steps into the script as the correction steps are taken by the user, the user not taking any action to have the correction steps recorded;
providing means for providing, by the user to the agent, an input to indicate whether the correction steps corrected the problem;
responsive to the correction steps correcting the problem;
the agent automatically sending a solution to a server computer system, the solution including the correction steps and the problem identifier;
responsive to the server computer system receiving the solution, the server computer system searching a rules database that is included in the server computer system for a stored solution that includes the problem identifier;
in response to locating the stored solution in the rules database in the server computer system, determining means for determining whether the stored solution includes stored correction steps that are the same as said correction steps;
in response to the stored correction steps being different from the correction steps, identifying means for identifying differences between the stored correction steps and the correction steps, and notifying means for notifying a server computer system administrator about the differences; and
responsive to the administrator approving an update, updating means for updating the stored solution to include said correction steps to form a second stored solution.
12. A computer program product that is stored in a computer readable medium for managing software, the computer program product comprising:
instructions for identifying that a problem has occurred in a program that is in the client computer system;
responsive to identifying the problem, instructions for initiating, by a user of the client computer system, an agent that executes within the client computer system;
instructions for associating a problem identifier with the problem;
instructions for taking diagnostic steps, by the user, to diagnose the problem;
instructions for automatically recording, by the agent into a script in the client computer system, the diagnostic steps as the diagnostic steps are taken by the user, the user not taking any action to have the diagnostic steps recorded;
instructions for storing the problem identifier in the script;
instructions for indicating, by the user to the agent, that the problem has been diagnosed;
instructions for taking correction steps, by the user, to fix the problem;
instructions for automatically recording, by the agent into the script, the correction steps as the correction steps are taken by the user, the user not taking any action to have the correction steps recorded;
instructions for providing, by the user to the agent, an input to indicate whether the correction steps corrected the problem;
responsive to the correction steps correcting the problem;
instructions for automatically sending, by the agent, a solution to a server computer system, the solution including the correction steps and the problem identifier;
responsive to the server computer system receiving the solution, instructions for searching, by the server computer system, a rules database that is included in the server computer system for a stored solution that includes the problem identifier;
in response to locating the stored solution in the rules database in the server computer system, instructions for determining whether the stored solution includes stored correction steps that are the same as said correction steps;
in response to the stored correction steps being different from the correction steps, instructions for identifying differences between the stored correction steps and the correction steps, and instructions for notifying a server computer system administrator about the differences; and
responsive to the administrator approving an update, instructions for updating the stored solution to include said correction steps to form a second stored solution.
2. The method of
said correction steps that are taken to fix the problem including:
identifying a patch that is necessary in order to fix the problem; and obtaining, by the client computer system from a software database that is included in the server computer system, the patch.
3. The method of
connecting, by a second agent in a second client computer system, to said server computer system;
obtaining, by said second agent, updates to a rules database, which is included in said second client computer system;
said updates including said second stored solution;
in response to an occurrence of said problem in said second client computer system, using said second stored solution from said rules database in said second client computer system to fix said problem in said second client computer system.
4. The method of
updating the stored solution to form a second stored solution by removing steps from said stored correction steps and adding steps to said stored solution steps.
5. The method of
6. The method of
in response to not locating a stored solution in the rules database in the server computer system that includes the problem identifier, saving the solution in the rules database in the server computer system.
8. The data processing system of
said correction steps that are taken to fix the problem including;
identifying means for identifying a patch that is necessary in order to fix the problem; and
the client computer system obtaining, from a software database that is included in the server computer system, the patch.
9. The data processing system of
in response to not locating a stored solution in the rules database in the server computer system that includes the problem identifier, saving means for saving the solution in the rules database in the server computer system.
10. The data processing system of
a second agent in a second client computer system connecting to said server computer system;
said second agent obtaining updates to a rules database, which is included in said second client computer system;
said updates including said second stored solution;
in response to an occurrence of said problem in said second client computer system, using means for using said second stored solution from said rules database in said second client computer system to fix said problem in said second client computer system.
11. The data processing system of
13. The computer program product of
said correction steps that are taken to fix the problem including:
instructions for identifying a patch that is necessary in order to fix the problem; and
instructions for obtaining, by the client computer system from a software database that is included in the server computer system, the patch.
14. The computer program product of
instructions for connecting, by a second agent in a second client computer system, to said server computer system;
instructions for obtaining, by said second agent, updates to a rules database, which is included in said second client computer system;
said updates that including said second stored solution;
in response to an occurrence of said problem in said second client computer system, instructions for using said second stored solution from said rules database in said second client computer system to fix said problem in said second client computer system.
15. The computer program product of
instructions for updating the stored solution to form a second stored solution by removing steps from said stored correction steps and adding steps to said stored solution steps.
16. The computer program product of
17. The computer program product of
in response to not locating a stored solution in the rules database in the server computer system that includes the problem identifier, instructions for saving the solution in the rules database in the server computer system.
|
The present invention is related to an application entitled Method and Apparatus for a Self Healing Agent, Ser. No. 10687273, filed even date hereof, assigned to the same assignee, and incorporated herein by reference in entirety for all purposes.
1. Technical Field
The present invention relates generally to an improved data processing system and in particular to a method and apparatus for managing software. Still more particularly, the present invention relates to a method, apparatus, and computer instructions for providing autonomic solutions for the repair and/or configuration of a stand-alone or network data processing system.
2. Description of Related Art
When a data processing system, such as a workstation or personal computer fails or breaks down, a system administrator or service engineer is tasked with finding the cause of the failure and providing a solution or fix to the failure. The system administrator or engineer uses their knowledge along with other materials and resources to diagnose the problem and repair the data processing system. The engineer may use various diagnostic software programs, as well as consult knowledge bases. The knowledge of what to change on the data processing system, how to make a change, and other information is usually found in a knowledge base. This knowledge base takes the form of bulletins, frequently asked questions (FAQs), tips, and techniques. However, the fix or solution to the problem is often the result of applying some or all of the recommended fixes in a manner that depends on the knowledge and experience of the administrator or engineer. This person combines the information and knowledge available to them and performs some set of steps to diagnose and provide a solution to the problem.
This knowledge is often never recorded or specified in a manner to allow others to use the information to diagnose and repair a similar problem, nor is the knowledge ever transferred to others who could benefit from the solution created by the administrator or engineer. In some cases, the engineer may post a solution or provide a frequently asked question (FAQ) entry on a Web site. Users of the Web site can attempt to locate a particular fix or solution by searching for the text of the symptoms. An example of this type of searchable database is the Microsoft Knowledge Base, which is available from Microsoft Corporation.
The knowledge may be obtained from this person by word of mouth if another administrator or engineer encounters a similar problem. Those who become experts in the field are continually called upon to perform a specific or specialized task with respect to solving problems with software. These problems may occur in many different situations. For example, problems may occur in a data processing system when adding a user, installing a program, or applying a patch. Further, problems also occur during the normal operation of the data processing system when a failure or error occurs.
In many cases, the user having a problem on a data processing system must wait for an expert or person with knowledge of the specific problem to come to their location and provide a solution to the problem. The system administrators and engineers often have numerous requests for aid and prioritize these requests based on their perceived severity of the problem. As a result, many users may become frustrated with waiting for a solution to a problem based on the demands and requests of the administrator or service engineer.
Therefore, it would be advantageous to have an improved method, apparatus, and computer instructions for managing such failures in a data processing system.
The present invention provides a method, apparatus, and computer instructions for managing software. A solution to a problem that has occurred with a program on a client data processing system is received by a server. This solution is created while solving the problem that occurred on the data processing system. The solution includes a process that may be executed on another data processing system to solve the same problem on that data processing system. The process is, for example, a script, a macro, or a set of computer executable steps or instructions. A database of solutions is selectively updated to reflect the new solution. In response to a request for a solution by another client system to a problem, the server will respond with the current solution that exists in the database.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
With reference now to the figures,
In the depicted example, server 104 is connected to network 102 along with storage unit 106. In addition, clients 108, 110, and 112 are connected to network 102. These clients 108, 110, and 112 may be, for example, personal computers or network computers. In the depicted example, server 104 provides data, such as boot files, operating system images, and applications to clients 108-112. Clients 108, 110, and 112 are clients to server 104. Network data processing system 100 may include additional servers, clients, and other devices not shown. In the depicted example, network data processing system 100 is the Internet with network 102 representing a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, government, educational, and other computer systems that route data and messages. Of course, network data processing system 100 also may be implemented as a number of different types of networks such as, for example, an intranet, a local area network (LAN), or a wide area network (WAN).
Referring to
Peripheral component interconnect (PCI) bus bridge 214 connected to I/O bus 212 provides an interface to PCI local bus 216. A number of modems may be connected to PCI local bus 216. Typical PCI bus implementations will support four PCI expansion slots or add-in connectors. Communications links to clients 108-112 in
Additional PCI bus bridges 222 and 224 provide interfaces for additional PCI local buses 226 and 228, from which additional modems or network adapters may be supported. In this manner, data processing system 200 allows connections to multiple network computers. A memory-mapped graphics adapter 230 and hard disk 232 may also be connected to I/O bus 212 as depicted, either directly or indirectly.
Those of ordinary skill in the art will appreciate that the hardware depicted in
The data processing system depicted in
With reference now to
An operating system runs on processor 302 and is used to coordinate and provide control of various components within data processing system 300 in
Those of ordinary skill in the art will appreciate that the hardware in
The depicted example in
The present invention provides an improved method, apparatus, and computer instructions for providing autonomic solutions in a network data processing system. The mechanism of the present invention stores solutions generated by users, such as engineers and administrators, in a repository that may be accessed to solve similar problems in various data processing systems in the network data processing system. The mechanism of the present invention provides for the use of a software process that records steps in diagnosing or identifying a software problem as well as a solution. These steps may be recorded in different ways, such as using a script.
Further, with respect to identifying or diagnosing a problem, the user may enter or indicate that the problem has been identified as well as indicate that a solution has been completed successfully. These steps are returned to a server process for addition to a knowledge base. In this manner, the steps may be played back or executed on another data processing system with a similar problem. Also, the mechanism of the present invention may analyze the steps recorded with respect to a current solution for the same problem. This analysis may determine whether steps to the current solution have changed. If the solution is changed, the current solution stored on the knowledge base may be updated with changes found in the new solution. This updating may take place automatically if a change is detected or on some statistical basis with respect to identifying solutions on different data processing systems for the same software problem with respect to the current solution. In this manner, steps in a current solution that may have become invalid may be removed from the knowledge base. This knowledge base is a dynamic and changing database that reflects the current solutions for different problems. In this manner, rules, or steps formed in previous operations for a solution may be modified based on more recent solutions or findings. The application of these rules may be determined by a policy, which is determined and set by the user or the user's information technology (IT) organization.
Turning now to
In this example, the problem may be a printing problem involving printing of a document or file to a color printer. The user may determine that a particular patch for program 402 is an incorrect patch, or that the printer driver software is configured incorrectly, or the printer driver software is an obsolete or incompatible version. The different steps used in making this diagnosis may include, for example, testing the program with the patch and without the patch with respect to the errors that are generated by program 402, or by updating or replacing the printer driver software or color table. If the user determines that the patch is a bad patch, then the particular errors caused by program 402 and the steps used to diagnose and repair the problem may be stored in script 406. Thereafter, the user initiates a solution or steps to repair program 402. In this example, program 402 may require a different patch or a different sequence of patches. The steps in repairing program 402 are also recorded in script 406.
When the repair is completed, the user may indicate that the repair was successful. In response to a successful result, agent 404 automatically sends script 406 to server process 408 in server 410. Server process 408 in server 410 receives script 406 and stores the script in rules database 412. In this illustrative embodiment, server 410 may be implemented using data processing system 200 in
For example, if the solution to a printing problem such as the problem described above requires the installation of a new printer driver, the new printer driver is installed. If the server begins to receive a large number of previously unreported problems from client systems subsequent to the installation of the new printer driver, the rules engine may determine that the problem is likely caused by the new printer driver. In this case, the server will send to agent 404 the instructions to roll back the printer driver to the previous version. The server will then continue to monitor client 400 to determine if the new error reports diminish or disappear. If so, the server determines that the new printer driver is the reason for the problems and removes the new printer driver as a solution script until a determination can be made as to how to fix the original problem. As soon as the proper determination is made, the solution script is updated to reflect the new solution.
Alternatively, agent 404 may monitor system changes and record those changes rather than recording particular steps taken by a user in fixing the problem. Once the problem has been identified and a solution for the problem has been implemented, the user may indicate to agent 404 that the solution is complete. Agent 404 then identifies all changes made within client 400. These changes may include patches that have been added to program 402, changes in configuration parameters, removal of patches, and other changes to program 402, or to other components within client 400. At that time, agent 404 may send this solution to server process 408 for processing and updating the repository contained within server 410.
Turning now to
Additionally, solution 506 also may take the form or state information identifying changes made in the client to solve the problem. These changes may include, for example, the addition of a patch, or change in configuration parameters in the program or operating system. Additionally, solution 506 may also include the prerequisite or subsequent execution of another solution or solutions, identified by their ID. These solutions may also refer to the prerequisite or subsequent execution of another solution or solutions, thus establishing a relationship and dependency between the solutions.
Turning now to
The different procedures and identification of problems and solutions are stored in rules database 608, while the different components needed to implement a solution may be stored in software database 614. For example, software database 614 may include executable files, dynamic link libraries, and patches. Depending on the particular implementation, the procedures and the components may be located in the same database or further subdivided and placed into other databases.
In this manner, the mechanism of the present invention provides more than merely a recording facility for steps. This mechanism learns from steps taken by a user identifying and solving a problem by comparing the steps in the solution with changes from currently stored steps for a particular problem to update that solution in the knowledge base. In this manner, the mechanism of the present invention adjusts, extends, and/or augments, in a closed-loop fashion, the knowledge base so that the application of the solutions may be applied to other data processing systems when the same or similar problems are encountered.
For example, if a step calls for an installation of a particular version of a dynamic link library and a later step requires the dynamic link library to be upgraded, the steps may be combined into a single step in which the new upgraded dynamic link library is installed early in the process if possible. If this solution causes problems at a later time, appropriate changes may be made such as generating a solution that removes the new dynamic link library and reinstalls the previous version or an older version.
Further, the mechanism of the present invention gathers statistics on selected operations. An operation, such as upgrading a database for a set of files causes problems at a later point and time, that upgrade may be marked as a trouble spot and sent to the system administrator to decide on whether a change to the solution is needed. The results of this decision may be used to upgrade the current knowledge base. As a result, if the findings require removal of a previously installed patch or program, this operation may be pushed to the client from the server and follow up operations performed on the client if necessary by an agent process.
Turning now to
The process begins by detecting the beginning of a diagnosis of a problem (step 700). This step may be initiated by a user, at the client, entering the user input indicating that the diagnosis procedure is beginning. Next, steps in the diagnosis are recorded (step 702). These steps may include, for example, diagnosis programs executed by the user, parameter or configuration information examined by the user, in other operations or steps performed by the user. Next, a determination is made as to whether the diagnosis is complete (step 704). If the diagnosis is not complete, the process returns to step 702. Otherwise, a determination is made as to whether the problem has been identified by the user (step 706). The user may indicate that the problem has been identified through a selected user input to the agent.
If the problem has been identified, the recorded steps and the problem identification are stored (step 708) with the process terminating thereafter. If the problem has not been successfully identified, the process terminates without storing the recorded information. After this portion of the process is completed, the user then initiates a solution or repair process.
Turning now to
The process begins by detecting the beginning of the repair (step 800). This step detects a selected user input indicating that steps are now being taken to repair or solve the problem. These steps are recorded (step 802). Thereafter, a determination is made as to whether the repair has been successfully completed (step 804). If the repair has not been completed, the process returns to step 802. Otherwise, a determination is made as to whether the repair has been successful (step 806). The user provides an input to indicate whether the repair is successful in this particular case in response to a prompt from the agent process. If the repair is successful, these steps are stored with the recorded steps and the problem identification to form a solution (step 808). Thereafter, the solution is sent to the server (step 810) with the process terminating thereafter.
With reference again to step 806, if the repair is not successful, the recorded steps for the diagnosis and solution are discarded (step 812) with the process terminating thereafter.
Turning now to
The process begins by receiving a solution from an agent (step 900). A determination is made as to whether the recorded steps in the solution are present in the rules database for the diagnosed problem (step 902). This determination is made by searching for the problem identification in the rules database. In these examples, the problem identification is a unique identifier for a particular problem. If the recorded steps are found in the rules database, a determination is made as to whether the steps taken to solve the problem in the received solution matched those in the rules database (step 904).
If a match does not occur, differences in the steps are identified (step 906). A notification is then sent to the administrator (step 908). This particular example allows the administrator to determine whether an update should occur. A determination is made as to whether to update the current steps (step 910). If an update is to occur, the steps in the rules database are updated with the new steps in the received solution (step 912) with the process terminating thereafter. This update may include eliminating steps from the current solution as well as adding new steps.
With reference again to step 910, if the current steps are not to be updated, the process terminates without making changes to the rules database. Turning back to step 904, if a match does occur, then the steps in the solution are identical to those in the rules database and no updates are made. In this case, the process terminates. With reference back to step 902, if the solution is not present in the rules database for the diagnosed problem, the steps in the solution are stored in the rules database for this particular problem (step 914) with the process terminating thereafter.
With reference now to
Turning to
Thus, the present invention provides an improved method, apparatus, and computer instructions for a distributed autonomic solutions repository. In these examples, rules database 412 in
Variations described for the present invention can be realized in any combination desirable for each particular application. Thus particular limitations, and/or embodiment enhancements described herein, which may have particular advantages to a particular application need not be used for all applications. Also, not all limitations need be implemented in methods, systems and/or apparatus including one or more concepts of the present invention.
The present invention can be realized in hardware, software, or a combination of hardware and software. A visualization tool according to the present invention can be realized in a centralized fashion in one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system—or other apparatus adapted for carrying out the methods and/or functions described herein—is suitable. A typical combination of hardware and software could be a general purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein. The present invention can also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which—when loaded in a computer system—is able to carry out these methods.
Computer program means or computer programs in the present context include any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after conversion to another language, code or notation, and/or reproduction in a different material form.
Thus, the invention includes an article of manufacture which comprises a computer usable medium having computer readable program code means embodied therein for causing a function described above. The computer readable program code means in the article of manufacture comprises computer readable program code means for causing a computer to effect the steps of a method of this invention. Similarly, the present invention may be implemented as a computer program product comprising a computer usable medium having computer readable program code means embodied therein for causing a function described above. The computer readable program code means in the computer program product comprising computer readable program code means for causing a computer to effect one or more functions of this invention. Furthermore, the present invention may be implemented as a program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for causing one or more functions of this invention.
It is noted that the foregoing has outlined some of the more pertinent objects and embodiments of the present invention. This invention may be used for many applications. Thus, although the description is made for particular arrangements and methods, the intent and concept of the invention is suitable and applicable to other arrangements and applications. It will be clear to those skilled in the art that modifications to the disclosed embodiments can be effected without departing from the spirit and scope of the invention. The described embodiments ought to be construed to be merely illustrative of some of the more prominent features and applications of the invention. Other beneficial results can be realized by applying the disclosed invention in a different manner or modifying the invention in ways known to those familiar with the art.
Chefalas, Thomas E., Mastrianni, Steven J.
Patent | Priority | Assignee | Title |
10026064, | Sep 13 2013 | Microsoft Technology Licensing, LLC | Automatically recommending updates based on stored lifecycle information |
10268473, | Sep 13 2013 | Microsoft Technology Licensing, LLC | Update installer with process impact analysis |
7761733, | Mar 07 2005 | FUJIFILM Business Innovation Corp | Image-processing system, image-processing method, and computer readable storage medium |
7860841, | Sep 09 2005 | SAP SE | Method and apparatus to support mass changes to business objects in an integrated computer system |
8230418, | Aug 07 2008 | International Business Machines Corporation | Computer program product for evaluating the workloads of installation plans in quantity by building a pre-requisite relation knowledge-base |
8250563, | Oct 16 2003 | International Business Machines Corporation | Distributed autonomic solutions repository |
8291319, | Aug 28 2009 | International Business Machines Corporation | Intelligent self-enabled solution discovery |
8621442, | Feb 09 2011 | Xenogenic Development Limited Liability Company | Quicker translation of a computer program source code |
9230209, | May 19 2006 | International Business Machines Corporation | Scope and distribution of knowledge in an autonomic computing system |
9626176, | Sep 13 2013 | Microsoft Technology Licensing, LLC | Update installer with technical impact analysis |
9665359, | Sep 13 2013 | Microsoft Technology Licensing, LLC | Automatically resolving conflicts after installation of selected updates in a computer system |
9703543, | Sep 13 2013 | Microsoft Technology Licensing, LLC | Update installer with process impact analysis |
9830142, | Sep 13 2013 | Microsoft Technology Licensing, LLC | Automatic installation of selected updates in multiple environments |
Patent | Priority | Assignee | Title |
5634114, | Nov 18 1993 | Intel Corporation | Dynamic link library version negotiation |
5892953, | Apr 15 1991 | LENOVO SINGAPORE PTE LTD | Corrective service facility |
5945988, | Jun 06 1996 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Method and apparatus for automatically determining and dynamically updating user preferences in an entertainment system |
5960204, | Oct 28 1996 | Oracle International Corporation | System and method for installing applications on a computer on an as needed basis |
6049671, | Apr 18 1996 | ZHIGU HOLDINGS LIMITED | Method for identifying and obtaining computer software from a network computer |
6070185, | May 02 1997 | Alcatel Lucent | Technique for obtaining information and services over a communication network |
6425126, | May 19 1999 | International Business Machines Corporation | Apparatus and method for synchronizing software between computers |
6501995, | Jun 30 1999 | SCHNEIDER ELECTRIC SYSTEMS USA, INC | Process control system and method with improved distribution, installation and validation of components |
6611498, | Sep 26 1997 | Verizon Patent and Licensing Inc | Integrated customer web station for web based call management |
6637029, | Jul 03 1997 | Cisco Technology, Inc | Intelligent electronic program guide |
6718546, | Apr 23 1999 | International Business Machines Corporation | Application management |
6782495, | Jun 19 2001 | Xerox Corporation | Method for analyzing printer faults |
6789255, | Dec 19 1997 | Microsoft Technology Licensing, LLC | Determining update availability via set intersection over a sub-optimal pathway |
6826534, | Jun 07 1999 | HEWLETT-PACKARD DEVELOPMENT COMPANY L P | Agent and method for dynamically scheduling publication in an automated document delivery system |
6948164, | Dec 14 1998 | NXP, B V F K A FREESCALE SEMICONDUCTOR, INC | Method and system for modifying executable code to add additional functionality |
6956845, | Sep 26 1997 | Verizon Patent and Licensing Inc | Integrated customer web station for web based call management |
6968550, | May 19 1999 | International Business Machines Corporation | Apparatus and method for synchronizing software between computers |
6986134, | Mar 16 1999 | Oracle America, Inc | Lightweight global distribution mechanism |
6990660, | Sep 22 2000 | IVANTI, INC | Non-invasive automatic offsite patch fingerprinting and updating system and method |
7055146, | Mar 08 2001 | Microsoft Technology Licensing, LLC | Method and system for dynamically inserting modifications for identified programs |
7073172, | Sep 21 1998 | Microsoft Technology Licensing, LLC | On demand patching of applications via software implementation installer mechanism |
7225249, | Sep 26 1997 | Verizon Patent and Licensing Inc | Integrated systems for providing communications network management services and interactive generating invoice documents |
7236486, | Sep 26 1997 | Verizon Patent and Licensing Inc | Integrated customer web station for web based call management |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Oct 15 2003 | CHEFALAS, THOMAS E | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014619 | /0909 | |
Oct 15 2003 | MASTRIANNI, STEVEN J | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014619 | /0909 | |
Oct 16 2003 | International Business Machines Corporation | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Mar 11 2008 | ASPN: Payor Number Assigned. |
Aug 15 2011 | REM: Maintenance Fee Reminder Mailed. |
Jan 08 2012 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Jan 08 2011 | 4 years fee payment window open |
Jul 08 2011 | 6 months grace period start (w surcharge) |
Jan 08 2012 | patent expiry (for year 4) |
Jan 08 2014 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jan 08 2015 | 8 years fee payment window open |
Jul 08 2015 | 6 months grace period start (w surcharge) |
Jan 08 2016 | patent expiry (for year 8) |
Jan 08 2018 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jan 08 2019 | 12 years fee payment window open |
Jul 08 2019 | 6 months grace period start (w surcharge) |
Jan 08 2020 | patent expiry (for year 12) |
Jan 08 2022 | 2 years to revive unintentionally abandoned end. (for year 12) |