Generated by GPT-5-mini| COM/DCOM | |
|---|---|
| Name | Component Object Model / Distributed Component Object Model |
| Developer | Microsoft |
| Released | 1993 |
| Latest release | Windows NT era onwards |
| Written in | C++ |
| Operating system | Microsoft Windows |
| License | Proprietary |
COM/DCOM
COM and DCOM are binary-interface standards developed by Microsoft to enable inter-process and networked component interaction on Microsoft Windows and allied platforms. They provide language-neutral object composition and remote procedure invocation mechanisms used by Internet Explorer, Microsoft Office, Windows Shell, Active Directory, and many enterprise SAP SE-integrated systems. COM/DCOM underpins technologies such as OLE, ActiveX, Component Object Model+ (COM+), and influenced later frameworks including .NET Framework and Windows Communication Foundation.
COM/DCOM define binary conventions for object identity, lifetime, and interface discovery to allow components authored in C++, Visual Basic, Delphi (software), Java (programming language), and other languages to interoperate within or across process boundaries. The model separates interface from implementation using Interface Definition Language-style contracts and reference counting semantics derived from earlier efforts like Sun Microsystems's CORBA concepts and research into distributed objects at Xerox PARC. DCOM extends COM with remote activation and marshaling to support communication between machines over TCP/IP and RPC transports commonly used in Windows NT-based networks.
COM/DCOM architecture centers on interface-based programming with core concepts such as IUnknown, interfaces, class objects, and globally unique identifiers (GUIDs) like CLSID and IID. Key components include in-process servers (DLLs), local servers (EXEs), the COM runtime (runtime libraries and marshaler), and the Service Control Manager interplay for activation. DCOM introduces network-layer elements: the DCOM protocol stack, the Distributed Transaction Coordinator used in Microsoft Distributed Transaction Coordinator, and the object resolver mechanisms that interact with Domain Name System and Active Directory for object location in enterprise deployments.
Developers use language-specific bindings and tools such as Microsoft Visual C++, Visual Basic, MIDL, and IDL to declare interfaces and generate stubs and proxies. Important interfaces include IUnknown (for reference counting and QueryInterface), IDispatch (for late binding and automation used by Microsoft Office macros and VBScript), and custom interfaces implementing application logic found in Internet Explorer extensions and Exchange Server components. COM registration via the Windows Registry maps CLSIDs to server locations; programmers interact with COM through APIs like CoCreateInstance, CoRegisterClassObject, and CoMarshalInterface provided by the Windows API.
DCOM security relies on Windows Security primitives, including Access Control Lists and Security Support Provider Interface for authentication mechanisms like Kerberos and NTLM. DCOM permissions specify Launch and Activation permissions, and COM uses impersonation levels and authentication services configurable through Component Services (COM+ catalog) and Group Policy in Active Directory. Vulnerabilities in DCOM were targeted in high-profile incidents prompting patches by Microsoft Security Response Center and advisories coordinated with vendors such as CERT Coordination Center and US-CERT.
Deployment involves registering components, configuring marshaling and proxy/stub binaries, and tuning DCOM protocol parameters for network performance across LAN and WAN environments often governed by Windows Server editions and Internet Information Services. Administrators use tools like Component Services, regsvr32, and Service Control Manager while monitoring with Performance Monitor counters and tracing via Event Viewer. Performance considerations include apartment threading models (single-threaded apartment and multi-threaded apartment), surrogate processes (dllhost.exe), and marshaler optimization; enterprise systems such as Microsoft Exchange Server and SQL Server integrate COM components where latency and concurrency must be managed.
COM originated in the early 1990s as part of Windows 95 and Windows NT era component strategies, evolving through OLE and ActiveX extensions to support document embedding and scripting in Internet Explorer. DCOM emerged to meet distributed computing needs across Microsoft Corporation's enterprise stack, later influencing and being superseded in many scenarios by .NET Framework and Windows Communication Foundation paradigms. The technology pathway includes COM+, integration with Microsoft Transaction Server, and legacy reliance in applications maintained by organizations like Oracle Corporation and IBM for interoperability with Windows-based components.