COM/DCOM
COM (Component Object Model) refers to both a specification and implementation developed by Microsoft
Corporation which provides a framework for integrating components. This framework supports
interoperability and reusability of distributed objects by allowing developers to build
systems by assembling reusable components from different vendors which communicate via
COM. By applying COM to build systems of preexisting components, developers hope to reap
benefits of maintainability and adaptability.
COM defines an application programming interface (API) to allow for the creation
of components for use in integrating custom applications or to allow diverse
components to interact. However, in order to interact, components must adhere
to a binary structure specified by Microsoft. As long as components adhere
to this binary structure, components written in different languages can
interoperate.
Distributed COM (DCOM) is an extension to COM that allows network-based component
interaction. While COM processes can run on the same machine but in different
address spaces, the DCOM extension allows processes to be spread across a network.
With DCOM, components operating on a variety of platforms can interact, as long as
DCOM is available within the environment.
It is best to consider COM and DCOM as a single technology that provides a range
of services for component interaction, from services promoting component
integration on a single platform, to component interaction across heterogeneous
networks. In fact, COM and its DCOM extensions are merged into a single runtime.
This single runtime provides both local and remote access.
While COM and DCOM represent "low-level" technology that allows components to
interact, OLE, ActiveX and MTS represent higher-level application services that
are built on top of COM and DCOM. OLE builds on COM to provide services such as
object "linking" and "embedding" that are used in the creation of compound
documents (documents generated from multiple tool sources). ActiveX extends
the basic capabilities to allow components to be embedded in Web sites.
MTS expands COM capabilities with enterprise services such as transaction and
security to allow Enterprise Information Systems (EIS) to be built using COM
components. COM+ is the evolution of COM.
COM+ integrates MTS services and message queuing into COM, and makes COM
programming easier through a closer integration with Microsoft languages
as Visual Basic, Visual C++, and J++. COM+ will not only add MTS-like
quality of service into every COM+ object, but it will hide some of the
complexities in COM coding.
The distinctions among various Microsoft technologies and products are sometimes blurred.
Thus, one might read about "OLE technologies" which encompass COM, or "Active Platform"
as a full web solution. In this technology description, we focus on the underlying
technology represented by COM, DCOM, and COM+.
COM and .NET are complementary development technologies.
The .NET Common Language Runtime provides bi-directional, transparent integration
with COM. This means that COM and .NET applications and components can use
functionality from each system. This protects your existing investments in COM
applications while allowing you to take advantage of .NET at a controlled pace.
COM and .NET can achieve similar results. The .NET Framework provides developers
with a significant number of benefits including a more robust, evidence-based
security model, automatic memory management and native Web services support.
For new development, Microsoft recommends .NET as a preferred technology because
of its powerful managed runtime environment and services.