Dela via


Komponentobjektmodellen

Microsoft Component Object Model (COM) är ett plattformsoberoende, distribuerat, objektorienterat system för att skapa binära programvarukomponenter som kan interagera. COM är grundtekniken för Microsofts OLE (sammansatta dokument), ActiveX (Internetaktiverade komponenter) och andra.

För att förstå COM (och därmed alla COM-baserade tekniker) är det viktigt att förstå att det inte är ett objektorienterat språk utan en standard. Com anger inte heller hur ett program ska struktureras. information om språk, struktur och implementering lämnas till programutvecklaren. I stället anger COM en objektmodell och programmeringskrav som gör att COM-objekt (även kallade COM-komponenter eller ibland bara objekt) kan interagera med andra objekt. Dessa objekt kan finnas i en enda process, i andra processer, och kan till och med finnas på fjärrdatorer. De kan skrivas på olika språk, och de kan vara strukturellt ganska olika, varför COM kallas för en binär standard; en standard som gäller efter att ett program har översatts till binär datorkod.

Det enda språkkravet för COM är att kod genereras på ett språk som kan skapa pekarstrukturer och, antingen explicit eller implicit, anropa funktioner via pekare. Objektorienterade språk som C++ och Smalltalk tillhandahåller programmeringsmekanismer som förenklar implementeringen av COM-objekt, men språk som C, Java och VBScript kan användas för att skapa och använda COM-objekt.

COM definierar den grundläggande karaktären hos ett COM-objekt. I allmänhet består ett programvaruobjekt av en uppsättning data och de funktioner som manipulerar data. Ett COM-objekt är ett objekt där åtkomst till ett objekts data endast uppnås via en eller flera uppsättningar relaterade funktioner. Dessa funktionsuppsättningar kallas gränssnittoch funktionerna i ett gränssnitt kallas metoder. Dessutom kräver COM att det enda sättet att få åtkomst till metoderna i ett gränssnitt är genom en pekare till gränssnittet.

Förutom att ange standardvärdet för grundläggande binärt objekt definierar COM vissa grundläggande gränssnitt som tillhandahåller funktioner som är gemensamma för alla COM-baserade tekniker, och det ger ett litet antal funktioner som alla komponenter kräver. COM definierar också hur objekt fungerar tillsammans i en distribuerad miljö och har lagt till säkerhetsfunktioner för att ge system- och komponentintegritet.

Följande avsnitt i det här avsnittet beskriver grundläggande COM-problem som rör design av COM-objekt: