Component Object Model

Материал из Википедии — свободной энциклопедии
Текущая версия страницы покане проверялась опытными участниками и может значительно отличаться отверсии, проверенной 15 ноября 2025 года; проверки требует1 правка.
Перейти к навигацииПерейти к поиску
В статье есть списокисточников, ноне хватаетсносок.
Без сносок сложноопределить, из какого источника взято каждое отдельное утверждение. Вы можете улучшить статью, проставивсноски на источники, подтверждающие информацию. Сведения без сносокмогут быть удалены.(11 апреля 2011)

COM (англ. Component Object Model «модель компонентных объектов»; произносится как [ком]) —технологический стандарт от компанииMicrosoft, предназначенный для созданияпрограммного обеспечения на основе взаимодействующих компонентов, каждый из которых может использоваться во многих программах одновременно[1]. Стандарт воплощает в себе идеиполиморфизма иинкапсуляцииобъектно-ориентированного программирования. Стандарт COM мог бы быть универсальным икроссплатформенным, но закрепился в основном наоперационных системах семействаMicrosoft Windows. В современных версиях Windows COM используется очень широко. На основе COM были реализованы технологии:Microsoft OLE Automation,ActiveX,DCOM,COM+,DirectX, а такжеXPCOM.

Содержание

История COM

[править |править код]

Стандарт COM был разработан в1993 году корпорацией Microsoft как основа для развития технологииOLE. Технология OLE 1.0 уже позволяла создавать т. н. «составные документы» (англ. compound documents): например, в пакетеMicrosoft Office эта технология позволяла включать диаграммыMicrosoft Excel в документыMicrosoft Word.

Путаница в названиях

[править |править код]

В1996 году Microsoft попыталась переименовать технологию OLE в ActiveX, но это удалось лишь частично. Например, технология OLE позволяла создавать так называемыеэлементы управления OLE (англ. OLE Controls, илиOCX) — повторно используемые элементыпользовательского интерфейса, которые были построены на стандарте COM. Эти элементы управления OLE были переименованы вэлементы управления ActiveX (англ. ActiveX controls), хотя расширениефайлов «.ocx» за ними осталось. Затем Microsoft стала активно продвигать ActiveX вИнтернет, включив поддержку элементов ActiveX в свойбраузерInternet Explorer. В результате названиеOLE осталось только за технологией составных документов и локальных внедряемых объектов, а сетевые OLE-объекты стали называть ActiveX.

Некоторая путаница между понятиями OLE и ActiveX сохраняется и до сих пор, но речь идёт об одних и тех же COM-технологиях. Причём иногда даже путают понятия OLE и COM. Так, внедряемые OLE-объекты иногда называют COM-объектами, а OLE-контейнеры — COM-контейнерами, и т. п.

Поддержка в ОС Windows

[править |править код]
  • Windows 7, Windows 8, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012 поддерживают COM+[2].
  • Для Windows Server 2012 R2 роль сервера приложений, которая реализует COM+, объявлена устаревшей и подлежащей удалению в будущих версиях[3].

Принципы работы COM

[править |править код]

Основным понятием, которым оперирует стандарт COM, являетсяCOM-компонент. Программы, построенные на стандарте COM, фактически не являются автономными программами, а представляют собой набор взаимодействующих между собой COM-компонентов. Каждый компонент имеет уникальный идентификатор (GUID) и может одновременно использоваться многими программами. Компонент взаимодействует с другими программами черезCOM-интерфейсы — наборы абстрактных функций и свойств. Каждый COM-компонент должен, как минимум, реализовывать стандартный интерфейс «IUnknown», который предоставляет базовые средства для работы с компонентом. Интерфейс «IUnknown» включает в себя три метода: QueryInterface, AddRef, Release.

Windows API предоставляет базовые функции, позволяющие использовать COM-компоненты. БиблиотекиMFC и, особенно,ATL/WTL предоставляют более гибкие и удобные средства для работы с COM. БиблиотекаATL от Microsoft до сих пор остаётся самым популярным средством создания COM-компонентов. Но зачастую COM-разработка остаётся ещё довольно сложным делом, программистам приходится вручную выполнять многие рутинные задачи, связанные с COM (особенно это заметно в случае разработки наC++). Впоследствии (в технологиях COM+ и особенно.NET) Microsoft попыталась упростить задачу разработки COM-компонентов.

Технологии, основанные на стандарте COM

[править |править код]

DCOM

[править |править код]
Основная статья:DCOM

Выпущенная в1996 году технологияDCOM (англ. Distributed COM — распределённая COM) основана на технологииDCE/RPC (разновидностиRPC). DCOM позволяет COM-компонентам взаимодействовать друг с другом посети. Главным конкурентом DCOM является другая известная распределённая технология —CORBA.

