G22.3033-008 Web Services and Applications

Fall 2003
Class: Tuesdays, 5-7pm, WWH 102
Office hours: by appointment

Robert Grimm
rgrimm@cs.nyu.edu

[ Overview | Schedule | Assignments | Resources ]

Overview

Web Services and Applications explores how to build a web where content is dynamic and different services interact directly with each other. This course is motivated by computing industry's current interest in web services (witness Microsoft's .NET). However, while exploring the relevant standards (SOAP, WSDL, and UDDI), the course is not limited to them and tries to be a more general exploration of web technologies.

More specifically, the goals for the course are:

Course Components
To meet these goals, the course has three components:

In other words, the course is a combination of a research seminar and a systems building course.

Reading assignments mostly cover research papers. Each reading assignment needs to be completed before the corresponding lecture. Students also need to produce a written summary for each assigned paper. The reading summary should be about a paragraph long and describe in the student's own words (1) the main idea expressed in each paper, (2) the innovations (if any) described in the paper, (3) the student's criticisms (regarding soundness, methodology, elegance, etc.), and (4) possible research directions. Note that paraphrasing a paper's abstract or outline is not sufficient.

Summaries are submitted by emailing them in plain-text format (with hard line breaks after each line) to g22_3033_008_fa03-readings@cs.nyu.edu. Make sure the subject specifies the paper title. The archive of all summaries is here. Summaries are due at 10am on the day of the corresponding class!

Programming assignments are substantial, written in Java, build on each other, and are performed in teams of four (4) students. In the course of the semester, students explore the complete web services infrastructure (notably, the HTTP and SOAP engines) and also build their own applications. Furthermore, groups will perform significant testing and measurement studies, including regular interoperability testing (where one group tests another group's HTTP or SOAP engine).

There are no exams.

Prerequisites
Proficiency in Java, including how to write socket-based and multi-threaded code, is required. Experience with building large software systems and the ability to read and digest research papers are highly helpful.

Grading Policy
50% programming assignments, 30% reading assignments, 20% class participation.

Collaboration Policy
Students are encouraged to discuss class topics and readings with each other. However, each student must write his/her reading summary individually. Students in different groups may help each other with general programming questions and interoperability testing. However, students in different groups must not exchange code or use code from outside sources (such as the Internet). The java.net.URL and java.net.URLConnection classes in the Java SDK are off-limits.

Schedule

Introduction 9/2/03

Slides: PowerPoint, PDF.

Required readings:

Further readings:
HTTP 9/9/03

Slides: PowerPoint, PDF.

Required readings:

Further readings:
Building Fast Servers 9/16/03

Slides: PowerPoint, PDF.

Required readings:

Further readings:
Clusters 9/23/03

Slides: PowerPoint, PDF.

Required readings:

Further readings:
  • Thomas E. Anderson, David E. Culler, David A. Patterson, and the NOW Team. A Case for NOW (Networks of Workstations). IEEE Micro, 15(1):54-64, February 1995.

  • Armando Fox, Steven D. Gribble, Yatin Chawathe, Eric A. Brewer, and Paul Gauthier. Cluster-Based Scalable Network Services. Proceedings of the 16th ACM Symposium on Operating Systems Principles, pages 78-91, Saint-Malo, France, October 1997.

  • Vivek S. Pai, Mohit Aron, Gaurav Banga, Michael Svendsen, Peter Druschel, Willy Zwaenepoel, and Erich Nahum. Locality-Aware Request Distribution in Cluster-Based Network Servers. Proceedings of 8th International Conference on Architectural Support for Programming Languages and Operating systems, pages 205-216, San Jose, California, 1998.

Caching 9/30/03

Slides: PowerPoint, PDF.

Required readings:

Further readings:
Content: XML 10/7/03

Slides: PowerPoint, PDF.

Required readings:

Further readings:
Content: Multimedia 10/14/03

Slides: PowerPoint, PDF.

Stefan Saroiu's OSDI talk slides: PowerPoint, PDF.

Required readings:

  • Stefan Saroiu, Krishna P. Gummadi, Richard J. Dunn, Steven D. Gribble, and Henry M. Levy. An Analysis of Internet Content Delivery Systems. Proceedings of the 5th Symposium on Operating System Design and Implementation, pages 315-327, Boston, Massachusetts, December 2002.

  • Steven McCanne, Van Jacobson, and Martin Vetterli. Receiver-driven layered multicast. Proceedings of the ACM SIGCOMM '96 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications, pages 117-130, Palo Alto, California, 1996.

Small Devices 10/21/03

Slides: PowerPoint, PDF.

Required readings:

Further readings:
  • Jason Hill, Robert Szewczyk, Alec Woo, Seth Hollar, David Culler, and Kristofer Pister. System Architecture Directions for Networked Sensors. Proceedings of the 9th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 93-104, Cambridge, Massachusetts, November 2000.

RPC 10/28/03

Slides: PowerPoint, PDF.

Required readings:

Further readings:
Security 11/4/03

Slides: PowerPoint, PDF.

Required readings:

  • Alex C. Snoeren, Craig Partridge, Luis A. Sanchez, Christine E. Jones, Fabrice Tchakountio, Beverly Schwartz, Stephen T. Kent, and W. Timothy Strayer. Single-Packet IP Traceback. IEEE/ACM Transactions on Networking, 10(6), December 2002.

  • Stuart Staniford, Vern Paxson, and Nicholas Weaver. How to 0wn the Internet in Your Spare Time. Proceedings of the 11th USENIX Security Symposium, San Francisco, California, August 2002.

  • David Moore, Vern Paxson, Stefan Savage, Colleen Shannon, Stuart Staniford, and Nicholas Weaver. The Spread of the Sapphire/Slammer Worm. Technical report, January 2003.

Further readings:
Descriptions 11/11/03

Slides: PowerPoint, PDF.

Required readings:

Further readings:
Discovery 11/18/03

Slides: PowerPoint, PDF.

Required readings:

Further readings:
Active Everything 11/29/03

Slides: PowerPoint, PDF.

Required readings:

Pulling Back: REST vs. SOAP 12/2/03

Required readings:

  • Tim Berners-Lee, James Hendler, and Ora Lassila. The Semantic Web. Scientific American, 284(5):34-43, May 2001.

  • Paul Prescod. Roots of the REST/SOAP Debate. Proceedings of Extreme Markup Languages, Montréal, Canada, August 2002.

Assignments

Remember that all programming assignments are written in Java (without using java.net.URL and java.net.URLConnection) by groups of four students.

For each assignment, each group needs to:

Assignments:

Resources

Books

Note that neither book is required, they are both optional.

Mailing Lists

Authorized Code

Axis Webcams

Standards