| Abstract |
NEBLO is a library and runtime system based on a
structured overlay network. The API presented by NEBLO offers
simple primitives and powerful mechanisms for programming generic peer-to-peer
applications, in a way that is independent from the underlying overlay.
The primitives allow the peers to exchange messages with one another in
two different patterns, namely, unidirectional and request-response;
the latter takes place in a split-phase non-blocking way, so that the
application can be made latency-tolerant and thus more performing.
The semantics of messages is not defined by NEBLO itself. Rather,
a mechanism is offered to the application programmer so as to allow him
to write and set up application-level handlers, which are to run
upon message arrivals at each peer. The overall behaviour of the application
is thus shaped by the handlers, as they define the actions to be carried
out when a message arrives to its recipient or passes through an intermediate
peer.
The API also allows to define application-level
handlers for other two typical tasks of any dynamic peer-to-peer system,
namely, the migration of overlay addresses across peers after new peer
arrivals, and the regeneration of missing overlay addresses after peer
departures. |