különböző folyamatok
Az utóbbi időben voltam Berlinben a fal előtt lejött. Amikor elhagyja az amerikai szektor ellenőrző állomásokat, „Checkpoint Charlie”, én vezettem a kelet-berlini, nincs kétség, hogy ott van a határon. Szögesdrót géppuskások és aknamezők tette elég világosan. Hanem a védekező különbségek nyilvánvalóak voltak: a keleti oldalon a fal kétliteres subcompact böfögött sűrű füst, és voltak hosszú sorok kívül tárolja.
Változások várnak ránk minden határátkelőhelyen, bármennyire alig különbözik az egyik oldalon a másik. Ez a fejezet a határátlépés - főleg a határok között, a különböző folyamatok. Azt is fontolóra a határátlépés a gépek között.
Miért van szükségünk, hogy lépjen túl a folyamat határ? Mivel bizonyos esetekben előnyös, hogy végre komponensek EXE, és nem a DLL. Ennek egyik oka lehet, hogy az alkalmazás már végrehajtották be EXE. Miután kisebb módosítása kell bocsátani alkalmazás szolgáltatásokat, hogy az ügyfelek képesek lesznek, hogy automatizálják a használatát.
Ha az alkatrész és a kliens különböző EXE, lesznek található különálló folyamat, mert a folyamat jön létre minden EXE-modult. Az információ továbbítása közötti ilyen komponenst és a kliens kell átlépni a határt a folyamatokat. Szerencsére ebben az esetben nincs szükség változtatni a komponens kódot, de néhány változás CFactory osztályban. bemutatva az előző fejezetben, akkor továbbra is meg kell tennünk. Azonban, mielőtt a végrehajtás, akkor figyelembe kell venni a problémák és megoldások kapcsolódó hivatkozás a COM interfészek között folyamatban határokat.
Míg az egyes EXE-modul megfelel egy olyan eljárásnak, DLL az előrejelzések a folyamat EXE, amelyhez vannak elrendezve. Emiatt DLL hívás szerver folyamat keretében (folyamatban). és EXE - kiszolgáló folyamat (kivéve folyamat). EXE néha nevezik helyi szervereket. megkülönböztetni őket a más típusú kiszolgálók a folyamat - távoli szervereken. A távoli kiszolgáló - a kiszolgáló folyamat fut egy másik gépen.
Hozzáférés a memória kapcsolódó felületen, akkor nem lesz képes hívni, és ezt a felületet a funkciót. Ebben a helyzetben a felületek válna teljesen haszontalan.
Interfész tud működni az egész folyamat határait, a következőkre van szükség. „A folyamat képesnek kell lennie arra, hogy hívja a funkciót egy másik folyamat.
„A folyamat képesnek kell lennie arra, hogy továbbítsák az adatokat egy másik folyamat.
„Az ügyfél nem kell aggódnia, hogy a kiszolgáló komponens belül vagy kívül a folyamatot.
Helyi eljárás hívás
Sok módszerek, folyamatok közötti kommunikáció, beleértve a DDE, named pipe és a megosztott memóriát. Azonban COM amely a helyi eljáráshívás (helyi hívás eljárás, LPC). LPC - a kommunikációs eszköz a különböző folyamatok ugyanazon a gépen. LPC egy dedikált kapcsolatot jelenti a különböző folyamatok egyetlen gép, alapján szerkesztett egy távoli eljárás hívás (Remote Procedure Call, RPC) (lásd. Ábra. 10-2).
RPC szabványát OSF (Open Software Foundation) DCE leírás (Distributed Computing Environment) RPC. RPC lehetővé teszi a kommunikációt folyamatok különböző gépeken különböző hálózati protokollokat. Elosztott COM (DCOM), amely azt fogja vizsgálni később ebben a fejezetben, használja RPC hálózati kommunikációt.
Helyi eljárás hívás
Ábra. Az ügyfél 10-2 használ EXE Win32 LPC mechanizmus telefonálási funkciókat a komponens, végre egy másik EXE
A elrendezésében alkatrész IMarshal interfész. A folyamat létrehozásának COM komponens megkérdezi tőle ezt a felületet. COM majd felhívja a tagok feladatait a felület elrendezésében és unmarshaling paraméterek előtt és után a függvényhívás. COM könyvtár végrehajtja a standard változat IMarshal. hogy működik a legtöbb interfészek. Ennek fő oka, mely saját verzióját
A letöltés folytatásához össze kell rakni egy képet: