Register your product to gain access to bonus material or receive a coupon.
Provides students with an understanding of the key principles, paradigms, and models on which all distributed systems are based.
Because this part is organized along the same seven key principles that are discussed in the first part of the book, students not only learn how state-of-the-art real-world systems and middleware work, but are also able to compare the different systems easily.
Helps students apply the concepts covered in each chapter and learn how various principles are implemented in practice.
Helps students easily learn the foundation of distributed operating systems and how things work in the real world.
Students learn about security, payment systems, recent Internet and Web protocols, scalability, and caching and replication.
Andrew Tanenbaum and Maarten van Steen cover the principles, advanced concepts, and technologies of distributed systems in detail, including: communication, replication, fault tolerance, and security. Intended for use in a senior/graduate level distributed systems course or by professionals, this text systematically shows how distributed systems are designed and implemented in real systems. Written in the superb writing style of other Tanenbaum books, the material also features unique accessibility and a wide variety of real-world examples and case studies, such as NFS v4, CORBA, DCOM, Jini, and the World Wide Web.
FEATURES(NOTE: Each chapter concludes with a Summary section.)
1. Introduction.
Definition of a Distributed System. Goals. Hardware Concepts. Software Concepts. The Client-Server Model.
2. Communication.
Layered Protocols. Remote Procedure Call. Remote Object Invocation. Message-Oriented Communication. Stream-Oriented Communication.
3. Processes.
Threads. Clients. Servers. Code Migration. Software Agents.
4. Naming.
Naming Entities. Locating Mobile Entities. Removing Unreferenced Entities.
5. Synchronization.
Clock Synchronization. Logical Clocks. Global State. Election Algorithms. Mutual Exclusion. Distributed Transactions.
6. Consistency and Replication.
Introduction. Data-Centric Consistency Models. Client-Centric Consistency Models. Distribution Protocols. Consistency Protocols. Examples.
7. Fault Tolerance.
Introduction to Fault Tolerance. Process Resilience. Reliable Client-Server Communication. Reliable Group Communication. Distributed Commit. Recovery.
8. Security.
Introduction to Security. Secure Channels. Access Control. Security Management. Example: Kerberos. Example: SEASAME. Example: Electronic Payment Systems.
9. Distributed Object-Based Systems.
CORBA. Distributed COM. Globe. Comparison of CORBA, DCOM, and Globe.
10. Distributed File Systems.
Sun Network File System. The Coda File System. Other Distributed File Systems. Comparison of Distributed File Systems.
11. Distributed Document-Based Systems.
The World Wide Web. Lotus Notes. Comparison of WWW and Lotus Notes.
12. Distributed Coordination-Based Systems.
Introduction to Coordination Models. TIB/Rendezvous. Jini. Comparison of TIB/Rendezvous and Jini.
13. Bibliography and Suggested Readings.
Suggestions for Further Reading. Alphabetical Bibliography.
Index.
This book started out as a revision of Distributed Operating Systems, but it was soon apparent that so much had changed since 1995, that a mere revision would not do the job. A whole new book was needed. Accordingly, this new book has a new title: Distributed Systems: Principles and Paradigms. This change reflects a shift in emphasis. While we still look at some operating systems issues, the book now addresses distributed systems in a broader sense as well. For example, the World Wide Web, which is arguably the biggest distributed system ever built, was not even mentioned in the original book because it is not an operating system. In this book it rates almost an entire chapter.
The book is structured in two parts: principles and paradigms. The first chapter is a general introduction to the subject. Then come seven chapters on individual principles we consider most important: communication, processes, naming, synchronization, consistency and replication, fault tolerance, and security.
Actual distributed systems are usually organized around some paradigm, such as "everything is a file." The next four chapters each deal with a different paradigm and describe several key systems that use that paradigm. The paradigms covered are object-based systems, distributed file systems, document-based systems, and coordination-based systems.
The last chapter contains an annotated bibliography, which can be used as a starting point for additional study of this subject, and the list of works cited in this book.
The book is intended for a senior-level or a graduate course in computer science. Consequently, it has a website with PowerPoint sheets and the figures used in the book in various formats. The website can be located starting from www.prenhall.com/tanenbaum and clicking on the title of this book. A manual with solutions to the exercises is available to professors using the book in a course. They should contact their Prentice Hall representative for a copy. Of course, the book is also well-suited for individuals outside of a university setting wishing to learn more about this important topic.
A number of people have contributed to this book in various ways. We would especially like to thank Arno Bakker, Gerco Ballintijn, Brent Callaghan, Scott Cannon, Sandra Cornelissen, Mike Dahlin, Mark Derbyshire, Guy Eddory, Amr el Abbadi, Vincent Freely Chandana Gamage, Ben Gras, Bob Gray, Michael van Hartskamp, Philip Homburg, Jeroen Ketema, Andrew Kitchen, Ladislav Kohout, Bob Kutter, Jussipekka Leiwo, Leah McTaggert, Eli Messenger, Donald Miller, Shivakant Mishra, Jim Mooney, Matt Mutka, Rob Pike, Krithi Ramamritham, Shmuel Rotenstreich, Sol Shatz, Gurdip Singly Aditya Shivram, Vladimir Sukonnik, Boleslaw Szymanski, Laurent Therond, and Leendert van Doom for reading parts of the manuscript and offering useful comments.
Finally, we would like to thank our families. Suzanne has been through this process an even dozen times now. Not once has she said: "Enough is enough" although surely the thought has occurred to her. Thank you. Barbara and Marvin now have a much better idea of what professors do for a living and know the difference between a good textbook and a bad one. They are now an inspiration to me to try to produce more good ones than bad ones (AST).
Marielle knew what she was in for when I told her I was in the book-writing business again. She has been supportive from the start, noticing also that there was more fun and less frustration for me than the last time ("Are you writing chapters only once this time?"). Having Elke on your lap at 6 o'clock in the morning while writing is not such a good idea, but it kept me focused on correctly setting priorities. In that respect, Max did a wonderful job as well, but being older than Elke, he also knew when it was better to play with someone else. They are great kids (MvS).