COM (Component Object Model) — платформакомпонентно-орієнтованого програмування розроблена в1993 році компанієюMicrosoft; дозволяє використанняміжпроцесної взаємодії (inter-process communication) та динамічного створення об'єктів у будь-якій мові програмування, що підтримує технологію. Використовується переважно у ОСWindows, хоча була реалізована на декількох платформах.
Стандарт COM був розроблений в 1993 році корпорацією Майкрософт як основа для розвитку технологіїOLE. Технологія OLE 1.0 вже дозволяла створювати так звані «складені документи» (англ.compound documents): наприклад, в пакетіMicrosoft Office ця технологія дозволяла включати діаграмиMicrosoft Excel в документиMicrosoft Word). Стандарт COM мав уніфікувати процес створення, впровадження і скріплення таких упроваджуваних об'єктів, а також стандартизувати розробкузастосунків, що використовують упроваджувані об'єкти.
В 1996 році Microsoft спробувала перейменувати технологію OLE вActiveX, але це вдалося лише частково. Наприклад, технологія OLE дозволяла створювати так звані елементи управління OLE (англ.OLE Controls, або OCX) — повторно використовувані елементи призначеного для інтерфейсу користувача, які були побудовані на стандарті COM. Ці елементи управління OLE були перейменовані в елементи управління ActiveX (англ.ActiveX controls), хоча розширення файлів «.ocx» за ними залишилося. Потім Майкрософт став активно просувати ActiveX вІнтернет, включивши підтримку елементів ActiveX в свій популярний браузерInternet Explorer. В результаті назва OLE залишилася тільки за технологією складених документів і локальних упроваджуваних об'єктів. А мережеві OLE-об'єкти стали називати по-новому — ActiveX.
Деяка плутанина між поняттями OLE і ActiveX зберігається досі, але мова йде про ті самі COM-технології. Причому, іноді навіть плутають поняття OLE і COM. Так, упроваджувані OLE-об'єкти іноді називають COM-об'єктами, а OLE-контейнери COM-контейнерами тощо.
Основним поняттям, яким оперує технологія COM, є COM-компонент. Програми, побудовані на технології COM, фактично не є автономними програмами, а є набором COM-компонентів, що взаємодіють між собою. Кожен компонент має унікальний ідентифікатор (GUID) і може одночасно використовуватися багатьма програмами. Компонент взаємодіє з іншими програмами через COM-інтерфейси — набори абстрактних функцій і властивостей. Кожен COM-компонент має, як мінімум, підтримувати стандартний інтерфейс «IUnknown», який надає базові засоби для роботи з компонентом.
Windows API надає базові функції, що дозволяють використовувати COM-компоненти. БібліотекиMFC і, особливо,ATL/WTL надають набагато гнучкіші і зручніші засоби для роботи з COM. Бібліотека ATL від Майкрософт досі лишається найпопулярнішим засобом створення COM-компонентів. Але, часто, COM-розробка залишається ще досить складною справою,програмістам доводиться вручну виконувати багато рутинних завдань, пов'язаних з COM (особливо це помітно у разі розробки наC++). Згодом (у технологіях COM+ і особливо.NET) Майкрософт спробував спростити завдання розробки COM-компонентів.
Випущена в1996 році технологія DCOM (англ.Distributed COM — розподілена COM) заснована на технологіїDCE/RPC (різновидиRPC) і є розвитком COM. DCOM дозволяє COM-компонентам взаємодіяти один з одним по мережі. Головним конкурентом DCOM є інша відома розподілена технологія —CORBA.
У складіWindows 2000 була випущена технологія COM+, яка розширювала можливості розробників COM-компонентів, надаючи їм деякі готові послуги, наприклад:
COM+ об'єднує компоненти в так звані застосунки COM+, що спрощує адміністрування і обслуговування компонентів. Безпека і продуктивність — основні напрями удосконалень COM+. Деякі ідеї, закладені в основу COM+, були також реалізовані вMicrosoft .NET.
У2002 році була офіційно випущена платформаMicrosoft .NET, яка на сьогоднішній день оголошена Майкрософтом рекомендованою основою для створення застосунків і компонентів під Windows. З цієї причини в .NET включені і засоби, що дозволяють звертатися до компонентів COM із застосунків .NET, і навпаки. За словами представників Майкрософту, COM (точніше, COM+) і .NET є відмінно взаємно доповнюваними технологіями. Також було заявлено, щоWindows Vista буде побудована з використанням технологій .NET і COM+.
| Це незавершена стаття проMicrosoft Windows. Ви можетедопомогти проєкту,виправивши або дописавши її. |