The lightweight distributed objects system ...

Ken MacLeod

Lightweight Distributed Objects Overview


Table of Contents
Introduction
Examples

Introduction

Lightweight Distributed Objects (LDO) consists of a small set of protocol specifications and a series of implementation patterns used in the reference implementation.

Specifications

LDO Request Encoding as Objects

This specification covers how caller requests and responses are encoded as objects. It describes the responsibility of the caller to use the naming required by the callee and the responsibility of callee to validate request parameters and coerce parameters as necessary. It specifies the object types and encoding for communicating surrogate or remote objects and for handling garbage collection.

LDO Binary Serialization

This specification describes an on-the-wire protocol that uses a compact, binary encoding for objects.

LDO XML Serialization

This specification describes an on-the-wire protocol that uses a plaintext encoding of objects using Extensible Markup Language. This protocol can be used for debugging or experimentation.

Layering Requests over HTTP

This specification describes how LDO requests and replies can be sent and received using HyperText Transfer Protocol (HTTP).

not yet specified

  • authentication and authorization

  • protocol feature and stream layering negotiation

Reference Implementation and Patterns

Name Mapping using Delegation

This pattern describes how a delegate can be used by request encoding and object serialization implementations to simplify and externalize name mapping information. This allows for different mappings dependent on the server/callee and for internal use such as persistent storage.

Connection Class

This pattern describes methods for creating and managing client and server connections, including the default connection for receiving connection requests.

Connection Manager Class

This pattern describes a class that provides management for multiple connections that may be of different types or protocols. The Connection Manager can share information between multiple Connections, including global objects, authentication, and authorization.

Pitfalls in Distributed Computing

This paper discusses common issues in developing distributed applications and provides references and possible solutions for resolving them.

not yet organized

  • Python's get/set state methods for handling objects that don't need all their members serialized.