Garf: A Tool for Programming Reliable Distributed Applications

  • Authors:
  • Rachid Guerraoui;Benoît Garbinato;Karim Mazouni

  • Affiliations:
  • -;-;-

  • Venue:
  • IEEE Parallel & Distributed Technology: Systems & Technology
  • Year:
  • 1997

Quantified Score

Hi-index 0.00

Visualization

Abstract

Replicating an application's critical components over several machines is a well-known way to increase its reliability. While this principle is readily understood, the techniques required to preserve a distributed and replicated application's consistency pose difficult problems. Group-communication systems implement these techniques by providing multicast primitives that deliver messages to groups of replicas with atomicity and ordering guarantees. Isis represents a typical example of such systems. However, these systems operate at a low level (Unix), and thus, programmers without broad experience in distributed computing find them very difficult to use. Furthermore, when using these systems, programmers must mix multicast primitives with application functional features, hampering extensibility and modularity. As a result, users cannot directly distribute and replicate an application written in a centralized context. The authors designed Garf (automatic generation of reliable applications) to address these issues. Garf is an object-oriented tool that supports the design and programming of reliable distributed applications. Garf acts as an intermediate between group-communication systems and applications. Garf promotes software modularity by clearly separating the behavioral features that deal with concurrency, distribution, and replication from functional features that involve traditional sequential and centralized aspects. Garf also offers an extensible library of abstractions for distributed programming. An experienced programmer can implement new abstractions by combining existing ones or by using the low-level group-communication primitives underlying Garf. This article describes Garf's programming model and architecture, and gives an example application.