Модель COM

Объектная модель компонента Майкрософт (COM) — это платформа независимой от платформы, распределенной объектно-ориентированной системы для создания двоичных компонентов программного обеспечения, которые могут взаимодействовать. COM — это базовая технология OLE (составные документы), ActiveX (компоненты с поддержкой Интернета), а также другие.

Чтобы понять COM (и, следовательно, все технологии на основе COM), важно понимать, что это не объектно-ориентированный язык, а стандарт. Кроме того, COM не указывает, как должно быть структурировано приложение; Сведения о языке, структуре и реализации остаются для разработчика приложений. Скорее, COM задает объектную модель и требования к программированию, которые позволяют COM-объектам (также называемым COM-компонентами или иногда просто объектами) взаимодействовать с другими объектами. Эти объекты могут находиться в одном процессе, в других процессах и даже на удаленных компьютерах. Они могут быть написаны на разных языках, и они могут быть структурны довольно непохожими, поэтому COM называется двоичным стандартом; стандарт, который применяется после перевода программы в двоичный код компьютера.

Единственное требование языка для COM заключается в том, что код создается на языке, который может создавать структуры указателей, а также явно или неявно вызывать функции с помощью указателей. Объектно-ориентированные языки, такие как C++ и Smalltalk, предоставляют механизмы программирования, упрощающие реализацию COM-объектов, но такие языки, как C, Java и VBScript, можно использовать для создания и использования COM-объектов.

COM определяет основную природу COM-объекта. Как правило, программный объект состоит из набора данных и функций, которые управляют данными. COM-объект — это объект, в котором доступ к данным объекта достигается исключительно с помощью одного или нескольких наборов связанных функций. Эти наборы функций называются интерфейсами, а функции интерфейса называются методами. Кроме того, COM требует, чтобы единственный способ получить доступ к методам интерфейса — это указатель на интерфейс.

Помимо указания базового стандарта двоичного объекта COM определяет некоторые базовые интерфейсы, которые предоставляют функции, общие для всех технологий НА ОСНОВЕ COM, и предоставляет небольшое количество функций, необходимых всем компонентам. COM также определяет, как объекты работают вместе с распределенной средой и добавили функции безопасности для обеспечения целостности систем и компонентов.

В следующих разделах этого раздела описываются основные проблемы COM, связанные с проектированием COM-объектов: