Twine is a resource discovery
system that builds on INS, using Chord as a distributed hash
lookup. It uses the same naming syntax as INS. It offers both
discovery and early binding functionality to client applications.
Twine implements a new form of intentional name resolution that
achieves scalability via a hash-based partitioning of resource
descriptions among the Intentional Name Resolvers.
Twine does not require pre-configured hierarchies or special naming
syntax. It works with arbitrary attribute sets and achieves balanced
resource distribution among participating resolvers. It also
handles queries based on orthogonal and hierarchical attributes, with
no content or location constraints.
Twine uses a set of resolvers Twine
nodes that organize themselves into an overlay network to route
resource descriptions to each other for storage, and to
collaboratively resolve client queries. Each resolver dynamically
specializes in learning about a subset of other Twine nodes, as well as
a subset of available resources.
The high-level motivation for Twine's design comes from peer-to-peer document distribution architectures like Freenet. These systems offer interesting scaling possibilities by avoiding central bottlenecks, and by having nodes specialize in subsets of the entire document space. Twine treats resource descriptions the way a system like Freenet might treat an entire document, although the details of how distribution is done are very different. Twine also focuses on resource information distribution for an efficient resolution of queries with incomplete resource descriptions. The Twine architecture is layered, building on top of Chord (or a similar lookup service). Chord's simplicity makes it an attractive substrate.
A prototype implementation of INS/Twine is currently available: ins-2-0.tgz. It is the second version of INS containing both the original and the Twine version of resolvers. The tar file contains all the source code, some documentation, several sample applications and a few helpful scripts.
INS/Twine is implemented in Java. It requires JavaTM 2 Platform, Standard Edition, v 1.4.0.
Twine relies on Chord as the underlying location and routing service. See the PDOS group Web site for more details about Chord. A pre-compiled C++ client for Chord is included and here are instructions on how to run Twine without installing SFS/Chord.. They work on Redhat 7.1 and Mandrake 8.x. If you have another platform, you may have to install SFS and Chord on your machine as per instructions on the PDOS page and you must re-compile the C++ client.
NMS Home Projects People Papers Software
CSAIL | E E C S | M I T |
M. I. T. Computer Science and Artificial Intelligence Laboratory · 32 Vassar Street · Cambridge, MA 02139 · USA