Es una plataforma de Microsoft para componentes de software, introducida en 1993.
Esta plataforma es utilizada para permitir la comunicación entre procesos y la creación dinámica de
objetos, en cualquier lenguaje de programación que soporte dicha tecnología.
Características
El COM sirve para soportar comunicación entre objetos en ordenadores
distintos, en una LAN, WAN, o incluso en Internet.
Comunicación entre dos objetos de un sistema se realiza mediante llamadas a las
funciones de una interfaz a través de un puntero a esa interfaz.
Los objetos COM exponen sus funcionalidades a través de interfaces.
Objeto COM
Se pueden crear con una variedad de lenguajes de programación.
Lenguajes orientados a objetos, como C ++, ofrecen programación mecanismos que simplifican la
implementación de objetos COM.
La familia de tecnologías COM incluye COM +, COM distribuido (DCOM) y controles ActiveX.
Microsoft proporciona interfaces COM para muchas interfaces de programación de aplicaciones de
Windows
Direct Show
API Embalaje
Windows Animación Manager
Dispositivos portátiles de Windows y Microsoft Active Directory (AD).
COM se utiliza en aplicaciones tales como el Microsoft Office familia de productos.
Objeto COM+
Se encarga de automatizar las tareas de programación, tales como la puesta en común de
recursos, aplicaciones desconectadas, la publicación de eventos y suscripción y transacciones
distribuidas.
Propósito COM
COM es un sistema distribuido orientado a objetos independientes de la plataforma, para la creación
de componentes de software binarios que pueden interactuar.
Estos objetos pueden estar dentro de un mismo proceso, en otros procesos, incluso en equipos
remotos.
COM se basa en la noción de interfaz:
Nivel conceptual => conjunto de funciones que
implementa una componente.
Nivel binario => puntero a una estructura en memoria,
compuesta por un puntero (Nodo) a un vector de punteros a
funciones (virtual table -vtable-).
La representación binaria de un interfaz COM proviene de la estructura interna que utiliza el
compilador C++ de Microsoft para representar clases base abstractas:
Las interfaces COM son inmutables.
Si se desea extender la funcionalidad de una interfaz
se debe definir una nueva interfaz.
Cada componente puede tener varias
interfaces:
Toda interfaz COM posee:
Identificativo global único (IDD),
nombre simbólico (que debe
comenzar por I)
Estándares COM
COM establece un estándar binario de interoperabilidad entre componentes (independencia de los
lenguajes y plataformas).
COM define un estándar binario para la invocación de funciones.
Herramientas COM
Necesidad de herramientas: Visual
C++
Aportación de servicios básicos (IDataObject):
invocación dinámica, transferencia uniforme de
datos, etc.
Extensión de COM para soportar invocación remota
de procedimientos entre clientes y servidores:
proxies (apoderados), stubs (juntas)