Browse thread
Ensemble, a toolkit for distributed communication in ML
- Mark Hayden
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ 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.39), 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.