A többkomponensű objektum modell (com) - studopediya

4.3.1.1. Általános jellemzők COM

Az egyik legfontosabb vívmánya a Windows tekinthető egy többkomponensű objektum modell (Component Object Model, COM). COM modell írja le a folyamatot kölcsönhatás programok minden formáját. A szerver program (COM szerver) elérhetővé teszi mások saját szolgáltatásokat, és a kliens program (COM kliens) szolgáltatásait veszi igénybe az elérhető szolgáltatásokat. COM-kölcsönható objektumok működhet mind ugyanazt a folyamatot, illetve a különböző folyamatok, beleértve azokat, amelyek a különböző gépeken futó különböző operációs rendszerekben. COM - egyszerre leírás (amely meghatározza a teremtés rendjében interoperábilis alkalmazások), és a végrehajtás (formájában egy szabványos API funkciók). Emellett COM - ez a platform-független, elosztott, objektum-orientált rendszer létrehozása interaktív szoftver komponenseket.

A szempontból a megfigyelő által generált jelent COM szoftver komponens egy fekete doboz a következő tulajdonságokkal rendelkezik:

1. Könnyű csatlakoztatás az operációs rendszert.

3. Könnyen integrálható a szoftverrel.

4. Az egyetemes módon hozzáférhessenek a módszerek és tulajdonságait a modern programozási nyelv.

A Microsoft szabványosítani a módját, hogy képviselje COM - tárgy a számítógép memóriájában, és különösen a módszerek meghatározása és tulajdonságai ezt az objektumot. Ezért a Microsoft (MSDN) hivatalos dokumentáció többször említett leírásában COM hogy a COM-modell megfelel a bináris (azaz univerzális) szabvány.

Első pillantásra a fekete doboz nagyon hasonlít COM DLL.

Mint COM, DLL segítségével újra a kódot, akkor könnyen csatlakoztatható az operációs rendszer és integrált szoftver. De a dynamic link library nem tudja garantálni, hogy a kivitel funkciói korlátozás nélkül lehet okozta bármely egyéb programozási nyelv. Ezen kívül, ha a c DLL állunk szemben számos korlátozás kapcsolatos helyén a helyét: a könyvtár kell elhelyezni vagy a szigorú jegyzéklistát vagy szükséges regisztrálni a rendszerben utat. Még több ijesztő feladat - betöltése DLL egy másik számítógépen. Ezzel szemben a DLL, COM modell egy univerzális módon letölteni a létesítmények, tartózkodási helytől függetlenül.

Az első lépések tanulmányozása COM Fontos megérteni, hogy ez nem csak egy újabb objektum-orientált programozási nyelv a saját szintaxis, szemantika és a végrehajtás részleteit. Helyes beszélni COM standard meghatározó modell közötti kölcsönhatás tárgyak.

Annak érdekében, kliens és szerver alkalmazások COM-modell aktívan dolgozik könyvtár COM (COM Library). Fizikailag a COM könyvtár egy sor végrehajtható fájlokat és dinamikus csatolású könyvtárak. Ez képes:

1. szolgáltatásnyújtás egy sor API funkciók fejlődésének elősegítése COM alkalmazásokat. Például, a kliens alkalmazások módszerek az objektumok létrehozásához. Az alkalmazás szerverek a könyvtárban olyan eszközt jelent, bizonyítva a COM-objektumokat.

2. Létrehoz egy egyedi objektum azonosító keresni a kívánt objektumot annak azonosítója.

3. Végezze el a távoli eljárás hívás, ha a COM szerver található egy másik számítógépen.

4. kezelése a memória kiosztás javára kölcsönható folyamatok és ellenőrizzék a kiadás a memória.

A jelenlegi megállapodás a nevét minden Win32 API COM könyvtár módszereket előtaggal kezdődnek «Co», például CoCreateGuid (), CoCreateInstance (), CoUn- inicializálja (), és így tovább. N.

4.3.1.2. Elements COM-alkalmazásokhoz

A fejlesztő a szabványos COM-alkalmazások minden esetben szembe kell néznie, két elemből áll:

COM szerver egy külön modul, valósíthatók meg külön futtatható EXE-DLL-fájl vagy egy dynamic link library fájlt.

COM szerver modell két faj van: a belső és külső.

Tekintsük a VCL osztályok, tegye meg a szolgáltatást a COM technológia.

A szerkezet a COM-kiszolgáló legalább a következőket tartalmazza:

1. Az egyik - az egyetlen példánya a TcomServer, becsomagolja magát COM-kiszolgáló. A hozzáférés ehhez a konstrukcióra vonatkozó globális változó létre a kiszolgáló indítási COMSERVER.

2. Leírás COM-objektum (vagy több tárgy), a prototípust, amely TComObject osztályban.

3.Fabrika osztály (egy-egy minden típusú COM-objektum). Az alapja az osztály gyár TComObjectFactory osztályban. Az egyetlen probléma az osztály gyár létrehozásához más tárgyak - TComObject fokon.

A kiadás a következő változata a könyvtárak nem kell frissíteni az összes szoftver.

A COM-modell létrehozásának folyamatát egy új objektumot ismer programozási környezet, és még csak nem is maga az objektum, a harmadik (bizonyos mértékig semleges) párt - egy osztály gyári (class gyárak). Ez a gyár teljes mértékben felelős a memória kiosztás a jövőben a COM-objektum, és ugyanabban az időben, mintha nem úgy tűnik, hogy nekünk paradox a részleteket az építési ennek az objektumnak sincs.

