Интерфейстерді жариялау

Кіріспе

COM (Component Object Model — көпкомпонентті объектілер моделі) — Windows технологияларының ең негізгі бағыттарының бірі. COM — компоненттердің объектілік моделін сипаттайтын және әртүрлі программалау ортасы мен әртүрлі тілдерде жазылған объектілердің өзара үйлесімді жұмыс істеуін қамтамасыз ететін екілік стандарт.

COM компоненттер мен қолданбалар арасындағы өзара әрекеттесу моделін ұсынады. Бұл технология COM-объектілерімен жұмыс істейді, ал объект COM серверінің құрамдас бөлігі болып саналады.

COM-объектілер және Delphi/VCL ұқсастығы

COM-объектілер Delphi визуалды кітапханасының (VCL) объектілеріне белгілі бір деңгейде ұқсас. Алайда VCL объектілерімен салыстырғанда COM-объектілердің құрылымы нақтырақ: олардың құрамында әдістер, қасиеттер және ең маңыздысы — интерфейстер болады.

Әдетте COM-объектінің құрамында бір немесе бірнеше интерфейс болады. Егер интерфейстер бірнеше болса, оларда функционалдық жағынан ұқсас әрекеттерді орындайтын әдістер жиынтығы қайталануы мүмкін.

Интерфейсті жариялау: не бар және не жоқ

Интерфейсті жариялау — оның әдістерін және қасиеттерін сипаттау, бірақ жүзеге асыруды (implementation) қамтымайды. Яғни, жариялау келісімшартты анықтайды, ал орындалуы COM серверінің ішінде жүзеге асады.

Интерфейсті жариялау кезінде 16 байттық идентификатор (GUID) көрсетілуі мүмкін — бұл интерфейстің бірегей белгісі. Әр интерфейстің өз көрсеткіші (pointer) болады, сол арқылы клиент код тиісті әдістерге қол жеткізеді.

Windows экожүйесіндегі эволюция: үйлесімділікке апарған жол

Microsoft Windows операциялық жүйесін жобалау кезінде негізгі мақсаттардың бірі — Windows-та жұмыс істейтін әртүрлі программалардың өзара үйлесімді әрекеттесуін қамтамасыз ету болды. Бұл міндет күрделі болғандықтан, кезең-кезеңімен әртүрлі технологиялар ұсынылды.

Ерте шешімдер

Алмастыру буфері, бөлінетін файлдар және мәліметтерді динамикалық алмастыру технологиясы (DDE, Dynamic Data Exchange).

OLE кезеңі

OLE 1 құрамды құжаттарды құруға арналды, бірақ жетілдіруді қажет етті. Кейін OLE 2 пайда болып, программалардың бір-біріне функцияларын ұсыну мәселелерін тиімдірек шешті.

ActiveX

1996 жылдан кейін OLE орнына ActiveX келді: OLE-автоматтандыру, контейнерлер, басқарушы элементтер, Web-технологиялар және т.б.

Нәтиже

Осы эволюцияның мәні — әртүрлі қосымшалар мен әзірлеу орталары арасында қайта қолданылатын компоненттер арқылы тұрақты өзара әрекеттесуді қалыптастыру. COM бұл мақсатқа жақындатқан маңызды іргетастардың бірі болды.