Building Peer-to-Peer applications in Pervasive environments using Project JXTA

A tutorial by Vincent Matossian



Presentation and Source code

Download the presentation (Jxta_tutorial.pdf)
Download the source code (src.tar.gz)
The source decompresses in the current directory, and contains a README file that briefly describes each example.

Motivation

In today's networked applications, interoperability is largely dependent on the uniformity of the protocols used. This leads current platforms to host a multitude of protocols to accomodate larger classes of systems and applications.
We observe that a new generation of anytime/anywhere computing calls for portable, ubiquitous, and pervasive embedded devices that have tighter resource constraints, making deployment and management require a compact set of protocols and mechanisms for communicating with each other, and with the rest of the networked world.

Analysis

Despite the recent increasing popularity in Peer-to-Peer (P2P) applications, there has been very little effort from the P2P community to converge on a set of common protocols to make available to application developers, to reduce development costs and relax interoperability problems that currently exist.

Solution

This tutorial covers the challenges raised in building P2P applications in pervasive environments. The accent is put on an increasingly popular framework that offers promising solutions to the problems raised. This framework is called Project JXTA, and was introduced by Sun Microsystems in April 2001. The tutorial also presents how Project JXTA can be used to build P2P pervasive applications and services.

Overview & Structure

By the end of the tutorial you will :
  • have a clear understanding of the benefits, drawbacks, and challenges of Peer-to-Peer computing
  • be familiar with Project JXTA, an advanced P2P development framework
  • have all the material necessary to start deploying your own P2P pervasive applications and services using JXTA
Note: All source code presented in the tutorial use the Java reference implementation of the JXTA protocols. Other lanaguage implementations (C,Perl, Python, etc...) will be addressed but not presented for implementation purposes.

This is a half-day tutorial composed of three sections,

Part I: Introduction to Peer-to-Peer computing (55min)
Introduction to the basics of peer-to-peer computing, its design and implementation concepts and challenges
10min Break
Part II: Overview of Project JXTA (55mn)
Overview of the JXTA P2P framework concepts, protocols, and architecture.
10min Break
Part III: Building Pervasive services using JXTA (55min)
Walk through a step-by-step series of examples to build an application using the Java implementation of the JXTA protocols.


Bio

Vincent Matossian is a PhD student at the Computer Engineering department at Rutgers University, New Jersey, USA. His research includes the study of emerging behaviors in distributed systems. Vincent leads the Meteor project http://meteor.jxta.org, a distributed hash-table with guarantees. He can be contacted at vincentm@caip.rutgers.edu

P2P Links

Shirky on P2P

OpenP2P O'Reilly

The practice of peer-to-peer computing A collection of P2P articles by Todd Sundsted

JXTA Links

JXTA v2.0 Programmer's guide

Making P2P interoperable: The JXTA story, Sing Li. This article and the following two are a great Introduction to JXTA!

Making P2P interoperable: The JXTA command shell

Making P2P interoperable: Creating JXTA systems, Sing Li, April 1st 2002

Make Every PC a Server - Is That JXTA's Killer App?

JXTA Book by Brendon Wilson (free online)