Minden egyes COM-osztály egy külön gyárat.

Ahhoz, hogy hozzon létre egy új példánya a gyár használja az osztály sablon vagy egy modell gyári (gyári minta).

Gyári minta - egy különleges besorolású létrehozásához használt egy példányát egy másik osztályba.

Hála a „gyári” megközelítés, a folyamat létrehoz egy új objektumot elkülönül a sajátosságait annak végrehajtását.

Gyári szerviz vezetője felelős a gyárak - az osztály objektum TComClass - menedzser. manager példány automatikusan létrehozásra és a rendelkezésre álló melléklet COM - kiszolgáló egy globális változó ComClassManager.

COM ügyfél veszi igénybe a szerver, de nem is ismerik a funkciók végrehajtására. ügyfél szolgáltatásokhoz való hozzáférés be van ágyazva a COM-kiszolgáló objektum csak interfészeken keresztül a tárgy; kulcsfontosságú eleme a teljes COM-modell. Miután megkapta a mutató egy interfész, a kliens alkalmazás megszerzi a jogot arra, hogy hívja az eljárások.

4.3.1.3. COM - objektum

Középpontjában a többkomponensű modell fogalmát COM-objektumot.

Fizikailag COM-objektum egy adatgyűjtés és módszereket, amelyek kezelni ezeket az adatokat. COM-objektumok szerkezete jelentősen eltér a gombok és a beviteli mezők, ismerős számunkra a könyvtár által VCL. A legfontosabb különbség az ismerős COM objektumot Delphi, hogy a COM-objektum hozzáférést biztosít az adatokat.

COM-objektumok szerkezete megvalósul az ötlet egy mese Koshchei halhatatlan. Ne feledje: a halál, a tű, a tű a tojás, egy kacsa, egy kacsa, egy nyúl, mezei nyúl, a mellkas, a mellkas egy tölgyfa. Ismeretlen, olvassa el a Microsoft orosz népmesék, vagy sem, tervezése COM-objektum programozók Corporation magabiztosan ment a kitaposott utat Koshcheev - közvetlen hozzáférés az adatokhoz kívülről COM- tárgy elvileg nem létezik. Minden mező az objektum rejtett mélységeiben és javítását csak a módszerek a COM-objektumot. Object módszerek szintén speciális kommunikációs készség nem más; vannak csomagolva, így mély, amelyek csak keresztül az indexet.

A többkomponensű objektum modell (com) - studopediya

Ábra. 6. Model COM-objektum

Hogy hozzáférjenek a szükséges jelenléte a IUnknown felület, szoftver, vagy bármilyen más tárgy lehet menni közvetlenül a QueryInterface () függvény, és megismerhetik az összes többi rendelkezésre álló interfészek az objektum. A diagramok IUnknown interfész van ábrázolva a felső részben a tárgy (ábra. 7).

A többkomponensű objektum modell (com) - studopediya

Ábra. 7. Presentation COM-objektumot egy séma

A Delphi programozási környezet, amely COM-objektumot fel TCOMObject osztályban. A felület része alapján létrehozott referencia az összes interfész osztályok IInterface.

Lényegét tekintve, a felület - közötti szerződés COM-objektumot, és a kliens alkalmazás, amelyben a COM-objektum garantálja az ügyfél bizonyos szolgáltatások nyújtására. Szolgáltatások - vannak bizonyos módszerek a felületen. De bár a felület, és a jogot, hogy a címek módszerek, de nem a módszerek nem rendelkezik leírást. Ez annak a ténynek köszönhető, hogy a felület nem végrehajtási fejezetében, csak deklarálja a módszer neve és a paraméterek listája. Az ügyfelek hozzáférhetnek a COM-objektum adatokat, csak egy mutatót a felület.

Egy másik jelentős szempont a felületet, hogy ha a COM-objektum-államok létezésének meghatározása a felület, a felület kell minősíteni szükséges, hogy a belső eljárások, a tárgy és a vissza semmilyen értéket, még ha csak egy banális hibaüzenetet.

Interfészek lehet örökletes - a gyermek interfész tartalmaznia kell minden módszer őse. Minden meglévő interfészek öröklődnek IUnknown felület az alap.

Rá kell mutatnunk, két szabályt kell követniük a tervezési COM-objektum:

Ennek része egy különálló rendszer, minden felületen kell egy egyedi GUID és kezdődő név «I» szimbólum.

4.3.1.5. Az eljárás hívás szerver kliens alkalmazás

Ábra. 8. a kapcsolatot az ügyféllel, hogy a szerver

A telepítés során a COM-alkalmazások a rendszerleíró adatbázis megadott információkat a rendelkezésre álló COM-objektumokat. Az első egy azonosítóra, amely egyedileg azonosítja az objektumot osztályba (Identifier, CLSID). Osztály azonosítókat tárolja az alábbi ágak a Windows registry:

Osztályazonosítók - egyfajta már korábban felmerült globálisan egyedi azonosítóval (Global Unique Identifier, GUID). Ez az egyedülálló 128 bites szám, amely azonosítja felületek, objektumok és osztályok. Az egyediség használatával elért, az eredeti generáló algoritmus számok funkcióit biztosítja Win32 API CoCreateGuid ().

A folyamat elindítása COM-objektumot közvetlenül érintett rendszer könyvtár COM. Ábra. 8. ábra vázlatosan mutatja a műveletsornak az ügyfél, és a könyvtár a COM-kiszolgáló, amikor az első példányt a COM-objektumot.

Kapcsolódó cikkek