More commonly referred to by its acronym: COM
MicroSoft vendor-specific defacto binary standard for objects/components.
See: http://www.microsoft.com/com/ See also: ComPlus
COM is a framework for creating and using objects. COM, the Component Object Model delivers on the long promised benefits of object technology: code reuse and off the shelf components. How does it do this? By providing a standard way to create and use components with a wide choice of tools, languages and applications. What is the most direct way to measure the success of COM? It provided the only currently viable component marketplace, a market currently sized at $410 million dollars just for third party components. This number excludes Microsoft built components and is projected to grow at 65 percent a year, to approximately 3 billion dollars by 2001.
COM services are provided in a standard way, whether those services are required within a single running process, within two different processes on the same machine, or on two different processes across a network using DCOM. COM is about choice; it provides the choice of the highest volume languages and tools available, as well as the largest base of applications. COM also provides choice in the area of security, as it provides a common interface (SSPI) where various security providers can be plugged in. COM also provides choice of network transport.
The COM specification has been complete since the end of 1992. Since then additions have been made, such as DCOM, but applications that worked then still work now. Unlike CORBA, COM provides the major elements necessary for a technology to succeed:
Also, ComponentObjectModel is:
The differences between ComProgramming? and standard ObjectOrientedProgramming, as quoted from the foreword by CharlieKindel? in EssentialCom by DonBox:
ObjectOrientedProgramming = Polymorphism + (Some) Late Binding + (Some) Encapsulation + Inheritance
ComponentOrientedProgramming = Polymorphism + (Really) Late Binding + (Real, Enforced) Encapsulation + Interface Inheritance + Binary Reuse
The best short paper I've seen on COM is http://www.cs.umd.edu/~pugh/com/.
How does it relate to the CommonObjectRequestBrokerArchitecture (a.k.a CORBA)?
They compete (see ComVsCorba) but can talk to each other. COM <-> CORBA bridging is defined by an OMG standard (partially written by Microsoft).
It helped inspire CrossPlatformLightweightComponents, along with XpCom. -- PierrePhaneuf
And going, going, ... http://web.archive.org/web/20020803123401/http://gartner11.gartnerweb.com/public/static/hotc/hcil0714001.html
If you think COM stinks too, check out WhyAnotherComponentTechnology.