Middleware, Microsoft Style
By Alan Zeichick
COM, DCOM, COM+. ActiveX, OCX, VBX. Microsoft Transaction Server, Microsoft Message Queue, Microsoft Distributed Transaction Coordinator, Windows Distributed interNet Applications.
Confused by Microsofts component technologies and the role of Redmonds middleware in distributed applications? Its 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 Microsofts middleware technologies. Sessions, though hes favorably disposed toward Microsofts technologies, is no company shill or apologist: For years he favored the CORBA approach toward distributed object technology, and in 1992 was IBMs representative on various Object Management Group committees. Hes had the opportunity to watch the evolution of Microsofts COM since its origins in 1993, and the creation of DCOM in 1995. Gradually, since then, Sessions became a specialist in Microsofts component-oriented middleware.
Sessions gift has always been to find easy ways of explaining complex technologies, and hes 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 dont 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, hes 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 dont 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 COMWarethe 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: Microsofts COM+, Suns 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 Microsofts arent. Sometimes he acknowledges and attempts to resolve the confusion, but sometimes he doesnt.)
The second section, dedicated to COM+, constitutes the real meat of the book, and provides the clearest explanation Ive seenMicrosofts own literature includedof the many parts of the companys component strategy. Sessions job isnt 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, hes not afraid to show where the architecture is confusing or inconsistent.
The third section of Sessions book discusses the competitionEJB and CCM. Its 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 othersbut 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 technologiesOS/2, SOM/DSOM, OpenDoc, Taligent and CORBAwhereas Microsoft appears completely committed to COM+.
COM+ and the Battle for the Middle Tier represents not only the clearest explanation of Microsofts technologies that Ive read, but also one of the best explanations of distributed components and modern transaction processing. If you are using or considering Microsofts COM+ platform, Sessions has provided a solid resource for the entire development team. And even if youre an EJB shop, its worth a read, if nothing else but to help you understand how the other guys technology actually works.
Reprinted with permission from SDTimes. Originally appeared in Issue 21, January 1, 2001.