Megosztás a következőn keresztül:


Aszinkron RPC

Az aszinkron távoli eljáráshívás (RPC) egy Microsoft-bővítmény, amely az Open Software Foundation–Distributed Computing Environment (OSF-DCE) által meghatározott hagyományos RPC-modell számos korlátozását kezeli. Az aszinkron RPC elválasztja a távoli eljáráshívást a visszatérési értékétől, amely a hagyományos, szinkron RPC alábbi korlátait oldja fel:

  • Több függőben lévő hívás egyszálas ügyfélről. A hagyományos RPC-modellben az ügyfél le van tiltva egy távoli eljáráshívásban, amíg a hívás vissza nem tér. Ez megakadályozza, hogy egy ügyfél több folyamatban lévő hívást kezdeményezjen, miközben a szála továbbra is elérhető más feladatok elvégzéséhez.
  • Lassú vagy késleltetett ügyfelek. Ha egy ügyfél lassan állít elő adatokat, előfordulhat, hogy távoli eljáráshívást szeretne kezdeményezni a kezdeti adatokkal, majd további adatokat kell szolgáltatnia a létrehozásakor. Ez hagyományos (szinkron) RPC-vel nem lehetséges.
  • Lassú vagy késleltetett kiszolgálók. Egy távoli eljáráshívás, amely hosszú időt vesz igénybe, a feladat időtartamára köti össze a küldési szálat. Az aszinkron RPC-vel a kiszolgáló elindíthat egy külön (aszinkron) műveletet a kérés feldolgozásához, és visszaküldheti a választ, ha elérhető. A kiszolgáló növekményesen is elküldheti a választ, mivel az eredmények elérhetővé válnak anélkül, hogy a távoli hívás idejére le kellene kötnie egy küldőszálat. Az ügyfélalkalmazás aszinkronvá tételével megakadályozhatja, hogy egy lassú kiszolgáló szükségtelenül bekösse az ügyfélalkalmazást.
  • Nagy mennyiségű adat átvitele. Nagy mennyiségű adat átvitele az ügyfél és a kiszolgáló között, különösen lassú kapcsolatokon keresztül, az átvitel időtartama alatt összekapcsolja az ügyfélszálat és a kiszolgálókezelő szálat is. Az aszinkron RPC-vel és -csövekkel az adatátvitel növekményesen, az ügyfél vagy a kiszolgáló egyéb feladatok elvégzésének letiltása nélkül is elvégezhető.

Kihasználhatja az aszinkron RPC-mechanizmusokat a függvények [async] attribútummal történő deklarálásával. Mivel ezt a deklarációt egy attribútumkonfigurációs fájlban (ACF) hajtja végre, nem kell módosítania a Interface Definition Language (IDL) fájlt; az aszinkron RPC nincs hatással a vezetékes protokollra (az adatok átvitelének módja az ügyfél és a kiszolgáló között). Ez azt jelenti, hogy a szinkron és az aszinkron ügyfelek is kommunikálhatnak az aszinkron kiszolgálóalkalmazásokkal.

Ez a szakasz áttekintést nyújt az elosztott alkalmazások aszinkron RPC használatával történő fejlesztéséről. Az áttekintést a következő szakaszokban tekintheti meg: