diff --git a/altruism.html b/altruism.html new file mode 100644 index 0000000..cd1eee1 --- /dev/null +++ b/altruism.html @@ -0,0 +1,59 @@ + + + + +Why Participate in Seattle? + + + + + +
+
+ +
+

Why Participate in Seattle?

+
+
+ +
+

The goal of the Seattle project is to build an open and free computational platform that makes distributed computation available to everyone. We believe that humanity benefits from an open, volunteer-driven, peer-to-peer infrastructure that can solve important computational tasks for users. The Seattle project is being used to support students around the world, help researchers make the Internet a safer and more robust place, and Seattle is being used to help families in developing regions share photos to keep in touch. You, too, can make a difference just by running our software!

+
+

Quick Links

+
+ + + +
+

FAQ

+
+ +

Q: How do I ensure that a specific project I want to support gets credit for my resources?
+ A: The project should have a link to a specific installer they want you to use on their page. Use their installer.

+ +

Q: I only want a specific project to be able to use my resources, how do I control this?
+ A: The project may have two different types of installers, restricted and free. A restricted installer will make it so that the project can't trade resources on your machine to another project in exchange for resources elsewhere. Please keep in mind that a restricted installer may make it harder for a project to get the type of resources they need.

+ +

Q: I have a project and I want to use Seattle resources, how do I get started?
+ A: Simply register on our sharing site, Seattle Clearinghouse. Once you log into your account, you will find a link that you can give others to donate on your behalf. You should look through our tutorials for information about programming in Seattle.

+ +

Q: My question is not answered. Who do I contact?
+ A: Please contact our team at seattle-devel@googlegroups.com if you have any further questions concerning Seattle.

+ + +
+
+
+

This material is based upon work supported by the National Science Foundation under Grant + Numbers (0834243, 1205415, and 1223588). Any opinions, findings, and conclusions or recommendations expressed in this material + are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

+
+ + diff --git a/development.html b/development.html new file mode 100644 index 0000000..458eff5 --- /dev/null +++ b/development.html @@ -0,0 +1,80 @@ + + + + +Developing Code Using Seattle + + + + + +
+
+ +
+ +

Developing Code Using Seattle

+
+
+ +
+

Developers have long lamented the programming interface provided by the network. It is clear that low-level sockets are not the ideal way to communicate and reason about execution on remote machines. Seattle makes developing networked applications easy and makes the power of cloud computing accessible to all developers. Seattle has a network- and resource-aware programming model that uses a subset of the Python language. This makes it easy to create applications and to integrate with existing code. Using Seattle is free and easy. Seattle helps developers support their application's popularity by having their computational resources scale with their user base.

+ +
+

Quick Links

+
+ + + + + +
+

FAQ

+
+ +

Q: Are there any restrictions on how I use Seattle?
+ A: See our Acceptable Use Policy.

+ +

Q: What is Seattle Clearinghouse and how does it differ from Seattle?
+ A: Seattle is the core software that all users will run. Seattle Clearinghouse is a website that allows users to share Seattle resources. Some Seattle users may not want to share resources and thus will not use an installer from Seattle Clearinghouse.

+ +

Q: Who can access Seattle Clearinghouse resources to run Seattle programs?
+ A: Anyone. These vessels are publicly available.

+ +

Q: What is the difference between a Seattle program and a Seattle application.
+ A: If the end user means to install it, it's an application. If the end user is oblivious, it's a program. +Each Seattle application is completely unrestricted. A user must try to install a Seattle application. The installation is done through an installer provided by the application developer. As such, the application can do whatever you want on the user's system. Seattle is simply acting like a library that you have access to. Your application installer must enable the sharing Seattle resources with other users. Seattle programs are encapsulated in a Seattle sandbox. They are run safely on user machines that may not have opted into running the application. This allows Seattle programs to be migrated and tested freely on any Seattle node.

+ +

Q: How do I integrate a Seattle application with my existing code base?
+ A: You can call Seattle code easily from Python. Of course, this isn't possible to do with Seattle programs as they aren't trusted to run anything but Seattle code.

+ +

Q: The reliance on Repy really limits what I can do. What about supporting programming language X?
+ A: We're working on a way to do this. More information to come.

+ +

Q: Is Seattle under active development?
+ A: Yes, we have around a dozen active developers.

+ +

Q: I want feature X added to the API or language. How do I get this changed?
+ A: We tend to be very, very cautious about API changes. We are very focused on security. If you are deploying a Seattle application, you can easily do whatever calls you like, but this requires end user opt-in.

+ +

Q: What's so great about Seattle?
+ A: It's designed to be safe and has resource isolation built in. Seattle has a minimal trusted computing base and hard resource allocation. Seattle also is built to allow applications to be perfectly portable. If you find any difference on a different OS, please tell us. We have gone to great pains to ensure Seattle is truly 'write once, run anywhere'. Seattle also allows networked access to other computational resources. Networked code execution and resource allocation are no longer second class citizens.

+ +

Q: Doesn't Java provide these characteristics? Isn't it "write once, run anywhere"?
+ A: No, not really. These were Java design goals, but the designers made trade-offs that sacrificed some of these ideals.

+ +
+
+
+

This material is based upon work supported by the National Science Foundation under Grant Numbers (0834243, 1205415, and 1223588). Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

+ +
+ + diff --git a/education.html b/education.html new file mode 100644 index 0000000..ccdc431 --- /dev/null +++ b/education.html @@ -0,0 +1,89 @@ + + + + +Seattle in the Classroom + + + + + +
+
+ +
+

Seattle in the Classroom

+
+ +
+

The Internet is a large and complex collection of machines. Learning Internet protocols and network characteristics is a challenge for students in part due to the diversity of Internet devices. Seattle makes learning about the Internet easy by providing students with a simple to learn Python-based language and a tool-rich environment that simplifies distributed deployment and monitoring of programs running across Internet hosts. Seattle can help instructors augment lectures with real-world, hands-on assignments across thousands of computers. As of May 2010, Seattle has been used in 11 classes at universities around the world. The Seattle team is dedicated to helping instructors get started with using Seattle in the classroom.

+ +
+

Quick Links

+
+ +

Seattle Tutorial

+

Seattle Programming Guide

+

Battle-tested Programming Assignments
+

+

More assignment and project ideas

+ +
+

FAQ

+
+

Q: What are the advantages of using Seattle to teach a course?
+ A: Seattle has the following features, which we believe make it especially relevant for instructional uses:

+ + +

Q: What are the instructor/student requirements for getting started with Seattle?
+ A: First, get in touch with us -- we track Seattle resources and can help you get started. Second, the only technical requirement is for students to have access to a machine where they can install Seattle. Currently we support various versions of Windows, Linux, BSD, and OS X as well as many mobile platforms.

+ +

Q: How difficult is it to learn Repy, the Seattle programming language?
+ A: For students who have had prior programming experience in a high level language (e.g. Java, C++) it takes a few hours to learn the basic language constructs and a few programming assignments to become proficient in the language. For students who know Python it takes under an hour to understand the differences and to begin using Repy to write complex programs.

+ +

Q: Do the assignments have instructor solutions?
+ A: Yes! Our instructor solutions are well commented and ready for your use. Please get in touch with us (see below) to request these.

+ +

Q: I'm an instructor and I'd like to use Seattle, who do I contact?
+ A: Please contact the Seattle developers list for more information. This isn't required, but we like to know who is using the platform and get feedback.

+ +

Q: My question is not answered. Who do I contact?
+ A: Please contact our team at seattle-devel@googlegroups.com if you have any further questions concerning Seattle in an educational context or otherwise.

+
+
+
+

This material is based upon work supported by the National Science Foundation under Grant Numbers (0834243, 1205415, and 1223588). Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

+
+ + diff --git a/images/devShad.png b/images/devShad.png new file mode 100644 index 0000000..3994a5b Binary files /dev/null and b/images/devShad.png differ diff --git a/images/devShad_old.png b/images/devShad_old.png new file mode 100644 index 0000000..825577b Binary files /dev/null and b/images/devShad_old.png differ diff --git a/images/dev_both.png b/images/dev_both.png new file mode 100644 index 0000000..cbb6d8b Binary files /dev/null and b/images/dev_both.png differ diff --git a/images/download.png b/images/download.png new file mode 100644 index 0000000..4043729 Binary files /dev/null and b/images/download.png differ diff --git a/images/eduShad.png b/images/eduShad.png new file mode 100644 index 0000000..ee8fd80 Binary files /dev/null and b/images/eduShad.png differ diff --git a/images/eduShad_old.png b/images/eduShad_old.png new file mode 100644 index 0000000..b0851ef Binary files /dev/null and b/images/eduShad_old.png differ diff --git a/images/edu_both.png b/images/edu_both.png new file mode 100644 index 0000000..65358d4 Binary files /dev/null and b/images/edu_both.png differ diff --git a/images/header.png b/images/header.png new file mode 100644 index 0000000..8d0ce11 Binary files /dev/null and b/images/header.png differ diff --git a/images/key.png b/images/key.png new file mode 100644 index 0000000..f0e52d5 Binary files /dev/null and b/images/key.png differ diff --git a/images/res_both.png b/images/res_both.png new file mode 100644 index 0000000..2c0c6df Binary files /dev/null and b/images/res_both.png differ diff --git a/images/researchShad.png b/images/researchShad.png new file mode 100644 index 0000000..c7fcb9b Binary files /dev/null and b/images/researchShad.png differ diff --git a/images/researchShad_old.png b/images/researchShad_old.png new file mode 100644 index 0000000..f7c92a9 Binary files /dev/null and b/images/researchShad_old.png differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..5ae191b --- /dev/null +++ b/index.html @@ -0,0 +1,101 @@ + + + + +Seattle + + + + + +
+ + +
+ + +
+

Seattle makes the power of +Cloud Computing available to everyone. It's free, community +driven, open source, and provides access to computers worldwide.

+

Seattle operates on resources such as laptops, +servers, and phones, which are 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 is being used to help students learn about networking and distributed systems.
+ Learn more...

+
+
+ +
+ +
+
+

Researchers around the world are using Seattle to understand mobility, diversity, and availability of the Internet.
+ Learn more...


+
+
+
+
+ +
+

Seattle provides a secure and performance isolated programming environment for networked applications.
+ Learn more...


+
+
+
+ +

+ + +
+ +
+
  • Wiki
  • +

    Detailed information on the project is maintained on the Seattle Wiki.

    +
    +
    +
  • Altruism
  • + +

    You can help to change the world by donating a fraction of your computing power to the Seattle Project.

    +
    +
    +
  • Net Admins
  • +

    Do you have a Seattle node on your network? Detailed information regarding security and resource management.

    +
    +
    + +
    + +
    + +
    +

    For questions about this project, please contact Prof. Justin Cappos at: jcappos@poly.edu

    +

    This material is based upon work supported by the National Science Foundation under Grant Numbers (0834243, 1205415, and 1223588). Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

    +
    + + diff --git a/netadmins.html b/netadmins.html new file mode 100644 index 0000000..9dea1f9 --- /dev/null +++ b/netadmins.html @@ -0,0 +1,69 @@ + + + + +The Security and Network Impact of Seattle + + + + + +
    +
    + +
    + +

    The Security and Network Impact of Seattle

    +
    +
    + +
    +

    Installing any software on a computer involves risk. One of our key design goals with Seattle is to mitigate that risk to the extent that is possible. Seattle is designed to safely execute general-purpose programs from untrusted users. Seattle does this by isolating the performance and execution of programs using virtualization. This means that Seattle never takes more than a fixed amount of resources on your machine (by default 10%), while virtualization protects against malicious programs. Our end goal is to provide a platform that provides a safer way for users to execute applications.

    + +
    +

    Quick Links

    +
    + + + + + +
    +

    FAQ

    +
    + +

    Q: Is it safe to run Seattle on my home machine?
    + A: Our intent from the outset has been to maximize security. We believe our system is safer than existing code sandboxes for web applications that are prevalent on all systems. However, any software adds risk.

    + +

    Q: What sort of network traffic will my computer send?
    + A: By default, Seattle only allows a user to listen on TCP and UDP using local ports 63100 - 63199 (inclusive). Outgoing traffic will use ports greater than 1024. There is an optional module under development that will restrict the source and / or destination of Seattle traffic to only other Seattle nodes.

    + +

    Q: What files are accessible by programs running in the Seattle virtual machines?
    + A: Programs running on Seattle are restricted to reading and writing files in a single directory that is below the Seattle installation directory.

    + +

    Q: Can't a malicious person write a program that consumes all of the resources on my machine?
    + A: We've done some testing and believe it's not possible for a malicious party to negatively impact your performance. We used a common set of benchmarks used to test virtual machine isolation (fork bombs, disk and network I/O stress tests, spinning in a loop, grabbing all available memory, etc.) and scored better than most of the industry standard isolation techniques used in data centers.

    + +

    Q: What resources do you performance restrict?
    + A: CPU, memory, disk read / write rate, random number generation, disk space, network read / write rate, network port use, loopback read / write rate, threads, and open file handles.

    + +

    Q: How do you set the resource restriction values?
    + A: When our installer is run, we benchmark your system and try to get a conservative estimate of the resources on your system. We then set the overall restrictions to be that value multiplied by the percent you are donating (by default 10%).

    + +

    Q: My question is not answered. Who do I contact?
    + A: Please contact our team at seattle-devel@googlegroups.com if you have any further questions concerning Seattle.

    + +
    +
    +
    +

    This material is based upon work supported by the National Science Foundation under Grant Numbers (0834243, 1205415, and 1223588). Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

    +
    + + diff --git a/research.html b/research.html new file mode 100644 index 0000000..6ce5ac5 --- /dev/null +++ b/research.html @@ -0,0 +1,81 @@ + + + + +Research Use of Seattle + + + + + +
    +
    + +
    + +

    Research Use of Seattle

    +
    +
    + +
    +

    We have used Seattle to construct a network testbed. The purpose of the Seattle testbed is to support cutting-edge research over the Internet through the use of real, end-user machines. Our first and foremost goal is the safety of the participating machines, so there are some restrictions on what one can do on our testbed. For example, programs cannot generate ICMP traffic, modify the host kernel, etc. (other excellent testbeds, like Emulab and PlanetLab, provide low-level access to end hosts). Our focus is to attract real Internet users to participate in our testbed. This will increase the heterogeneity, scale, and diversity beyond what is achievable through other means.

    + +
    +

    Quick Links

    +
    + + + + + +
    +

    FAQ

    +
    + +

    Q: What are the restrictions on how I use Seattle?
    + A: See our Acceptable Use Policy.

    + +

    Q: What is Seattle Clearinghouse and how does it differ from Seattle?
    + A: Seattle is the core software that all end-machines run. Seattle Clearinghouse is a communal website that allows users to pool and share Seattle resources. Resources that are allocated to Seattle Clearinghouse result in the researcher ceding direct control over the donated resources.

    + +

    Q: What if I want to control resources from my installer directly?
    + A: You can also build an installer that allows you direct control of resources. Keep in mind, you won't get credited through the Seattle Clearinghouse website, etc.

    + +

    Q: I want to run an experiment on more vessels than I am currently granted. How can I do this?
    + A: You can have more people install Seattle on your behalf. You can download the installers that will credit new user resources to your account from within Seattle Clearinghouse. You gain access to 10 vessels for each new install.

    + +

    Q: I want a vessel with more resources than you allow. How can I get this?
    + A: You can have people perform installations you directly control with donations that exceed 10% of their machine resources. This will grant you vessels that have more resources than the default.

    + +

    Q: What sorts of machines are on the Seattle testbed?
    + A: The Seattle testbed includes:
    +

    + +

    Q: How do I get machines of type X?
    + A: There is an external group that is working on a mash-up on the Seattle Clearinghouse sharing site that will provide detailed node information. You're also free to monitor the node characteristics you care about (latency, loss, availability, etc.) and provide these publicly. We'd be happy to point other users to your data.

    + +

    Q: I want to run C code / use the GPU / send traffic with spoofed IP addresses. How do I?
    + A: We don't support these sorts of things for safety reasons. Our primary concern is the safety of our end users.

    + +

    Q: My question is not answered. Who do I contact?
    + A: Please contact our team at seattle-devel@googlegroups.com if you have any further questions concerning Seattle.

    + + +
    +
    +
    +

    This material is based upon work supported by the National Science Foundation under Grant Numbers (0834243, 1205415, and 1223588). Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

    +
    + + diff --git a/style.css b/style.css new file mode 100644 index 0000000..9ba0b4d --- /dev/null +++ b/style.css @@ -0,0 +1,159 @@ +@charset "utf-8"; +body { + font: 100% Verdana; /* , Arial, Helvetica, sans-serif; */ + background: #666666; + margin: 0; + padding: 0; + text-align: center; + color: #333333; +} + +a:link{color:#A14E00} +a:visited{color:#6D3200} +a:hover{color:#6D3200} + +/* main container page */ +#container { + width: 800px; + background: #FFFFFF; + margin: 0 auto; + border: 1px solid #000000; + text-align: left; + overflow:hidden; +} + +/* top header description (ie. about Seattle) */ +#topAbout { +/* margin: 0 auto;*/ + margin: 0 80px 0 80px; + font-size:18px; +} + +/* header links for downloads/etc */ +#headerLinks { + margin: 0 70px 0 70px; + font-size: 14px; +} + +.boxLinks { + float: left; + width: 327px; +} + +/* main content with pics/text (ie. edu/dev) */ +#mainContent { +/* margin: 0 91px 0 91px;*/ + margin: 0 61px 0 61px; + font-size: 12px; +} + +#boxPic{ + float: left; + height: 48px; + width: 224px; +} + +#boxRes{ + height: 48px; + display: block; + background-image: url("images/res_both.png"); +} + +#boxRes:hover { + background-position: 0 -48px; +} + +#boxDev { + height: 48px; + display: block; + background-image: url("images/dev_both.png"); +} + +#boxDev:hover { + background-position: 0 -48px; +} + +#boxEdu { + height: 48px; + display: block; + background-image: url("images/edu_both.png"); +} + +#boxEdu:hover { + background-position: 0 -48px; +} + +.boxPicTxt{ + float: left; + height: 60px; + display: block; + margin: 0 12px 0 12px; +} + +/* small content links/text */ +#smallContent { + float:left; + margin: 8px 0px 0 72px; /* 61 */ + text-align: left; + font-size: 12px; +} + +.boxTxt { + margin: 0 24px 0 0px; + float: left; + width: 202px; +} + +/* horizontal rule */ +.hr { + float: left; + border: 1; + width: 90%; + margin: 100px 39px 0 35px; +} + +.foot { + color: #bbb; + font-size:10px; + width:800px; + margin:auto; +} + +/* sub-headers for sub-pages */ +#subHeader { + text-align: left; + font-size: 16px; +} + +/* IE compatibility stuff */ +#sidebar1 { + float: left; + width: 11em; + background: #EBEBEB; + padding: 15px 0; +} +#sidebar2 { + float: right; + width: 11em; + background: #EBEBEB; + padding: 15px 0; +} +#sidebar1 h3, #sidebar1 p, #sidebar2 p, #sidebar2 h3 { + margin-left: 10px; + margin-right: 10px; +} + +.fltrt { + float: right; + margin-left: 8px; +} +.fltlft { + float: left; + margin-right: 8px; +} +.clearfloat { + clear:both; + height:0; + font-size: 1px; + line-height: 0px; +}