GENI Quarterly Status Report - December 2008 Project: GENI Experiment Control Using Gush Start: July 1, 2008 PIs: Jeannie Albrecht, Williams College Amin Vahdat, UC San Diego 1. Major Accomplishments Since the beginning of July, we have worked on making Gush functional and robust so that expert GENI users will find Gush useful and usable in the near future. In particular, we have focused on the shell and programmatic interfaces of Gush. Using the Plush codebase as a starting point, we have worked on improving the error reporting capabilities, and have extended the XML-RPC programmatic interface to include a broader range of features. To this end, we have achieved two milestones and made progress towards several of our deliverables, as described in the following sections. 1.1. Milestones Achieved a. Initial User Study (2 mo) - The first milestone involved the completion of a user study for Plush, since Gush had not yet been released. The purpose of the user study was to identify aspects of Plush that did not live up to the users' expectations. This initial user study was more unstructured than I had hoped, mostly because I found it hard to obtain feedback from many "advanced" users. I was easily able to obtain feedback from novice users, since most of my students are novice users, and I was able to conduct a survey during class. I think obtaining feedback from advanced users was more difficult mostly because I have not maintained a list of users who have downloaded the software. Moving forward, I plan to require users to at least supply an email address so that I may contact them about software upgrades and obtain feedback in the future. The user study revealed that one of the biggest areas that needs improvement in Gush is error reporting and debugging. Both novice and advanced users commented that tracking down problems was difficult using Plush. Due to this feedback, we have been working on making these features more advanced in Gush. In addition, the novice users experienced some difficulties with the configuration of Plush and Nebula (the Plush/Gush GUI), and we hope to address these issues moving forward. b. Gush v0.1 Implementation (4 mo) - The second milestone achieved was the "public" release of our software. To accomplish this, we started with the Plush codebase and made some modifications, including adding new features to the XML-RPC API. From this point forward, Plush and Gush will be available as separate software packages, and we expect the code to diverge as GENI continues to evolve. The v0.1 implementation of our software includes Nebula, which is the GUI for Gush. This implementation does not adhere to the new GENI wrapper API that has been developed by the PlanetLab group. We plan to incorporate this new API in the upcoming months. We expect the changes required to support the new GENI wrapper in Gush to be straight-forward. The Gush v0.1 implementation is available from our website (http://gush.cs.williams.edu). Currently the code cannot be viewed anonymously, and users must first login to gain access to the SVN repository. The website currently includes minimal documentation about Gush and how to install/use it. We plan to add more user documentation to the website as part of our upcoming third milestone (due in Jan 2009). 1.2 Deliverables Made The first six months of our project resulted in progress towards two of our deliverables: code development and code release. In terms of code development, we worked to improve the error reporting capabilities of Gush to make it more stable and usable, particularly for expert users. The user study helped us identify aspect of Gush that need improvement, and this helped guide our development efforts. In terms of the code release, we created an SVN repository for the Gush codebase and created a Trac website that allows users to browse the code and documentation related to it. 2. Description of Work Performed 2.1 Activities and Findings During the first six months of our project, we have primarily focused on investigating what users want and need from an experiment controller, in addition to getting the Gush codebase ready for release. To this end we completed an initial user study involving novice and advanced users, and released the first version of our code. Two undergraduate research students also worked on Gush last summer. One student worked on improving the XML-RPC interface of Gush through the development of a simple batch scheduler for PlanetLab. The batch scheduler used Gush for remote job execution. The second student also extended the XML-RPC interface. His project added a web-interface on top of the XML-RPC API which will eventually allow users to submit Gush experiments directly from the Gush website. The key benefit of this approach is the fact that users will not have to download or install any local software. 2.2 Project Participants The PIs are Jeannie Albrecht and Amin Vahdat. Other participants to date include two undergraduates at Williams. We expect to involve Brian Kantor at UCSD in the upcoming months. (We have recently finalized the sub-contractual agreements between Williams College and UCSD.) 2.3 Publications Jeannie Albrecht. Bringing Big Systems to Small Schools: Distributed Systems for Undergraduates. In Proceedings of the Fortieth ACM Technical Symposium on Computer Science Education (SIGCSE), To appear in March 2009. 2.4 Outreach Activities At OSDI, Jeannie Albrecht spoke to several other professors about creating a workshop at SOSP that focuses on Distributed Systems education at the undergraduate level. If accepted, this workshop will provide an excellent forum for promoting the use of Gush and GENI-related projects in the classroom. Jeannie is also planning to present her early results from using Plush/Gush in the classroom to other educators at SIGCSE in March. 2.5 Collaborations Our main collaboration to date has been with John Hartman at the University of Arizona. We are working on integrating Gush and Raven. In addition, we have been in contact with groups at UMass and the University of Washington about Gush-related collaborations. 2.6 Other Contributions Jeannie Albrecht attended GEC 2 and GEC 3, and presented at both conferences. She has also been involved with the Experiment Services Working group.