Component Object Model

Material iz Vikipedii -- svobodnoi entsiklopedii
Tekushchaia versiia stranitsy poka ne proverialas' opytnymi uchastnikami i mozhet znachitel'no otlichat'sia ot versii, proverennoi 15 noiabria 2025 goda; proverki trebuet 1 pravka.
Pereiti k navigatsii Pereiti k poisku
V stat'e est' spisok istochnikov, no ne khvataet snosok.
Bez snosok slozhno opredelit', iz kakogo istochnika vziato kazhdoe otdel'noe utverzhdenie. Vy mozhete uluchshit' stat'iu, prostaviv snoski na istochniki, podtverzhdaiushchie informatsiiu. Svedeniia bez snosok mogut byt' udaleny. (11 aprelia 2011)

COM (angl. Component Object Model <>; proiznositsia kak [kom]) -- tekhnologicheskii standart ot kompanii Microsoft, prednaznachennyi dlia sozdaniia programmnogo obespecheniia na osnove vzaimodeistvuiushchikh komponentov, kazhdyi iz kotorykh mozhet ispol'zovat'sia vo mnogikh programmakh odnovremenno[1]. Standart voploshchaet v sebe idei polimorfizma i inkapsuliatsii ob'ektno-orientirovannogo programmirovaniia. Standart COM mog by byt' universal'nym i krossplatformennym, no zakrepilsia v osnovnom na operatsionnykh sistemakh semeistva Microsoft Windows. V sovremennykh versiiakh Windows COM ispol'zuetsia ochen' shiroko. Na osnove COM byli realizovany tekhnologii: Microsoft OLE Automation, ActiveX, DCOM, COM+, DirectX, a takzhe XPCOM.

Istoriia COM

[pravit' | pravit' kod]

Standart COM byl razrabotan v 1993 godu korporatsiei Microsoft kak osnova dlia razvitiia tekhnologii OLE. Tekhnologiia OLE 1.0 uzhe pozvoliala sozdavat' t. n. <<sostavnye dokumenty>> (angl. compound documents): naprimer, v pakete Microsoft Office eta tekhnologiia pozvoliala vkliuchat' diagrammy Microsoft Excel v dokumenty Microsoft Word.

Putanitsa v nazvaniiakh

[pravit' | pravit' kod]

V 1996 godu Microsoft popytalas' pereimenovat' tekhnologiiu OLE v ActiveX, no eto udalos' lish' chastichno. Naprimer, tekhnologiia OLE pozvoliala sozdavat' tak nazyvaemye elementy upravleniia OLE (angl. OLE Controls, ili OCX) -- povtorno ispol'zuemye elementy pol'zovatel'skogo interfeisa, kotorye byli postroeny na standarte COM. Eti elementy upravleniia OLE byli pereimenovany v elementy upravleniia ActiveX (angl. ActiveX controls), khotia rasshirenie failov <<.ocx>> za nimi ostalos'. Zatem Microsoft stala aktivno prodvigat' ActiveX v Internet, vkliuchiv podderzhku elementov ActiveX v svoi brauzer Internet Explorer. V rezul'tate nazvanie OLE ostalos' tol'ko za tekhnologiei sostavnykh dokumentov i lokal'nykh vnedriaemykh ob'ektov, a setevye OLE-ob'ekty stali nazyvat' ActiveX.

Nekotoraia putanitsa mezhdu poniatiiami OLE i ActiveX sokhraniaetsia i do sikh por, no rech' idiot ob odnikh i tekh zhe COM-tekhnologiiakh. Prichiom inogda dazhe putaiut poniatiia OLE i COM. Tak, vnedriaemye OLE-ob'ekty inogda nazyvaiut COM-ob'ektami, a OLE-konteinery -- COM-konteinerami, i t. p.

Podderzhka v OS Windows

[pravit' | pravit' kod]
  • Windows 7, Windows 8, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012 podderzhivaiut COM+[2].
  • Dlia Windows Server 2012 R2 rol' servera prilozhenii, kotoraia realizuet COM+, ob'iavlena ustarevshei i podlezhashchei udaleniiu v budushchikh versiiakh[3].

Printsipy raboty COM

[pravit' | pravit' kod]

