COM ( eng. Component Object Model "komponenttiobjektimalli"; lausutaan nimellä [com]) on Microsoftin teknologiastandardi , joka on suunniteltu luomaan ohjelmistoja , jotka perustuvat vuorovaikutuksessa oleviin komponentteihin, joista kutakin voidaan käyttää useissa ohjelmissa samanaikaisesti [1] . Standardi ilmentää ajatuksia polymorfismista ja olio-ohjelmoinnin kapseloinnista . COM-standardi voisi olla universaali ja monialustainen , mutta se pysyi pääasiassa Microsoft Windows -perheen käyttöjärjestelmissä . Nykyaikaisissa Windowsin versioissa COM on käytössä erittäin laajalti. COM-pohjaisia tekniikoita on otettu käyttöön: Microsoft OLE Automation , ActiveX , DCOM , COM+ , DirectX ja XPCOM .
Microsoft kehitti COM-standardin vuonna 1993 OLE-teknologian kehittämisen perustaksi . OLE 1.0 -teknologia mahdollisti jo ns. " yhdistelmädokumentit " ( eng. yhdistelmädokumentit ) : esimerkiksi Microsoft Office - paketissa tämä tekniikka mahdollisti Microsoft Excel - kaavioiden sisällyttämisen Microsoft Word - asiakirjoihin .
Vuonna 1996 Microsoft yritti nimetä OLE-teknologian uudelleen ActiveX:ksi, mutta tämä onnistui vain osittain. Esimerkiksi OLE-teknologia mahdollisti ns. OLE-ohjaimien ( englanniksi OLE Controls tai OCX ) luomisen – uudelleenkäytettävien käyttöliittymäelementtien , jotka on rakennettu COM-standardin varaan. Nämä OLE-ohjaimet on nimetty uudelleen ActiveX - komponenteiksi , vaikka ne säilyttävät tiedostotunnisteen " " . Microsoft alkoi sitten aktiivisesti mainostaa ActiveX:ää Internetissä sisällyttämällä ActiveX-komponenttien tuen Internet Explorer -selaimeensa . Tämän seurauksena OLE -nimi säilyi vain yhdistelmädokumenttien ja paikallisten sulautettujen objektien tekniikalla. Ja verkon OLE-objekteja alettiin kutsua uudella tavalla - ActiveX. .ocx
Jonkin verran sekaannusta OLE:n ja ActiveX:n käsitteiden välillä on vielä tänäkin päivänä, mutta puhumme samoista COM-tekniikoista. Ja joskus he jopa sekoittavat OLE:n ja COM:n käsitteet. Esimerkiksi upotettuja OLE-objekteja kutsutaan joskus COM-objekteiksi, ja OLE-säilöjä kutsutaan joskus COM-säilöiksi ja niin edelleen.
Pääkonsepti, jolla COM-standardi toimii, on COM-komponentti . COM-standardin varaan rakennetut ohjelmat eivät itse asiassa ole itsenäisiä ohjelmia, vaan pikemminkin joukko vuorovaikutuksessa olevia COM-komponentteja. Jokaisella komponentilla on yksilöllinen tunniste ( GUID ), ja useat ohjelmat voivat käyttää sitä samanaikaisesti. Komponentti on vuorovaikutuksessa muiden ohjelmien kanssa COM-liitäntöjen - abstraktien funktioiden ja ominaisuuksien joukkojen kautta. Jokaisen COM-komponentin tulee toteuttaa vähintään standardi " IUnknown" -liitäntä, joka tarjoaa peruskeinot komponentin kanssa työskentelyyn. Käyttöliittymä IUnknownsisältää kolme menetelmää: QueryInterface, AddRef, Release.
Windows API tarjoaa perustoiminnot, joiden avulla voit käyttää COM-komponentteja. MFC - kirjastot ja erityisesti ATL / WTL tarjoavat joustavampia ja kätevämpiä tapoja työskennellä COM:n kanssa. Microsoftin ATL on edelleen suosituin työkalu COM-komponenttien luomiseen. Mutta usein COM-kehitys on silti melko monimutkaista, ohjelmoijien on suoritettava manuaalisesti monia rutiinitehtäviä, jotka liittyvät COM:iin (tämä on erityisen havaittavissa C++- kehityksen tapauksessa ). Myöhemmin (COM+- ja erityisesti .NET -tekniikoissa ) Microsoft yritti yksinkertaistaa COM-komponenttien kehittämistä.
Vuonna 1996 julkaistu DCOM ( Distributed COM ) -tekniikka perustuu DCE/RPC -tekniikkaan ( RPC :n muunnelma ). DCOM mahdollistaa COM-komponenttien kommunikoinnin toistensa kanssa verkon kautta . DCOM:n pääkilpailija on toinen tunnettu hajautettu teknologia - CORBA .
Sekä DCOM että CORBA ratkaisevat menetelmän kutsumisen toisessa koneessa sijaitsevassa objektissa sekä viittauksen välittämiseen objektiin koneelta toiselle.
DCOM-verkkokerrosta kutsutaan ORPC:ksi (Object RPC) ja se on DCE RPC:n oliopohjainen laajennus.
DCOM-tekniikka tarjoaa perussuojausasetukset, joiden avulla voit määrittää, kuka ja mistä koneista voi luoda objektin esiintymiä ja kutsua sen menetelmiä.
Microsoft Transaction Server sisällytettiin Windows NT4:n Option Pack -pakettiin vuonna 1997.
Windows 2000 julkaisi COM+ -tekniikan, joka oli uusi versio Microsoft Transaction Serveristä.
Tekniikka antoi COM-komponenttien kehittäjille mahdollisuuden tarjota heille valmiita palveluita, kuten:
MTS/COM+:aa käytettiin useissa MS IIS -verkkopalvelimen versioissa verkkosovellusten lataamiseen ja suorittamiseen, sekä binaarisina ISAPI -teknologiaa käyttävinä että komentosarjoina ASP-tekniikalla (asp.dll itsessään on ISAPI-sovellus).
COM+ yhdistää komponentit niin sanotuiksi COM+-sovelluksiksi , mikä helpottaa komponenttien hallintaa ja ylläpitoa. Tietoturva ja suorituskyky ovat COM+:n tärkeimmät parannuskohteet. Jotkut COM+:n takana olevista ideoista on toteutettu myös Microsoft .NET :ssä .
Vuonna 2002 Microsoft julkaistiin virallisesti .NET -alusta , jonka Microsoft on tänään julistanut suositelluksi kehykseksi sovellusten ja komponenttien luomiseen Windowsille. Tästä syystä .NET sisältää myös työkaluja, joiden avulla voit käyttää COM-komponentteja .NET -sovelluksista ja päinvastoin. Microsoftin mukaan COM (tarkemmin sanottuna COM+) ja .NET ovat erinomaisia toisiaan täydentäviä teknologioita.
Vuonna 2009 DComLab julkaisi kaupallisen tuotteen ComBridge. Kun käytät ComBridgea työskentelemään DCOM:n kautta Internetin kautta, CIS:ää ei tarvita, porttia 135 ei käytetä eikä dcomcnfg-asetuksia vaadita paikallisessa verkossa. ComBridge on sisäänrakennettu DCOM-siirtokerrokseen, ja se erottaa kokonaan luodun objektin liikenteen ja kaikki siitä vastaanotetut objektit erilliseksi virraksi.
OPC (OLE for Process Control) on ohjelmistoteknologioiden perhe, joka tarjoaa yhden rajapinnan automaatioobjektien ja teknisten prosessien hallintaan. Monet OPC-protokollat perustuvat Windows-teknologioihin: OLE, ActiveX, COM/DCOM. OPC-protokollat, kuten OPC XML DA ja OPC UA, ovat alustariippumattomia.
OLE ( Object Linking and Embedding " objektien linkitys ja upottaminen"; lausutaan [oh-lay], [oley]) on tekniikka, jolla linkitetään ja upotetaan esineitä muihin asiakirjoihin ja Microsoftin kehittämiin objekteihin.
OLE:n avulla voit siirtää osan työstä editointiohjelmasta toiseen ja palauttaa tulokset takaisin. Esimerkiksi henkilökohtaiseen tietokoneeseen asennettu julkaisujärjestelmä voi lähettää tekstiä käsiteltäväksi tekstieditoriin tai kuvan kuvankäsittelyohjelmaan OLE-tekniikalla.