Component Object Model

Component Object Model (COM) je platformovo nezávislý, distribuovaný, objektovo orientovaný systém pre vytváranie binárnych softvérových komponentov, ktoré sú schopné spolupracovať. Bol uvedený spoločnosťou Microsoft v roku 1993. COM je systém, na ktorom sú postavené technológie OLE, OLE Automation, ActiveX, COM+ a DCOM.

Prehľad
Podstatou technológie COM je jazykovo nezávislý spôsob implementovania objektov, ktoré môžu byť použité aj v iných prostrediach ako boli vytvorené, dokonca za hranicami jednotlivých počítačov. Ak sú komponenty správne napísané, COM umožňuje používanie objektov bez znalosti ich vnútornej implementácie, čo zároveň núti autorov jednotlivých komponentov poskytovať správne definované rozhrania, ktoré sú oddelené od implementácie. Problém odlišných sémantík alokovania pamäti v rôznych jazykoch je vyriešený tým, že každý objekt je zodpovedný za svoje vytváranie a rušenie pomocou počítania referencií (tzv. reference counting). Pretypovanie medzi rôznymi rozhraniami objektu zabezpečuje funkcia QueryInterface(). Dedičnosť v rámci COM je vyriešená vytváraním takzvaných pod-objektov, ktorým sú následne odovzdávané volania metód z ich nad-objektov.

COM je technológia rozhraní, definovaná a implementovaná ako štandard iba pre Microsoft Windows a Apple Core Foundation 1.3. Pre niektoré aplikácie bolo COM nahradené v určitom rozsahu technológiou Microsoft .NET a podporou pre webové služby spolu s Windows Communication Foundation. Avšak COM objekty môžu byť použité vo všetkých .NET jazykoch a to pomocou spolupráce technológií .NET a COM pod názvom .NET COM Interop.

Programovanie