
Технология com
COM (англ. Component Object Model) – объектная модель компонентов. Это технологический стандарт от компании Microsoft, предназначенный для создания программного обеспечения на основе взаимодействующих распределённых компонентов, каждый из которых может использоваться во многих программах одновременно. Технология воплощает в себе идеи полиморфизма и инкапсуляции объектно-ориентированного программирования. Технология COM в принципе является универсальной и платформо-независимой, но закрепилась в основном на операционных системах семейства Windows.
На основе COM также было создано множество других стандартов: OLE Automation, ActiveX, DCOM, COM+.
История COM
Стандарт COM был разработан в 1993 году компанией Майкрософт как основа для развития технологии OLE. Стандарт COM должен был унифицировать процесс создания, внедрения и связывания внедряемых объектов, а также стандартизировать разработку приложений, использующих внедряемые объекты.
Принципы работы COM
Основным понятием, которым оперирует технология COM, является COM-компонент. Программы, построенные на технологии COM, фактически не являются автономными программами, а представляют собой набор взаимодействующих между собой COM-компонентов. Каждый компонент имеет уникальный идентификатор (GUID) и может одновременно использоваться многими программами. Компонент взаимодействует с другими программами через COM-интерфейсы – наборы абстрактных функций и свойств. Каждый COM-компонент должен, как минимум, поддерживать стандартный интерфейс «IUnknown», который предоставляет базовые средства для работы с компонентом.
Развитие COM
DCOM
Выпущенная в 1996 году технология DCOM (англ. Distributed COM — распределённая COM) является развитием COM. DCOM позволяет COM-компонентам взаимодействовать друг с другом по сети. Главным конкурентом DCOM является другая известная распределённая технология — CORBA.
.NET и будущее COM
В 2002 году была официально выпущена платформа Microsoft .NET, которая на сегодняшний день объявлена Майкрософт рекомендуемой основой для создания приложений и компонентов под Windows. По этой причине в .NET включены и средства, позволяющие обращаться к компонентам COM из приложений .NET, и наоборот. По словам представителей Майкрософт, COM (точнее, COM+) и .NET являются отлично взаимодополняющими технологиями. Также заявлено, что Windows Vista построена с использованием технологий .NET и COM+ (объединяет компоненты в так называемые приложения COM+, что упрощает обслуживание компонентов. Основными направлениями COM+ является безопасность и производительность).
Достоинства применения com:
компоненты могут находиться в любом месте на ЖД, включая удаленное расположение (сеть), они помещаются в DLL и в исполняемые EXE – модули;
компоненты не нужно перекомпилировать при изменении кода программы, которая их использует (в отличие от классического модуля);
один и тот же компонент можно одновременно использовать множеством приложений;
с использованием COM можно писать распределенные приложения, которые используют суммарную вычислительную мощность нескольких компьютеров;
компоненты могут использоваться любым языком программирования, т.к. их код представляет собой двоичный код с описанием интерфейсов (интерфейс обозначает статику взаимодействия, т.е. что именно, в каком формате должен предоставлять объект; протокол обозначает динамику взаимодействия, т.е. чем именно и в какой последовательности должны обмениваться взаимодействующие объекты);