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.

