Distributed Components Paper Abstracts

by Paul Sivilotti

We will link to the full papers as soon as we can.


Abstract: Specification, Composition, and Validation of Distributed Components

The formation of a distributed system from a collection of individual components requires the ability for components to exchange syntactically well-formed messages. Several technologies exist that provide this fundamental functionality, as well as the ability to locate components dynamically based on syntactic requirements. The formation of a correct distributed system requires, in addition, that these interactions between components be semantically well-formed. The method presented in this thesis is intended to assist in the development of correct distributed systems.

We present a specification methodology based on three fundamental operators from temporal logic: initially, next, and transient. From these operators we derive a collection of higher-level operators that are used for component specification. The novel aspect of our specification methodology is that we require that these operators be used in the following restricted manner:

Specification statements that conform to these two restrictions we call certificates.

The first restriction is motivated by our desire for these component specifications to be testable in a relatively efficient manner. In fact, we describe a set of simplified certificates that can be translated into a testing harness by a simple parser with very little programmer intervention. The second restriction is motivated by our desire for a simple theory of composition: If a certificate is a property of a component, that certificate is also a property of any system containing that component.

Another novel aspect of our methodology is the introduction of a new temporal operator that combines both safety and progress properties. The concept underlying this operator has been used implicitly before, but by extracting this concept into a first-class operator, we are able to prove several new theorems about such properties. We demonstrate the utility of this operator and of our theorems by using them to simplify several proofs.

The restrictions imposed on certificates are severe. Although they have pleasing consequences as described above, they can also lead to lengthy proofs of system properties that are not simple conjunctions. To compensate for this difficulty, we introduce collections of certificates that we call services. Services facilitate proof reuse by encapsulating common component interactions used to establish various system properties. <> We experiment with our methodology by applying it to several extended examples. These experiments illustrate the utility of our approach and convince us of the practicality of component-based distributed system development. This thesis addresses three parts of the development cycle for distributed object systems:

  1. the specification of systems and components,
  2. the compositional reasoning used to verify that a collection of components satisfy a system specification, and
  3. the validation of component implementations.

Abstract: A Distributed, Persistent Component Repository

Software components are the building blocks for larger systems. Component implementations, however, are transient; software vendors support products over a relatively short life cycle. This paper presents an infrastructure for software components that is based on the separation of specification and implementation. The keystone of this infrastructure is a distributed, persistent component repository.

This approach has two significant strengths. Firstly, it permits the laborious process of specification and reasoning to be amortized over more than the life span of a single component implementation. Secondly, it provides a uniform and universal ability both to access existing components and to publish new ones. The theoretical foundations of this infrastructure are presented as well as the engineering issues involved in its realization.


This page is maintained by Adam Rifkin and was last updated on November 21, 1997. The abstracts contained in this document were written by Paul Sivilotti, who is also the author of the full papers from which they came.