CS5412 Spring 2014 Project Ideas
How CS5412 Projects Work:
Below we have a list of projects broken into three categories: GridCloud,
Mica and "other".
- The GridCloud projects are opportunities to contribute
towards our research program to create a platform for monitoring electric
power grids (the "smart grid" needs a place for the smart stuff to live...
GridCloud is intended to be that place). These projects are for teams,
and will create open source solutions that Cornell will distribute for free
under a 3-clause BSD open source license. Most of them involve working
with the Isis2 platform and hence will require learning C# or C++
and some other fairly complex technologies. We'll help as much as we
can, but these are all projects for serious, skilled hackers. This also
includes the Zookeeper project, which uses Isis2
to create a new version of the Zookeeper system. This is a medium hard
project and suitable for a team of two, if those two people are talented
software engineers and know C# and .NET.
- The Mica projects build on a Java infrastructure called
the Microprotocol Composition Architecture. These require a bit less
background and are for individuals or very small teams of just two people.
- The other projects can be done using other kinds of technologies and are
of varying levels of difficulty. You can also propose a project fully
defined by you, but it should be similar to the ones shown in the sense that
all of the ones shown here have a clear cloud computing aspect and are
challenging, yet feasible in one semester. All projects must use
things we learn about in the course.
You do not need to use Isis2, Mica or other Cornell-developed cloud
technologies, but we do want you to push outside of your normal knowledge and
experience and try new things. Experiment with a cloud technology you've
never tried previously. We'll ask what you knew coming into the course and
what cloud technologies you learned about and used by the end of the course, and
the grade for your project will reflect that delta!
What are the different project stages and what do we need in each
one of them:
Team Formation and Project Idea (due February 3)
- The full list of project participants (either just yourself, or if you
work as a multi-person team, full names and netids for all team
members). But please note the comments below about how big a team
can be!
- The project title and difficulty level (either from the list below or,
if you propose a new project, similar in style).
- A brief description of the project (either from the list below or,
if you propose a new project, similar in style).
- If you will use your project for MEng credit, a sentence saying "
This project will be used for CS MEng credit, approved by
(Ken/Theo/Stavros) ". Please note the rules given below!
You must respect them or we can't approve the CS MEng credit request.
The name to list can be Professor Birman or one of the TAs and that person
must meet with you, discuss your plan for MEng project credit and approve
your plan.
Project Proposal (due February 10)
- A paragraph (or bullet points) on what you will do to carry out the
project: "We will download the Isis2 and Live Distributed
Objects system, build them under Windows, implement our own architecture
for monitoring electric-power" phasor management unit" devices
(PMUs), place simulated PMUs on the NSF GENI testbed...." etc.
You should also accompany these actions with an estimated date of
completion (time schedule for the project). You can evolve this plan
later if needed; the one you file is an initial concept.
- A paragraph (or bullet points again) explaining how you will
demonstrate the project (on completion, we will have a visual demo and a
poster. The demo will show....) This can evolve over time
too.
- If team of two or more, who will do what? How often will you
meet? How many hours per week will you work on the effort? How
many credits are you taking: can you really spend that number of hours per
week? We allow teams of two for any project. There are two
large GridCloud project opportunities. These can be tackled by a team
of at most five people, but if you do plan to have a team larger than two,
we want to know exactly who will play what role, and also who will be in
overall charge of the effort. Larger teams demand a higher level of
organization right from the start.
Intermediate Report I (due March 13)
Old and current (if they are different) proposals, along with information
about what has been achieved and how (green status), what is in progress
and how it is going (yellow status) and what is not done at all (red
status). You should also justify any changes made to the previous
proposal.
Peer Reviews (due March 26)
Peer review of 3 projects on all the phases so far. More details will be
announced later.
Intermediate Report II (due April 14)
Same as Intermediate Report I.
Final Report (due May 6)
Same as Intermediate Reports. We expect to see everything that is reported
here as completed (green status) in the demo/poster day mentioned below.
Demo/Poster Day (May 7-9)
A poster explaining the architecture of your system and how it works and
a live demo that demonstrates the full capabilities of the system. We'll
also have the original plan with us and will want you to explain how you
departed from the plan if the thing you actually do isn't quite what you
originally had in mind.
All the documents excluding the poster need to be commited to CMS
(http://cms.csuglab.cornell.edu).
The posters can also be used in BOOM (see Extra credit below).
Announcement:
On the following link
we provide the slides of the presentation that we did on 2/6/2014 for the project proposal as well as the rest of the deliverables above. It can be used as
a reference guide for determining what we expect you to include in your proposal and other deliverables.
MEng Project Credit:
As you know, Cornell MEng students must do an MEng project. You can use
your CS5412 project to satisfy this requirement. If you wish to use CS5412
for MEng project credit, just sign up for 3
credits, graded, of CS5999 with Professor Birman's code. We will use the
CS5412 grade as the CS5999 grade. Note that this means your quiz scores in
CS5412 actually count towards you CS5999 grade too. We must explicitly
agree to your MEng project plan before you can consider yourself to be approved
to do this. So please meet with Professor Birman, Theo or Stavros within
the first days of classes to get their approval for this plan.
Due Date: CS5412 projects are due on the last day of
the course, which is set aside as a project demo day. On request, short
extensions of at most 10 days may be granted, but you must request the
extension, explain precisely why you need extra time, and get actual permission
from Professor Birman or a TA, in writing. Otherwise, late projects will
be reviewed during the same 10 day period but if you didn't get permission to
finish late, a penalty to your grade may apply (e.g. A+ work might get an A
grade if you finished a week late and didn't have permission to work a week
longer).
Grading: Your MEng project will be graded by doing a
demo and also presenting a poster that shows what you did to the grading team
composed of Professor Birman and the TA. We grade in the range B to
A+ for most projects. Sometimes a very weak effort may receive a B- or
lower. Our aim is to have the median grade be on the B+/A- border: half
above and half below.
To get an A+ in CS5412 you must be one of the very best projects that
the team saw. We award very few A+ grades. Sometimes we don't award
any; more often, four or five students in the entire class might receive an A+.
The quiz scores also count towards your CS5412 grade.
Extra credit: An MEng project shown at the BOOM
projects fair will recieve extra credit (e.g. B work might receive a B+ grade).
However, extra credit will not boost your grade from A to A+.
Projects not on our List: You can
definitely suggest a project of
your own but it should be similar in spirit to the ones on the list and you should tell us
which chapters of the textbook you hope to draw on in developing your solution.
We do not allow CS5412 projects to come from completely different courses or
areas. Thus while you might manage to find a project that overlaps between
the security class and the cloud computing class (in which case we would
probably let you do the one project for both courses), more often it would be
hard to pull that off because the coursex cover different material. A
CS5412 project, in short, must be based on what we learn in the CS5412 class.
But you can definitely bring ideas from other settings into CS5412 and combine
those with things we do in CS5412 to end up with a cool project that would
explore issues in our setting and yet be useful in some other situation.
- [GridCloud, Large effort for a team of up to 5/6.]
This group will develop an "operator's console" solution for the smart
electric power grid. Visualize a very large tablet computer (in
practice you'll probably develop this on a normal workstation, but the idea
would be to think of it as a "table-top" display running a solution like the
Microsoft Surface infrastructure. The operator would see a graphical
rendering of the electric power system, and in fact creating this is one
part of the job. The power buses and generators and loads would be
shown on the rendering and would have live, dynamically updated values on
them. This you can base on an existing project done in the fall.
Then you'll support a way of "dragging and dropping" various computational
tools onto the system: apps for the power grid operator. Those apps
would perform useful tasks, like evaluating the state of the grid if such
and such a line were taken out of service. There will need to be a
kind of a visual folder to contain these apps, and your team will need to
create at least a couple of examples. We hope to use the best
solutions as part of our research project.
- [GridCloud, Large effort for a team of up to 3.]
This group will develop a security solution for GridCloud, based on an idea
Professor Birman can explain. Basically, we want to support multiple
organizations that would all use the GridCloud platform, but would have
individual ownership and control of their individual data. Then we
want to allow explicit portals to be opened between organizations, if both
authorize them. The solution would need a visualization tool for
understanding who is authorized to do what, a representation of the security
rules and policies, and mechanisms for using AES-256 keys to implement these
rules.
- [GridCloud, Medium effort for an individual or a team
of 2.] We also need to create a good data archiving system for
GridCloud, focused on PMU data (from synchrophasor measurement units) and
SCADA data (other kinds of sensors, topology information, etc). This
team will decide which cloud storage options to use, build and demonstrate a
solution, and show how to create applications that access and compute on the
historical power systems data in various ways.
- [GridCloud, Medium effort for an individual or a team
of 2.] Cornell's TCP-R technology protects TCP connections, including
SSL/TLS connections, so that you can move the endpoint around or even
restart a failed endpoint server. Using TCP-R this team will
demonstrate a kind of bulletproof service that maintains highly responsive
connectivity even if service instances come under DDoS attack. The
service itself would run on a cloud platform.
- [GridCloud, Medium effort for an individual or a team
of 2.] Cornell's Mica platform is very useful for building monitoring
infrastructures. This group will build a system to track the state of
a large, complex system and visualize it in various ways so that the
developer can tune performance, identify hot-spots, etc.
- [Zookeeper, Medium effort for a team of 2 or 3.]
Zookeeper is a distributed file system that was created at Yahoo and is
available as an open-source platform. Your job will be to keep the
Zookeeper API but replace the stuffing with a layer that you'll design, and
that uses Isis2. This new implementation should then
support the same functionality as Zookeeper even though it would be build in
a new way. Then you'll compare performance and ask what the most
performance critical paths are, and do what you can to optimize.
Zookeeper is a pretty mature and stable system, so it may not be easy to
beat the Zookeeper numbers... but you'll try! If successful, we'll
release this to the Isis2 user community, under the same 3-clause
BSD open source license used for GridCloud.
- [Mobile Mica. Smallish project for an indidual or
a group of 2.] Mica has never been used in a mobile environment.
You'll port Mica to run on a mobile platform of some kind and then will
develop all sorts of amazing stuff for mobile collaboration and sharing.
You'll invent some applications to demo this great new solution.
- [Mobile Other. Group size would depend on the nature of
the appliction.] Many groups will want to develop
some form of mobile application for Android or iPhone or Microsoft Surface
that uses an app on the device and talks to a server that would be hosted on
the cloud. You might consider doing a game, some sort of application
useful for college students, smart building applications that optimize power
use, air conditioning, lighting, door locking/unlocking, finding people,
etc; health apps for people who aren't in a doctor's office but want
technology help in training, eating properly, managing chronic health
conditions, etc; smart power grid kinds of applications aimed at optimizing
power use in the home to match power pricing, etc.
- [Maurader's Map. Medium project for an individual
or a group of 2 or 3.] This for gamers. Build the ultimate
gaming tool for use in applications like Humans v. Zombies or Splat!, aimed
at iPhone and Android platforms, and able to superimpose live data about
locations and other kinds of resources (safety zones, wands of ultimate
power, pits of cosmic cleansing energy...) with dynamic updates as players
move about and conditions change. You can use Isis2. Mica,
other cloud solutions or invent one of your own. Real-time performance
is key here!
- [Distributed Robot Knowledge Base. Medium project
for an individual or a group of 2 or 3.] Your goal here will be to use
technologies from CS5412 to show how one could create a kind of operating
system for robots that are collaborating to solve a shared task, like
searching a damaged area after a major accident to look for survivors.
The focus would be on the shared knowledge base and how to use distributed
communication protocols to create and update it. Ideally you will need
to find a way to demonstrate this solution, perhaps using a robot simulation
of some form.
- [Smart Cars Knowledge Base. Medium project for an
individual or a group of 2 or 3.] Everyone is talking about smart
vehicles and how the cloud enables them. Well, your job will be to
contribute to the technology in this emerging space. This is a bit
like task 9 but at a different scale. Build a cloud-based
infrastructure to track where vehicles and other objects are located, and to
support high rates of queries of the form "what objects should I be aware of
in the next 150 meters as I drive down Bryant Avenue from location (x,y) to
location (x'y')?"
- [Next Generation Internet. A hard project for a
small team with excellent networking skills.] You'll propose and
prototype some form of technology to assist cloud computing companies in
making better use of the Internet. You'll need an idea about how to
make the Internet a better place for these kinds of customers (think of
Amazon, Google, Facebook...) and you'll use cutting edge technologies to
demonstrate that your idea can really work. You can demonstrate the
solution on PlanetLab or, if accounts are available, on the new NSF GENI
platform.
- [Cloud hosted devices. Group size should map the
kind of task you have in mind.] This spring we have a
LOT of ECE students in the course. We would be very receptive to
applications that might look at smart vehicles or aircraft and how they can
draw on cloud resources to do a smarter job of steering themselves, parking,
fetching their owner, etc. We're especially interested in how smart
cars and similar technologies can be defended against mishap or outright
attack. You could also look at other kinds of devices for the cloud
and the systems issues raised by them: 3D fab devices, locks for smart doors
in smart buildings, smart appliances for the home, intelligent cloud sensors
that could be used to monitor a city while protecting privacy, traffic
sensing and control technologies, etc. Just make sure that you and
your team can solve the whole problem. We do expect that
these projects will do a reasonably thorough job on whatever topic they
tackle.
More than one person or team can independently undertake the same
project.