Section: Software
PROMETEUS: a Group Communication Service
Participants : Michel Hurfin, Jean-Pierre Le Narzul.
The Prometeus project, part of the Inria Gforge, is a software environment for reliable programming developed by the Adept team. The basic elements of Prometeus are Eva, a component-based framework and Adam, a set of group communication services.
Eva is an implementation of a component model that aims at supporting the development of distributed abstractions and high-level communication protocols. Eva implements a publish/subscribe communication environment to structure components composing high level protocols. In the Eva model, protocols are regarded as a number of cooperating components that communicate via an event channel. Communication is achieved via the production of events (output data) by supplier components, and the consumption of these events (input data) by consumer components. A supplier component uses the service of an event channel to route the events it produces to any consumer component that has registered with the event channel it is interested in consuming that particular type of event. The event channel decouples suppliers from consumers yielding an interesting flexibility. Synchronous interactions between components is also supported in Eva . Special attention has been devoted to optimize the implementation. For example, potential sources of overheads (in the management or transmission of events) have been limited or eliminated in the design and implementation of Eva .
Adam is a library of agreement components, based on the component model implemented by Eva. The central element of the Adam library is GAC (Generic Agreement Component). It implements a generic and adaptive fault-tolerant consensus algorithm that can be customized to cope with the characteristics of the environment. Moreover, thanks to a set of versatile methods, its behavior can be tuned to fit the exact needs of a specific agreement problem. A range of fundamental Adam components are implemented as specializations of this GAC component. The Adam library currently includes the most important components for reliable distributed programming (Group Membership, Atomic Broadcast). Based on their (local and inconsistent) observations of the system, all members are obliged to continuously update and share a unique view of the system. This common perception of the state of the group has to be consistent with i) the decided sequence of view changes that have to be installed (membership service), ii) the decided sequence of messages that have to be consumed (total order broadcast) , and iii) the decided interleaving of the view change notifications with the flow of ordered messages (view synchrony property).