Publication details

Programming Languages for Distributed Applications

Seif Haridi, Peter Van Roy, Per Brand, Christian Schulte

New Generation Computing 16(3):223-261, 1998

Much progress has been made in distributed computing in the areas of distribution structure,
open computing, fault tolerance, and
security. Yet, writing distributed applications
remains difficult because the programmer has to
manage models of these areas explicitly. A major
challenge is to integrate the four models into a
coherent development platform. Such a platform
should make it possible to cleanly separate an
application's functionality from the other four
concerns. Concurrent constraint programming, an
evolution of concurrent logic programming, has
both the expressiveness and the formal foundation
needed to attempt this integration. As a first
step, we have designed and built a platform that
separates an application's functionality from its
distribution structure. We have prototyped
several collaborative tools with this platform,
including a shared graphic editor whose design is
presented in detail. The platform efficiently
implements Distributed Oz, which extends the Oz
language with constructs to express the
distribution structure and with basic primitives
for open computing, failure detection and
handling, and resource control. Oz appears to the
programmer as a concurrent object-oriented
language with dataflow synchronization. Oz is
based on a higher-order, state-aware, concurrent
constraint computation model.