CS 514: Intermediate Computer Systems

205 Thurston Hall; MWF 10:10-11:05

Spring, 2003

Newsgroup:� cornell.class.cs514

Professor Ken Birman
ken@cs.cornell.edu ,
5-9199, Upson 4119-B

Professor Paul Francis
francis@cs.cornell.edu
5-7573, Upson 4143

Office hours: 11:10-12:00, MWF

Course TA: Rimon Barr
barr+cs514@cs.cornell.edu
5-3495, Upson 5152
Office hours: MWF 11-11:30, W 3-4

Grading help from Geoff Crew and Jason Woodward

Distributed Systems: Principles and Paradigms
Tanenbaum and van Steen; Prentice Hall 2002

Additional readings will be assigned on some topics for which coverage in the text is a bit skimpy.
Quick links:� Overview �� Homework ��� Project ��� MEng project credit ��� Grading ��� Syllabus

This course focuses on practical issues in designing and implementing modern computer systems, with some emphasis on distributed software. In the spring of 2003, the course has been completely updated, with a new textbook, revised syllabus and far more content drawn from recent industry platforms such as Microsoft's .NET and the C# language used to build applications in it, Sun's J2EE environment for "industry-strength" Java applications, and Web Services.� Other topics covered will include network architecture as seen from the perspective of a distributed application, object-oriented software development methodologies and tools, peer-to-peer computing systems, other styles of distributed computing, fault-tolerant systems, data centers and clusters, autonomic and grid computing, network operating systems and tools for accessing databases.�

