The Junto Framework

A Java-based peer-to-peer framework to use, simulate and test trust management models in peer-to-peer networks.

Overview

Over the recent years, trust management has become a challenge in the world of the Internet: the Internet is reflecting more and more aspects of people's everyday life. Particularly in peer-to-peer networks -- in which, by principle, everyone is connected to everyone else -- it is extremely important to know whether the peers that one is communicating with are trustworthy. However, unlike in client-server network topologies, in peer-to-peer networks, knowledge about trust cannot effectively be stored in a central repository but needs to be distributed over the network as a whole. This makes trust management quite complicated in peer-to-peer networks.

There are a number of strategies that attempt to solve the trust management problem in peer-to-peer networks, but there exists, so far and to our best knowledge, no peer-to-peer framework that has been built with trust management at its core (even though there exist peer-to-peer frameworks which can be extended with trust management facilities).

To some extent, this gap is filled by a peer-to-peer trust management tool called Junto:

Junto is a Java-based peer-to-peer framework which allows using, simulating, and testing different trust management models which can be employed in peer-to-peer networks. Junto is available for free, in form of source code, compiled binaries, and framework documentation, under the terms of the GPL.

Basically, Junto was a tool used to conduct experiments in the field of trust management at the International University in Germany, and, through Sourceforge, we would like to make it accessible to everyone. Currently, Junto is a proof-of-concept.

Architecture

The Junto framework has been designed with one major design goal: flexibility. In other words, this meant that the architecture should allow to, at any time, replace a component with an alternative component. Because of that, Junto is highly modular, with different layers serving different purposes. The architecture of the Junto framework is reflected in the following diagram:

Diagram depicting the architecture of Junto.
Figure: Architecture of Junto

This diagram is an abridged illustration. There are six components visible from the diagram:

The structure itself is reflected in the Junto namespace; the root namespace is junto.sourceforge.net, and the components are represented by packages, named discovery, trust, services, simulation, peers, and logging.

Status Quo

Currently, Junto is in the stages of being an alpha-version. Even though much of the functionality is already given, there also still is plenty of room for enhancements. The status quo includes sets of interfaces and implementations for all of the above layers, even though all are still work in progress. Please let us emphasise that the present release of is a proof-of-concept which is not intended for everyday use. This is most visible through the fact that Junto does not yet make use of cryptographic techniques to achieve confidentiality, integrity, availability, authenticity, and non-repudiation on the network -- Junto is designed to use, but does not yet contain, means to ensure these properties. Thus, at the moment, Junto is not yet suited for use in everyday environments, even though this is the eventual goal to be achieved. It is an ongoing project that will grow with time.

Downloads

You can download the current release package, Junto 0.1, from here. This package includes source codes, compiled binaries, and framework documentation. The filesize of the ZIP archive is roughly 430 kilobytes.

Documentation

The current release package includes documentation in form of an API description of Junto; this documentation has been generated using Javadoc. Additionally, we have tried to include sufficient documentation in the framework code itself: at various places, you will find extensive comments that explain what is happening or what could be done at these spots in the code. Should further issues arise, do not hesitate to contact us using the Sourceforge facilities such as the Bug Tracker, Support Request, Feature Request, and Patches modules.

Naming

Junto is a word that means "together" in several Roman languages. Trust management brings the peers that trust each other in a peer-to-peer network together. This is why we called our framework Junto. There also exists a recursive acronym for Junto: Junto User-Network Trust Overlay.

Acknowledgements

Junto was developed during an BSc in Information Technology project in the School of Information Technology at the International University in Germany. We acknowledge the support of all the people involved with this project; in particular, the project would have been impossible without Ulrich Walther and Horst Hellbrück. Furthermore, we thank Sourceforge for hosting the Junto framework at this website.

References

Any citation as well as any illustration in this document has been taken from the following resource:

Walter, Frank (2004). "Trust Management in Peer-to-Peer Networks", BSc in Information Technology thesis in the School of Information Technology at the International University in Germany.

sourceforge.net