Как DCOM, так и CORBA решают задачу вызова метода объекта, расположенного на другой машине, а также передачу ссылки на объект с одной машины на другую.

Сетевой уровень DCOM называется ORPC (Object RPC) и является объектно-ориентированным расширением DCE RPC.

Технология DCOM обеспечивает базовые установки безопасности, позволяя задавать, кто и из каких машин может создавать экземпляры объекта и вызывать его методы.

COM+

[править |править код]

Microsoft Transaction Server был включен в Option Pack для Windows NT4 еще в 1997 году.

В составеWindows 2000 была выпущена технологияCOM+, которая являлась новой версией Microsoft Transaction Server.

Технология расширяла возможности разработчиков COM-компонентов, предоставляя им некоторые готовые услуги, например:

  • автоматический пулпотоков, создаваемый стандартным процессом-загрузчиком mtx.exe
  • доступ к контексту, в котором выполняется компонент (например, компоненты, используемые вASP, могут с этой возможностью получить доступ к внутренним объектам той страницы, на которой они выполняются).
  • интеграция с транзакциями монитора MS DTC (контекст COM+ может автоматически содержать в себе транзакцию MS DTC)

MTS/COM+ использовался внутри ряда версий веб-сервера MSIIS для загрузки и исполнения веб-приложений, как бинарных по технологииISAPI, так и скриптовых по технологии ASP (сама asp.dll есть ISAPI-приложение).

COM+ объединяет компоненты в так называемыеприложения COM+, что упрощает администрирование и обслуживание компонентов. Безопасность и производительность — основные направления усовершенствований COM+. Некоторые идеи, заложенные в основу COM+, были также реализованы вMicrosoft .NET.

.NET и будущее COM

[править |править код]

В2002 году была официально выпущена платформаMicrosoft .NET, которая на сегодняшний день объявлена Microsoft рекомендуемой основой для создания приложений и компонентов под Windows. По этой причине в.NET включены и средства, позволяющие обращаться к компонентам COM из приложений.NET, и наоборот. По словам представителей Майкрософт, COM (точнее, COM+) и.NET являются отлично взаимодополняющими технологиями.

DCOM через интернет и решение проблемы XP SP2

[править |править код]

В 2009 году DComLab опубликовал коммерческий продукт ComBridge. При использовании ComBridge для работы по DCOM через интернет не требуется CIS, не используется 135 порт, в локальной сети не требуются настройки dcomcnfg.ComBridge встраивается в транспортный уровень DCOM, полностью выделяя весь трафик созданного объекта и всех полученных из него объектов в отдельный поток.

OPC

[править |править код]

OPC (OLE for Process Control) — семейство программных технологий, предоставляющих единый интерфейс для управления объектами автоматизации и технологическими процессами. Многие из OPC-протоколов базируются на Windows-технологиях: OLE, ActiveX, COM/DCOM. Такие OPC-протоколы, как OPC XML DA и OPC UA, являются платформо-независимыми.

OLE

[править |править код]

OLE (англ. Object Linking and Embedding «связывание и встраивание объекта»; произносится [oh-lay], [олэй]) — технология связывания и внедрения объектов в другие документы и объекты, разработанные корпорацией Майкрософт.

OLE позволяет передавать часть работы от одной программы редактирования к другой и возвращать результаты назад. Например, установленная на персональном компьютере издательская система может послать некий текст на обработку в текстовый редактор, либо некоторое изображение в редактор изображений с помощью OLE-технологии.

Примечания

[править |править код]
  1. Технология COM . Дата обращения: 26 января 2022. Архивировано 26 января 2022 года.
  2. Manage COM+ Applications . MicrosoftTechNet. Microsoft Corp. (22 февраля 2013). Дата обращения: 31 августа 2018. Архивировано 23 января 2012 года.
  3. Features Removed or Deprecated in Windows Server 2012 R2 . MicrosoftTechNet. Microsoft Corp. (31 августа 2016). Дата обращения: 31 августа 2018. Архивировано 8 февраля 2015 года.

Ссылки

[править |править код]

Литература

[править |править код]
Перейти к шаблону «Компоненты Microsoft Windows»
Основные
Службы
управления
Приложения
Win32
UWP/WASDK[англ.]
Исторические
Игры
Ядро ОС
Службы
Файловые
системы
Серверы
Архитектура
Безопасность
Совместимость
Источник —https://ru.wikipedia.org/w/index.php?title=Component_Object_Model&oldid=150898005
Категории:
Скрытые категории: