This is my personal blog. The views expressed on these pages are mine alone and not those of my employer.

Wednesday, June 15, 2005

New Maintainer and Project Owner for P2P Sockets

Since the Paper Airplane project has completed its research goals, my role with the associated P2P Sockets project is now done. Alex Lynch is now the new maintainer and project owner for P2P Sockets. He has already done great working porting RMI on top of P2P Sockets, which means that you can transparently use the RMI framework over a P2P overlay network and distributed domain name system to quickly port over existing applications to be P2P, as well as easily create new P2P apps using your P2P skills.

If you've never heard of P2P Sockets, here's some info:

P2P Sockets makes it easy to write peer-to-peer applications based on JXTA. P2P Sockets allows programmers to gain much of the power of JXTA, such as NAT and firewall traversal, without being exposed to its complexity. It does this through ports of popular software projects, such as a web server and web services stack, to work on the JXTA peer-to-peer network. This includes a web server (Jetty) that can receive requests and serve content over the peer-to-peer network; a servlet and JSP engine (Jetty and Jasper) that allows existing servlets and JSPs to serve P2P clients; an XML-RPC client and server (Apache XML-RPC) for accessing and exposing P2P XML-RPC endpoints; an HTTP/1.1 client (Apache Commons HTTP-Client) that can access P2P web servers; a gateway (Smart Cache) to make it possible for existing browsers to access P2P web sites; and a WikiWiki (JSPWiki) that can be used to host WikiWikis on your local machine that other peers can access and edit through the P2P network. P2P Sockets also introduces implementations of java.net.Socket and java.net.ServerSocket that can work on the JXTA network as well as a simple, light-weight, distributed, human-friendly, and non-secure DNS system.

Screencast of Paper Airplane Plugin

I have made a screencast of the Paper Airplane plugin prototype, complete with narration. Check out the Flash screencast.

Paper Airplane and The Two Way Web

What if community and editing were a central and transparent part of the web and browsers?

What if the web was extremely integrated for usability, with instant messaging, site creation, the web server, and more all integrated into one whole?

What would this web look like if despite being integrated it was massively decentralized on a peer-to-peer network, able to exist and run without businesses or governments?


I have been working on a new vision of the World Wide Web and browsers that deeply embed collaboration and editing, starting from the questions posed above, and am proud to announce the final paper describing this vision.

The paper describes a new web browser, named Paper Airplane, and a new World Wide Web, called The Two Way Web. This new system has two main components: native support for collaboration and massive decentralization of the new web's technical plumbing.

Some major features of this new web and browser:
Paper Airplane and the Two Way Web do not exist; they are a series of user-interface mockups and a vision for what a new version of the web could look like. The paper explains the vision by presenting the major portions of this new network and providing a UI walkthrough with high-quality mockups.

The paper is a thought experiment, a vision of how the web will be drastically different when it supports seamless community as a major component of the browser. The goal is to expand and consider ideas and technologies that push the boundary of what is technically possible. Engineering constraints and pragmatism are extremely important but can sometimes limit designers from imagining new ways of structuring software. Rather than focus on the technical how the paper focuses on the what in order to stimulate thought beyond current engineering capabilities, providing future possibilities that research and coding efforts can steer toward.

Simple prototypes of the Two Way Web peer network and the Paper Airplane browser have been created, however. An open source implementation of the Two Way Web has been created as a prototype framework named P2P Sockets. P2P Sockets is also an experiment in creating a P2P network that exposes an API that is familiar to existing programmers, namely the BSD Socket interface. It also includes higher level ports of software such as web servers, the Java Servlet and JSP APIs, XML-RPC clients and servers, etc. to a P2P network, as well as a simple distributed implementation of the Domain Name System that is non-secure.

A simple browser prototype has also been created to mimic some of the functionality of the Paper Airplane browser. This prototype is a Mozilla plugin that allows people to easily create collaborative P2P web sites, without setting up servers or spending money. It does this by integrating a web server into the browser itself, including tools to create collaborative online communities that are stored on the machine. The sites are stored locally on a user's machine, and a peer-to-peer network using the P2P Sockets framework is created between all of the Paper Airplane nodes that are running in order to resolve site names and reach normally unreachable peers due to firewalls or NAT devices. See the screencast demo of the plugin to get a quick overview.

The Paper Airplane project is now finished with the release of the paper, the plugin prototype, and the P2P Sockets framework that drives the prototype. At this point the vision is out there and I will be moving on to other ways to create Web 2.0, such as bringing these features into existing client/server WikiWikis. I will no longer be maintaining the P2P Sockets or Paper Airplane plugin so that I can make space and time for future projects and consulting; I've got a new million ideas I want to explore, especially around WikiWikis. The P2P Sockets project will live on with a new project owner and maintainer, Alex Lynch.

I hope the paper and prototypes inspire you to imagine just how much more powerful the web can be. Now that developers are experimenting with blogs, Wikis, tags, and DHTML, its time to innovate in the browser as well.

Final Release of Paper Airplane

I have released a new build of the Paper Airplane prototype, version 0.1.2, and have also created a screencast of the prototype running, with narration of what is occuring as I run through the application; this is useful if you are interested in Paper Airplane and want to get a quick overview.

This version fixes a bug in the uninstaller so it now works and various other bugs.

The Paper Airplane project is now finished with the release of the paper, the plugin prototype, and the P2P Sockets framework that drives the prototype. At this point the vision is out there and I will be moving on to other ways to create Web 2.0, such as bringing these features into existing client/server WikiWikis. I will no longer be maintaining the P2P Sockets framework or Paper Airplane plugin so that I can make space and time for future projects and consulting. Alex Lynch will now be the new project owner for P2P Sockets.

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]