A detailed and thorough examination of the subject at hand., 18 Mar 2008
Most people who are writing reviews for this book will have studied the Open University's benchmark Computer Science course M301 Software Systems and their development. This was a course that other universities in the UK and beyond measured themselves against and one that was widely respected in industry. Other than that, it is worth mentioning, that the Open University has high standards, and M301 was notoriously difficult taking into account the OU's intake. More than a few of the reviews here are really "sour grapes"; rather than a dispassionate review of the subject material presented in the book.
I studied M301 and received a 1st/distinction, so I'll declare my interest right now. I'm sure that had I received a 3rd maybe I would have been unhappy with the book and the course. I also had the pleasure of owning both the 2nd and 3rd editions of the book, as I studied the course twice, having dropped out of the course on first attempt (2001) when the 2nd edition was in use. Then when retaking the course many years later (2006) I studied the 3rd edition.
M301 was a compulsory course, and had its last presentation in 2007, it then evolved into two interrelated compulsory courses. The reason for M301 evolving into two courses rather than one was primarily due to the difficult nature of the material presented in M301 and the low pass rates at 1st and 2:1 level. The idea behind two 30 point ( Developing concurrent distributed systems (M362) and Software engineering with objects (M363) )courses rather than one 60 point courses was to reduce the workload on less able students, and so get more through at higher grades, and allow more able students to study the two courses "concurrently" (pun intended).
M301 was a level 3 Computing course & so equivalent to half of the entire 3rd year undergraduate computing course in a traditional university. The main themes of the M301, and the book, are concurrent systems, large system development, transactions, atomicity, consistency etc. These topics are covered well in the book & the reading can be a little dry and factual at times, but then again, the book isn't meant to be a comic. There are exercises and summaries at the ends of chapters throughout the book, as well as diagrams highlighting important concepts. There is no doubt the book could have been improved with better graphics and a splash of colour. The diagrams depicting interleaved transactions/operations and the accompanying texts concerning serialization and concurrent control aren't brilliant and might be a little cluttered, in both the 2nd or 3rd editions, nothing that reading over a couple of times to be sure will not solve as well as running issues by your tutor.
The 2nd edition (here) presented case studies as reviews of large concurrent software systems in particular Windows and Unix. The 3rd edition presented Java RMI and .NET as examples of developing large concurrent systems. Both the 2nd and 3rd editions do "exactly what they say on the tin" they describe and educate on the subject of large concurrent software systems and the issues therein.
A real chore, 13 Oct 2007
Without a doubt, the WORST textbook I have had the misfortune to read.
Bacon completely lacks any ability to order her thinking or the content of the book. She flits between concepts and historical anecdotes as if attempting a stream of consciousness performance.
The diagrams occurring often throughout the book are a lost opportunity to bolster Bacon's woolly style. They are of stone-age construction, almost everything being represented by a box, with no clear differentiation of components or motivation.
Admittedly the concepts of the book can be challenging, although not the most demanding that I have studied. Bacon manages to make the whole thing a hundred times more difficult than it should be. It is something of a shame as it's a comprehensive work. It would appear that Bacon is great researcher who sadly lacks any ability to communicate her knowledge and discoveries.
Very Good Book, 11 Aug 2006
After reading some of the previous notes relating to this book I thought it would be a good idea to write my own.
Jean Bacon's book about Concurrent Systems is an awesome book; it has so much information from simple background and fundamentals to the intricacies of a concurrent system. The book covers practically everything from how the hardware deals with distributed processes, the security mechanisms involved and even how the operating systems deal with processes. (This is to name but a handful of topics)
The book has been written well and I personally found it easy to read and understand and I would recommend this book to any user who is interested in concurrent systems.
Indigestible yet nourishing breakfast!, 22 Jul 2004
Bacon's knowledge of the subject is splendid. Indeed, for content, this book is almost untouchable (save for the works of Silberschatz et al. - and Silberschatz does not cover concurrency with anything approaching the same precision). However, the real, big problem with this book is that it is just so un-reader-friendly (again, contrast with the elegant readability of Silberschatz). Accessibility, usability, and affordence are not words that spring to mind in the context of Bacon's book.
That said, I read the text as part of my degree (The OU's flagship M301 Software Systems course), and I will admit to having lent my copy to several colleagues at a software house I worked at a year or two later. The general industry understanding of concurrency would seem to lie some way behind Bacon's knowledge.
I keep Bacon on my study bookcase for reference; the fact remains, however, as other reviewers have observed, that the book is riddled with looping subroutine calls to refer to another chapter in the midst of almost every paragraph. For information and knowledge, it is indeed an extremely large nugget of pure gold. Unfortunately, the ease with which it may be chewed, swallowed and digested also compares with the same large piece of yellow metal.
Totally Useless, 15 Jun 2004
Giving this book one star is just for content alone.
Confusing, boring and difficult to understand. I needed it for my M301 course with the Open University. It was NOT at all helpfull....
You need a First Class Degree in Computers (with Honours!) to come close to understanding 1% of it!!!
Not for beginners !!!
DO NOT BUY IT !!!!
Well structured and easy to read, but not very useful, 06 Aug 1999
I read this book to get some ideas for setting up a database with multiple servers in different countries. One requirement was high availability and fast response times under the condition of instable network connections. I am not a database expert, so I can not assess the accuracy and completeness of the material very well. The following is my view as a "novice" reader.
The book is divided into three parts: theory, distributed database architectures, and multi-database architectures. Part one introduces relational algebra, SQL, database models (hierarchical, network, relational), ER-diagrams and such. Part two concentrates on homogenous distributed database architectures. Part three is about heterogenous (e.g. mixed hierarchical/relational) distributed database systems.
The book is demonstratively well structured and easy to read. The author begins with a roadmap, and each chapter begins with a statement of purpose, a description what will follow and how this relates to the topic. I found part one to be a decent introduction to general database concepts. However, I had the impression that the book is too shallow overall. One of the more noticable omissions (to me) is in the part about deadlocks: the author concentrates entirely on deadlock detection, while deadlock avoidance and deadlock prevention are not even mentioned. I can't say if this is because the latter are not used in databases. Moreover, as another reader noted, the examples are full of errors, which is quite annoying.
Altogether, the book entirely failed to give me any hints for solving my problem. Data replication, which is probably the one technique that I need to apply under the circumstances described above, is mentioned in only one paragraph in the entire book. The author instead focuses entirely on database partitioning. If you need that, the book may be for you, although I assume there are better books on the subject. I do not recommend this book.
The book contains too many errors, 13 Jul 1999
The book is good in the sense of the simplicity with which the author tries to explain and introduce the concepts. However, it is full of errors: I could not find one example without errors. Specially in Chapter 4, which introduces SQL, there are too many errors. That is unforgivable!! I think the author of this book did not even check what he was writing. I do not recommend this book to anyone until a serious revision of all the examples is perfomed!