Using meta-objects to adapt a persistent object system to meet application needs

  • Authors:
  • R. J. Stroud;Z. Wu

  • Affiliations:
  • University of Newcastle, Newcastle upon Tyne, NE1 7RU, UK;University of Newcastle, Newcastle upon Tyne, NE1 7RU, UK

  • Venue:
  • EW 6 Proceedings of the 6th workshop on ACM SIGOPS European workshop: Matching operating systems to application needs
  • Year:
  • 1994

Quantified Score

Hi-index 0.00

Visualization

Abstract

Data persistence is an important requirement for many application areas including multimedia applications, object-oriented databases and fault tolerant systems. However, the interface provided by conventional operating systems is often inappropriate for supporting persistence and may not provide enough control over hardware support for memory management. Therefore, it is difficult to build efficient and scalable persistent systems above a conventional operating system interface. An alternative approach is to develop a new operating system with an interface specially oriented towards supporting data persistence. The aim of such an approach is to remove the impedance mismatch between the requirements of persistent systems and the facilities provided by the operating system. In practice, however, this approach does not solve the problem but rather moves the problem to another layer.With the dramatic emergence of new application areas, persistent systems need to meet ever increasing user demands and expectations. Because applications have quite different and even contrary requirements, it is impossible for a persistent system to match all the demands from different application areas, no matter how clever the system is. In this paper, we suggest a new approach to designing persistent systems which opens up the system by using reflection and object-oriented programming techniques, thus allowing new requirements to be addressed transparently at the meta-level [Str93]. Instead of trying to design a single system that meets all of the requirements from different application areas, we design a flexible system whose behaviour can be modified incrementally using meta-level programming. In this way, users can get a persistent system that matches their requirements by customising the basic system.