Komponentobjektmodell

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 6 maj 2022; kontroller kräver 4 redigeringar .

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 .

Historia om COM

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 .

Namnförvirring

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.

Windows Support

Hur COM fungerar

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.

Teknik baserad på COM-standarden

DCOM

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.

COM+

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 .

.NET och framtiden för COM

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.

DCOM över Internet och lösningen på XP SP2-problemet

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

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

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.

Anteckningar

  1. COM-teknik . Hämtad 26 januari 2022. Arkiverad från originalet 26 januari 2022.
  2. Hantera COM+-applikationer . Microsoft TechNet . Microsoft Corp. (22 februari 2013). Hämtad 31 augusti 2018. Arkiverad från originalet 23 januari 2012.
  3. Funktioner borttagna eller utfasade i Windows Server 2012 R2 . Microsoft TechNet . Microsoft Corp. (31 augusti 2016). Hämtad 31 augusti 2018. Arkiverad från originalet 8 februari 2015.

Länkar

Litteratur