Students in COM S 514 undertake a substantial software project. This year, the suggested project in involves using .NET (from Visual Studio C#) to build a Web Services application with a peer-to-peer data replication mechanism and client "roll-over" in the event that a server fails or becomes inaccessible.� While the Web Services aspect of this project can be developed using built-in features of Visual Studio C#, you'll need to code the protocols to support replication and roll-over.�� However, students can also propose and develop alternative projects if they have a suitable idea.� COM S 514 students are encouraged to work either on their own, or in a small team of up to three members on these projects.� (If you have never used C#, no need to worry: the language is essentially identical to Java, although the runtime libraries are different; we'll provide the software for free so that you can use lab machines or your own PC).

The basic project is suitable for a one-person effort.� Obviously, a team effort should be more ambitious than a solitary one. For example, a team project could tackle challenges of dealing with corporate firewalls and network address translation, mobility issues or even security challenges.

Historically, many students in COM S 514 have expanded the project a little, obtained additional project credit by coregistering in COM S 790 (the "MEng Project" Course number).� If you do this for 3 credits, you can use your COM S 514 project to satisfy the MEng degree "software project" requirement.� You need our permission for this, and to get it, you'll need to convince us that what you have in mind is ambitious enough to represent a suitable MEng project.� We expect you to do some work for those extra three credits, so your project will be bigger and more time consuming than if you didn't opt to use the COM S 514 project for this purpose.� Something important to know is that no incompletes are granted in COM S 514 during the spring semester.� You must complete your project by the "project demo day!"

Here are instructions as to how to configure your client to use the P2P testbed.   Here is a diagram of the P2P testbed.  Many thanks to Doug Chan and Ian Fung for setting this up.

Homework: there will be a weekly assignment, typically either based on problems from the textbook or asking for a very short (one-page) essay on a topic arising from the week's readings and lectures.� Two of these homework assignments will be a bit tougher and will count as take-home prelims.� In addition, as mentioned above, there will be a software project.� Grading will be a total of 10% for homework other than the prelims, 20% each for the two prelims and 50% based on the software project.

3

Date

Topic

Homework

Reading

1 Ken 1/20/2003 Overall structure of a modern computing system (.NET or J2EE).� Major components: network, communication tools, object orientation, naming, replication.

Homework 1, due in 1 week

Chapter 1
2 Ken 1/22/2003 Introduction to the object layer.� Interfaces (UDDI). Object invocations using RPC.� Marshalling (XML, SOAP).� Idempotent and non-idempotent operations.� Reliability models: best effort, at most once, at least once, exactly once, transactional. �� Chapter 9
3 Paul 1/24/2003 Introduction to the network layer.� Routing: WAN and LAN.� End-to-end principle.� IP, TCP, UDP, multicast.� Ethereal: A tool for spying on the network layer that you may want to use in your projects. �� Chapter 2.� (Please be familiar with Section 2.1 on OSI/ISO Layering)
4 Paul 1/27/2003 Introduction to naming.� DNS.� Names of objects.� Mobility.� URLs and URNs and URIs.� Other ways of locating resources: �SIP discovery (REGISTER), �LDAP, Anycast.� The NAI. �Http cookies as an identification/naming mechanism Homework 2, due in 1 week�� Chapter 4. (Primarily sections 4.1 and 4.2)
5 Ken 1/29/2003 Introduction to performance issues. � Rules of thumb for building higher performance systems.� Caching and replication.� Consistency. Soft state versus hard state.�� �� 6.1.1, 10.1.6, 10.2.6, 10.4.6, 11.1.6, 11.2.6
6 Ken 1/31/2003 Performance issues in Web Services systems.� How do performance issues arise in Web Services architectures?� What are people doing to try and achieve high speeds?

The slide set was generously provided by C. Mohan, one of IBM's senior database researchers.

��
7 Ken 2/3/200 Industry platforms and standards. .NET and J2EE: how do they differ?� How are they similar?��C# and Java with a focus on features for distributed environments.� Which will be better for applications with a strong concern about security?� What about mobility?

Project Handout��

J2EE-vs-DotNET.pdf

Microsoft .NET "sales pitch"

J2EE "sales pitch"

8 Ken 2/5/2003 Data centers in modern corporate settings. � Overview of the major components� �� ��
9 Paul 2/7/2003 Firewalls and NATs.��Challenges of cross-firewall addressing and performance.� Java Beans and other 3-tier tricks. �STUN. �� ��
10 Paul 2/10/2003
P2P using STUN and DNS SRV.� Tells how to do address/port discovery for peer-to-peer with STUN and DNS SRV.� Needed for the P2P project.

��Homework 3
due in one week

��
11 Ken 2/12/2003 Replication options within a server cluster.� Soft state.� Hard state.� Transactional replication.� This is the second half of lecture 8 �� Cluster Scalability
12 Paul 2/14/2003 Load balancing options: DNS, HTTP redirect, IP sprayers, other F5-type products.�� ��
13 Paul 2/17/2003 Continuation of lecture 12.� ��
14 Paul 2/19/2003 Security issues seen in data centers: identification of users.� HTTPS and SSL.� Firewalls and tunnels.� DMZs. Distributed denial of service (DDOS) attacks.� Other attacks.
Chapter 8
15 Paul 2/21/2003 VPNs and other network-level security concepts

16 Ken 2/24/2003 Dealing with network outages.� Rollover techniques.� Mechanisms for detecting and repelling DDOS attacks in WAN settings.� �� Chapter 7
17 Paul 2/26/2003 Revisiting major issues from the ground up: Internet Routing.� Routing and BGP.� �� Chapter 2
18 Paul 2/28/2003 Performance of the Internet WAN.��Studies of how the Internet actually performs. � Prelim #1
due March 3rd at 10am

19 Paul 3/3/2003 Other content routing ideas (URL rewriting). �Dynamic generation of media meta-files like .smil etc. to drive server selection. HTTP redirect pros and cons.� Challenges of determining which IP addresses are closest to which servers. �� ��
20 Ken 3/5/2003 Is it feasible to block DDOS attacks in the network? Emerging options for network-level monitoring, spoof detection, dynamic packet filtering.. Project update
due: 23/3, 14/4.
��
21 Paul 3/7/2003 More on Web Caching (web caching, steering to web caches from router, ICP, WCCP, reverse caching).�� �� ��
22 Paul 3/10/2003 The Next Generation Internet.� SIP and other alternatives to the classical Internet.� Why IPv6 is apparently doomed. �� ��
23 Paul 3/12/2003 Challenges of mobility.   Operation in disconnected modes.� Coda and Rover as examples of transparent and non-transparent approaches.. � �� ��
24 Ken 3/14/2003 Distributed protocols.� UDP reliability issues.� How TCP and RPC provide reliability.� How "reliable" are these mechanisms?� Consistency notions for distributed failure detections.�� �� Resilient Overlay Networks

3/17/2003 No class: Spring break �� ��

3/19/2003 No class: Spring break �� ��

3/21/2003 No class: Spring break �� ��
25 Ken 3/24/2003 Can we built a fault-tolerant service using RPC?  How fault-tolerant RPC gives rise to the atomic broadcast problem. �� Chapters 5,6,7
26 Ken 3/26/2003 Is there any way to build a fault-tolerant service?� The Fischer, Lynch and Patterson (FLP) theorem. �� ��
27 Ken 3/28/2003 Why some people consider RPC "harmful".� Threading issues.� How transparent is RPC?� Failure handling issues.� Performance surprises. �� ��
28 Paul 3/31/2003 Resilient Overlay Networks (RONs)How the MIT RON project is working around congestion.� Are RONs a great idea, or just antisocial? �� ��
29 Paul 4/2/2003 Finding stuff in large systems.� DNS (ENUM, DDDS).  Google.  Gnutella/FastTrack.  Distributed Hash Tables (DHTs).  �� Pastry project page
30 Paul 4/4/2003 Finding stuff in large systems� Pastry, Chord, CAN, Kelips. �Issues such as churn and scalability. �� ��
31 Ken 4/7/2003 Astrolabe: A scalable network monitoring, management and data mining tool.  . Practical challenges of large scale monitoring, instrumentation and automated response �� Astrolabe��

 

32 Paul 4/9/2003 Ion Stoica's Internet Indirection ideas �� Stoica paper�
33 Paul 4/11/2003 Peer-to-peer protocols for file and data replication: file sharing Napster, Gnutella, Freenet.   �� ��
34 Ken 4/14/2003 Peer-to-peer protocols for file and data replication.� CFS, PAST. � �� ��
35 Ken 4/16/2003 Replication at higher data rates.  Multicast and reliable multicast.� Digital fountains. Scalability challenges and peer-to-peer options. � Publish-subscribe and content routing systems �� 7.4, Chapter 12

Bimodal Multicast

36 Ken 4/18/2003 Replication at higher data rates.    Overcast and content management systems. Prelim #2
due April 21st at 10am
Overcast
37 Ken 4/21/2003 The transactional database model and its uses in distributed systems. Issues seen in applications that access databases in .NET and J2EE.�   Basic ideas.  2PC.  Obtaining serializability using 2-phase locking. �� Chapter 6, 7
38 Ken 4/23/2003 How transactions are implemented.  Nested transactions.  Issues seen within transactional servers.  Costs associated with WS_TRANSACTION ��
39 Paul 4/25/2003 Grid computing systems: Vision and basic ideas. The Netsolve toolkit �� Grid Computing

Network Enabled Solvers

40 Ken 4/28/2003 Autonomic Computing �� Autonomic Computing

Brodie Talk

41 Both 4/30/2003 Wrap up.  Vision for future...  
Fill out course evaluations
   
42  5/2/2003 Project demos day!  Undergrad Lab