Communing with COM+

Since its first release in 1993, the Component Object Model (COM) has become fundamental to building software in the Microsoft world. Although Distributed COM (DCOM) was added in 1996, COM itself hasn’t changed much since it first appeared. When Windows 2000 finally ships, though, we’ll see the next big set of enhancements to COM, all packaged together under the name COM+.

Microsoft has had a tough time deciding exactly what COM+ should be. The first public descriptions made the technology seem like a wholesale revamping of today’s COM, adding a raft of features and changing many others. While this large set of changes may someday appear, what actually is in Windows 2000 is much, much simpler. In fact, the upcoming first release of COM+ doesn’t really change today’s COM at all. Instead, COM+ has morphed from a specific technology into a broad marketing label covering several different things.

First, and arguably the most important, COM+ includes the next release of Microsoft Transaction Server (MTS). Because Microsoft can’t seem to let any technology in this area keep the same name for more than a couple of years, it’s decided to rename MTS as COM+. The name change is more confusing than usual because COM+ includes other features, some of which have little or nothing to do with the MTS-oriented parts of the technology. Despite this nightmare of nomenclature, MTS developers using this part of COM+ won’t see too many changes. Some new interfaces were added, and a few interesting new features have appeared -- it’s now possible for a component to retain state across a transaction boundary, for example -- but the fundamentals of building an MTS application remain the same. And as you’d expect, Microsoft promises that current MTS applications will work in a COM+ world.

The remaining technologies in COM+ address various problems in building enterprise applications. There’s a mechanism called Queued Components, for example, that allows invoking methods in COM objects using the Microsoft Message Queue (MSMQ). COM+ also includes an event service that provides a publish-and-subscribe mechanism for Windows 2000. Using this service, COM components can register to receive events, then have those events delivered to them via method calls when they occur. Many developers in many organizations have created their own custom code to do this over the last few years, so finally having a standard solution as part of the operating system has got to be a good thing.

Until very recently, COM+ was also slated to include a load balancing service and something called In-Memory Database (IMDB). A "Technology Preview" version of load balancing will still appear in Windows 2000, but IMDB has met a worse fate: It’s been killed. Not long before its scheduled release, Microsoft decided that this technology didn’t really meet customer needs, and it was unceremoniously dropped.

Figuring out what COM+ is isn’t all that hard, now that the final release of Windows 2000 is approaching. Figuring out what it isn’t, however, is also important. No matter what you’ve heard, COM+ is not Microsoft’s response to Enterprise JavaBeans (EJB). The EJB camp would like to believe this, since it makes Microsoft look reactive and implies that the current MTS must be souped up to compete with EJB. But the COM+ design work was largely completed before EJB appeared on the scene. Furthermore, how many new features in COM+ are also in EJB? The answer, somewhat surprisingly, is virtually none, something that would not be true if Microsoft were responding to a competitor. The design of COM+ was driven by Microsoft’s own sense of what their customers require, not by a need to respond to the perceived threat of EJB. I’m not sure if this is good or bad, but either way it’s true.

Will COM+ change your world in a big way? Not at all. Think of it instead as a step forward, one that provides some useful new features for enterprise applications. And if you’re using MTS today, prepare to learn a few new things. COM itself remains much the same, however, which is fine by me. Having some solid ground in a sea of changing technology always feels good. --David Chappell is principal of Chappell & Associates (Minneapolis), an education and consulting firm. Contact him at david@chappellassoc.com.