SE 435 - Foundations of Distributed Systems
Reading List and Useful Information


Table of contents


Textbooks
Supplements to the Textbooks
Software and Help for Programming: Tools
On-line Articles
General Topics
Java
Java Streams
TCP/IP, Sockets and HTTP
General Topics: Distributed Computing
Object Serialization
RPC and XDR
RMI
Distributed Computing Frameworks and CORBA
CORBA
XML
SOAP
Web Services
Lightweight Directory Access Protocol (LDAP)
Java Naming and Directory Interface (JNDI)
Cryptology and Security
Content Distribution Systems
Miscellaneous
Distibuted Systems Examples
Supplementary material: Reading Lists
Humor




Textbooks

Required:

Tannenbaum Distributed Systems: Principles and Paradigms, Tanenbaum & van Steen, Prentice Hall, 2002. ISBN: 0-13-088893-1

Optional:

kurose_network_3 Computer networking a top-down approach featuring the internet, 3rd ed., Kurose & Ross, Addison-Wesley, 2005. ISBN: 0-321-22735-2

Supplements to the Textbooks

JavaNetwork Programming Java Network Programming, 3rd edition, Elliotte Rusty Harold, O'Reily Associates, 2004. ISBN: 0-596-00721-3 Used in SE 550.
JavaRMI Java RMI, William Grosso, O'Reilly & Associates, 2001. ISBN: 1-56592-452-5 Used in SE 550.
Esmond Pitt
Fundamental Networking in Java, Pitt, Esmond, Springer, 2006, ISBN 1-84628-030-3

I like this better than Harold.

Other useful books

Java Distributed Computing Jim Farley, Java Distributed Computing, January 1998, O'Reilly & Associates, ISBN:1-56592-206-9, 
XML and Java Brett McLaughlin, Java &XML, Solutions to Real-World Problems , 2nd Edition, September 2001, O'Reily Associates, ISBN 0-596-00197-5,
Java Cryptography Jonathan Knudsen, Java Cryptography , O'Reily Associates, May 1998 ISBN:1-56592-402-9

Barry Cornelius: Developing Distributed Systems (PDF version)


Software and Help for Java Programming

GNU Make

Tools

On-line Articles

General Topics

Java

Java Streams

TCP/IP, Sockets and HTTP

General Topics: Distributed Computing

Object Serialization

RPC and XDR - Remote Procedure Calls and External Data Representation

RMI - Remote Method Invocation

Distributed Computing Frameworks and CORBA

CORBA

RMI-IIOP

XML

SOAP

More widely used each day, developers are turning to the SOAP standard for XML messaging. SOAP (Simple Object Access Protocol) was originally proposed by Microsoft but has been subsequently adopted by IBM and many other companies, including, more recently, Sun Microsystems.

Web Services

Cryptology and Security

Contributed pages

Content Distribution Systems

Miscellaneous

Distributed Systems Examples

Supplementary material (compliments of  Manolis Marazakis, University of Crete):

  1. Efficient Reading of Papers in Science and Technology, by M.J. Hanson.
  2. "The Java Tutorial: A practical guide for programmers", by SUN Microsystems Inc.
  3. Samuel J. Leffler, Robert S. Fabry, William N. Joy, Phil Lapsley, Steve Miller, Chris Torek
    An Advanced 4.4BSD Interprocess Communication Tutorial
  4. Beej's Guide to Network Programming: Using Internet Sockets (Sockets tutorial for the C programming language)
  5. The Java Tutorial: Custom Networking
  6. Thinking in Java (2nd edition), by Bruce Eckel.
  7. HTTP Tutorial, by Yannis Yannakopoulos.( .html .pdf)
  8. A.D. Birrell and B.J. Nelson: Implementing Remote Procedure Calls, ACM Trans. Computer Systems, Vol. 2, No. 1, Jan. 1984, pp. 39-59.
  9. Philip A. Bernstein: Middleware: a model for distributed system services, Communications of the ACM, Vol 39, No 2 (February 1996), pp 86-98.
  10. Jim Waldo: Remote procedure calls and Java remote method invocation, IEEE Concurrency, (July-September 1998), pp 5-7.
  11. The Network Time Protocol (NTP, Mills, 1995)
  12. The process group approach to reliable distributed computing (Birman, 1993).
  13. Limitations of CATOCS (Cheriton and Skeen, 1993).
  14. Epidemic Algorithms for Update Propagation (Demers, et al - 1994)
  15. Bayou (client-centric consistency) (Terry, et al - 1994)
  16. Akamai (global content delivery network) (J. Diley et al - 2002)
  17. CDN Status & Trends (Vakali & Pallis, 2003)
  18. Architecture and Dependability of Large-Scale Internet Services (D. Oppenheimer and D. Patterson, 2002)
  19. "Functionality, Availability, Agility, Manageability, Scalability: The New Priorities of Application Design" (J. Gray, 2001)
  20. CODA (M. Satyanarayanan et al, 1990)
  21. Paxos (B. Lampson, 2001)
  22. DAFS (J. Carter et al, December 2000)
  23. OceanStore (J. Kubiatowicz, February 2003)
  24. Introduction to PKI (Netscape Communications, 2000)
  25. Introduction to SSL (Netscape Communications, 2000)
  26. Porcupine (Y. Saito et al, 2000)
  27. DDS (S. Gribble, 2001)
  28. SEDA (M. Welsh, 2001)
  29. Inktomi (E. Brewer et al, 2001)
  30. Inferring DoS Attacks (Moore et al, 2001)
  31. Flash Crowds and DoS Attacks (J. Jung et al, 2002)
  32. Taxonomy of DDoS Attacks and Defenses (J. Mirkovic et al, 2002)
  33. Algorithmic Complexity Attacks (Crosby et al, 2003)
  34. Parasitic Computing (Freeh et al, 2002)
  35. Protection against DDoS (Cisco.com, 2002)
  36. "How to 0wn the Internet in Your Spare Time" (Staniford et al, 2002)
  37. Trends in DoS Attack Technology (CERT Coordination Center, 2001)
  38. logi.crypto java package with various cryptographic algorithms and protocols
  39. RFC-2196: Site Security Handbook
  40. Common Criteria for Information Technology Security
  41. Digest of the ACM Forum on Risks to the Public in Computers & Related Systems
  42. Bruce Scheier's essays & weblog
  43. Google cluster architecture
  44. Google File System
  45. IEEE Distributed Systems Online

Humor