The Component Object Model [Modelo de objetos componentes (COM)]

El modelo de objetos componentes de Microsoft (COM) es un sistema independiente de la plataforma, distribuido y orientado a objetos para crear componentes de software binarios que pueden interactuar. COM es la tecnología básica para ole de Microsoft (documentos compuestos), ActiveX (componentes habilitados para Internet), así como otros.

Para comprender COM (y, por lo tanto, todas las tecnologías basadas en COM), es fundamental comprender que no es un lenguaje orientado a objetos, sino un estándar. Tampoco especifica COM cómo se debe estructurar una aplicación; los detalles del lenguaje, la estructura y la implementación se dejan al desarrollador de aplicaciones. En su lugar, COM especifica un modelo de objetos y requisitos de programación que permiten que los objetos COM (también denominados componentes COM, o a veces simplemente objetos) interactúen con otros objetos. Estos objetos pueden estar dentro de un único proceso, en otros procesos e incluso pueden estar en equipos remotos. Se pueden escribir en diferentes idiomas, y pueden ser estructuralmente muy diferentes, lo que es por lo que COM se conoce como estándar binario; un estándar que se aplica después de que un programa se haya traducido al código de máquina binaria.

El único requisito de lenguaje para COM es que el código se genera en un lenguaje que puede crear estructuras de punteros y, ya sea explícita o implícitamente, llamar a funciones a través de punteros. Los lenguajes orientados a objetos, como C++ y Smalltalk, proporcionan mecanismos de programación que simplifican la implementación de objetos COM, pero los lenguajes como C, Java y VBScript se pueden usar para crear y usar objetos COM.

COM define la naturaleza esencial de un objeto COM. En general, un objeto de software se compone de un conjunto de datos y las funciones que manipulan los datos. Un objeto COM es uno en el que el acceso a los datos de un objeto se logra exclusivamente a través de uno o varios conjuntos de funciones relacionadas. Estos conjuntos de funciones se denominan interfaces y las funciones de una interfaz se denominan métodos. Además, COM requiere que la única manera de obtener acceso a los métodos de una interfaz es a través de un puntero a la interfaz.

Además de especificar el estándar de objetos binarios básico, COM define ciertas interfaces básicas que proporcionan funciones comunes a todas las tecnologías basadas en COM y proporciona un pequeño número de funciones que requieren todos los componentes. COM también define cómo funcionan juntos los objetos en un entorno distribuido y ha agregado características de seguridad para ayudar a proporcionar integridad del sistema y del componente.

En los temas siguientes de esta sección se describen los problemas COM básicos relacionados con el diseño de objetos COM: