Remote Procedure Call (RPC) protokoll az elosztott rendszerben
Mi az az RPC?
Tรกvoli eljรกrรกshรญvรกs (RPC) egy folyamatkรถzi kommunikรกciรณs technika. Az RPC teljes formรกja a Remote Procedure Call. Kliens-szerver alkalmazรกsokhoz hasznรกljรกk. Az RPC-mechanizmusok akkor hasznรกlatosak, amikor egy szรกmรญtรณgรฉpes program egy eljรกrรกst vagy szubrutint egy mรกsik cรญmtรฉrben hajt vรฉgre, ami normรกl eljรกrรกshรญvรกskรฉnt van kรณdolva anรฉlkรผl, hogy a programozรณ kifejezetten kรณdolnรก a tรกvoli interakciรณ rรฉszleteit.
Ez az eljรกrรกshรญvรกs az alacsony szintลฑ szรกllรญtรกsi protokollokat is kezeli, mint pรฉldรกul a User Datagram Protocol, Transmission Control Protocol/Internet Protocol stb. Az รผzenetadatok programok kรถzรถtti รกtvitelรฉre szolgรกl.
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 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 funkciรณi:
- 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.
RPC adรกs
A Broadcast RPC egy kliens kรฉrรฉse, amelyet a hรกlรณzaton sugรกroznak, รฉs minden olyan szerver feldolgozza, amely rendelkezik a kรฉrรฉs feldolgozรกsรกnak mรณdszerรฉvel.
A Broadcast RPC funkciรณi:
- Lehetลvรฉ teszi annak megadรกsรกt, hogy az รผgyfรฉl kรฉrรฉsi รผzenetรฉt el kell kรผldeni.
- 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 sorba rendezni, elkรผlรถnรญteni az RPC kรฉrรฉseket egy รกtviteli pufferben, a kliens oldalon, majd elkรผldi azokat a hรกlรณzaton egy kรถtegben a szervernek.
A kรถtegelt รผzemmรณdรบ RPC funkciรณi:
- Minimรกlisra csรถkkenti a kรฉrรฉsek elkรผldรฉsรฉvel jรกrรณ tรถbbletkรถltsรฉget, mivel azokat a hรกlรณzaton keresztรผl egy kรถtegben kรผldi el a szervernek.
- Ez a fajta RPC protokoll csak azoknรกl az alkalmazรกsoknรกl hatรฉkony, amelyeknek alacsonyabb hรญvรกsi sebessรฉgre van szรผksรฉgรผk.
- 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!

Hogyan mลฑkรถdik az RPC?
Az RPC folyamat sorรกn a kรถvetkezล lรฉpรฉsek zajlanak:
Step 1) A kliens, az รผgyfรฉlcsonk รฉs az RPC futรกsidejลฑ egy pรฉldรกnya az รผgyfรฉlgรฉpen fut le.
Step 2) Az รผgyfรฉl a szokรกsos mรณdon paramรฉterek รกtadรกsรกval elindรญt egy kliens csonkfolyamatot. Az รผgyfรฉl csonkja az รผgyfรฉl sajรกt cรญmterรฉben tรกrolรณdik. Arra is kรฉri a helyi RPC Runtime-ot, hogy kรผldjรถn vissza a kiszolgรกlรณ csonkjรกnak.
Step 3) Ebben a szakaszban az RPC-t a felhasznรกlรณ normรกl helyi eljรกrรกsi Cal. 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. Elvรฉgzi az รบjrakรผldรฉst, a nyugtรกzรกst, az รบtvรกlasztรกst รฉs a titkosรญtรกst is.
Step 4) 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.
Step 5) 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.
Step 6) Ebben a szakaszban az รผgyfรฉl csonkja 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.
Az RPC jellemzลi
รme az RPC 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 osztanak meg cรญmteret.
- 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 jellemzลi
รme az RPC fontos tulajdonsรกgai:
- Egyszerลฑ hรญvรกs szintaxis
- Ismert szemantikรกt kรญnรกl
- Biztosรญtson egy jรณl definiรกlt felรผletet
- Kรฉpes kommunikรกlni az azonos vagy kรผlรถnbรถzล gรฉpeken lรฉvล folyamatok kรถzรถtt
Az RPC elลnyei
รme az RPC elลnyei/elลnyei:
- 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 a hรญvott 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.
- A tรกvoli eljรกrรกshรญvรกsok felhasznรกlhatรณk elosztott รฉs helyi kรถrnyezet cรฉljรกra.
- 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รฉs minimรกlisra csรถkken.
- Folyamatorientรกlt รฉs szรกl-orientรกlt modellek tรกmogatรกsa az RPC รกltal.
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 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 tรถbbnyire interakciรณ alapรบ.
- A folyamat kรถltsรฉge megnล a tรกvoli eljรกrรกshรญvรกs miatt.
รsszegzรฉskรฉnt
- A tรกvoli eljรกrรกshรญvรกs egy folyamatok kรถzรถtti kommunikรกciรณ technika.
- Az RPC hรกrom tรญpusa: 1) visszahรญvรกsos RPC 2) Broadcast RPC รฉs 3) kรถtegelt mรณdรบ RPC.
- Az RPC architektรบra a program รถt รถsszetevลjรฉbลl รกll: 1) Client 2) Client Stub 3) RPC Runtime 4) Server Stub รฉs 5) Server
- Az RPC mรณdszerben a folyamatok nem osztanak meg cรญmteret
- Az RPC egyszerลฑ hรญvรกsszintaxist รฉs ismert szemantikรกt kรญnรกl
- 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 mรณdszer legnagyobb hรกtrรกnya, hogy nagyon รฉrzรฉkeny a meghibรกsodรกsokra, mivel kommunikรกciรณs rendszert, egy mรกsik gรฉpet รฉs egy mรกsik folyamatot foglal magรกban.
