CS514 Course Handout
Course Overview       CS 514:  (Intermediate Course in Distributed Systems)
Prof. Ken Birman (ken@cs.cornell.edu) / TA: Ben Atkin (batkin@cs.cornell.edu) Fall 2000  

CS 514 is an intermediate course in computer systems with a focus on emerging object-oriented distributed systems. The course has a fairly practical flavor and is aimed at MEng and PhD students in computer science and advanced undergraduates who did well in CS414 and/or CS432.  Students interested in a systems course with a stronger research focus might consider Al Demers� course this fall, or cs614 in the spring of 2001: CS514 isn�t really oriented towards MEng students as opposed to undergrads or PhD students, but the emphasis is definitely on the kinds of things that matter in real-world computing systems, as opposed to an emphasis on cutting edge research topics.

Hot Links: Slides from Lectures Homework Assignments Textbook Other readings Project

During Fall 2000 the course will be taught by Professor Ken Birman.  His office number is Upson 4119B, and he will be available for office hours after class, or more broadly from 8:30am to 2:30pm daily, except at lunch time.  His telephone extension is 5-9199 and he gets email as ken@cs.cornell.edu.  Ken�s secretary is Tammy Howe, x 5-0957, and she has access to Ken�s detailed schedule.  The TA is Ben Atkin, Upson 5138, x 5-9201, batkin@cs.cornell.edu.  His office hours are WF 2:30-3:00 and T 11:00-12:00.  We will set up a network newsgroup, cornell.class.cs514 for postings of questions and responses about this course, and a web site http://www.cs.cornell.edu/Courses/cs514/2000fa.  Most of the lectures are based on slides, which will be available on the website.  The book and papers cited in class provide more information and background readings.

The course focuses on some of the distributed computing and computer systems technologies that have emerged during the past few years.  A special theme concerns scalability and reliability limitations of these technologies, as normally used, and the most effective options for remedying these limitations.  Topics considered include client-server computing and the object-oriented tools that have been created in support of them (we�ll discuss DCOM as well as CORBA), stateless and stateful server architectures, the Web and its component technologies, reliable multicast and process group communication, transactional systems, real-time systems, probabilistic protocols, security architectures and distributed systems management.  Other hot topics will include active networks, network quality of service, the Java JINI architecture, e-commerce and scalable multicast protocols.

CS514 will have weekly homework assignments.  Some of these will be problems from the textbook, but many will take the form of very short (1-page) written position papers on a topic stemming from that week�s lectures and readings.  For example, you might be asked whether it makes sense to view an all-electronic stock market as a database, and to implement the technology for the stock market using database software and tools.  To answer such a question in one page, you need to focus on the most salient issues and really distill these into a short, pithy position paper.  Don�t be surprised if some topics require you to spend time in the library.  Professor Birman expects you to develop the ability to do this sort of research without a great deal of help from him or from the TA.

Writing such position papers is a skill that can be extremely valuable in industry and in life, hence in addition to the basic technology insights gained in the course, we see this as an opportunity to develop a skill that will help you in your future career!  1/3 of your grade for the course will be based on these position papers, which will typically be graded using a check/check-plus/check-minus scheme.

Two-thirds of your grade in CS514 will be based on a project.  Every student in the class is expected to do a project.  Normally, projects are undertaken in small groups of 3-4 participants.  However, if desired, a student may work individually.  Meng students can use CS514 projects for Meng project credit.  To do so, you will need permission from the Professor and you should enroll in CS790 for 3 or more extra credits, corresponding to 3 or more extra hours per week of effort spent on the project.  

Normally, CS514 students work on projects from the list given below.  However, individuals who have a specific idea for a project of comparable size can substitute their own effort, if permission from the instructor is obtained first.  These substituted projects should be on topics clearly related to the areas studied in the class.  In the past,  Professor Birman has approved individual research topics that looked at new protocols, theoretical research topics in distributed systems and security, and development projects that sometimes lead to possible PhD thesis work or to publications. 

Many CS514 projects use substantial tools, and this year we are trying to focus the class on two specific ones: the BEA WebLogic server, and the HP eSpeak system.  Both are so-called B2B technologies and are oriented towards Java programmers.   You can use other technologies, but keep in mind that we can�t provide any sort of financial or computing support if you deviate from the software we�re encouraging people to use.  Also, remember that your project should reflect a substantial effort on your part � just showing us that you figured out how to install a database system and that you managed to modify a demo may not lead to a particularly good grade in CS514.  On the other hand, doing a low-quality database system of your own when a free database system was available and could have made your project much more impressive can also lead to weak grades.  The top CS514 grades often go to people who make very innovative use of existing tools in a novel context.

We expect you to learn to use the technologies on which your project is based.  This entails starting early and understanding the technical limits and capabilities early.  We won�t be teaching you to use eSpeak or Weblogic and might not even be able to answer your questions.  The CS514 project is intended as a dry run of life in the real world.  However, these technologies are extremely well documented with online materials.  If you get started early, you won�t have problems with them.

Each project should take the form of a project report, normally no more than 6 to 8 pages, discussing the work that was done, a poster presentation suitable for re-use in the spring �projects fair�, the software itself, which should be packaged so that someone else can load and install it on a suitable computer, and internal documentation so that if someone were to download your project, they could debug problems or extend it.  The last day of the class will be a cs514 version of a project fair at which you�ll demonstrate your project and hand in all of these parts.  (All members of a group must do an equal share of the work.  Talk to Ken confidentially if a problem arises.)

Students seeking MEng project credit are expected to do a fairly �large� project and must get prior approval from Professor Birman.  If you are in this group, plan to talk to Professor Birman within the first two weeks of classes.

Project List

1.       Use HP eSpeak to develop an online brokerage system.  Your system should support large numbers of trading stations from which customers can trade their portfolios, and should be connected to a source of online pricing information, which you can emulate.  Your system should be secure, so that only licensed users can participate.  It should support a feature by which the system can be customized to accept program trading applications that automatically buy or sell batches of stocks according to a strategy prespecified by the customer, for example to �sell my stock in BEA if it peaks at $60/share or more�.  Will your solution scale to very large trading environments (a brokerage might have millions of customers)?  What sorts of reliability and security issues arise in your solution, and how can they be addressed?  The best solutions will be one step from comprehensive online brokerage solutions: just add money.

2.       Use BEA Weblogic to build an online system for selling cosmetics to female customers.  Your system should support a database (Microsoft SQL Server will be fine) of product and customer information and should be customized, so that a customer will be greeted in a personalized way when she returns.  What are the scalability, security and reliability issues raised by your architecture, and how can they be addressed?  The best solutions will have the look and feel of a startup company just waiting to be funded.  (Professor Birman can connect you with suitable VCs if you get enthusiastic about the prospect).