A compliant persistent architecture

The changing needs of modern application systems demand new and radical software architectures to support them. The attraction of persistent systems is that they define precisely the extent to which they are open, thereby allowing the dynamically changing resource requirements of applications to be tracked accurately within the persistent environment. Thus, an ever-growing body of work is being established to study the nature of running applications, and to use the information gleaned, to improve the runtime execution of these applications. Here we propose a new architectural approach to constructing persistent systems that accommodates, and thus is compliant to, the needs of particular applications. By separating policy from mechanism in all components, the architecture may be tailored to the policy needs of the application. ‡‡ We first propose a generic architecture for compliance, and then show how it may be instantiated. Finally, we describe an example of how the architecture operates in a manner that is compliant to a target application. We postulate, since we have not yet measured, that the benefits of compliant architectures will be a reduction in complexity, with corresponding gains in flexibility, portability, understandability in terms of failure semantics, and performance. Copyright 2000 John Wiley & Sons, Ltd.

[1]  Kenneth R. Mayes,et al.  Arena - A run-time operating system for parallel applications , 1997, PDP.

[2]  Brian N. Bershad,et al.  Scheduler activations: effective kernel support for the user-level management of parallelism , 1991, TOCS.

[3]  Quintin I. Cutts,et al.  Reconciling Buffer Management with Persistence Optimisations , 1998, POS/PJW.

[4]  Brian Warboys,et al.  User-level threads on a general hardware interface , 1995, OPSR.

[5]  David Hulse,et al.  Trends in Operating System Design: Towards a Customisable Persistent Micro-Kernel , 1997 .

[6]  Alan Dearle,et al.  On the construction of persistent programming environments , 1988 .

[7]  B. Warboys,et al.  The IPSE Project Process Modelling as a Basis for a Support Environment , 1989 .

[8]  David S. Munro On the integration of concurrency, distribution and persistence , 1994 .

[9]  Karsten Schwan,et al.  Experimentation with a Reconfigurable Microkernel , 1993, USENIX Microkernels and Other Kernel Architectures Symposium.

[10]  Brian Warboys,et al.  The Software Process: Modelling and Technology , 1999, Software Process: Principles, Methodology, Technology.

[11]  John Rosenberg,et al.  Operating system support for persistent and recoverable computations , 1996, CACM.

[12]  Frans Henskens,et al.  An examination of operating system support for persistent object systems , 1992, Proceedings of the Twenty-Fifth Hawaii International Conference on System Sciences.

[13]  David S. Munro,et al.  Concurrent Shadow Paging in the Flask Architecture , 1994, POS.

[14]  Karsten Schwan,et al.  CHAOSarc: kernel support for multiweight objects, invocations, and atomicity in real-time multiprocessor applications , 1993, TOCS.

[15]  Quintin I. Cutts,et al.  Analysing Persistent Language Applications , 1994, POS.

[16]  Santosh K. Shrivastava,et al.  An overview of the Arjuna distributed programming system , 1991, IEEE Software.

[17]  David S. Munro,et al.  Concurrent Shadow Paging in the Flask Architecture , 1994, POS.

[18]  Ronald Morrison,et al.  A generic persistent object store , 1992, Softw. Eng. J..

[19]  Richard C. H. Connor,et al.  The Persistent Abstract Machine , 1989, POS.

[20]  Alan Dearle,et al.  Operating system support for persistent systems: past, present and future , 2000, Softw. Pract. Exp..

[21]  Evangelos P. Markatos,et al.  First-class user-level threads , 1991, SOSP '91.

[22]  Richard C. H. Connor,et al.  Mechanisms for controlling evolution in persistent object systems , 1993, Microprocess. Microsystems.

[23]  Thomas Breitbach,et al.  Meeting the application in user space , 1994, EW 6.

[24]  Suzanne W. Dietrich,et al.  A Practitioner's Introduction to Database Performance Benchmarks and Measurements , 1992, Comput. J..

[25]  Ann Marie Grizzaffi Maynard,et al.  Contrasting characteristics and cache performance of technical and multi-user commercial workloads , 1994, ASPLOS VI.

[26]  Ronald Morrison,et al.  On the development of Algol , 1979 .

[27]  John Rosenberg,et al.  The MONADS Architecture - A Layered View , 1990, Workshop on Persistent Objects.

