Project Management

COM+ and the Battle for the Middle Tier

Author: Roger Sessions

ISBN: 0471317179

Buy this book at

Middleware, Microsoft Style
Alan Zeichick

COM, DCOM, COM+. ActiveX, OCX, VBX. Microsoft Transaction Server, Microsoft Message Queue, Microsoft Distributed Transaction Coordinator, Windows Distributed interNet Applications.

Confused by Microsoft’s component technologies and the role of Redmond’s middleware in distributed applications? It’s hard to imagine a better teacher than Roger Sessions, editor of the ObjectWatch newsletter and president of ObjectWatch Inc., a training and consulting company based in Austin, Texas.

In “COM+ and the Battle for the Middle Tier,” Sessions takes readers on a thought-provoking, opinionated and enjoyable ride through the world of Microsoft’s middleware technologies. Sessions, though he’s favorably disposed toward Microsoft’s technologies, is no company shill or apologist: For years he favored the CORBA approach toward distributed object technology, and in 1992 was IBM’s representative on various Object Management Group committees. He’s had the opportunity to watch the evolution of Microsoft’s COM since its origins in 1993, and the creation of DCOM in 1995. Gradually, since then, Sessions became a specialist in Microsoft’s component-oriented middleware.

Sessions’ gift has always been to find easy ways of explaining complex technologies, and he’s in top form in this chatty, conversational book. Very few of his examples use programming code, his analogies build naturally upon each other, and the charts and graphs make this book accessible to both programmers and technical managers who need a solid overview but don’t need to understand all the gory details.

The first part of the book, which is introductory, starts with what appears to be an over-long narrative about Sessions’ morning coffee routine of ordering a Doppio Macchiato at his neighborhood Starbucks. Fine, fine, he’s using a coffee shop to explain the role of middleware in high-volume transaction processing…but surprisingly, despite its simplicity, the analogy holds and creates a logical framework for the rest of the book, so don’t skip it. The next few chapters provide a contextual definition of components and explain the essential role of transaction-processing monitors (TPMs). These are key concepts in understanding transaction-oriented distributed computing.

A relatively short but vital chapter introduces what Sessions calls COMWare—the integration of a component system, a component runtime environment, administrative tools and interoperability services. He explains the different parts of the COMWare system, how they integrate to form a complete system, and where the bottlenecks to high-performance transaction processing can occur. Out of this COMWare framework grow the three main COMWare platforms available today: Microsoft’s COM+, Sun’s Enterprise JavaBeans (EJBs) and the CORBA Component Model (CCM).

(Sessions likes to make up his own terms, like COMWare, and to define other terms differently than Microsoft does, though it must be said that at least his terms are consistent and Microsoft’s aren’t. Sometimes he acknowledges and attempts to resolve the confusion, but sometimes he doesn’t.)

The second section, dedicated to COM+, constitutes the real meat of the book, and provides the clearest explanation I’ve seen—Microsoft’s own literature included—of the many parts of the company’s component strategy. Sessions’ job isn’t an easy one, particularly because the Microsoft architecture (for which he invented the acronym MDCA, or Microsoft Distributed Component Architecture) arrived piecemeal. Major parts arrived in an Option Pack for Windows NT 4, and nearly everything was rewritten for COM+, which is integrated into Windows 2000.

The discussion of COM+ focuses on four areas: queues, components, the runtime environment and services. In roughly 170 pages of very readable text, Sessions walks through each of these areas, showing how Microsoft has implemented each of these COMWare elements, and how it works. Sessions is honest: Although he clearly likes COM+ and has built his training business around Microsoft technologies, he’s not afraid to show where the architecture is confusing or inconsistent.

The third section of Sessions’ book discusses “the competition”—EJB and CCM. It’s a fairly evenhanded discussion of both platforms, though in his analysis both come off second-best to COM+. Compared with EJB, for example, he asserts that COM+ is more mature, has a better event model, is language independent and is “free” with Windows 2000. Compared with CCM, COM+ is less mature in some areas, but more so in others—but more important, he writes, “The OMG CCM specification is nothing but paper, without even promises of support from the major vendors.”

Sessions wraps up “COM+ and the Battle” with three case studies, and then moves onto a conclusion, in which he offers advice for buying a component model. He tries to be balanced, but his biases show through. For example, he starts by recommending not only Microsoft but also IBM, BEA and Sun as likely to be the most successful middle-tier vendors. He then points out that IBM has a habit of abandoning technologies—OS/2, SOM/DSOM, OpenDoc, Taligent and CORBA—whereas Microsoft appears completely committed to COM+.

“COM+ and the Battle for the Middle Tier” represents not only the clearest explanation of Microsoft’s technologies that I’ve read, but also one of the best explanations of distributed components and modern transaction processing. If you are using or considering Microsoft’s COM+ platform, Sessions has provided a solid resource for the entire development team. And even if you’re an EJB shop, it’s worth a read, if nothing else but to help you understand how the other guy’s technology actually works.

Reprinted with permission from 
SDTimes. Originally appeared in Issue 21, January 1, 2001.


"Experience is a comb which nature gives to men when they are bald."

- Chinese Proverb