|
|
|
COM
The Component Object Model (COM) is a component software architecture that allows applications and systems to be built from components supplied by different software vendors. COM is the underlying architecture that forms the foundation for higher-level software services, like those provided by OLE. OLE services span various aspects of component software, including compound documents, custom controls, inter-application scripting, data transfer, and other software interactions. These services provide distinctly different functionality to the user; however, they share a fundamental requirement for a mechanism that allows binary software components, supplied by different software vendors, to connect to and communicate with each other in a well-defined manner. This mechanism is supplied by COM, a component software architecture that: - Defines a binary standard for component interoperability
- Is programming language-independent
- Is provided on multiple platforms (Microsoft® Windows®, Microsoft Windows NT™, Apple® Macintosh®, UNIX®)
- Provides for robust evolution of component-based applications and systems
- Is extensible
In addition, COM provides mechanisms for the following: - Communications between components, even across process and network boundaries
- Shared memory management between components
- Error and status reporting
- Dynamic loading of components
It is important to note that COM is a general architecture for component software. While Microsoft is applying COM to address specific areas such as controls, compound documents, automation, data transfer, storage and naming, and others, any developer can take advantage of the structure and foundation that COM provides. How does COM enable interoperability? What makes it such a useful and unifying model? To address these questions, it will be helpful to first define the basic COM design principles and architectural concepts. In doing so, we will examine the specific problems that COM is meant to solve and how COM provides solutions for these problems.
|
|