COM ( eng. Component Object Model "component object model"; udtales som [com]) er en teknologistandard fra Microsoft , designet til at skabe software baseret på interagerende komponenter, som hver især kan bruges i mange programmer samtidigt [1] . Standarden inkarnerer ideerne om polymorfi og indkapsling af objektorienteret programmering . COM-standarden kunne have været universel og på tværs af platforme , men den holdt sig hovedsageligt fast på operativsystemer i Microsoft Windows -familien . I moderne versioner af Windows bruges COM meget bredt. COM-baserede teknologier er blevet implementeret: Microsoft OLE Automation , ActiveX , DCOM , COM+ , DirectX og XPCOM .
COM-standarden blev udviklet i 1993 af Microsoft som grundlag for udviklingen af OLE-teknologi . OLE 1.0 teknologien gjorde det allerede muligt at skabe såkaldte. " sammensatte dokumenter " ( eng. sammensatte dokumenter ): for eksempel i Microsoft Office -pakken gjorde denne teknologi det muligt at inkludere Microsoft Excel -diagrammer i Microsoft Word -dokumenter .
I 1996 forsøgte Microsoft at omdøbe OLE-teknologien til ActiveX, men det lykkedes kun delvist. For eksempel tillod OLE-teknologien skabelsen af såkaldte OLE-kontroller ( engelsk OLE Controls eller OCX ) - genanvendelige brugergrænsefladeelementer , der var bygget på COM-standarden. Disse OLE - kontroller er blevet omdøbt til ActiveX - kontroller , selvom de beholder filtypen " " . Microsoft begyndte derefter aktivt at promovere ActiveX på internettet ved at inkludere understøttelse af ActiveX-objekter i sin Internet Explorer- browser . Som et resultat forblev navnet OLE kun med teknologien til sammensatte dokumenter og lokale indlejrede objekter. Og netværk OLE-objekter begyndte at blive kaldt på en ny måde - ActiveX. .ocx
En vis forvirring mellem begreberne OLE og ActiveX består den dag i dag, men vi taler om de samme COM-teknologier. Og nogle gange forveksler de endda begreberne OLE og COM. For eksempel kaldes indlejrede OLE-objekter nogle gange COM-objekter, og OLE-beholdere kaldes nogle gange COM-beholdere og så videre.
Hovedkonceptet, som COM-standarden opererer på, er COM-komponenten . Programmer bygget på COM-standarden er faktisk ikke selvstændige programmer, men snarere et sæt interagerende COM-komponenter. Hver komponent har en unik identifikator ( GUID ) og kan bruges af mange programmer på samme tid. Komponenten interagerer med andre programmer gennem COM-grænseflader - sæt af abstrakte funktioner og egenskaber. Hver COM-komponent skal som minimum implementere standardgrænsefladen " IUnknown", som giver de grundlæggende midler til at arbejde med komponenten. Grænsefladen " IUnknown" inkluderer tre metoder: QueryInterface, AddRef, Release.
Windows API'en giver grundlæggende funktionalitet, der giver dig mulighed for at bruge COM-komponenter. MFC- bibliotekerne og især ATL / WTL giver mere fleksible og bekvemme midler til at arbejde med COM. Microsofts ATL er stadig det mest populære værktøj til at skabe COM-komponenter. Men ofte er COM-udvikling stadig ret kompliceret, programmører skal manuelt udføre mange rutineopgaver relateret til COM (dette er især bemærkelsesværdigt i tilfælde af C++- udvikling ). Efterfølgende (i COM+ og især .NET- teknologier ) forsøgte Microsoft at forenkle opgaven med at udvikle COM-komponenter.
Udgivet i 1996, DCOM ( Distribueret COM ) teknologi er baseret på DCE/RPC teknologi (en variation af RPC ). DCOM tillader COM-komponenter at kommunikere med hinanden over et netværk . DCOMs største konkurrent er en anden velkendt distribueret teknologi - CORBA .
Både DCOM og CORBA løser problemet med at kalde en metode på et objekt placeret på en anden maskine, samt at overføre en reference til et objekt fra en maskine til en anden.
DCOM-netværkslaget kaldes ORPC (Object RPC) og er en objektorienteret udvidelse af DCE RPC.
DCOM-teknologi giver grundlæggende sikkerhedsindstillinger, så du kan angive, hvem og fra hvilke maskiner der kan oprette forekomster af et objekt og kalde dets metoder.
Microsoft Transaction Server blev inkluderet i Option Pack til Windows NT4 tilbage i 1997.
Windows 2000 udgav COM+ teknologi, som var en ny version af Microsoft Transaction Server.
Teknologien styrkede udviklere af COM-komponenter ved at give dem nogle hyldeservices, såsom:
MTS/COM+ blev brugt inde i en række versioner af MS IIS -webserveren til at indlæse og udføre webapplikationer, både binære ved hjælp af ISAPI -teknologi og scripted ved hjælp af ASP-teknologi (asp.dll selv er en ISAPI-applikation).
COM+ samler komponenter i såkaldte COM+ applikationer , hvilket gør det nemmere at administrere og vedligeholde komponenterne. Sikkerhed og ydeevne er de vigtigste forbedringsområder for COM+. Nogle af ideerne bag COM+ er også blevet implementeret i Microsoft .NET .
I 2002 blev Microsoft .NET platformen officielt frigivet , som i dag er erklæret af Microsoft som den anbefalede ramme til at skabe applikationer og komponenter til Windows. Af denne grund indeholder .NET også værktøjer, der giver dig adgang til COM-komponenter fra .NET- applikationer og omvendt. Ifølge Microsoft er COM (mere præcist COM+) og .NET fremragende komplementære teknologier.
I 2009 udgav DComLab det kommercielle produkt ComBridge. Når du bruger ComBridge til at arbejde via DCOM over internettet, er CIS ikke påkrævet, port 135 bruges ikke, og dcomcnfg-indstillinger er ikke påkrævet på det lokale netværk. ComBridge er indbygget i DCOM-transportlaget og adskiller fuldstændigt al trafik fra det oprettede objekt og alle objekter modtaget fra det i en separat strøm.
OPC (OLE for Process Control) er en familie af softwareteknologier, der giver en enkelt grænseflade til styring af automatiseringsobjekter og teknologiske processer. Mange af OPC-protokollerne er baseret på Windows-teknologier: OLE, ActiveX, COM/DCOM. OPC-protokoller såsom OPC XML DA og OPC UA er platformsuafhængige.
OLE ( Object Linking and Embedding " object linking and embedding "; udtales [oh-lay], [oley]) er en teknologi til at linke og integrere objekter i andre dokumenter og objekter udviklet af Microsoft.
OLE giver dig mulighed for at overføre en del af arbejdet fra et redigeringsprogram til et andet og returnere resultaterne. For eksempel kan et udgivelsessystem installeret på en personlig computer sende noget tekst til behandling til en teksteditor eller et billede til en billededitor ved hjælp af OLE-teknologi.