The Spring Object Model
Sanjay R. Radia, Graham Hamilton, Peter B. Kessler, and Michael L. Powell
SunSoft, Inc.
2550 Garcia Avenue, MTV19-216
Mountain View, CA 94043
Sanjay.Radia@Eng.Sun.Com
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.
Download the full text of this paper in
ASCII (62,517 bytes) and
POSTSCRIPT (121,393 bytes) form.
To Become a USENIX Member, please see our
Membership Information.