Remote Procedure Call (RPC) protokoll az elosztott rendszerben
⚡ Okos összefoglaló
A távoli eljáráshívás (RPC) egy folyamatok közötti kommunikációs protokoll, amely lehetővé teszi egy program számára egy másik címtartományban vagy gépen történő eljárás végrehajtását, a hálózati részleteket egy szokásos helyi függvényhívás mögé rejtve elosztott kliens-szerver rendszerekben.
Mi az az RPC?
Távoli eljáráshívás (RPC) egy folyamatok közötti kommunikáció kliens-szerver alkalmazásokhoz használt technika. Az RPC teljes formája a Remote Procedure Call (Távoli eljáráshívás). Az RPC mechanizmusokat akkor használják, amikor egy számítógépes program egy eljárást vagy alprogramot egy másik címtartományban hajt végre, normál eljáráshívásként kódolva anélkül, hogy a programozó explicit módon kódolná a távoli interakció részleteit.
Ez az eljáráshívás alacsony szintű átviteli protokollokat is kezel, mint például az UDP és a TCP/IP, az üzenetadatok programok közötti átviteléhez.
Az RPC típusai
Az RPC három típusa:
- Visszahívás RPC
- RPC adás
- Batch-módú RPC
Visszahívás RPC
Ez a fajta RPC peer-to-peer (P2P) paradigmát tesz lehetővé a részt vevő folyamatok között. Segíti a folyamatot abban, hogy kliensként és szerverként is működjön.
A visszahívási RPC funkciói:
- Távolról feldolgozott, interaktív alkalmazásproblémákat kezel.
- Megadja a szervernek a kliens azonosítóját.
- A visszahívás várakozásra kényszeríti a kliens folyamatot.
- Kezeli a visszahívási holtpontokat.
- Ez elősegíti a peer-to-peer paradigma kialakulását a részt vevő folyamatok között.
RPC adás
A szórt RPC egy klienskérés, amelyet a hálózaton szórnak, és amelyet minden olyan szerver feldolgoz, amely rendelkezik a kérés feldolgozásához szükséges metódussal.
A Broadcast RPC funkciói:
- Lehetővé teszi annak megadását, hogy az ügyfél kérésüzenetét sugározni kell.
- Deklarálhat szórási portokat.
- Segít csökkenteni a fizikai hálózat terhelését.
Batch-módú RPC
A kötegelt módú RPC segít különálló RPC-kérelmek sorba állításában egy átviteli pufferben a kliens oldalon, majd egy kötegben elküldi azokat a hálózaton keresztül a szervernek.
A kötegelt módú RPC funkciói:
- Minimalizálja a kérésküldéssel járó többletterhelést, mivel a kéréseket egy kötegben küldi el a hálózaton keresztül a szervernek.
- Ez a fajta RPC protokoll csak olyan alkalmazásoknál hatékony, amelyek alacsonyabb hívási sebességet igényelnek.
- Megbízható átviteli protokollt igényel.
RPC Architectúra
Az RPC architektúra a program öt összetevőjéből áll:
- Vásárló
- Client Stub
- RPC futási idő
- Szerver csonk
- szerverünkhöz!
RPC Architectúra
Hogyan működik az RPC?
Az RPC folyamat során a következő lépések történnek:
Step 1) Az ügyfél, az ügyfél csonkja és az RPC futásidejű egy példánya a kliensgépen fut.
Step 2) Az ügyfél a szokásos módon paraméterek átadásával indítja el az ügyfélcsonk folyamatát. Az ügyfélcsonk az ügyfél saját címtartományában tárolódik. Emellett megkéri a helyi RPC futásidejű környezetet, hogy küldje el a kérést a kiszolgálócsonknak.
Step 3) Ebben a szakaszban a felhasználó egy szokásos helyi eljáráshívással fér hozzá az RPC-hez. Az RPC futásidejű környezet kezeli az üzenetek továbbítását a kliens és a szerver között a hálózaton keresztül. Emellett elvégzi az újraküldést, a nyugtázást, az útválasztást és a titkosítást is.
Step 4) A szerver eljárásának befejezése után a végrehajtás visszatér a szerver csonkjához, amely a visszatérési értékeket egy üzenetbe csomagolja (rendezi). A szerver csonk ezután visszaküldi az üzenetet a szállítási rétegnek.
Step 5) Ebben a lépésben a szállítási réteg visszaküldi az eredményüzenetet a kliens szállítási rétegének, amely visszaküldi az üzenetet a kliens csonknak.
Step 6) Ebben a szakaszban a kliens stub kicsomagolja a visszatérési paramétereket a kapott csomagból, és a végrehajtás visszatér a hívóhoz.
Az RPC jellemzői
Íme az RPC alapvető jellemzői:
- A meghívott eljárás egy másik folyamatban van, amely valószínűleg egy másik gépen található.
- A folyamatok nem osztanak meg címteret.
- A paramétereket csak értékek adják át.
- Az RPC a szerverfolyamat környezetében fut.
- Nem biztosít hozzáférést a hívó eljárás környezetéhez.
Az RPC jellemzői
Íme az RPC fontos tulajdonságai:
- Egyszerű hívási szintaxis.
- Ismert szemantikát kínál.
- Jól definiált felületet biztosít.
- Képes kommunikálni az ugyanazon vagy különböző gépeken futó folyamatok között.
Az RPC előnyei
Íme az RPC előnyei/kedvező tulajdonságai:
- Az RPC segíti a klienseket a szerverekkel való kommunikációban a magas szintű nyelveken használt eljáráshívások hagyományos használatával.
- Az RPC a helyi eljáráshívás mintájára épül, de a meghívott eljárás valószínűleg egy másik folyamatban és általában egy másik számítógépen fut.
- Az RPC támogatja a folyamatorientált és a szálorientált modelleket.
- Az RPC elrejti a belső üzenetküldési mechanizmust a felhasználó elől.
- Számos protokollréteget lekötelez a teljesítmény javítására.
- Az RPC hasizmokat fejleszttracpéldául a hálózati kommunikáció üzenetküldő jellege rejtve marad a felhasználó elől.
- Az RPC mind elosztott, mind helyi környezetben használható.
- A kód újraírásához és újrafejlesztéséhez szükséges erőfeszítés minimális.
Az RPC hátrányai
Íme az RPC használatának hátrányai/hátrányai:
- A távoli eljáráshívás csak értékekkel adja át a paramétereket; a mutató (referencia) értékek nem engedélyezettek.
- A távoli eljáráshívás (és visszatérési) ideje – vagyis a többletterhelés – jelentősen magasabb, mint egy helyi eljárásé.
- Ez a mechanizmus rendkívül ki van téve a hibáknak, mivel magában foglal egy kommunikációs rendszert, egy másik gépet és egy másik folyamatot.
- Az RPC koncepció többféleképpen is megvalósítható, így nincs egységes szabvány.
- Nem kínál rugalmasságot a hardverarchitektúra tekintetében, mivel többnyire interakció-alapú.
- A folyamat költsége a távoli eljáráshívás miatt növekszik.


