Concurrent and Distributed Computing in Java
February 2004, Wiley-IEEE Press
The second part of the book deals with programming in a message-passing system. This part covers resource allocation problems, logical clocks, global property detection, leader election, message ordering, agreement algorithms, checkpointing, and message logging. Primarily a textbook for upper-level undergraduates and graduate students, this thorough treatment will also be of interest to professional programmers.
2. Mutual Exclusion Problem.
3. Synchronization Primitives.
4. Consistency Conditions.
5. Wait-Free Synchronization.
6. Distributed Programming.
7. Models and Clocks.
8. Resource Allocation.
9. Global Snapshot.
10. Global Properties.
11. Detecting Termination and Deadlocks.
12. Message Ordering.
13. Leader Election.
Appendix: Various Utility Classes.
"...well-written and accurate...a good book for anyone who'd like hands-on training in the concepts of concurrent and distributed systems." (IEEE Distributed Systems Online, November 2004)Vijay K. Garg introduces concepts, models and algorithms suited to distributed computing and presents them in Java. This way, the reader can see that these algorithms can be effectively implemented (and that there is no "hidden mystery" within the model or the algorithms). The approach used by the author is very appealing as it demystifies concepts that could be considered "too theoretical" to be useful. This book successfully takes up the challenge to nicely merge theory and practice. It can consequently benefit both communities. I stronlgy recommend the book to people interested in the design and implementation of distributed systems.
--Michel Raynal, Professor, University of Rennes, France.