![]() |
|
In recent years computer journalists have gotten used to categorize software developers into a few static groups, where the discriminating factor is their "conceptual distance" from the realm of the hardcore machinery. On an imaginary linear spectrum having the human business requirements of an information system at one end and the bulk of hardware devices at the other, application designers lean toward the former, whereas system developers work closer to the latter.
This classification seems reasonable at a first glance, but encounters some difficulties as you try to position a very trendy (and extremely sought-after) type of software professional: the enterprise middle-tier architect. A middle-tier whiz must possess a sapient mix of architectural design wisdom, heterogeneous hardcore development skills and a solid understanding of the peculiarities of large-scale distributed systems.
The difficulty in clearly defining this professional for non-technical people, coupled with the intrinsic complexity of the subject, are all causes of the dramatic lack of deep coverage for n-tier design topics in literature, especially on the relatively young Microsoft platforms.
This book aims straight at the heart of the subject, proposing a no-nonsense guide to the worrisome universe of COM+, intended both as a distributed design paradigm and as a concrete toolbox to implement transactional applications. The initial chapters present the cultural background that brought to the definition of the MTS programming model (much of which has found full expression in COM+) as an effective way to address the peculiar needs of transactional systems development, all the while building on the object oriented model of COM and attempting to automate the work of the programmer. The key technical artifacts that make this possible are the Distributed Transaction Coordinator and a sophisticated mechanism that implements configurable attributes by the means of contexts and transparent pre-/post-processing routines.
After revealing the untold secret that a typical high-throughput transactional architecture is based on trade-offs between perfect consistence and performance, the dissertation moves on to analyze the various crucial factors to take into account when building an effective n-tier system, including local and distributed transactions, the fundamental importance of locks, the relationship between physical objects and state in the middle tier and multithreading management via apartments. The discussion goes well beyond presenting arid abstract notions. All concepts are exposed in a problem->solution->better solution style that keeps the reader concentrated on the evolution of the model until it eventually leads to a set of generally applicable conclusions. Contrary to many evangelistic books that take each feature of their product for granted and boast how greatly they solve a myriad of problems, the author critically analyzes each significant part of COM+ in detail, starting from the perspective of the architect who has real-world constraints to account for and must make non-trivial considerations to find the best trade-offs.
Depth, exhaustiveness and good readability all represent strong points in favor of this title. The description of the featured technologies tends to be very precise and deep, yet possibly a little bit academic for the average developers audience. Succinct gems of wisdom derived from the extensive researching and teaching activity of the author do find their place in the pack (and are undeniably useful as a quick recap of the "do's" and "dont's" for future reference), but a few more elaborated examples of application of such rules to recurring design scenarios would have been a terrific plus. In line with the style of this book series, Ewald's book privileges the educational message to compile-and-run code listings, devoting more energy to explaining the why's than the how-to's of COM+. A valid approach per se, but I would have expected some further reusable artifacts, considering that the subtitle boasts the fairly pragmatic expression "Building distributed applications" instead of just "Understanding" -- or "Designing".
Incorporating such improvements would have probably earned this manual another half star in my overall rating and brought it closer to the Olympus of computer publishing excellence, but even as it stands "Transactional COM+"'s worth far exceeds it cover price. The long-standing demand for a scientific yet approachable exploration of COM+ systems design has finally found a response. If you're into serious Microsoft middleware, you should not miss out this high-quality gem.
-- Davide Marcato (marcato@programmers.net)
Chapter 1: Scalability
Chapter 2: Atoms
Chapter 3: Mechanics
Chapter 4: Threads
Chapter 5: Objects
Chapter 6: Transactions
Chapter 7: Isolation
Chapter 8: Protocols
Chapter 9: Design
Appendix A: Toward .NET
Appendix B: Building a Better Connection Pool
Appendix C: Debugging
Appendix D: Catalog Attributes and Component Services Explorer Property Pages
Index
|
Explanation of ERCB rating scale:
|