Lem Bingley reviews Jeri Edwards’ ‘3-Tier Client/Server at Work,’ a useful collection of distributed system case-studies. In the foreword to Jeri Edwards’ new book, 3-Tier Client/Server at Work, Robert Orfali, author of The Essential Client/Server Survival Guide, notes that it’s a far from easy task to write and research a book detailing how current client/server […]
Lem Bingley reviews Jeri Edwards’ ‘3-Tier Client/Server at Work,’ a useful collection of distributed system case-studies.
In the foreword to Jeri Edwards’ new book, 3-Tier Client/Server at Work, Robert Orfali, author of The Essential Client/Server Survival Guide, notes that it’s a far from easy task to write and research a book detailing how current client/server theory translates into client/server practice. That’s because, as Orfali points out, a good, working three-tier application is handled like a trade secret. But if the successes are hard to uncover then the failures must be doubly so. A book about distributed system projects that have failed dismally – or taken an inordinate amount of time, money and effort to finish – might be truly helpful in outlining the pitfalls to be avoided, but unfortunately it would be virtually impossible to find people genuinely prepared to share their experiences for the benefit of others. Perhaps Edwards will tackle that for an encore – for the moment we’ll have to make do with her account of eight rather smug projects that have delivered the goods.
Edwards’ book is pitched at project managers – its discussion of the subject matter (client/server deployments of at least 3- tiers) is carried out at a long arm’s length from the technology. Of course this may actually be helpful in maximizing the applicability of the coverage to the situation faced by the reader. In any event the book’s slim width immediately tells us that it’s not going to be an in-depth account of the projects detailed on the cover. The book starts with a basic run-down of the whys and whats of client/server, some of it sounding strangely like ancient history even though it’s all much less than a decade old. Edwards explains why clients can be fat or thin, what a tier is, and why three of them (or more) are often better than two, and the potential benefits of a component-based approach. All of this should be kid’s stuff to the average SF reader, of course. Chapter 2 covers the role of transaction processing monitors in distributed systems – explaining what they do and why they end up being as much about middleware and glue as about atomicity and durability. Chapter 3 covers one particular TP monitor in detail – Tuxedo, from BEA – which will certainly hammer home the point that this book is far from being impartial: Edwards happens to be the vice president of strategy and product planning at BEA. In consequence, the case studies are markedly skewed toward the Tuxedo world view. As the author notes, there are plenty of distributed systems that don’t use Tuxedo, but someone else will have to write that book. Edwards does at least profess her belief that the lessons she presents are universally applicable.
Perhaps of more concern than the lack of TP monitors other than Tuxedo is the narrow architectural focus that results. Only one of the eight systems documented uses a Corba architecture, for example. And the book may date more rapidly than Edwards might like, for there’s little mention of how Microsoft’s DCOM might impact the way that distributed systems are built – something that most readers will be curious about. The case studies, which form the bulk of the book, do cover some impressive and ambitious applications. The first is the UK Employment service’s Labor Management System: one of the largest operational client/server systems in the world handling 20,000 users and 6.8 million transactions per day. The other studies include Apple Computer’s new electronic ordering system for resellers and service providers, that acts as a front-end to its SAP corporate information system; Eucaris – the pan-European vehicle registration system; AT&T’s ‘Zenith’ project – an object-oriented 3-tier application front-ending a number of legacy systems, bringing online customer information to 2,000 telemarketers in AT&T’s largest businesses division; and Wells Fargo Bank’s Corba- based project for giving customers and bank employees better access to account information – claimed to be the largest existing Corba application handling over 900,000 end-user transactions per day. Each case study presents the business background – the problem to be solved – the physical architecture and the project milestones. Perhaps the most useful parts of each account are the pithy points made by the chief architect of each project at the close of each chapter. You could even argue that the case studies simply allow you to see these boiled-down gems in context. In summary, as a gentle introduction to TP monitor- based systems Edwards’ book can’t be faulted. And it is perhaps best viewed in that context, rather than in the wider world of complex client/server development.
3-Tier Client Server at Work, by Jeri Edwards (with Deborah DeVoe); published by John Wiley & Sons; ISBN 0-471-18443 á