CSE 646 Internet Software Systems (Fall 2000)



Course Description

This is a special topic course, not an introductory course on Internet software systems. Students who plan to take this course are expected to have the level of maturity in computer networking as covered in CSE533, the network programming course, or the first six chapters of the second edition of Andrew Tanenbaum's "Computer Networks" book, as well as UNIX socket programming. If you don't have that background and still want to take this course, please come and talk to me first. An important thing to remember before you decide to take this course is that you have to be committed to do a good job in the homeworks and class projects to learn anything useful out of the course. That is, it is very unlikely to get anything out of the course just by auditing the course. The course will be heavily oriented towards classroom discussion and student presentation. In fact, the lectures will mostly be in the form of case studies and design walk-throughs.

In this course, we plan to study the high-level software components that make up post-WWW Internet applications. Our focus will be mostly on the ``middleware'' aspect rather than the network and transport layers. Although this is an Internet software course, we DO NOT plan to go into the details of the most recent Internet programming tools such as Java, XML and WAP. Instead, the emphasis will be their design principle and system architecture. We will study the three axes of the WWW software architecture, the browser, the proxy, and the Web server. Instead of looking at their implementation details such as HTML interpretation and rendering, we will focus on their extension mechanisms and novel applications that can be built on these extension mechanisms. In addition, we will also study various augmented components in this architetcure that have been developed for reasons such as performance optimization and security. There will be a mini-project, a transcription and presentation requirement, and a class project. The mini-project is meant to be a warm-up exercise. The topic of the mini-project can be chosen from the following:

Each student is required to be involved in a one-hour class presentation, i.e., part of a team that is preparing for a presentation. In each class, we will need two students to transcribe the classroom lecture and discussion, and prepare them into an HTML file that is to be posted to the class Web site. Each student is required to perform such a transcription task at least once. The major component of this course is the class project. Students are organized into one-person or two-person teams to design and implement an Internet software system or application. Each team needs to make two 30-minute presentations for its project to the class, one on system design before the Thanksgiving week, and one on final results at the end of the semester. In addition, every team is asked to turn in a publication-quality research paper documenting the experiments, results, and analysis.

The grade will be based on: 35% Homework, 15% Presentation, and 50% Project. There is no textbook for this course. Pointers to relevant papers and notes will be posted on the class web site. The workload is estimated to be about 10 hours per week, excluding the project effort. The first class is on September 6 (Wednesday).


Administrative Matters


Special Needs

If you have a physical, psychological, medical or learning disability that may impact on your ability to carry out assigned course work, I would urge that you contact the staff in the Disabled Student Services office (DSS), Room 133 Humanities, 632-6748/TDD. DSS will review your concerns and determine, with you, what accommodations are necessary and appropriate. All information and documentation of disability is confidential.

Handouts

Final Project Reports

  1. Lap Chung Lam, Tool for Supporting Distributed Software Engineering
  2. Guanghao Yan and Chuyu Ren, Text/Speech-based Interactive Online Customer Service
  3. Kefei Lu and Xifeng Yan, Cache for Dynamic Web Content from SQL Queries
  4. Feng Tang and Hong Jiang, IP Address Geographic Mapping
  5. Chang Li and Jinshan Liu, QoS Support for Web Server Clusters
  6. Gang Peng and Ningning Zhu, Dynamic Thread Management for Internet Servers (pending)