SE 550 - Distributed Software Development
Reading List and Useful Information
Table of contents
Textbooks
Texts:
![]()
Java Network Programming, 3rd edition, Elliotte Rusty Harold, O'Reily Associates, 2004. ISBN: 0-596-00721-3 ![]()
Java RMI, William Grosso, O'Reilly & Associates, 2001. ISBN: 1-56592-452-5 Supplements to the Textbooks
- Barry Cornelius: Developing Distributed Systems (PDF version)
![]()
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 On-line Articles
General Topics
- Free On-line Dictionary of Computing
- Connected: An Internet Encyclopedia
- A Distributed Discussion with Elliotte Rusty Harold
Java
- JavaTM 2 Platform, Standard Edition, v 1.4.2 API Specification Full documentation (javadoc) on the classes used in the course.
- Sun's JDK documentation
- JDK download (This is JDK 1.4.2)
- 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
- Developing Distributed Systems with Java (one file)
- Distributed Systems
- Java Distributed Computing: Chapter 3. Distr...
Parsers, Lexers and Compiler Compilers
- BNF and EBNF: What are they and how do they work?
- LL(1) Grammars
- LLAnalyze: An LL(1) Grammar Analyzer
- LL parser
- Creating a Recursive-Descent Parser
- Introduction to Parsers, Part III: Does a Yak Have Antlers? Parsing for Fun and Profit
- Java, Objects, and Tools in Compiler Construction
- SableCC is a Open Source Java Compiler Compiler
- JavaCC is a Public Domain Compiler Compiler for Java
- JavaCC documentation - JavaCC [tm]: Documentation Index
- Documentation on JavaCC (local mirror)
- JavaCC archive
- JavaCC, parse trees, and the XQuery grammar - Using BNF and JavaCC to build custom parsers
- The JavaCC FAQ
- The JavaCC Tutorial
- Looking for lex and yacc for Java? You don't know Jack
- Build your own languages with JavaCC
- ANTLR, ANother Tool for Language Recognition, (formerly PCCTS) is a language tool that provides a framework for constructing recognizers, compilers, and translators from grammatical descriptions containing Java, C#, or C++ actions.
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
Distributed Computing Frameworks and CORBA
CORBA
- Sun's Java IDL documentation:
- J2SE 1.4 Breathes New Life into the CORBA Community,
- CORBA Programming with J2SE[tm] 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
JDBC and other Database Access Protocols
SQL and JDBC
Persistence
Java Data Objects
Lightweight Directory Access Protocol (LDAP)
- Technology Brief LDAP
- An LDAP Roadmap & FAQ
- What is LDAP?
- Introduction to slapd and slurpd
- Beyond the White Pages
- Introduction to Directories and the Lightweight Directory Access Protocol
- Understanding LDAP - Design and Implementation - IBM online book, 6.5 Mb PDF, ISBN 073849786X, IBM Form Number SG24-4986-01, Number of pages 768
- OpenLDAP
- LDAP Services: Links
- RFC 2307 - LDAP as a Network Information Service
- RFC 1798 - Connection-less LDAP
- RFC 1823 - LDAP Application Program Interface
Java Naming and Directory InterfaceTM
Cryptology and Security
- Cryptology in Computing - Other information sources
- The RFC describing MD5
- 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
- Cryptography
- Cryptography FAQ Index
- RSA Laboratories | Cryptography FAQ
- Codes and Ciphers
- RSA
- rfc1321 - The MD5 Message-Digest Algorithm
- 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.
Miscellaneous
Humor
RFC 3092 - Etymology of "Foo"