Component Object Model
Megjelenés
Főnév
Component Object Model (tsz. Component Object Models)
- (informatika) A Component Object Model (COM) a Microsoft által kifejlesztett, nyílt szabvány alapú technológia, amely lehetővé teszi szoftverkomponensek közötti kommunikációt és együttműködést, akár ugyanazon a gépen belül, akár hálózaton keresztül. A COM fő célja, hogy különböző programozási nyelveken írt komponensek egymással interoperálhassanak.
1. COM alapfogalmak
- Komponens: Önállóan újrahasznosítható, jól definiált funkcionalitással rendelkező szoftveregység.
- Interface (interfész): Egy komponens által nyújtott metódusok halmaza, amelyeken keresztül más komponensek vagy alkalmazások elérhetik azt.
- IUnknown: A COM összes interfészének alapszintű interfésze, amely biztosítja az objektum életciklus-kezelést (referenciaszámlálás) és az interfészek lekérdezését.
2. COM jellemzői
- Platformfüggetlen interfészdefiníció: Interfészek IDL (Interface Definition Language) segítségével definiálhatók.
- Nyelvfüggetlenség: A COM komponenseket különböző nyelveken (C++, VB, C#, Delphi stb.) lehet írni és használni.
- Referenciaszámlálás: Az objektumok életciklusát automatikusan kezeli a rendszer, elkerülve a memóriaszivárgásokat.
- Interfész-alapú kommunikáció: Minden funkcionalitást interfészeken keresztül érünk el, nincs közvetlen objektum-hozzáférés.
- Független az implementációtól: A komponens implementációja bármikor cserélhető anélkül, hogy a felhasználó kódját módosítani kellene.
3. COM működése
- A kliens alkalmazás lekér egy COM objektumot egy Class ID (CLSID) alapján.
- A COM futtatókörnyezet létrehozza az objektumot, amely interfészeket biztosít.
- A kliens az objektum interfészein keresztül kommunikál vele, metódusokat hív meg.
- Az objektum referencia számlálást alkalmaz, így automatikusan törlődik, ha már nem használják.
4. COM és kapcsolódó technológiák
- DCOM (Distributed COM): Hálózaton keresztüli komponens kommunikáció.
- OLE (Object Linking and Embedding): Dokumentumokon belüli objektumbeágyazás COM-on keresztül.
- ActiveX: Webes és desktop alkalmazásokban használt COM-alapú vezérlők.
- COM+: Kiterjesztett COM szolgáltatások, például tranzakciókezelés és biztonság.
5. COM komponensek felépítése
- CLSID: Egyedi azonosító minden komponenshez.
- IID: Interfész egyedi azonosítója.
- Type Library: Komponens interfészleírásait tartalmazó fájl.
6. Előnyök és hátrányok
| Előnyök | Hátrányok |
|---|---|
| Nyelvfüggetlenség | Bonyolult konfiguráció és telepítés |
| Komponens újrahasznosítás | Hibák esetén nehéz hibakeresés |
| Objektum életciklus kezelése | Windows-specifikus, korlátozott portabilitás |
7. Összefoglaló táblázat
| Fogalom | Leírás |
|---|---|
| COM | Microsoft komponens-alapú technológia |
| Interface | Objektum funkcionalitását definiáló szerződés |
| IUnknown | Alap interfész referencia számláláshoz |
| CLSID | Komponens egyedi azonosítója |
| DCOM | Elosztott komponens kommunikáció |
A Component Object Model alapjaiban változtatta meg a Windows alkalmazások és komponensek közötti kommunikációt, lehetővé téve a nyelvfüggetlen, moduláris és újrahasznosítható fejlesztést.
- Component Object Model - Szótár.net (en-hu)
- Component Object Model - Sztaki (en-hu)
- Component Object Model - Merriam–Webster
- Component Object Model - Cambridge
- Component Object Model - WordNet
- Component Object Model - Яндекс (en-ru)
- Component Object Model - Google (en-hu)
- Component Object Model - Wikidata
- Component Object Model - Wikipédia (angol)