A Remote Procedure Call vagy az RPC egy hatékony technika elosztott, kliens-szerver alapú alkalmazások létrehozására. Funkcióhívásként vagy szubrutinhívásként is ismert. Távoli eljáráshívás az, amikor egy számítógépes program egy eljárás végrehajtását egy másik címtérben indítja el, helyi eljáráshívásként kódolva anélkül, hogy a programozó kifejezetten megadná a távoli interakció részleteit. A programozó lényegében ugyanazt a kódot írja, akár helyi, akár távoli szubrutin. Ez a kliens-szerver interakció egy kérés-válasz üzenetátadó rendszeren keresztül megvalósított formája.
Az RPC modell azt jelenti a hely átláthatósága hogy a hívási eljárások nagyrészt ugyanazok, akár helyi, akár távoli. Általában nem azonosak, így a helyi hívások megkülönböztethetők a távoli hívásoktól. A távoli hívások általában nagyságrendekkel lassabbak és kevésbé megbízhatóak, mint a helyi hívások, ezért fontos megkülönböztetni őket.
Az RPC-k a folyamatok közötti kommunikáció (IPC) egyik formája, mivel a különböző folyamatok különböző címterekkel rendelkeznek. Különböző virtuális címterekkel rendelkeznek ugyanazon a gazdagépen, bár a fizikai címtér ugyanaz. Míg ha különböző gépeken vannak, a fizikai címtér eltérő.
Távoli eljárási hívás kezdeményezése
A hívókörnyezet felfüggesztésre kerül, az eljárás paraméterei a hálózaton keresztül átkerülnek abba a környezetbe, ahol az eljárást végre kell hajtani, és ott az eljárás végrehajtásra kerül.
Amikor az eljárás befejeződik és meghozza az eredményt, visszakerül a hívó környezetbe, ahol a végrehajtás úgy folytatódik, mintha egy normál eljáráshívásból térne vissza.
MEGJEGYZÉS: Az RPC különösen alkalmas kliens-szerver (például lekérdezés-válasz) interakcióhoz, amelyben a vezérlés felváltva történik a hívó és a hívott fél között. Elméletileg a kliens és a szerver nem egyszerre fut; ehelyett a végrehajtás szála a hívótól a hívott felé ugrik, majd vissza.
Az RPC típusai
Háromféle távoli eljáráshívás (RPC) létezik egy operációs rendszerben, például:
1. Visszahívás RPC
Ez a típusú RPC P2P paradigmát tesz lehetővé a résztvevő folyamatok között. Segít egy folyamatnak, hogy egyszerre legyen kliens és szerver szolgáltatás. A visszahívási RPC a következő funkciókkal rendelkezik, mint például:
tanulj szelént
- Távolról feldolgozott interaktív alkalmazási problémák.
- Szervert kínál klienskezelővel.
- A visszahívás várakoztatja az ügyfélfolyamatot.
- A visszahívási holtpontok kezelése.
- Megkönnyíti a peer-to-peer paradigmát a résztvevő folyamatok között.
2. RPC adás
A Broadcast RPC egy kliens által a hálózaton sugárzott kérés, amelyet minden szerver feldolgoz a kérés feldolgozásának módszerével. A Broadcast RPC a következő funkciókkal rendelkezik, mint például:
- Lehetővé teszi annak megadását, hogy az ügyfél kérési üzenetét sugározni kell.
- Deklarálhat szórási portokat.
- Segít csökkenteni a fizikai hálózat terhelését.
3. Batch-módú RPC
A kötegelt módú RPC segít sorba rendezni, elkülöníteni az RPC kéréseket egy átviteli pufferben, a kliens oldalon, majd egy kötegben elküldi azokat a hálózaton a szervernek. A kötegelt üzemmódú RPC a következő funkciókkal rendelkezik, mint például:
javac nem ismerhető fel
- Minimalizálja a kérések elküldésével járó többletköltséget azáltal, hogy a hálózaton keresztül egy kötegben küldi el azokat a szervernek.
- Ez a típusú RPC protokoll csak olyan alkalmazásoknál hatékony, amelyeknek alacsonyabb hívási sebességre van szükségük.
- Megbízható átviteli protokollt igényel.
Mit csinál az RPC?
Amikor az RPC keretrendszert használó programutasításokat végrehajtható programmá fordítják, a lefordított kódban egy csonk szerepel, amely a távoli eljáráskódot képviseli.
A program futtatásakor és az eljáráshívás kibocsátásakor a csonk megkapja a kérést, és továbbítja azt a helyi számítógépen lévő ügyfél-futásidejű programnak. Az ügyfélcsonk első meghívásakor kapcsolatba lép egy névkiszolgálóval, hogy meghatározza a kiszolgáló szállítási címét.
Az ügyfél futásidejű programja tudja, hogyan kell megszólítani a távoli számítógépet és kiszolgálóalkalmazást, és elküldi a hálózaton keresztül a távoli eljárást kérő üzenetet. Hasonlóképpen, a kiszolgáló tartalmaz egy futásidejű programot és csonkot, amely magával a távoli eljárással kommunikál, és a válasz-kérés protokollok ugyanilyen módon kerülnek visszaadásra.
Az RPC jellemzői
Egy operációs rendszerben a távoli eljáráshívás (RPC) a következő funkciókkal rendelkezik, mint például:
- Az RPC elrejti a felhasználó elől az üzenettovábbítási folyamat bonyolultságát.
- Az RPC csak az OSI-modell meghatározott rétegeit használja, például a szállítási réteget.
- Az ügyfelek magasabb szintű nyelvek használatával kommunikálhatnak a szerverrel.
- Az RPC jól működik helyi és távoli környezetekkel egyaránt.
- Az RPC programja egyszerű kóddal van megírva, és könnyen érthető a programozó számára.
- Az operációs rendszer könnyen kezeli az RPC-ben érintett folyamatokat és szálakat.
- Az operációs rendszer elrejti az RPC absztrakcióit a felhasználó elől.
Hogyan működik az RPC?
Távoli eljáráshívás meghívásakor a hívókörnyezet felfüggesztésre kerül, az eljárás paraméterei a hálózaton keresztül átkerülnek abba a környezetbe, ahol az eljárást végre kell hajtani, majd az eljárást ebben a környezetben hajtják végre.
Amikor az eljárás befejeződik, az eredmények visszakerülnek a hívó környezetbe, ahol a végrehajtás úgy folytatódik, mintha egy normál eljáráshívásból térne vissza.
A távoli eljáráshívás (RPC) a következő lépésekben működik egy operációs rendszerben:
1. lépés: Az ügyfél, az ügyfélcsonk és az RPC futási ideje az ügyfélgépen fut.
2. lépés: Az ügyfél a szokásos módon paraméterek átadásával elindít egy kliens csonkfolyamatot. Az eljárás paramétereinek becsomagolása ún rendező . A kliens csonkja az ügyfél saját címterében tárol, és arra is kéri a helyi RPC Runtime-ot, hogy küldjön vissza a kiszolgáló csonkjának.
keményfedeles vs puhakötésű
3. lépés: Ebben a szakaszban a felhasználó normál helyi eljárási hívás útján érheti el az RPC-t. Az RPC Runtime kezeli az üzenetek továbbítását a hálózat között a kliens és a szerver között, és ellátja az újraküldést, a nyugtázást, az útválasztást és a titkosítást is.
4. lépés: A kiszolgálói eljárás befejezése után visszatér a kiszolgáló csonkjához, amely a visszatérési értékeket egy üzenetbe csomagolja (marshall). A kiszolgáló csonkja ezután üzenetet küld vissza a szállítási rétegnek.
5. lépés: Ebben a lépésben a szállítási réteg visszaküldi az eredményüzenetet az ügyfél szállítási rétegének, amely visszaküldi az üzenetet az ügyfél csonkjának.
6. lépés: Ebben a szakaszban a kliens csonk demarshall (kicsomagolja) a visszatérési paramétereket az eredményül kapott csomagban, és a végrehajtási folyamat visszatér a hívóhoz.
A távoli eljáráshívás (RPC) problémái
Egy operációs rendszerben a távoli eljáráshívás vagy az RPC olyan problémákkal szembesült, amelyeket meg kell oldani, például:
1. RPC futási idő
Az RPC futásidejű rendszer olyan rutinok és szolgáltatások könyvtára, amelyek kezelik az RPC mechanizmus alapját képező hálózati kommunikációt. Az RPC hívás során a kliensoldali és a szerveroldali futásidejű rendszerek kódja kezeli az összerendelést, megfelelő protokollon keresztül kommunikációt létesít, hívásadatokat továbbít a kliens és a szerver között, és kezeli a kommunikációs hibákat.
2. Csonk
A csonk feladata, hogy átláthatóságot biztosítson a programozó által írt alkalmazáskód számára.
3. Kötés
Honnan tudja az ügyfél, hogy kit hívjon és hol található a szolgáltatás?
A legrugalmasabb megoldás a dinamikus kötés használata, és a szerver megkeresése futási időben az RPC első elkészítésekor. Az ügyfélcsonk első meghívásakor kapcsolatba lép egy névkiszolgálóval, hogy meghatározza a kiszolgáló szállítási címét. A kötés két részből áll:
4. Az RPC-hez kapcsolódó hívási szemantika
válogatás tuples python
Főleg a következő választásokba sorolható:
Az RPC jellemzői
Íme a távoli eljáráshívás alapvető jellemzői:
- A hívott eljárás egy másik folyamatban van, amely valószínűleg egy másik gépben található.
- A folyamatok nem osztoznak a címterületen.
- A paramétereket csak értékek adják át.
- Az RPC a szerverfolyamat környezetében fut.
- Nem kínál hozzáférést a hívó eljárás környezetéhez.
Az RPC előnyei
Íme néhány előnye az RPC-nek, például:
- Az RPC módszer segíti az ügyfeleket a szerverekkel való kommunikációban a hagyományos eljáráshívások magas szintű nyelveken történő használatával.
- Az RPC metódus a helyi eljáráshívás mintájára készült, de az eljárás nagy valószínűséggel egy másik folyamatban és általában egy másik számítógépen kerül végrehajtásra.
- Az RPC támogatja a folyamat- és szál-orientált modelleket.
- Az RPC rejtettvé teszi a belső üzenettovábbítási mechanizmust a felhasználó elől.
- A kód újraírásához és újrafejlesztéséhez szükséges erőfeszítés minimális.
- Távoli eljáráshívások használhatók az elosztáshoz és a helyi környezethez.
- Számos protokollréteget lekötelez a teljesítmény javítására.
- Az RPC absztrakciót biztosít. Például a hálózati kommunikáció üzenettovábbítási jellege rejtve marad a felhasználó előtt.
- Az RPC lehetővé teszi az alkalmazások használatát olyan elosztott környezetben, amely nem csak a helyi környezetben van.
- Az RPC kóddal az újraírási és újrafejlesztési erőfeszítések minimálisra csökkennek.
- Az RPC által támogatott folyamat- és szál-orientált modellek.
Az RPC hátrányai
Íme néhány hátránya vagy hátránya az RPC használatának, például:
- A távoli eljáráshívás a paramétereket csak értékek és mutatóértékek alapján adja át, ami nem megengedett.
- A távoli eljáráshívási (és visszatérési) idő (azaz az általános költségek) lényegesen alacsonyabb lehet, mint egy helyi eljárásé.
- Ez a mechanizmus nagyon érzékeny a meghibásodásokra, mivel egy kommunikációs rendszert, egy másik gépet és egy másik folyamatot foglal magában.
- Az RPC koncepció többféleképpen is megvalósítható, ami nem szabványos.
- Nem kínál semmilyen rugalmasságot az RPC-ben a hardver architektúrához, mivel az többnyire interakción alapul.
- A folyamat költsége megnő a távoli eljáráshívás miatt.