Patching environment for modifying a Java virtual machine...

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C711S006000, C707S793000, C717S152000

Reexamination Certificate

active

06202208

ABSTRACT:

TECHNICAL FIELD
The present invention relates in general to modifying an executing computer program, and in particular to a method and system for modifying a Java Virtual Machine (“JVM”) with a patch environment.
BACKGROUND OF THE INVENTION
Large-scale, complex computer systems, are brought into use through integration of software programs with a hardware platform. Simply put, the software program is a detailed plan or procedure for solving a problem, that is executed on a hardware platform. The hardware platform includes a microprocessor or microprocessors and associated support circuits such as electronic memory (such as random-access-memory or RAM, hard disk memory, or card memory) and input/output port circuits so that information can be passed between components of the system and users.
A telecommunication network is an example of such a complex system. Telecommunication networks facilitate communications between a large number of public and private communications systems by providing numerous functions such as switching, accounting, and time management. A telecommunications network provides these functions through network switches, or nodes, interconnected by links, or channels, of transmission media such as wire, fiber-optic cable, or radio waves. Some of the nodes are connected to one or more users.
Modern telecommunication networks require complex, automated switching and, to that end, software programs are written to increase switching efficiency in telecommunications systems, along with implementing service features and functions (for example, call waiting and caller id). A computer language for implementing such software programs is “Java.” Java was introduced by Sun Microsystems, Inc., of Palo Alto, Calif., and has been described as a simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, and dynamic computer language.
As with most software programs, a Java software program undergoes a debugging process to eliminate errors or malfunctions, also known as bugs, in the “detailed plan” or “procedure” for solving a problem. In this example, the problem solved is telephone network switching.
It is common for extensive debugging procedures to be conducted on a software package before it is installed on hardware platforms in the field. Nevertheless, some software bugs arise in a real-world environment because not all of the real-world contingencies can be simulated in a testing environment. Rarely are large-scale software systems, such as telecommunications software, without some errors that escaped product development testing. Such bugs may arise or be revealed within a short time of installation, or only after a period of time sufficient for operational conditions to reveal or cause a bug to appear.
While most switches are capable of loading a new Java software upgrade without stopping to correct and replace defective software, such loading of new software may result in undesirable effects and, furthermore, may not be feasible in many situations, such as during busy-hour processing, when a system may not have sufficient bandwidth to provide telephony service and simultaneously engage in a Java software upgrade. In such a case, the act of correcting the software bug may result in a worse service outage than resulted by the software bug itself. Telephone customers may then have to suffer with the bug until a suitable maintenance window becomes available to perform a wholesale software upgrade. Such a situation, however, is not acceptable because telephone switches which rely on the software are expected to experience no more than three minutes of downtime per year.
Alternatively, conventional patching techniques may be used to correct defective software without having a large impact on the performance or workload of the system. Such patching techniques, however, are limited to correcting relatively minor software defects.
While there are drawbacks associated with software corrective techniques, such as the aforementioned loading and/or patching of software without stopping, such techniques are not even available with most large-scale complex computer systems outside of the telecommunications industry.
Accordingly, a continuing search has been directed to the development of methods by which a defective software program may be corrected or modified without stopping the program, and without degrading the performance or workload capacity of the system controlled by the program. Such a continuing search has been further directed to a method by which a defective software program may be corrected or modified without requiring the wholesale installation and/or upgrade of a software application program and the associated labor costs, even if the program must be stopped.
SUMMARY OF THE INVENTION
Accordingly, provided is an apparatus and method to implement controlled incremental changes to a Java software application while being executed. The controlled incremental changes to a Java Virtual Machine (JVM), which operates to execute the Java software application, is made through a patch environment. The patch environment may implement the changes while the program is executing on the host computer, or without reloading the entire Java software application.


REFERENCES:
patent: 4542453 (1985-09-01), Patrick et al.
patent: 4751703 (1988-06-01), Picon et al.
patent: 5481713 (1996-01-01), Wetmore et al.
patent: 5619698 (1997-04-01), Lillich et al.
patent: 5790860 (1998-08-01), Wetmore et al.
patent: 5822591 (1998-10-01), Hochmuth
patent: 5873104 (1999-02-01), Tremblay et al.
patent: 5953736 (1999-09-01), O'Connor et al.
patent: 6049672 (2000-04-01), Shiell et al.
patent: 6072953 (2000-06-01), Cohen et al.
Jensen et al., “Security and Dynamic Class Loading in Java: A Formalisation,” IEEE Proceedings, 1998 International Conference on Computer Languages, May 14-16, 1998, pp. 4-15.
Bechini et al., “Design of a Toolset for Dynamic Analysis of Concurrent Java Programs,” IWPC '98 Proceedings, 6th International Workshop on Program Comprehension, Jun. 24-26, 1998, pp. 190-197.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Patching environment for modifying a Java virtual machine... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Patching environment for modifying a Java virtual machine..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Patching environment for modifying a Java virtual machine... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2461146

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.