Browse Prior Art Database

Persistent Object Storage in the OS/2 Workplace Shell

IP.com Disclosure Number: IPCOM000113879D
Original Publication Date: 1994-Oct-01
Included in the Prior Art Database: 2005-Mar-27
Document File: 2 page(s) / 117K

Publishing Venue

IBM

Related People

Andrew, CA: AUTHOR [+2]

Abstract

Disclosed is a programming interface to facilitate the development of programs for the OS/2* Workplace Shell implementing the "perfect save" concept, which provides that all actions taken by a user through a graphical user interface will take place immediately, causing "persistent" changes to the state of the system. This user interface concept contrasts with the use of a dialog window having an "Ok" pushbutton to make selected changes take effect and a "Cancel" pushbutton to prevent such changes. This programming interface deals with a need to maintain a persistent record of the state of a system capable of continual change without affecting the performance of the system.

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

Persistent Object Storage in the OS/2 Workplace Shell

      Disclosed is a programming interface to facilitate the
development of programs for the OS/2* Workplace Shell implementing
the "perfect save" concept, which provides that all actions taken by
a user through a graphical user interface will take place
immediately, causing "persistent" changes to the state of the system.
This user interface concept contrasts with the use of a dialog window
having an "Ok" pushbutton to make selected changes take effect and a
"Cancel" pushbutton to prevent such changes.  This programming
interface deals with a need to maintain a persistent record of the
state of a system capable of continual change without affecting the
performance of the system.

      The Workplace Shell programming model is based on the idea that
a programmer can derive new classes of persistent user interface
objects without concern about where the instance state data of such
objects is stored.  Once a "persistent" object is created, it
continues to exist regardless of power outages or the program loading
activity occurring when the system is turned on.  In the Workplace
Shell, a "base storage class" is an object class that is wholly
responsible for the persistent storage of state data for instances of
all object classes derived from the base storage class.

      As illustrated in the Figure, all base classes are derived from
the root workplace object class, "WPObject," with three fundamental
base storage classes being defined as "WPFileSystem," "WPAbstract,"
and "WPTransient."

      WPFileSystem is the file system base class which stores object
instance data for objects existing as files and directories within
the file system.  Workplace Shell uses the Extended Attributes (EAs)
provided by the OS/2 file system to store away the persistent object
state data for these objects, guaranteeing that the persistent state
of the object is kept along side the file or directory that it
represents.  In this way, a file or directory can be moved from one
system to another, maintaining the same object state data, whether
the file or directory is moved using the shell interface, or by
manipulation of the file or directory with the command line
interface.  Examples of WPFileSystem based objects in the Workplace
Shell are the desktop object, all folder objects, and data file
objects.

      WPAbstract objects are mainly device objects and objects
pertaining to the system configuration of a particular user.
Therefor, abstract object state data is stored in a central profile
file, OS2.INI, which is normally unique for each user.  Since the
profile file acts as a storage place for these abstract objects,
every different user of an OS/2 system can have different instances
of the common abstract objects, with each such instance having its
unique settings.  Some examples of WPAbstract based objects in the
Workplace Shell are program reference objects, the objects in the
System...