Osnovnym poniatiem, kotorym operiruet standart COM, iavliaetsia COM-komponent. Programmy, postroennye na standarte COM, fakticheski ne iavliaiutsia avtonomnymi programmami, a predstavliaiut soboi nabor vzaimodeistvuiushchikh mezhdu soboi COM-komponentov. Kazhdyi komponent imeet unikal'nyi identifikator (GUID) i mozhet odnovremenno ispol'zovat'sia mnogimi programmami. Komponent vzaimodeistvuet s drugimi programmami cherez COM-interfeisy -- nabory abstraktnykh funktsii i svoistv. Kazhdyi COM-komponent dolzhen, kak minimum, realizovyvat' standartnyi interfeis <<IUnknown>>, kotoryi predostavliaet bazovye sredstva dlia raboty s komponentom. Interfeis <<IUnknown>> vkliuchaet v sebia tri metoda: QueryInterface, AddRef, Release.

Windows API predostavliaet bazovye funktsii, pozvoliaiushchie ispol'zovat' COM-komponenty. Biblioteki MFC i, osobenno, ATL/WTL predostavliaiut bolee gibkie i udobnye sredstva dlia raboty s COM. Biblioteka ATL ot Microsoft do sikh por ostaiotsia samym populiarnym sredstvom sozdaniia COM-komponentov. No zachastuiu COM-razrabotka ostaiotsia eshchio dovol'no slozhnym delom, programmistam prikhoditsia vruchnuiu vypolniat' mnogie rutinnye zadachi, sviazannye s COM (osobenno eto zametno v sluchae razrabotki na C++). Vposledstvii (v tekhnologiiakh COM+ i osobenno .NET) Microsoft popytalas' uprostit' zadachu razrabotki COM-komponentov.

Tekhnologii, osnovannye na standarte COM

[pravit' | pravit' kod]

DCOM

[pravit' | pravit' kod]
Osnovnaia stat'ia: DCOM

Vypushchennaia v 1996 godu tekhnologiia DCOM (angl. Distributed COM -- raspredelionnaia COM) osnovana na tekhnologii DCE/RPC (raznovidnosti RPC). DCOM pozvoliaet COM-komponentam vzaimodeistvovat' drug s drugom po seti. Glavnym konkurentom DCOM iavliaetsia drugaia izvestnaia raspredelionnaia tekhnologiia -- CORBA.

Kak DCOM, tak i CORBA reshaiut zadachu vyzova metoda ob'ekta, raspolozhennogo na drugoi mashine, a takzhe peredachu ssylki na ob'ekt s odnoi mashiny na druguiu.

Setevoi uroven' DCOM nazyvaetsia ORPC (Object RPC) i iavliaetsia ob'ektno-orientirovannym rasshireniem DCE RPC.

Tekhnologiia DCOM obespechivaet bazovye ustanovki bezopasnosti, pozvoliaia zadavat', kto i iz kakikh mashin mozhet sozdavat' ekzempliary ob'ekta i vyzyvat' ego metody.

COM+

[pravit' | pravit' kod]

Microsoft Transaction Server byl vkliuchen v Option Pack dlia Windows NT4 eshche v 1997 godu.

V sostave Windows 2000 byla vypushchena tekhnologiia COM+, kotoraia iavlialas' novoi versiei Microsoft Transaction Server.

Tekhnologiia rasshiriala vozmozhnosti razrabotchikov COM-komponentov, predostavliaia im nekotorye gotovye uslugi, naprimer:

  • avtomaticheskii pul potokov, sozdavaemyi standartnym protsessom-zagruzchikom mtx.exe
  • dostup k kontekstu, v kotorom vypolniaetsia komponent (naprimer, komponenty, ispol'zuemye v ASP, mogut s etoi vozmozhnost'iu poluchit' dostup k vnutrennim ob'ektam toi stranitsy, na kotoroi oni vypolniaiutsia).
  • integratsiia s tranzaktsiiami monitora MS DTC (kontekst COM+ mozhet avtomaticheski soderzhat' v sebe tranzaktsiiu MS DTC)

MTS/COM+ ispol'zovalsia vnutri riada versii veb-servera MS IIS dlia zagruzki i ispolneniia veb-prilozhenii, kak binarnykh po tekhnologii ISAPI, tak i skriptovykh po tekhnologii ASP (sama asp.dll est' ISAPI-prilozhenie).

