Table of contents: 1. Introduction 2. Architectures 3. Processes 4. Communication 5. Naming 6. Synchronization 7. Consistency and replication 8. Fault tolerance 9. Security 10. Distributed object-based systems 11. Distributed file systems 12. Distributed Web-based systems 13. Distributed coordination-based systems 14. Suggestions for further reading and bibliography.