Protection in Persistent Object Systems

Persistent programming is concerned with the creation and manipulation of data with arbitrary lifetimes. This data is often valuable and therefore protected to ensure that it is free from misuse. The mechanisms used to protect the data vary with a tradeoff between static expression of the protection and the flexibility in modelling it. In this paper we explore the full range of protection mechanisms in persistent systems from static to dynamic checking and contrast it with the corresponding balance between safety and flexibility in the system. Protection by capabilities, dynamic universal union types, encapsulation, subtype inheritance, existential quantification and predicate defined invariants will be explored with reference to manipulating long lived data.

[1]  Edmund M. Clarke,et al.  Fast Maintenance of Semantic Integrity Assertions Using Redundant Aggregate Data , 1980, VLDB.

[2]  John Rosenberg,et al.  MONADS-PC - a capability-based workstation to support software engineering , 1985 .

[3]  Richard C. H. Connor,et al.  Existentially Quantified Typed as a Database Viewing Mechanism , 1990, EDBT.

[4]  Jack B. Dennis,et al.  Programming semantics for multiprogrammed computations , 1966, CACM.

[5]  Ronald Morrison,et al.  Polymorphic Names, Types, Constancy and Magic in a Type Secure Persistent Object Store , 1987, POS.

[6]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[7]  David W. Stemple,et al.  Exceeding the Limits of Polymorphism in Database Programming Languages , 1990, EDBT.

[8]  Ronald Morrison,et al.  Bindings persistent programming languages , 1988, SIGP.

[9]  John C. Mitchell,et al.  Abstract types have existential type , 1988, TOPL.

[10]  Tomasz Imielinski,et al.  Integrity checking for multiple updates , 1985, SIGMOD '85.

[11]  Barbara Liskov,et al.  A language extension for expressing constraints on data access , 1978, CACM.

[12]  C. S. Wallace,et al.  A Password-Capability System , 1986, Comput. J..

[13]  B. R. S. Buckingham,et al.  A hardware implementation of capability-based addressing , 1980, OPSR.

[14]  Butler W. Lampson,et al.  A Kernel Language for Abstract Data Types and Modules , 1984, Semantics of Data Types.

[15]  Renzo Orsini,et al.  Types for Databases: The Galileo Experience , 1989, DBPL.

[16]  Maurice V. Wilkes,et al.  The Cambridge CAP computer and its operating system (Operating and programming systems series) , 1979 .

[17]  Robert S. Fabry,et al.  Capability-based addressing , 1974, CACM.

[18]  David S. Munro,et al.  Stability in a Persistent Store Based on a Large Virtual Memory , 1990, Security and Persistence.

[19]  Ronald Morrison,et al.  An Approach to Persistent Programming , 1989, Comput. J..

[20]  William A. Wulf,et al.  HYDRA/C.Mmp, An Experimental Computer System , 1981 .

[21]  Edward A. Feustel,et al.  On The Advantages of Tagged Architecture , 1973, IEEE Transactions on Computers.

[22]  Lawrence J. Henschen,et al.  Maintaining state constraints in relational databases: a proof theoretic basis , 1989, JACM.

[23]  Raymond A. Lorie,et al.  Physical integrity in a large segmented database , 1977, TODS.

[24]  Ronald Morrison,et al.  Binding and Type Checking in Database Programming Languages , 1988, Comput. J..

[25]  David W. Stemple,et al.  Automatic verification of database transaction safety , 1989, ACM Trans. Database Syst..