Please note that these Trac pages are no longer being updated. Wiki contents/documentation have moved to GitHub.
Seattle Testbed turns eight! Since its inception, more than 100 developers from over 30 institutions all over the world have contributed to its code b ...
What is Seattle?
Seattle is a platform for networking and distributed systems research. It's free, community-driven, and offers a large deployment of computers spread across the world. You can use our Seattle Clearinghouse website to share resources with other users, or obtain resources for your own project. Seattle operates on resources donated by users and institutions. The global distribution of the Seattle network provides the ability to use it in application contexts that include cloud computing, peer-to-peer networking, ubiquitous/mobile computing, and distributed systems.
Seattle runs on end-user systems in a safe and contained manner, with support for several platforms. Users install and run Seattle with minimal impact on system security and performance. Sandboxes are established on the user's computer to limit the consumption of resources such as CPU, memory, storage space, and network bandwidth. Programs are only allowed to operate inside of a sandbox, ensuring that other files and programs on the computer are kept private and safe. This allows researchers and students to safely run code without impacting performance or security.
For more information, please check out our overview movie.
For a less technical overview of Seattle check out the Seattle homepage.
If you would like to contribute to Seattle, fork our repos on GitHub.
- Community-driven and free.
- Scalable architecture.
- Non-intrusive and safe for end users.
- Already installed on tens of thousands of computers around the world.
- Provides access to systems behind a wide array of network technologies.
- Easy to learn, based on a subset of Python.
- Simple and clean programs:
- A UDP ping client is just six lines of code. A UDP ping server is just four lines.
- A Chord implementation requires about 300 lines of code.
- Cross-platform support:
- Windows (XP or newer)
- Mac OS X
- Many BSD variants
- Portable devices (Tablets, Android phones, jailbroken iPhones/iPads)
Is Seattle for me?
Seattle is ideal for students, researchers, and companies that want to prototype and test code on testbeds that have varying scale, diversity, and topologies. The same code may easily be run on a variety of operating systems, architectures, and network environments in order to understand the performance and dynamics of a distributed system. Seattle is also ideal for studying the wide-area characteristics of the Internet. For example, path transitivity, latency and bandwidth variations, as well as availability can all be characterized with Seattle.
Users needing direct access to hardware or support for low-level languages should look elsewhere. Seattle forgoes these capabilities to ensure safety and performance isolation for end users.
What makes Seattle different?
There is a wide variety of other platforms and testbeds readily available, each with an equally expansive set of project goals. Related projects include the following:
- PlanetLab is similar to Seattle in that it offers a platform composed of donated resources from around the world. However, PlanetLab nodes are dedicated to PlanetLab, while Seattle computers are not dedicated to the platform. In addition, PlanetLab's computers and network connectivity are very homogeneous. Seattle aims to be more widely distributed and to support broader resource diversity.
- SatelliteLab is useful for studying network characteristics and aims to bring heterogeneity to PlanetLab. However, due to the reliance on PlanetLab nodes for forwarding traffic, SatelliteLab has fidelity limitations and is not able to scale to the diversity and size of Seattle.
- Emulab provides emulated network environments for researchers to conduct experiments. While emulation allows more control of network hardware and topology, it does not capture the behavior of the Internet. Running Seattle allows more realistic experimentation at larger scales by running on the Internet.
- BOINC and Condor also allow users to donate resources. However, the emphasis is on computational power, with a preference toward using a few supercomputers rather than a large group of cheaper PCs. Seattle places more emphasis on the diversity of the networks and systems used, as computational power is not the main goal.
- Amazon's EC2 is a paid service that provides operating-system virtual machines. Seattle instead relies on donated resources and provides programming-language virtual machines.
- Google's AppEngine executes programs written in a constrained version of Python and supports high-level abstractions (such as global non-relational storage). It is useful for building locality-oblivious web applications that fit the HTTP request/response protocol model. However, its transparent handling of scalability and locality make it unsuitable for those wishing to teach or otherwise address these fundamental topics of distributed systems. AppEngine is run on Google-controlled resources instead of donated resources.
- The Tor Project is a widely used platform that protects users from Internet surveillance. While some users have built Seattle applications for this purpose, simply installing Seattle does not provide any direct privacy benefits.
- More related work...
How do I learn more?
Learn the basics:
- For more information, please check out our overview movie.
- For a demonstration of Seattle, please view our 5-minute video.
- Learn more about how Seattle works.
- Try donating resources to other users.
- Complete the take-home assignment to get hands-on experience with Seattle.
Check out the portal pages for in-depth information:
- Programmers Portal: Resources for programmers wanting to learn the platform.
- Educator Portal: Example assignments for students using Seattle.
- Contributors Portal: Detailed information about how to contribute to the project.
If you have questions about Seattle, send an email to jcappos@… or visit the Seattle-users google group ( seattle-users@… ).