ISE 437 - Distributed Information Systems
Semester 1 5771


Topics     Reading     Projects  Quizzes   Grading     Lectures     Policies

Time: Monday 9:00 - 12:00 in Caravan 514
Targil: Wednesday 8:00 - 10:00 in Room 202 in the Triguboff Sciences Building

Instructor:

    Michael J. May
      e-mail: mjmay (AT) kinneret,ac,il
      office hours: Wednesday 12:45-13:45 (and by appointment)

The full detailed syllabus for the course is available here.

Reminder: Sample final exam on Telem.  Final Exam A on 30 Jan 2011.


Topics:

The course is a followup to previous courses on network communication and system programming.  The goal of this course is to introduce a design and implementation study of \emph{distributed information systems}, where data, computation, and resources are distributed across a network.  We will study several internet based applications which illustrate good distributed systems design.

The topics for the course include some or all of the following:
  • Distributed Computation
  • Primitives for Distributed Computation
  • Common Problems (and Solutions) for Distributed Systems
  • Techniques and Algorithms
  • Distributed Information Systems
  • The Internet and Internet Applications as a Distributed Information System
  • The Internet Environment (TCP/IP)
  • Existing Internet Applications
  • Client-Server Applications
  • Peer-to-Peer Applications
  • Coding Internet Applications Using TCP and UDP
  • Distributed Computing Using Java
The material for the course is taken from a variety of sources include Tanenbaum, Kurose and Ross, Coulouris, et. al, Tanenbaum and Van Steen, and research papers from the academic literature on the topic.

Reading

The following books contains useful course material, and much of the lecture content is derived from them (and other sources). Copies of these books are on reserve in the Kinneret Library.

  • Jean Dollimore George Coulouris and Tim Kindberg. Distributed Systems: Concepts and Design. Addison
    Wesley, 4th edition, June 2005.
  • James F. Kurose and Keith W. Ross. Computer Networking: A Top-Down Approach. Addison-Wesley,
    4/E edition, 2008.
  • Andrew S. Tanenbaum. Computer Networks. Prentice-Hall, 4th edition, 2003.
  • Andrew S. Tanenbaum and Maarten Van Steen. Distributed Systems: Principles and Paradigms. Prentice
    Hall, 2nd edition, October 2006.
In addition, the following books, papers, and web sites provide supplementary material. Reading selections from these sources will be announced in class.
  • C.A.R. Hoare. Communicating Sequential Processes. Prentice-Hall, electronic edition, 21 June 2004. [pdf]
  • Sylvia Ratnasamy, et al. A Scalable Content-Adressable Network. In SIGCOMM2001. [pdf]
  • Ion Stoica, et al. Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications. In SIGCOMM2001 [pdf]

Assignments

Assignment 1: Client and Server Communication. Due: 1 November 2010; Extended to 8 November 2010.
                      Sample key. גרסא בעברית

Assignment 2: POP and SMTP client/servers. Due 21 December 2010.

Assignment 3: Student Research. Due 11 January 2011.

Assignment 4: RMI in Java. Due 15 January 2011.
                      Test. Logins. Server-Config.
               


Quizzes

There will be (a maximum of) four in class short quizzes at the beginning of lectures during the course of
the semester. The quizzes will take place from 2:00-2:10pm.  Students may skip or drop the grade of one of the quizzes without penalty. Students who miss a quiz due to Miluim duty will be allowed to (additionally) drop the missed quiz.

Tentative Quiz Schedule

#
Date
Topic
Source (TV)
1
25 Oct
Distributed architectures and transparency
1-2.2
2
15 Nov
RPC
3.5
3
6 Dec
Naming
5
4
3 Jan
Consistency
7

Grading Criteria

  •   4%   Quizzes
  • 16%   Assignments
  • 80%   Final Exam

Lecture Slides and Notes

Schedule

Date
Topic
Notes
11Oct Intro to Distributed Systems
[pdf][targil, networks]
18Oct
Distributed Systems Types and Architectures [pdf][targil, inserts]
25 Oct
Processes and Threads
[pdf][targil]
1 Nov
Migration and Communication
[pdf][targil]
8 Nov
RPC and Communication 2
[pdf][targil]
15 Nov
Epidemic Algorithms, Naming
[pdf][targil]
22 Nov
Naming 2
[pdf][targil]
29 Nov Synchronization 1 [pdf][targil]
6 Dec
Vector Clocks, Mutual Exclusion, Node Positioning [pdf][targil]
13 Dec
Synchronization Examples, Elections [pdf][targil]
20 Dec
Consistency Models [pdf][targil]
27 Dec Replication Mechanisms and Consistency Protocols, Web Services Intro
[pdf][targil]
3 Jan
XML and Web Services
[pdf][targil]
10 Jan
XML Security, Distributed DBs [pdf]
30 Jan
Final Exam A from 9:00am - 12:00pm in Room ק18
9 Feb
Final Exam B from 8:30am-11:30am in Room TBA


Note that the lecture schedule is likely to change during the course of the semester as we choose to focus on different topics over the course of the semester.  Check back often for updates.

Academic Integrity

Since Kinneret College does not have a unified code of academic integrity, this course will abide by the University of Pennsylvania's Code of Academic Integrity. In particular, for individual projects and group projects, the following guidelines should be followed:
  • For individual projects, you must type in and edit your own code, documentation, and any other materials submitted for grading.
    • Copying someone else's file is not allowed.
    • Allowing someone else to copy a file of yours, either explicitly or implicitly by leaving your code unprotected, is not allowed.
    • Editing each other's files is not allowed
  • Regarding the ethics of what you may or may not discuss with others:
    • "High level" discussions are fine.
      For example, discussions about the problem statement.
    • "Low level" discussions are fine.
      For example, discussions about C syntax or using gdb, understanding compiler error messages, understanding the mechanics of the tools and libraries used for the projects.
    • "Mid level" discussions require discretion. In this CIS course, discussions at this level must be limited.  Unless explicitly stated otherwise, you may not collaborate significantly with classmates (except group project members) at this level.  If you have minor discussions with others at this level or get help from outside resources (tutors, web sites, etc), you must cite at the top of the submitted projects the names of the people or websites who helped you and how they did. For example:
            /**
      * Chris Brown
      * Project 1
      * 5/6/2008
      * I received tips from Jo Johnson on the i/o and example.com/mem.htm on memory
      */
  • If there is any doubt about the use of external sources or collabortation, please ask for clarification by the course staff.