The spring object model

  • Authors:
  • Sanjay R. Radia;Graham Hamilton;Peter B. Kessler;Michael L. Powell

  • Affiliations:
  • SunSoft, Inc., Mountain View, CA;SunSoft, Inc., Mountain View, CA;SunSoft, Inc., Mountain View, CA;SunSoft, Inc., Mountain View, CA

  • Venue:
  • COOTS'95 Proceedings of the USENIX Conference on Object-Oriented Technologies on USENIX Conference on Object-Oriented Technologies (COOTS)
  • Year:
  • 1995

Quantified Score

Hi-index 0.00

Visualization

Abstract

The Spring Object Model provides a basis for building operating systems, applications, and other software components for a modern distributed computing environment. All services and abstractions--whether local or remote; system, extension, or user; library or server--are structured as objects. Objects have strongly typed interfaces specified in an interface definition language. Spring forces a clear separation of interface and implementation; no implementation properties are allowed in the interface. It supports multiple interface inheritance, which is used to structure the system abstractions and provides the basis of extending and evolving them. Interfaces are used to define boundaries of software components which can be mapped to different address space and machine boundaries. The model provides parameter passing modes that are especially useful for distributed computing but which can be optimized for the local case. This allows one to construct microkernels with the option of configuring components in the same address space for improved performance. Objects are instances of interfaces, on which clients can perform operations. A client of an object is generally unaware of the location of the object's implementation, and can perform operations on the object and pass the object around freely. The representation of a Spring object is not a fixed piece of information such as a unique identifier; instead, it can be tailored to meet different needs using the subcontract abstraction.