COM ( eng. Component Object Model "component object model"; uttalas som [com]) är en teknologistandard från Microsoft , designad för att skapa programvara baserad på interagerande komponenter, som var och en kan användas i många program samtidigt [1] . Standarden förkroppsligar idéerna om polymorfism och inkapsling av objektorienterad programmering . COM-standarden kunde ha varit universell och plattformsoberoende , men den höll sig främst på operativsystem i Microsoft Windows -familjen . I moderna versioner av Windows används COM mycket flitigt. COM-baserade teknologier har implementerats: Microsoft OLE Automation , ActiveX , DCOM , COM+ , DirectX och XPCOM .
COM-standarden utvecklades 1993 av Microsoft som grund för utvecklingen av OLE-teknologin . OLE 1.0-tekniken gjorde det redan möjligt att skapa sk. " sammansatta dokument " ( eng. sammansatta dokument ): till exempel, i Microsoft Office -paketet , gjorde denna teknik det möjligt att inkludera Microsoft Excel -diagram i Microsoft Word -dokument .
1996 försökte Microsoft döpa om OLE-tekniken till ActiveX, men detta lyckades bara delvis. Till exempel medgav OLE-teknik skapandet av så kallade OLE-kontroller ( engelska OLE Controls , eller OCX ) - återanvändbara användargränssnittselement som byggdes på COM-standarden. Dessa OLE-kontroller har bytt namn till ActiveX- kontroller , även om de behåller filtillägget " " . Microsoft började sedan aktivt marknadsföra ActiveX på Internet genom att inkludera stöd för ActiveX-kontroller i webbläsaren Internet Explorer . Som ett resultat kvarstod namnet OLE endast med tekniken för sammansatta dokument och lokala inbäddade objekt. Och nätverk OLE-objekt började kallas på ett nytt sätt - ActiveX. .ocx
Viss förvirring mellan begreppen OLE och ActiveX kvarstår till denna dag, men vi talar om samma COM-teknik. Och ibland blandar de till och med ihop begreppen OLE och COM. Till exempel kallas inbäddade OLE-objekt ibland COM-objekt, och OLE-behållare kallas ibland COM-behållare och så vidare.
Huvudkonceptet som COM-standarden fungerar på är COM-komponenten . Program byggda på COM-standarden är egentligen inte fristående program, utan snarare en uppsättning interagerande COM-komponenter. Varje komponent har en unik identifierare ( GUID ) och kan användas av många program samtidigt. Komponenten interagerar med andra program genom COM-gränssnitt - uppsättningar av abstrakta funktioner och egenskaper. Varje COM-komponent måste som ett minimum implementera standardgränssnittet " IUnknown", som tillhandahåller de grundläggande sätten att arbeta med komponenten. Gränssnittet " IUnknown" inkluderar tre metoder: QueryInterface, AddRef, Release.
Windows API tillhandahåller grundläggande funktionalitet som gör att du kan använda COM-komponenter. MFC - biblioteken och särskilt ATL / WTL ger mer flexibla och bekväma sätt att arbeta med COM. Microsofts ATL är fortfarande det mest populära verktyget för att skapa COM-komponenter. Men ofta är COM-utveckling fortfarande ganska komplicerad, programmerare måste manuellt utföra många rutinuppgifter relaterade till COM (detta är särskilt märkbart i fallet med C++- utveckling ). Därefter (i COM+ och speciellt .NET -teknologier ) försökte Microsoft förenkla uppgiften att utveckla COM-komponenter.
Utgiven 1996, är DCOM ( Distribuerad COM ) -teknik baserad på DCE/RPC -teknik (en variant av RPC ). DCOM tillåter COM-komponenter att kommunicera med varandra över ett nätverk . Den främsta konkurrenten till DCOM är en annan välkänd distribuerad teknologi - CORBA .
Både DCOM och CORBA löser problemet med att anropa en metod på ett objekt som finns på en annan maskin, samt att skicka en referens till ett objekt från en maskin till en annan.
DCOM-nätverkslagret kallas ORPC (Object RPC) och är en objektorienterad förlängning av DCE RPC.
DCOM-tekniken tillhandahåller grundläggande säkerhetsinställningar, så att du kan ange vem och från vilka maskiner som kan skapa instanser av ett objekt och anropa dess metoder.
Microsoft Transaction Server ingick i Option Pack för Windows NT4 redan 1997.
Windows 2000 släppte COM+ -teknik, som var en ny version av Microsoft Transaction Server.
Tekniken stärkte utvecklare av COM-komponenter genom att förse dem med vissa standardtjänster, som:
MTS/COM+ användes i ett antal versioner av MS IIS -webbservern för att ladda och köra webbapplikationer, både binära med ISAPI- teknik och skriptade med ASP-teknik (asp.dll i sig är en ISAPI-applikation).
COM+ paketerar komponenter till så kallade COM+-applikationer , vilket gör det lättare att administrera och underhålla komponenterna. Säkerhet och prestanda är de viktigaste förbättringsområdena för COM+. Några av idéerna bakom COM+ har även implementerats i Microsoft .NET .
2002 släpptes Microsoft .NET- plattformen officiellt , som idag deklareras av Microsoft som det rekommenderade ramverket för att skapa applikationer och komponenter för Windows. Av denna anledning innehåller .NET också verktyg som låter dig komma åt COM-komponenter från .NET- applikationer och vice versa. Enligt Microsoft är COM (mer exakt COM+) och .NET utmärkta kompletterande teknologier.
2009 publicerade DComLab den kommersiella produkten ComBridge. När ComBridge används för att arbeta via DCOM över Internet krävs inte CIS, port 135 används inte och dcomcnfg-inställningar krävs inte på det lokala nätverket. ComBridge är inbyggt i DCOM-transportlagret, och separerar fullständigt all trafik för det skapade objektet och alla objekt som tas emot från det i en separat ström.
OPC (OLE for Process Control) är en familj av mjukvarutekniker som tillhandahåller ett enda gränssnitt för att hantera automationsobjekt och tekniska processer. Många av OPC-protokollen är baserade på Windows-teknologier: OLE, ActiveX, COM/DCOM. OPC-protokoll som OPC XML DA och OPC UA är plattformsoberoende.
OLE ( Object Linking and Embedding " objektlänkning och inbäddning"; uttalas [oh-lay], [oley]) är en teknik för att länka och bädda in objekt i andra dokument och objekt utvecklad av Microsoft.
OLE låter dig överföra en del av arbetet från ett redigeringsprogram till ett annat och returnera resultatet. Till exempel kan ett publiceringssystem installerat på en persondator skicka viss text för bearbetning till en textredigerare, eller någon bild till en bildredigerare med OLE-teknik.