NSF Grant Upgrades Educational P2P Platform

The National Science Foundation recently awarded a $346,338 grant to upgrade a novel educational peer-to-peer networking platform that fosters the development of computer applications.

The free and open-source platform, called Seattle, was developed by Justin Cappos, assistant professor in the NYU-Poly Department of Computer Science and Engineering. He began the project as a post-doctoral fellow at the University of Washington with input from some 60 graduate and undergraduate students from universities all over the world.  Today, instructors at about a dozen universities use Seattle to teach undergraduate networking, distributed systems and security. Researchers use the platform to study and test networks, mobile devices, cloud environments and large-scale distributed systems under real-world conditions.

Reflecting his experience the U.S. Army where cybersecurity breaches can be life-threatening, Cappos pays particular attention to the security of the sandbox in which apps are developed. The NSF grant will strengthen the platform’s security as well as help solve other difficult technical challenges that derive from building a cloud from thousands of networked personal computers, laptops, and smartphones.

Seattle’s usefulness extends beyond the classroom.   Researchers are using it to study the efficiency of different ISPs as well as new technologies like 4G wireless.   Researchers are also using Seattle to help users to avoid censorship in countries that restrict the Internet. Its website encourages any computer user to donate to the cause by running the Seattle software on their laptop, desktop, or smartphone.

The NSF Computer Research Infrastructure grant will add support for executing native code using the Google Native Client sandbox and toolchain.   This will make it easier for researchers to run legacy code on Seattle. The upgrades will also broaden the range of code that can be used for teaching and experimentation as well as enhance portability and simplicity – an important attribute for novices learning to develop programs.