COM is without doubt, the center of the Microsoft universe. Few Microsoft products are not built with it.
What is COM? what is its purpose?
COM was designed to solve a number of problems that have existed for sometime, not just in the Windows sphere but also within the development and application spheres.
Code re-use is a nirvana that developers endure to achieve. However there have been very few situations where that could be realized. Take for instance an implementation of a solution in a C++ application. The developer builds generic classes to address a problem. From then on, the developer can re-use the code and can share it with others. While this looks good in theory, some problems arise in practice.
First, the new code is language specific. So, if the second developer ONLY knew Visual Basic, the newly created C++ classes would be of no use.
In COM, language independence is achieved.
Encapsulation is also a target of the COM specification. If a developer builds an object that exposes some functionality and the new code becomes publicly consumed the interfaces exposed and used cannot subsequently change. If the exposed implementation details changed we could face the real prospect of causing a problem we had strived to avoid.
By the nature of the COM specification objects provide methods to expose their implementation details and allow dynamic discovery. This enables such facilities as scripting languages to use such functionality without having to bind details in an early fashion. Coupling implementation details in such a fashion is called late binding.
One of the more important concepts of the COM model enables object implementations in the notion of location transparency. When an application calls an object's interfaces the application need not know whether the actual code is being executed locally or on a distributed machine. This location independence is provided through the use of proxy objects that sit between locations and marshals information between their instances.
Additionally, the COM specification includes implementation guidelines for transaction processing, distributed co-operation, and integrated security. Initially, COM implementations could only be targeted to Windows platforms (original COM was implemented as OLE - Object Linking and Embedding) however; other platforms are now supported by third party implementations
In the DNA methodology COM is a very important strand, involved in all the products and implemented directly, and natively, within the NT platform upon which the DNA technical implementation runs. However, DNA isn't COM alone, so we shall discuss where the other product fit and what they contribute.