Explicit Connectors for Coordination of Active Objects

by Manuel Günter

Masters Thesis (Diplomarbeit)

This page introduces my masters thesis that was completed between march 1997 and march 1998. The thesis proposes the use of connectors for the coordination of active objects. It is inspired by the sequential FLO language of my supervisor Dr. Stéphane Ducasse of the Software Composition Group (SCG) of the University of Berne.

Abstract

Although coordination of multiple activities is a fundamental goal of object-oriented concurrent programming languages, there is only limited support for its specification and abstraction at the language level. This leads to a mismatch between conceptional designs, using high-level abstractions, and the implementation, using the low-level coordination constructs. Often coordination is hard-wired into the components they coordinate, which leads to evolution, maintenance and composibility problems.

We propose a model called FLO/c that relies on the notion of connectors. A connector is an entity that enforces the coordination of the entities it coordinates. This model supports a clear separation between the coordinated active objects and their coordination. An active object only defines specific domain information and a connector only defines coordination between a group of active objects (its participants). The coordination is abstractly defined referring to components in terms of the object interface. Coordination and coordinated entities are independent and can evolve separately. Coordination can be composed and replaced easily.

Keywords:

multi-object coordination, active objects, synchronizers, components and connectors, laws, interaction rules, separation of concerns, message passing control.

Documentation of the FLO/c language

Here is a collection of documents I wrote in the context of the thesis.

Implementation & Source code

FLO/c has been implemented in Smalltalk and requires NeoClasstalk version 1.2.02. Source files for the implementation (FLO/c) can be down-loaded from here.
Last modified: Fri Nov 20 18:48:52 MET