Software Engineering 435
Foundations of Distributed Systems I
Final Study Guide

Exam information and content

The exam will include material covered during the last five lectures (mostly). The exam will include a variety of different problem types, chosen from the following list: Important disclaimer: This guide is simply a means of giving you some help in studying for the final exam. It is not intended as a comprehensive inventory of every topic discussed in class nor that might be included on the exam. It is the student's responsibility to be familiar with all the material covered through the fourth lecture and in the homework assignments.

Topics Discussed


Topics from the first four lectures:
  1. Intro to distributed systems: architecture, modeling and scaling
    1. What's a Distributed System
    2. What do we want from a Distributed System?
      1. Openness
      2. Scalability
        • 3 dimensions of scalability
        • Problems of scalability
        • Scaling techniques
          • caching
          • replicate
          • Asynchronous
          • Synchronous
    3. Elements of a Distributed System
      1. Networks
        • WAN - Wide Area Network
        • LAN - Local Area Network
      2. Hosts
      3. middleware
    4. architecture;
      • Client/Server Model
      • Multicomputer O/S
      • Multiprocessor O/S
      • Uniprocessor O/S
      • multicomputers
    5. Various configurations of Distributed Systems.
    6. Example Distributed Systems
    7. Network operating systems
      • NOS - Network Operating System
      • DOS - Distributed Operating System
      • Distributed file systems:
  2. Protocols and applications;
    1. Packets
    2. Protocols
      • Connection-oriented Protocol
      • Connectionless protocol
    3. Layering
    4. Layered protocols
    5. Application Layering
    6. Communication between processes
  3. Introduction to networking: IP, TCP, UDP
    1. Ports
    2. Sockets
    3. Binding
    4. Datagram Sockets
    5. UDP - User Datagram Protocol
    6. Programming in UDP
    7. Locating resources on the network
    8. Network Programming: Sockets
    9. Socket Programming with TCP
    10. Java I/O and sockets
  4. Middleware And Application Protocols
    1. Application Layer Protocols
    2. Program and Network Layer
    3. Documents
      • HTML
      • MIME
    4. HTTP
    5. URL - Uniform Resource Locator
    6. URN - Uniform Resource Name
    7. cookie
  5. Threads;
    1. Threads in Java
      • Java Threads and the Runnable Interface
      • Process vs. Thread
      • Socket programming; threads
    2. Server types
    3. Multithreaded client/server


Topics covered after the midterm exam.
  1. Network Programming
    1. Java sockets for TCP
    2. Java sockets for UDP
    3. What can data types can be transmitted with Java sockets?
  2. RPC and XDR
  3. Serialization
  4. RMI
    1. Naming in RMI
    2. Remote method calls
    3. Serialization (Is everything serializable?)
    4. Passing parameters to remote methods (Passing a copy or passing a stub (e.g. a reference))
    5. Call backs
    6. Garbage collection
  5. Naming
    1. RMI
      • registry
    2. DNS
    3. X.500
    4. LDAP
    5. JNDI
  6. Security
    1. Cryptography
      • Symmetric key
      1. public key encryption
    2. Confidentiality
    3. Authentication
      • How does A authenticate herself to B using with a symmetric key
      • How does A authenticate herself to B using with public/private keys.
    4. Integrity
      • digital signatures, message digests, hash functions
      • How do you verify that a received message is what it purports to be using cryptography?
    5. Key Distribution and Certification
      • What does a key distribution center do?
      • What does a certificate authority do?
  7. Distributed Garbage Collection
    1. Simple reference counting
      • Object gets "reference" and "unreference" messages
      • Sending a copy of a remote reference has an inherent increment/decrement race condition if the sender also deletes its reference. (Why?)
    2. Reference Listing (Used by RMI)
  8. Content Distribution
  9. Multimedia