ResearchSelected PapersAndrew's Thesis

Describing and Supporting Complex Interactions in Distributed Systems

Andrew Berry

The University of Queensland, 2002

Abstract

The idea of building software that spans many computers has been a significant driver for research since the earliest days of computing. Despite this past effort, there are still considerable resources being applied to the problems of building distributed software systems. This thesis proposes an alternative approach to building distributed systems that is both pragmatic and has a sound theoretical basis. The approach is driven by the following key assertions:

  1. The construction of software systems has become an evolutionary rather than revolutionary process. New software must extend or incorporate old software.
  2. Distributed applications must often coordinate the activities of multiple participants with varying relationships. Static abstractions like client-server are too primitive and inflexible to describe such relationships.
  3. Communication networks cannot consistently deliver high-bandwidth, low-latency, low-failure communications. Distributed software must be able to deal with the degradation or loss of communication.

Given this context, this thesis describes Finesse, a system for describing and supporting the complex interactions of components in distributed applications. Finesse uses the notion of event relationships to describe the visible behaviour of components and how those behaviours are coordinated to satisfy the requirements of an application. There are three significant aspects of Finesse, each of which makes a novel contribution to the body of research:

  1. A semantic model that provides the theoretical basis for event relationships.
  2. A programming language for describing component interfaces and the relationships between events occurring on those interfaces.
  3. A distributed runtime engine that manages and mediates communication between components to implement distributed programs described using the Finesse programming language.

The system implies a mediated communication architecture, where a mediating component accepts events from components and distributes appropriate notifications to other components. This decoupling of components and the mediation semantics allow the necessary transformation of data and event correlation to support legacy applications. The event relationship semantics, however, also allow the mediator to be fully distributed and asynchronous. This asynchrony allows us to deal with high-latency, high-failure communication networks. The design of the programming language allows us to develop mediating ’components’ that can be nested within a higher level mediator, thus giving us the ability to build a flexible library of abstractions for relationships between participating components.

The thesis includes a set of examples that demonstrate the approach and its strengths. Through the examples and the arguments expressed in the work, this thesis demonstrates the power and utility of the event relationship approach to building distributed systems.