COM+ ob'ediniaet komponenty v tak nazyvaemye prilozheniia COM+, chto uproshchaet administrirovanie i obsluzhivanie komponentov. Bezopasnost' i proizvoditel'nost' -- osnovnye napravleniia usovershenstvovanii COM+. Nekotorye idei, zalozhennye v osnovu COM+, byli takzhe realizovany v Microsoft .NET.

.NET i budushchee COM

[pravit' | pravit' kod]

V 2002 godu byla ofitsial'no vypushchena platforma Microsoft .NET, kotoraia na segodniashnii den' ob'iavlena Microsoft rekomenduemoi osnovoi dlia sozdaniia prilozhenii i komponentov pod Windows. Po etoi prichine v .NET vkliucheny i sredstva, pozvoliaiushchie obrashchat'sia k komponentam COM iz prilozhenii .NET, i naoborot. Po slovam predstavitelei Maikrosoft, COM (tochnee, COM+) i .NET iavliaiutsia otlichno vzaimodopolniaiushchimi tekhnologiiami.

DCOM cherez internet i reshenie problemy XP SP2

[pravit' | pravit' kod]

V 2009 godu DComLab opublikoval kommercheskii produkt ComBridge. Pri ispol'zovanii ComBridge dlia raboty po DCOM cherez internet ne trebuetsia CIS, ne ispol'zuetsia 135 port, v lokal'noi seti ne trebuiutsia nastroiki dcomcnfg. ComBridge vstraivaetsia v transportnyi uroven' DCOM, polnost'iu vydeliaia ves' trafik sozdannogo ob'ekta i vsekh poluchennykh iz nego ob'ektov v otdel'nyi potok.

OPC

[pravit' | pravit' kod]

OPC (OLE for Process Control) -- semeistvo programmnykh tekhnologii, predostavliaiushchikh edinyi interfeis dlia upravleniia ob'ektami avtomatizatsii i tekhnologicheskimi protsessami. Mnogie iz OPC-protokolov baziruiutsia na Windows-tekhnologiiakh: OLE, ActiveX, COM/DCOM. Takie OPC-protokoly, kak OPC XML DA i OPC UA, iavliaiutsia platformo-nezavisimymi.

OLE

[pravit' | pravit' kod]

OLE (angl. Object Linking and Embedding <>; proiznositsia [oh-lay], [olei]) -- tekhnologiia sviazyvaniia i vnedreniia ob'ektov v drugie dokumenty i ob'ekty, razrabotannye korporatsiei Maikrosoft.

OLE pozvoliaet peredavat' chast' raboty ot odnoi programmy redaktirovaniia k drugoi i vozvrashchat' rezul'taty nazad. Naprimer, ustanovlennaia na personal'nom komp'iutere izdatel'skaia sistema mozhet poslat' nekii tekst na obrabotku v tekstovyi redaktor, libo nekotoroe izobrazhenie v redaktor izobrazhenii s pomoshch'iu OLE-tekhnologii.

Primechaniia

[pravit' | pravit' kod]
  1. | Tekhnologiia COM . Data obrashcheniia: 26 ianvaria 2022. Arkhivirovano 26 ianvaria 2022 goda.
  2. | Manage COM+ Applications . Microsoft TechNet. Microsoft Corp. (22 fevralia 2013). Data obrashcheniia: 31 avgusta 2018. Arkhivirovano 23 ianvaria 2012 goda.
  3. | Features Removed or Deprecated in Windows Server 2012 R2 . Microsoft TechNet. Microsoft Corp. (31 avgusta 2016). Data obrashcheniia: 31 avgusta 2018. Arkhivirovano 8 fevralia 2015 goda.

Ssylki

[pravit' | pravit' kod]

Literatura

[pravit' | pravit' kod]
Osnovnye
Sluzhby
upravleniia
Prilozheniia
Win32
UWP/WASDK[angl.]
Istoricheskie
Igry
Iadro OS
Sluzhby
Failovye
sistemy
Servery
Arkhitektura
Bezopasnost'
Sovmestimost'
Istochnik -- https://ru.wikipedia.org/w/index.php?title=Component_Object_Model&oldid=150898005