Sign in

Online upgrade of container-based software components

 Masood Seyed Mortazavi
Techniques for online upgrading of software components are disclosed. The techniques are especially suited for online upgrading of container-based software components in object oriented computing environments. A multi-stage online upgrade system can facilitate online installation of the container...
Inventor: Masood Seyed Mortazavi
Assignees: Sun Microsystems, Inc.
Primary Examiner: Anil Khatri
Attorneys: Beyer Weaver & Thomas, LLP

U.S. Classification
717/168; 717/171; 717/177

View patent at USPTO

Citations

Patent NumberTitleIssue date
5920725Run-time object-synthesis and transparent client/server updating of distributed objects using a meta server of all object descriptorsJul 6, 1999
6138274Method and apparatus for updating an online computer programOct 24, 2000
6360363Live upgrade process for object-oriented programsMar 19, 2002
6557054Method and system for distributing updates by presenting directory of software available for user installation that is not already installed on user stationApr 29, 2003
6578198Personal computer upgradeJun 10, 2003
6714979Data warehousing infrastructure for web based reporting toolMar 30, 2004
6745382CORBA wrappers for rules automation technologyJun 1, 2004
6874142System and method for automatically setting applet latest versionMar 29, 2005
6874143Architectures for and methods of providing network-based software extensionsMar 29, 2005

Claims

What is claimed is:

1. A method of upgrading software in a object oriented computing environment, said method comprising:

loading an online upgrade module, said online upgrade module including a first container based software component, an online upgrade listener and an online upgrade specification, wherein said first container based software component is an upgrade of a second container based software component which is capable of operating in said object oriented computing environment;

notifying an online-upgrade controller to initiate an online upgrade process;

performing by the online-upgrade controller a plurality of operations to facilitate online upgrade of said second container based software component to said first container based software component;

wherein said plurality of operations are performed in multiple stages comprising:
an upgrade prepare stage;
a pre-upgrade stage comprising: loading one or more listener classes associated with said online upgrade listener, instantiating said one or more listeners associated with said on-line upgrade listener, and performing one or more callbacks via said on-line upgrade listener;
one or more upgrade operations;
a post-upgrade stage, and
a commit stage which comprises: assuring successful draining of said second container based software component, performing one or more callbacks, unloading said second container based software component; and conveying information about said assuring, performing, or unloading to a management entity.

2. A method as recited in claim 1, wherein said first container based software component said online upgrade listener, and said online upgrade specification are packaged together as a software package.

3. A method as recited in claim 2, wherein said online upgrade specification is implemented in a manifest portion of said software package.

4. A method as recited in claim 2, wherein said first container based software component is an Enterprise Java Bean II software component.

5. A method as recited in claim 1, wherein said online upgrade can be performed without interruption of services.

6. A method as recited in claim 1, wherein at least one of the first or second container based software components are operable during said software upgrade.

7. A method of upgrading container based software components in multiple stages, said method comprising:

loading a first container based application program, said application program being a new version of a second container based application program;

performing a callback to determine whether the first application program is ready for service;

performing a redirect callback to the first application program; and

conveying information to a management entity about said loading, or said callbacks;
wherein said multiple stages of upgrading comprises:
an upgrade prepare stage;
a pre-upgrade stage;
one or more upgrade operations; and
a post-upgrade stage.

8. A method as recited in claim 7,

wherein said method further comprises a commit stage;

wherein said commit stage includes:
assuring draining an older version of an application program;
performing one or more callbacks; and
unloading said older version of application program; and
conveying information about said assuring, performing, or unloading to a management entity.

9. A method as recited in claim 8, wherein said upgrade prepare stage comprises:

conveying information about said loading, instantiation, or performing to a management entity.

10. A method as recited in claim 9, wherein said management entity is a cluster manager.

11. A method as recited in claim 7, wherein said two or more stages further comprise:

a rollback stage.

12. A method as recited in claim 7, wherein said two or more stages further comprise of at feast one of a commit stage and a rollback stage.

13. A method as recited in claim 7,

wherein said upgrade pre-upgrade stage comprises performing one or more callbacks;

wherein said post-upgrade operations comprises one or more callbacks.

14. A method as recited in claim 13, wherein said method further comprises conveying information to a management entity.

15. A method as recited in claim 14, wherein said management entity is a cluster manager.

16. A computer system for upgrading software in a object oriented computing environment, wherein said computer system is capable of:

upgrading software in a object oriented computing environment; said method comprising:

loading an online upgrade module, said online upgrade module including a first container based software component, an online upgrade listener and an online upgrade specification, wherein said first container based software component is an upgrade of a second container based software component which is capable of operating in said object oriented computing environment;

notifying an online-upgrade controller to initiate an online upgrade process;

performing by the online-upgrade controller a plurality of operations to facilitate online upgrade of said second container based software component to said first container based software component;
wherein said plurality of operations are performed in multiple stages comprising:
an upgrade prepare stage;
a pre-upgrade stage comprising: loading one or more listener classes associated with said online upgrade listener, instantiating said one or more listeners associated with said on-line upgrade listener, and performing one or more callbacks via said on-line upgrade listener;
one or more upgrade operations;
a post-upgrade stage, and
a commit stage which comprises: assuring successful draining of said second container based software component performing one or more callbacks, unloading said second container based software component; and conveying information about said assuring, performing, or unloading to a management entity.

Drawings