Version française
Home     About     Download     Resources     Contact us    
Browse thread
Ensemble, a toolkit for distributed communication in ML
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Mark Hayden <hayden@c...>
Subject: Ensemble, a toolkit for distributed communication in ML

It is my pleasure to announce Ensemble (0.40), a distributed
communication toolkit written in the Objective Caml
programming language.  For an application builder, Ensemble
is a library of protocols that can be used for quickly
building complex distributed applications.  An application
registers 10 or so event handlers with Ensemble, and then
Ensemble handles the details of reliably sending and
receiving messages, transferring state, and detecting and
managing failures.  To find more about Ensemble, including
how to acquire it, visit this URL:

  http://www.cs.cornell.edu/Info/Projects/Ensemble/index.html

Mark Hayden (hayden@cs.cornell.edu)

* High performance: On a 200 Mhz Pentium-pro, Ensemble
  compiled with the Ocaml native code compiler adds about 50
  usec latency to the cost of sending & receiving a message.
  This is about a 20% overhead to the cost of sending a
  message over UDP with 10 Mbit ethernet.

* Powerful: Ensemble includes over 40 protocol layers.
  These include layers for reliable communication, group
  membership, encryption, network partition and merging,
  scalable communication, flow control, process migration,
  broadcast ordering, and state transfer.

* Flexible: Protocol layers can be combined into a large
  number of different protocol stacks that provide
  high-level properties to applications.  In addition
  protocol stacks can be changed on-the-fly in running
  systems.

* Freely available software: The software distribution
  includes precompiled bytecode libraries, full source code,
  and documentation.

* Ensemble runs over Windows/NT and all Unix platforms
  supported by Ocaml.

* Ensemble can be used as a library from ML.  In addition,
  it has several C and C++ interfaces.  A Java interface is
  underway.

* Ensemble supports communication over UDP, TCP, and ATM.

* The Ensemble distribution includes a variety of
  demonstration programs.