This book covers the emerging area of component software very well. It is comprised of five parts: motivation, foundation, models and platforms, architecture and process, and markets. The motivation section would have benefited from taking some of the market summary information from part 5, in order to give the reader a better sense of where we are now. This, coupled with a plodding analysis in the foundation section, makes the book rather hard to get started with. The architecture and process section covers the current technical approaches very well, much expanded from the first edition, and contains a lot of technical material. Towards the end of this part there is a slight and welcome slacking of pace as component assembly and development is discussed. This lighter pace continues in the last section, which provides a good summary of the current state of play and possible future directions.
The book covers a lot of ground, having at least something to say about practically every aspect of the subject. I recommend it for senior developers, designers and architects. It provides useful material on what technologies are available, what standards are emerging, who the relevant standards bodies are and what commercial companies there are, and what similarities and differences there are between approaches. This material will probably not be of interest to the average developer and the whistle-stop tour may be too fast for some readers, but this is why it is recommended for more experienced people. Even then, it would help the reader to already have been exposed to some of the areas.
The book is very dense, there are few pictures or diagrams and the tone is not light very often. This, coupled with the enormous amount of factual material, makes the book quite hard going. It is worth the effort though, especially in the last third of the book by which time the purely technical material has ended and other factors, such as frameworks, tools, assembly and marketing are covered.
The author points out in the preface that he now works for Microsoft. He is aware that this could cause accusations of bias in advocating certain component technologies over others. He says that he has enlisted the help of two co-authors to ensure fair representation of competing approaches. In my view he has succeeded. The section on J2EE was one I found particularly interesting.
The book is a vast improvement over the first edition, even though the first edition was also good. This is due to better coverage of certain basic topics such as 'what is a component', and how does 'component software differ from object-oriented software'. This was only touched on in the first edition but much has been added in the 2nd edition to address this, making the book somewhat larger. Another area of improvement is the (new) section entitled 'what others say' which provides some useful comparisons between the views of various authors on components.
In conclusion, I recommend this book but with the proviso that it is quite hard going and is better suited to more experienced senior developers. It is essential reading for any system architect.