Component Object Model
COM (angl. Component Object Model <
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]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 <
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]- | Tekhnologiia COM . Data obrashcheniia: 26 ianvaria 2022. Arkhivirovano 26 ianvaria 2022 goda.
- | Manage COM+ Applications . Microsoft TechNet. Microsoft Corp. (22 fevralia 2013). Data obrashcheniia: 31 avgusta 2018. Arkhivirovano 23 ianvaria 2012 goda.
- | 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]- Razdel razrabotki Win32 i COM v biblioteke MSDN (angl.)
- Razdel COM v biblioteke MSDN (angl.)
- Razdel COM+ v biblioteke MSDN (angl.)
- Razdel DCOM v biblioteke MSDN (angl.)
- razdel COM/DCOM/COM+ na saite RSDN (rus.)
- Kontseptsiia COM (angl.)
- Programmirovanie COM-interfeisov (angl.)
- Podborka statei o COM (rus.)
Literatura
[pravit' | pravit' kod]- Robert Dzh. Oberg. Tekhnologiia COM+. Osnovy i programmirovanie = Understanding and Programming COM+: A Practical Guide to Windows 2000 First Edition. -- M.: <
> , 2000. -- S. 480. -- ISBN 0-13-023114-2. - Deil Rodzherson. Osnovy COM. -- 2-e izd.