Distributed systems are inherently more complex to program than non-distributed systems. In an effort to reduce this complexity, much recent work has focused on tools that assist in the construction and programming of distributed systems and applications, shifting complexity to the tools. The topic of this thesis is the design of an efficient and simple framework for distributed object computing. Objects are the unit of distribution in distributed object systems. Therefore, the framework provides migration of objects between different address spaces possibly separated by a network. In order to shield programmers from distribution aspects, the location of objects is made transparent by the framework. Orbit is validated by adapting EVOLVE, a wavelet-based volume rendering application. For the sake of simplicity, a homogeneous environment is assumed.
In this thesis, a distributed object system, distributing some aspects
of object management to proxy objects has been designed and examined on
SGI IRIX 5.3/6.2. A slim and efficient system emerged, proving delegation
of concern to proxy objects to be a both powerful and elegant solution.
An existing object-oriented application (EVOLVE) has been adapted to the
framework, validating concepts and implementation. Latency has been reduced
by a factor 40 when TCP's Nagle Algorithm was disabled (ND) and connection
caching was introduced (CC). The diagram shown below indicates the performance
gain and compares it to raw TCP.
Future work includes load balancing by an object-migrating monitor, a stub-generating
precompiler and distributed garbage collection.
