Browse Prior Art Database

Process for Dynamic Upgrade of an Object

IP.com Disclosure Number: IPCOM000116897D
Original Publication Date: 1995-Nov-01
Included in the Prior Art Database: 2005-Mar-31
Document File: 2 page(s) / 41K

Publishing Venue

IBM

Related People

Breslau, FC: AUTHOR [+3]

Abstract

A process is disclosed for dynamically upgrading a presently executing program object to a new version that is downward compatible, without significant disruption to other objects invoking the target object's methods.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 75% of the total text.

Process for Dynamic Upgrade of an Object

      A process is disclosed for dynamically upgrading a presently
executing program object to a new version that is downward
compatible, without significant disruption to other objects invoking
the target object's methods.

The following assumptions are imposed:
  o  The new version of an object is downward compatible with the old
      version.
  o  External data to the target object are unaffected by the
upgrade.

      Include a new "interrogate status" method into an object.  This
method collects and returns any internal non-transient object data
(i.e., any data that is kept within the object that retains its
meaning between invocations of the object's methods).  This method
may be coded as a part of the target object, or inherited from some
base object class (e.g., SOMobject in the IBM* System Object Model
(SOM) infrastructure).

When the new version of the object is to replace the old one, the
process is as follows:
  o  Serialize access to the executing object to ensure exclusive
      control.  Serialization can be part of object method
invocation,
      or implicit by using the Object Request Broker (ORB) or
built-in
      access primitives inherited from a base object class.
  o  Invoke the "interrogate status" method of the old object and
      obtain the current status data.
  o  Using the status data, place the new version of the object into
      the state of the old one...