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.