IP Library Granted Patent US 7,779,402
Granted Patent B2
US 7,779,402 · App. 11/466,224 · Granted Aug 17, 2010

System and method for fine grain method update of an application to provide continuous availability

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,779,402
App. No.
11/466,224
Granted
Aug 17, 2010
Kind
B2
Abstract

A system, method, and program product for updating a software program running in a middleware environment, such as a Java™ environment, are provided. An update request is received for a method loaded in the middleware environment. The request identifies a new version of the method and the method's class file. The new version is registered. Registering of the new version includes writing the new version to a heap managed by the middleware environment. In this manner, both the old version and the new version of the method can be executed. The update of the class file is scheduled for a future time. Subsequent requests are either routed to the old version of the method or re-routed to the new version. At the scheduled time, the class file is updated by replacing the old method with the new version.

Claims (69)

1. A computer-implemented method for updating a software program, the method comprising:

receiving an update request to update a method included in a middleware application, wherein the method is currently loaded in a middleware environment, and wherein the update request identifies a new version of the method and a class file that includes one or more methods including the method being updated;

registering the new version of the method, the registering including writing the new version of the method to a heap that is managed by the middleware environment;

scheduling an update of the class file for a future time;

prior to the scheduled future time, receiving a plurality of requests for the method, wherein each of the requests is received from a corresponding requestor;

identifying a routing policy;

for each of the received requests:

identifying a current connection between the method and the requestor that corresponds to the received request; and

determining whether to route the received request to the method or to the new version of the method, wherein the determination of whether to route the received request to the method or to the new version of the method is based on the routing policy and the current connection;

in response to the determining, routing one or more of the received requests for the method to the method;

in further response to the determining, re-routing the requests not routed to the method to the new version of the method;

executing the received requests in response to the routing and the re-routing; and

updating the class file at the scheduled future time, wherein the updating further comprises:

allocating a request queue;

queuing requests received after the updating has commenced to the request queue;

replacing the method with the new version of the method; and

after the replacing, routing the queued requests to the new version of the method included in the class file.

2. The method of claim 1 further comprising:

gathering usage data corresponding to the method;

analyzing the usage data, the analysis resulting in a preferred time to update the method; and

using the preferred time as the scheduled future time.

3. An information handling system comprising:

one or more processors;

a memory accessible by at least one of the processors;

a nonvolatile storage area accessible by at least one of the processors;

a middleware environment stored in the memory and executed by one or more of the processors;

a heap stored in the memory and managed by middleware environment, the heap used to store class files, wherein the class files include one or more methods; and

a set of instructions stored in the memory, wherein one or more of the processors executes the set of instructions in order to perform actions of:

receiving an update request to update one of the methods stored in the heap, wherein the update request identifies a new version of the method and one of the class files that includes the method being updated;

registering the new version of the method, the registering including writing the new version of the method to the heap;

scheduling an update of the class file for a future time;

prior to the scheduled future time, receiving a plurality of requests for the method, wherein each of the requests is received from a corresponding requestor;

identifying a routing policy;

for each of the received requests:

identifying a current connection between the method and the requestor that corresponds to the received request; and

determining whether to route the received request to the method or to the new version of the method, wherein the determination of whether to route the received request to the method or to the new version of the method is based on the routing policy and the current connection;

in response to the determining, routing one or more of the received requests for the method to the method;

in further response to the determining, re-routing the requests not routed to the method to the new version of the method;

executing the received requests in response to the routing and the re-routing; and

updating the class file at the scheduled future time, wherein the updating further comprises:

allocating a request queue;

queuing requests received after the updating has commenced to the request queue;

replacing the method with the new version of the method; and

after the replacing, routing the queued requests to the new version of the method included in the class file.

4. The information handling system of claim 3 further comprising an additional set of instructions in order to perform actions of:

gathering usage data corresponding to the method;

analyzing the usage data, the analysis resulting in a preferred time to update the method; and

using the preferred time as the scheduled future time.

5. A computer program product stored in a computer readable medium, comprising functional descriptive material that, when executed by a data processing system, causes the data processing system to perform actions that include:

receiving an update request to update a method included in a middleware application, wherein the method is currently loaded in a middleware environment, and wherein the update request identifies a new version of the method and a class file that includes one or more methods including the method being updated;

registering the new version of the method, the registering including writing the new version of the method to a heap that is managed by the middleware environment;

scheduling an update of the class file for a future time;

prior to the scheduled future time, receiving a plurality of requests for the method, wherein each of the requests is received from a corresponding requestor;

identifying a routing policy;

for each of the received requests:

identifying a current connection between the method and the requestor that corresponds to the received request; and

determining whether to route the received request to the method or to the new version of the method, wherein the determination of whether to route the received request to the method or to the new version of the method is based on the routing policy and the current connection;

routing one or more of the received requests for the method to the method;

in further response to the determining, re-routing the requests not routed to the method to the new version of the method;

executing the received requests in response to the routing and the re-routing; and

updating the class file at the scheduled future time, wherein the updating further comprises:

allocating a request queue;

queuing requests received after the updating has commenced to the request queue;

replacing the method with the new version of the method; and

after the replacing, routing the queued requests to the new version of the method included in the class file.

6. The computer program product of claim 5 further comprising functional descriptive material that, when executed by a data processing system, causes the data processing system to perform actions that include:

gathering usage data corresponding to the method;

analyzing the usage data, the analysis resulting in a preferred time to update the method; and

using the preferred time as the scheduled future time.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LINKEDIN CORPORATION
Reel/Frame 035201/0479 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2006
From: ABERNETHY, MICHAEL NEGLEY; GRIGSBY, TRAVIS M; KHALIL, SYED-MUASIR; THAI, TRUONG-AN HOAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 018347/0333 →