Rating: Summary: An excellent reference book Review: What a great book! Now that I am finally done with it...Apart from its length (but I guess that it is impossible to treat all these subjects appropriately in a shorter book), this is my favorite book in a long time. It addresses a lot of the issues that we have had to resolve in large-scale distributed system development, and provides a great conceptual framework for placing the solutions to these issues. In an era of hype and "rapid development", this book was refreshing in its addressing the complexities and approaches required to succeed in developing distributed systems using component thinking.I believe that professionals experts in distributed system development will recognize many of the practices, design principles, approaches, and simple common sense that they have applied in the past, but formalized, clearly explained, and situated inside a whole approach that is component-based from beginning to end. Professionals that have not years of expertise in this complex field will find here a wealth of information about what works and what does not work. The aspects that I found most interesting: - The idea of a component as a very comprehensive concept going through the development lifecycle and the distribution tiers. At first, this seemed strange, but I can see now how this resolves many of the issues we had problems with. - The clear architectural framework and layering, and also the related seven layers interoperability protocol model in chapter 6. This too, at the beginning seemed just common sense, but I find myself referring to it more and more in my day-to-day work. The point is that we were trying to apply similar principles, but without a clear formalization of it. There are other architectural frameworks described in the literature, including RM-ODP, but this strikes me as particularly appropriate for distributed system development. - The distinction between the distributed object mindset and the component-based mindset. Having been working with EJBs and DCOM, it is clear that the model these technologies suggest as default is not the most appropriate for scalable systems. This books explains why, and also how to use these technologies appropriately. - The weight and importance given to the project management architecture (even just the fact of considering this an architectural viewpoint) - The approach to persistence. It is similar to what other authors describe (for example, Scott Ambler), but placed in the context of component-based development for the enterprise. I highly recommend this book. I find myself referencing this book often.
|