Component Object Model (COM)

Вибрані доки
Мітки (всі мітки)
Додатково

"Component Object Model" (COM) перекладається з англійської як "Об'єктна модель компонентів" (або "Компонентна об'єктна модель"). Абревіатура вимовляється як «ком». COM - це технологічний стандарт, запропонований компанією Microsoft для створення комп'ютерних програм на основі взаємодіючих один з одним розподілених компонентів, з яких кожен може використовуватися одночасно в багатьох програмах.

Стандарт дотримується ідей поліморфізму та інкапсуляції ОВП. Стандарт COM не є універсальним і застосовується переважно для створення програм під операційні системи сімейства Microsoft Windows. Причому в сучасних версіях Windows технологія COM використовується досить широко. COM вплинув створення технологій ActiveX, Microsoft OLE Automation, DCOM, COM+, DirectX, XPCOM.

Стандарт COM було створено 1993 року у корпорації Microsoft як основу розвитку своєї технології OLE, яка до версії 1.0 вже надавала можливість створення т.зв. складових документів (compound documents). У пакеті MS Office за цією технологією включалися, наприклад, діаграми MS Excel документи MS Word.

У 1996 році компанія Microsoft спробувала перейменувати OLE в ActiveX, проте це вдалося лише частково. Наприклад, OLE дозволяла реалізовувати так звані OLE Controls (елементи управління OLE або OCX), тобто повторно використовувані елементи інтерфейсу, побудовані на стандарті COM. Вони були перейменовані в ActiveX controls (елементи управління ActiveX), але за ними залишилося розширення файлів .ocx.

Потім Microsoft почала активно просувати ActiveX для середовища Інтернет, включивши підтримку його елементів у свійбраузер Internet Explorer. Це призвело до того, що назва OLE залишилася за технологіями локальних об'єктів, що впроваджуються, і складових документів. А мережеві об'єкти OLE стали називати ActiveX.

Плутанина між поняттями ActiveX і OLE зберігається і донині, але в обох випадках йдеться про COM-технології. Іноді плутають навіть поняття COM та OLE. OLE-об'єкти, що впроваджуються, називають іноді COM-об'єктами, OLE-контейнери називають COM-контейнерами та ін.

Основним поняттям стандарту COM є поняття COM-компонента. Програми, що розробляються на стандарті COM, є системою взаємодіючих COM-компонентів. Кожному такому компоненту надано унікальний ідентифікатор (GUID). Кожен компонент може використовуватись багатьма програмами одночасно.

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

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

У 1996 році було створено технологію DCOM. Абревіатура розшифровується як "Distributed COM", що означає "розподілена COM". Вона заснована на різновиді RPC, -технології DCE/RPC. DCOM дозволяє компонентам COM взаємодіяти по мережі та забезпечує базові установки для забезпечення безпеки, задаючи, хто і з яких машин має право створювати екземпляри об'єкта, викликати його методи.

Останнє редагування: 2010-08-25 17:08:37