OrthogonalPersistence is a way to provide a uniform storage mechanism for any object regardless of its type or structure. This reaps benefits with objects containing nested structures of other objects.
that any object may persist (exist) for as long, or as short, a period as the object is required, and
that objects may be manipulated in the same manner regardless of their longevity.
Features
A system supporting OrthogonalPersistence will generally have the following features:
Uniform treatment of data structures
All data structures are treated equally, i.e. the programmer need not be concerned with the physical layout of the object.
Location Independence
LocationIndependence guarantees that data may be accessed in the same way regardless of it's location. A programmer need not be concerned with whether the data is in physical memory, on disk or across the network. This is not the same concept as LocationTransparency but is similar in concept to VirtualMemory as found in most commercial OSs.
Data Resilience
A system supporting OrthogonalPersistence must be resilient, i.e. it must be able to recover from a system crash. This is especially crucial in ObjectOriented Persistent systems because many interelationships will exist between the objects at any one time and these must be preserved to reconstruct the system after a failure.
Data Protection
Since a Persistent system provides a global object store access permissions must be controlled carefully to avoid data corruption.