[28]  Dawson R. Engler,et al.  Exokernel: an operating system architecture for application-level resource management , 1995, SOSP.

[29]  Antony L. Hosking,et al.  Residency Check Elimination for Object-Oriented Persistent Language , 1996, POS.

[30]  Luca Cardelli,et al.  Typeful Programming , 1989, Formal Description of Programming Concepts.

[31]  Roy H. Campbell,et al.  Choices (class hierarchical open interface for custom embedded systems) , 1987, OPSR.

[32]  Ronald Morrison,et al.  Procedures as persistent data objects , 1985, TOPL.

[33]  David W. Wall,et al.  Predicting program behavior using real or estimated profiles , 2004, SIGP.

[34]  Shivakant Mishra,et al.  Tools for implementing network protocols , 1989, Softw. Pract. Exp..

[35]  R. F. Bruynooghe,et al.  PSS: A System for Process Enactment , 1991, Proceedings. First International Conference on the Software Process,.

[36]  David S. Munro,et al.  ProcessBase Reference Manual (Version 1.0.6) , 1999 .

[37]  Leon J. Osterweil,et al.  Specifying Coordination in Processes Using Little-JIL , 1998 .

[38]  Wolfgang Reisig,et al.  Informal Introduction to Petri Nets , 1996, Applications and Theory of Petri Nets.

[39]  Florian Matthes,et al.  An open system architecture for a persistent object store , 1992 .

[40]  Renzo Orsini,et al.  GALILEO: a strongly-typed, interactive conceptual language , 1985, TODS.

[41]  John Rosenberg,et al.  Grasshopper: An Orthogonally Persistent Operating System , 1994, Comput. Syst..

[42]  Florian Matthes,et al.  System Construction in the Tycoon Environment: Architectures, Interfaces and Gateways , 1993 .

[43]  Malcolm Atkinson,et al.  Measuring Persistent Object Systems , 1992, POS.

[44]  R. MayesDepartment,et al.  Trends in Operating Systems towards Dynamic User-level Policy Provision , 1994 .

[45]  Ronald Morrison,et al.  The persistent store as an enabling technology for integrated project support environments , 1985, ICSE '85.

[46]  Dhiraj K. Pradhan,et al.  Program fault tolerance based on memory access behavior , 1991, [1991] Digest of Papers. Fault-Tolerant Computing: The Twenty-First International Symposium.

[47]  Quintin I. Cutts,et al.  Optimizing the Read and Write Barriers for Orthogonal Persistence , 1998, POS/PJW.

[48]  William J. Bolosky,et al.  Mach: A New Kernel Foundation for UNIX Development , 1986, USENIX Summer.

[49]  Brian N. Bershad,et al.  PRESTO: A system for object‐oriented parallel programming , 1988, Softw. Pract. Exp..

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

[51]  James Philbin Customizable Policy Management in the Sting Operating System , 1992, Parallel Symbolic Computing.

[52]  Alfred L. Brown,et al.  Persistent object stores , 1988 .

[53]  R. G. G. Cattell,et al.  Object operations benchmark , 1992, TODS.

[54]  Graham N. C. Kirby,et al.  Persistent programming with strongly typed linguistic reflection , 1992, Proceedings of the Twenty-Fifth Hawaii International Conference on System Sciences.

[55]  Ronald Morrison,et al.  Specifying Flexible Concurrency Control Schemes: an Abstract Operational Approach , 2000 .

[56]  Richard C. H. Connor,et al.  Persistent Hyper-Programs , 1992, POS.

[57]  Ronald Morrison,et al.  A persistent view of encapsulation , 1998 .

[58]  Allen D. Malony,et al.  Experimentally Characterizing the Behavior of Multiprocessor Memory Systems. A Case Study , 1990, IEEE Trans. Software Eng..

[59]  William A. Wulf,et al.  HYDRA , 1974, Commun. ACM.

[60]  Claude Kaiser,et al.  CHORUS Distributed Operating System , 1988, Comput. Syst..

[61]  Richard C. H. Connor,et al.  Unifying Interaction with Persistent Data and Program , 1994, IDS.

[62]  Malcolm P. Atkinson,et al.  Measuring Persistent Object Systems , 1992, Workshop on Persistent Objects.