The assignee for this patent application is
Reporters obtained the following quote from the background information supplied by the inventors: "Today, there frequently are defects and/or security vulnerabilities or the like in pieces of software that make up an application. Often it takes time to move the fixes for the defects/vulnerabilities through the conventional process before the software application is deemed to be fixed. So, typically now if there is a bug, a developer needs to get an updated version of a piece of the software if using open source software, or a developer must pull up the source code and update the version himself, and then run it through the entire process of creating a version of the application with the update.
"In practice, a developer may find out that there is a problem with an open source component that is being used in a software application. The developer will research the fix, go back into the development environment, update the component, re-run the integration test to ensure that all is functional, and then progress through the release process to release a new version. There is no way to do this without manually scouring code to find the vulnerability or bug.
"In addition, there are situations where the ability to support a legacy custom application is much more problematic due to tack of understanding of the old application.
"Consider Microsoft's Patch Tuesday as an example of a conventional way in which patches are released. Patch Tuesday is normally only once a month. Subsequent patches (and hence updates to pieces of software) will not be released until the next Patch Tuesday. During the time after
In addition to obtaining background information on this patent application, VerticalNews editors also obtained the inventors' summary information for this patent application: "Accordingly, one or more embodiments provide a computer system. The computer system includes an i/o interface operable to transmit and receive communications over at least a portion of a communication network; and a processor. The processor is configured to facilitate: obtaining a fingerprint that indicates classes that comprise the application; and referring to the classes indicated in the fingerprint, looking up whether any of the classes that comprise the application is a broken class. For each of the classes in the application which is determined to be the broken class: the embodiment can substitute a fixed class for the broken class, when the broken class is loaded at class load time for the application; or substitute a fixed class method into the broken class, when the broken class is loaded at class load time for the application; or substitute fixed byte code For broken byte code corresponding to the broken class, when the broken class is loaded at class load time for the application; or unload the broken class and then loading the fixed class in place of the broken class, when the application is running; or replace the broken class inside the static application with the fixed class, without replacing classes which are not broken, when the application is not running
"According to another embodiment, the fingerprint for the application is obtained from a class path of the application.
"According to yet another embodiment, the fingerprint for the application is obtained on a just-in-time basis at class load time.
"Yet another embodiment includes scanning, at run time with a byte code interpreting virtual machine running the application, the classes before they are being loaded to determine the classes that comprise the application.
"Still another embodiment includes inserting an agent that performs the scanning into the byte code interpreting virtual machine before the classes begin loading.
"In a further embodiment, the application is run in a context of a byte code interpreting virtual machine.
"In an embodiment, the fixed classes to be substituted for the broken classes are served from a database.
"In another embodiment, the fingerprint for the application is obtained based on a scan of the application external to a virtual machine on which the application is configured to be executed.
"A further embodiment is a computer-implemented method for correcting a portion of an application, according to one or more of the above embodiments.
"Still another embodiment is a non-transitory computer-readable medium comprising instructions for execution by a computer, the instructions including a computer-implemented method for correcting a portion of an application, the instructions for implementing the method in a processor.
"Moreover, the purpose of the foregoing abstract is to enable the U.S. Patent and Trademark Office and the public generally, and especially the scientists, engineers and practitioners in the art who are not familiar with patent or legal terms or phraseology, to determine quickly from a cursory inspection the nature and essence of the technical disclosure of the application. The abstract is neither intended to define the invention of the application, which is measured by the claims, nor is it intended to be limiting as to the scope of the invention in any way.
BRIEF DESCRIPTION OF' THE DRAWINGS
"The accompanying figures, where like reference numerals refer to identical or functionally similar elements and which together with the detailed description below are incorporated in and form part of the specification, serve to further illustrate various exemplary embodiments and to explain various principles and advantages in accordance with the embodiments.
"FIG. 1 is a data flow diagram illustrating a summary of several embodiments for providing a correction to an application;
"FIG. 2 is a block diagram illustrating relevant portions of a computer system;
"FIG. 3 is a flow chart illustrating a procedure to correct a portion of an application at class load time;
"FIG. 4 is a flow chart illustrating a procedure to correct a portion of an application when the application is running;
"FIG. 5 is a flow chart illustrating a procedure to correct a portion of an application when the application is static;
"FIG. 6 is a flow chart illustrating a patch providing data services; and
"FIG. 7 is a block diagram illustrating a software repository."
For more information, see this patent application: Jackson, Wayne; Fox,
Keywords for this news article include: Software, Legal Issues,
Our reports deliver fact-based news of research and discoveries from around the world. Copyright 2014, NewsRx LLC
Most Popular Stories
- Chinese May Have Spotted Malaysia Airlines Debris
- 3 Shot Dead in Venezuela Unrest
- Why Buffett Bets Big on Green Energy
- Better Pay Means Bigger Profits: Strategist
- Banks Buying Little From Minority Firms: Study
- Several Texas Cities Top Job Search List
- G7 Presses Russia to Pull Troops Out of Crimea
- Obama's 'Between Two Ferns' Appearance Has Conservatives Upset
- Senate Committee OKs Bill to Sanction Russia
- Wall Street Rally Heads Off 3rd Day of Decline