Rick Hill, Craig Wittenberg

2011 Outstanding Technical Achievement
By enabling software components to communicate, Component Object Model technology has paved the way for the modern computing platform.

Few aspects of software componentry could be considered more influential and pervasive than the Component Object Model (COM) standard that Microsoft® introduced in 1993. From the Microsoft Windows® operating system shell through the Microsoft Office suite, COM provides lubricating object protocols that allow applications to communicate with one another and, in its distributed form DCOM, enables applications to span multiple machines. Developers use this low-level platform capability to create re-usable software components, link components together to build applications, and take advantage of Windows services.

“I remember hearing Steve Ballmer say around 2000 that this work was the only significant change in the Windows API since Windows 1.0’s release in 1985,” recalls Craig Wittenberg, who was a key developer on the COM team alongside fellow developer Rick Hill and architects Tony Williams and Bob Atkinson. Currently architects in Microsoft’s identity space, Hill and Wittenberg are delighted to have their team’s foundational work acknowledged through the 2011 Outstanding Technical Achievement award. “It speaks to the technology’s influence over time,” Wittenberg says. “That includes both what we did as well as the other systems that have built upon it.”

Williams, who served as the team’s lead architect, outlined COM’s fundamentals in two papers: Object Architecture: Dealing With the Unknown—or—Type Safety in a Dynamically Extensible Class Library (1988), and On Inheritance: What It Means and How To Use It (1990). “Tony had the widest vision and best understanding of the whole thing,” says Wittenberg, who also worked on Williams’ papers. “He had the vision for the technical capabilities and principles by which the system would be put together.”

Although Microsoft’s competitors were vigorously boosting their own systems, such as CORBA, SOM/DSOM, and OpenDoc, Wittenberg and Hill recall the COM team being under even more pressure from within the company. COM was developed in conjunction with the Office division, which was counting heavily on OLE (Object Linking and Embedding) and COM technology to integrate its elements into the suite it eventually became. Simultaneously, Microsoft’s operating system division was working on a significant next-generation system called Cairo. COM prevailed over Cairo’s own foundational object model due to its relationship to Office.

“The fact that COM had Office as a customer made it quite simple for the company’s decision makers to go with COM as the object model,” Hill says. “So there are a couple of lessons: One is to get a customer early on, because it really helps guide you and keeps your feet on the ground. The other is to ship. Even if we had done something ten times better than COM in another division, we wouldn’t be having this conversation if we didn’t ship.”

COM grew into a much bigger investment as it matured. A few months after its initial 16-bit release, COM moved to the operating system division, where Hill was working on the 32-bit version of Windows NT. As the first developer to build anything related to COM, Wittenberg had focused on communication between applications within a single computer. Hill took that layer of communication and made it work for applications running on multiple computers, “basically by plugging in a distributed object protocol layered over a remote procedure call protocol,” he says. DCOM was first released in 1996 as part of the Windows NT 4 Option Pack.

COM descendants such as MTS and COM+ built upon COM without totally superseding it. Just as COM remains an essential part of both Office and the Windows operating system shell, DCOM continues to be employed in manufacturing and robotic assembly. To quote award nominator Joe Long, Partner Development Manager, IEB Software & Service and Commerce & Analytics: “It is hard to understate the importance that COM has played in both the success of Microsoft and the birth of the modern computing platform.”

Watch our Behind-the-Code broadcasts to learn more about COM.