Summary: | Current popular Object-Oriented Programming Languages(OOPL) have limited support for persistent objects. In general, they require programmers to write code to map objects to and from flat file structures. This requirement adds greatly to the programmer's burden and increases the chance of programming errors. The few OOPLs that provide persistence offer a simple load-store capability with little or no capacity for concurrently sharing persistent objects. To make maximum use of objects, they must be able to be persistently stored in a shareable format.Prior research addresses this limitation by using OOPLs as Data Manipulation Languages (DML) for object and non-object Database Management Systems (DBMS). Conceptually, the persistent variables in the program become objects in the database. The goal of this approach is to reduce or eliminate the impedance mismatch that exists between traditional DBMS and their DMLs.This approach has many advantages and is often the best choice for situations that require the management of a very large number of persistent objects. For simpler, but practical, situations this approach is an overkill. Instead, a persistent object capability should be a standard part of the programming language, independent of any DBMS component.To be most useful a persistence model should have certain characteristics: (1) Orthogonal persistence, (2) Object (vs. class) level persistence, (3) Dynamic persistence, and (4) Efficient object access. This thesis presents an approach to object persistence that provides all these characteristics by adding object persistence to an OOPL environment, specifically Smalltalk-80.
|