CS 514: Intermediate Computer Systems 205 Thurston Hall; MWF 10:10-11:05 Spring, 2003 Newsgroup:� cornell.class.cs514 |
|
Professor Ken Birman |
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 |
|
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? | J2EE-vs-DotNET.pdf | |
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 |
�� |
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 |
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 |
40 Ken | 4/28/2003 | Autonomic Computing | �� | Autonomic Computing |
41 Both | 4/30/2003 | Wrap up. Vision for future... Fill out course evaluations |
||
42 | 5/2/2003 | Project demos day! Undergrad Lab |
