SE 435 - Foundations of Distributed Systems
Reading List and Useful Information
Table of contents
Textbooks
Required:
Distributed Systems: Principles and Paradigms, Tanenbaum & van Steen, Prentice Hall, 2002. ISBN: 0-13-088893-1
Optional:
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
![]()
Java Network Programming, 3rd edition, Elliotte Rusty Harold, O'Reily Associates, 2004. ISBN: 0-596-00721-3 Used in SE 550.
![]()
Java RMI, William Grosso, O'Reilly & Associates, 2001. ISBN: 1-56592-452-5 Used in SE 550.
Fundamental Networking in Java, Pitt, Esmond, Springer, 2006, ISBN 1-84628-030-3
I like this better than Harold.Other useful books
![]()
Jim Farley, Java Distributed Computing, January 1998, O'Reilly & Associates, ISBN:1-56592-206-9, ![]()
Brett McLaughlin, Java &XML, Solutions to Real-World Problems , 2nd Edition, September 2001, O'Reily Associates, ISBN 0-596-00197-5, ![]()
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
- MinGW: Minimalist GNU For Windows gmake, compiler and assembler
- Apache Ant Java-based cross-platform build tool
- JUnit, JUnit Java-based testing [I don't use it but you might]
On-line Articles
General Topics
- Free On-line Dictionary of Computing
- Connected: An Internet Encyclopedia
- A Distributed Discussion with Elliotte Rusty Harold
- Hints for Computer System Design, B. Lampson, ACM Symposium on Operating Systems Principles, Dec. 1983, pp 33-48,
Java
- JavaTM 2 Platform, Standard Edition, v 1.5.0 API Specification Full documentation (javadoc) on the classes used in the course.
- Sun's JDK documentation
- JDK J2SE 5 (JDK 1.5)
- Java in a Nutshell, Chapter 4.2, Strings and Characters
- Scanning Text With
java.util.Scanner
- Reference: Core Java Technologies Tech Tips
Java Streams
- Java Streams Basics
- Java in a Nutshell, Chapter 4.10: Input and Output Streams
TCP/IP, Sockets and HTTP
- Technology Brief TCP
- Technology Brief HTTP
- Reading Data from the Internet - working with the streams over the Internet may be as simple as dealing with files on your local disk
- RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1 The definitive specification.
- Network Performance Effects of HTTP/1.1, CSS1, and PNG detailed discussion of how HTTP 1.1 is better and why
General Topics: Distributed Computing
- Object-Oriented Development of Distributed Systems
- Object-Oriented System Development: HTML Edition
- Developing Distributed Systems with Java
- Barry Cornelius: Developing Distributed Systems (PDF version)
- Distributed Systems
- Java Distributed Computing: Chapter 3. Distr...
Object Serialization
- Sun's Discussion on Object Serialization
- Object Serialization
- Java Serialization
- Transporting Objects over Sockets
- Discover the secrets of the Java Serialization API
- Java Serialization - includes discussion on Versioning
- JavaTM Object Serialization Specification (J2SE 1.5.0)
- Sun's Tutorial on Reflection
- Java API: reflection package
- Using Java Reflection
RPC and XDR - Remote Procedure Calls and External Data Representation
- The following are about the best on XDR and RPC (the RFCs)
- XDR: External Data Representation Standard
- RPC: Remote Procedure Call Protocol Specification Version 2
- Here are some more commentaries
- Remote Procedure Call Programming Guide (mirrror)
- Programming with ONC RPC
- External Data Representation: Technical Notes
- Remote Procedure Call (RPC)
- External Data Representation: Technical Notes
- How about using XML with RPC?
RMI - Remote Method Invocation
- Sun Tutorial on RMI
- RMI and JavaTM Distributed Computing
- Using a Custom RMI Socket Factory
- Remote Object Activation
- An in-depth look at RMI callbacks
- J2SE 1.4.2
- J2SE 1.5.0
- JavaTM Remote Method Invocation (RMI)
- Getting Started Using RMI
- JavaTM RMI Release Notes for J2SETM 5.0
- Understanding Network Class Loaders
- RMI Architecture and Functional Specification
- Dynamic Class Loading in RMI
- Dynamic code downloading using RMI
- Ensure proper version control for serialized objects
- The New RMI - The introduction of three new important features with the release of Java 5.0. The new features include support for dynamic stub generation, RMI over SSL, and the ability to launch a Java RMI sever as an extended Internet service (xinetd) daemon in Unix systems.
Distributed Computing Frameworks and CORBA
CORBA
- The Rise and Fall of CORBA
- Sun's Java IDL documentation:
- J2SE 1.4 Breathes New Life into the CORBA Community,
- CORBA Programming with J2SEtm 1.4
- CORBA
RMI-IIOP
XML
- xml.apache.org
- XML glossary XML acronyms for Java developers
- XML messaging, Part 1
- XML messaging, Part 2
- XML messaging, Part 3
- Java and XML
- Java Tip 128: Create a quick-and-dirty XML pa...
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.
- Soap documentation especially section 5.4.1
- Frequently Asked Questions about the Extensible Markup Language
- Java & XML, 2nd Edition: Chapter 12: SOAP
- "Clean Up Your Wire Protocol with SOAP"
- Read the whole "XML Messaging" series:
- Part 1: Write a simple XML message broker for custom XML messages
- Part 2: XML messaging the SOAP way
- Part 3: JAXM and ebXML set the new standard for XML messaging
- Java & XML, 2nd Edition: Chapter 12: SOAP
- Apache SOAP
- SoapRPC.com: WebserviceResources
- SoapRPC.com: Whitepapers
- SoapRPC.com: Software
- SoapRPC.com: Tutorials
- Simple Object Access Protocol (SOAP)
- alphaWorks : SOAP for Java
Web Services
Cryptology and Security
- Classic papers
- R. Morris and K. Thompson. Password security: A case history. Communications of the ACM, 22(11):594--597, November 1979. (Mirror)
- Reflections on Trusting Trust, Ken Thompson, Communications of the ACM, Vol. 27, No. 8, August 1984, pp. 761-763. http://www.acm.org/classics/sep95/.
- "A Weakness in the 4.2BSD Unix TCP/IP Software," Robert T. Morris, Computing Science Technical Report 117, Bell Laboratories (1985). (Mirror)
- "Security Problems in the TCP/IP Protocol Suite," Steven M. Bellovin, Computer Communication Review, vol. 19, no. 2 (April 1989), pages 32-48. (Mirror)
- TCP/IP Security Holes: A Look Back, Steven M. Bellovin, (lecture), http://www.cs.columbia.edu/~smb/talks/ipext-acsac.pdf
- Cryptology in Computing - Other information sources
- RFC1321 - The MD5 Message-Digest Algorithm
- Cryptography and Security
- WPI EE-578/CS-578 Cryptography and Data Security
- Glossary
- Frequently Asked Questions
- Rob Slade's General Security Bookshelf
- Java Cryptography -- Sample chapter authentication
- Ronald L. Rivest : Cryptography and Security
- CS 431 - Cryptology in Computing
- HomeSweet Home (bsy's home page) file fingerprinting
- The Cryptography Page
- Cryptography FAQ Index
- RSA Laboratories' Frequently Asked Questions About Today's Cryptography, Version 4.1 – RSA Laboratories’ Frequently Asked Questions about Today's Cryptography was first published in 1992 and has been one of the most popular sections of RSA’s Web site. The latest revision, version 4.1 from the year 2000, still remains a valuable introduction to the field. Its content, however, no longer represents the state of the art.
- Online Cryptography Guide: A Deciphering Look
- Cryptography - Lots of links
- Codes and Ciphers
- RSA
- The PKI page
- Handbook of Applied Cryptography
- JavaTMCryptography Extension (JCE)
- Survey of Authentication Protocol Literature
- Programming Satan's Computer
- Steganography Revealed
- Steghide - Steghide is a steganography program that is able to hide data in various kinds of image- and audio-files.
Contributed pages
Content Distribution Systems
- USENET
- A Survey of Peer-to-Peer Content Distribution Technologies (mirror) (~34 pages)
- The Darknet and the Future of Content Distribution (mirror)
- Issues for Distributed Multimedia System (mirror)
- Peer-to-peer
- BitTorrent
Miscellaneous
Distributed Systems Examples
Supplementary material (compliments of Manolis Marazakis, University of Crete):
- Efficient Reading of Papers in Science and Technology, by M.J. Hanson.
- "The Java Tutorial: A practical guide for programmers", by SUN Microsystems Inc.
- Samuel J. Leffler, Robert S. Fabry, William N. Joy, Phil Lapsley, Steve Miller, Chris Torek
An Advanced 4.4BSD Interprocess Communication Tutorial- Beej's Guide to Network Programming: Using Internet Sockets (Sockets tutorial for the C programming language)
- The Java Tutorial: Custom Networking
- Thinking in Java (2nd edition), by Bruce Eckel.
- HTTP Tutorial, by Yannis Yannakopoulos.( .html .pdf)
- A.D. Birrell and B.J. Nelson: Implementing Remote Procedure Calls, ACM Trans. Computer Systems, Vol. 2, No. 1, Jan. 1984, pp. 39-59.
- Philip A. Bernstein: Middleware: a model for distributed system services, Communications of the ACM, Vol 39, No 2 (February 1996), pp 86-98.
- Jim Waldo: Remote procedure calls and Java remote method invocation, IEEE Concurrency, (July-September 1998), pp 5-7.
- The Network Time Protocol (NTP, Mills, 1995)
- The process group approach to reliable distributed computing (Birman, 1993).
- Limitations of CATOCS (Cheriton and Skeen, 1993).
- Epidemic Algorithms for Update Propagation (Demers, et al - 1994)
- Bayou (client-centric consistency) (Terry, et al - 1994)
- Akamai (global content delivery network) (J. Diley et al - 2002)
- CDN Status & Trends (Vakali & Pallis, 2003)
- Architecture and Dependability of Large-Scale Internet Services (D. Oppenheimer and D. Patterson, 2002)
- "Functionality, Availability, Agility, Manageability, Scalability: The New Priorities of Application Design" (J. Gray, 2001)
- CODA (M. Satyanarayanan et al, 1990)
- Paxos (B. Lampson, 2001)
- DAFS (J. Carter et al, December 2000)
- OceanStore (J. Kubiatowicz, February 2003)
- Introduction to PKI (Netscape Communications, 2000)
- Introduction to SSL (Netscape Communications, 2000)
- Porcupine (Y. Saito et al, 2000)
- DDS (S. Gribble, 2001)
- SEDA (M. Welsh, 2001)
- Inktomi (E. Brewer et al, 2001)
- Inferring DoS Attacks (Moore et al, 2001)
- Flash Crowds and DoS Attacks (J. Jung et al, 2002)
- Taxonomy of DDoS Attacks and Defenses (J. Mirkovic et al, 2002)
- Algorithmic Complexity Attacks (Crosby et al, 2003)
- Parasitic Computing (Freeh et al, 2002)
- Protection against DDoS (Cisco.com, 2002)
- "How to 0wn the Internet in Your Spare Time" (Staniford et al, 2002)
- Trends in DoS Attack Technology (CERT Coordination Center, 2001)
- logi.crypto java package with various cryptographic algorithms and protocols
- RFC-2196: Site Security Handbook
- Common Criteria for Information Technology Security
- Digest of the ACM Forum on Risks to the Public in Computers & Related Systems
- Bruce Scheier's essays & weblog
- Google cluster architecture
- Google File System
- IEEE Distributed Systems Online
Humor