Protocolul RPC (Remote Procedure Call) în sistemul distribuit
Ce este RPC?
Apel de procedură la distanță (RPC) este o tehnică de comunicare între procese. Forma completă a RPC este Remote Procedure Call. Este folosit pentru aplicații client-server. Mecanismele RPC sunt utilizate atunci când un program de calculator determină executarea unei proceduri sau a unei subrutine într-un spațiu de adrese diferit, care este codificat ca un apel de procedură normală, fără ca programatorul să codifice în mod specific detaliile pentru interacțiunea de la distanță.
Acest apel de procedură gestionează, de asemenea, protocolul de transport de nivel scăzut, cum ar fi User Datagram Protocol, Transmission Protocol de control/Protocol de Internet etc. Este folosit pentru transportul datelor mesajului între programe.
Tipuri de RPC
Trei tipuri de RPC sunt:
- RPC de apel invers
- Difuzați RPC
- RPC în modul lot
RPC de apel invers
Acest tip de RPC permite o paradigmă P2P între procesele participante. Ajută un proces să fie atât servicii client, cât și servicii server.
Funcțiile RPC de apel invers:
- Probleme de aplicații interactive procesate de la distanță
- Oferă server cu mâner pentru clienți
- Callback face ca procesul clientului să aștepte
- Gestionați blocajele de apel invers
- Facilitează o paradigmă peer-to-Peer între procesele participante.
Difuzați RPC
Broadcast RPC este o cerere a clientului, care este difuzată în rețea, procesată de toate serverele care au metoda de procesare a cererii respective.
Funcțiile Broadcast RPC:
- Vă permite să specificați că mesajul de solicitare al clientului trebuie difuzat.
- Puteți declara porturi de difuzare.
- Ajută la reducerea sarcinii rețelei fizice
RPC în modul lot
RPC în modul lot ajută la coadă, cererile RPC separate, într-un buffer de transmisie, pe partea clientului, apoi le trimite într-o rețea într-un lot către server.
Funcțiile RPC în modul lot:
- Minimizează cheltuielile generale implicate în trimiterea unei cereri, deoarece le trimite prin rețea într-un singur lot către server.
- Acest tip de protocol RPC este eficient doar pentru aplicația care necesită rate de apel mai mici.
- Are nevoie de un protocol de transmisie fiabil.
RPC Architectură
Arhitectura RPC are în principal cinci componente ale programului:
- Client
- Stub client
- RPC Runtime
- Server Stub
- server de

Cum funcționează RPC?
Următorii pași au loc în timpul procesului RPC:
Pas 1) Clientul, stub-ul clientului și o instanță a timpului de rulare RPC se execută pe mașina client.
Pas 2) Un client începe un proces stub de client prin transmiterea parametrilor în mod obișnuit. Stub-ul clientului se stochează în spațiul de adrese propriu al clientului. De asemenea, solicită RPC Runtime local să trimită înapoi la server stub.
Pas 3) În această etapă, RPC accesat de utilizator prin efectuarea obișnuită de Cal Procedural Local. RPC Runtime gestionează transmiterea mesajelor între rețea prin client și server. De asemenea, îndeplinește funcția de retransmisie, confirmare, rutare și criptare.
Pas 4) După finalizarea procedurii de server, se întoarce la serverul stub, care împachetează (marshall) valorile returnate într-un mesaj. Stub-ul serverului trimite apoi un mesaj înapoi la stratul de transport.
Pas 5) În acest pas, stratul de transport trimite înapoi mesajul rezultat către stratul de transport al clientului, care returnează un mesaj către stub-ul clientului.
Pas 6) În această etapă, stub-ul clientului demarșează (despachetează) parametrii returnați, în pachetul rezultat, iar procesul de execuție revine apelantului.
Caracteristicile RPC
Iată care sunt caracteristicile esențiale ale RPC:
- Procedura apelată se află într-un alt proces, care este probabil să locuiască într-o altă mașină.
- Procesele nu împart spațiul de adrese.
- Parametrii sunt transmisi numai prin valori.
- RPC se execută în mediul procesului serverului.
- Nu oferă acces la mediul procedurii de apelare.
Caracteristicile RPC
Iată care sunt caracteristicile importante ale RPC:
- Sintaxă simplă de apel
- Oferă o semantică cunoscută
- Oferiți o interfață bine definită
- Poate comunica între procese pe aceleași mașini sau pe diferite mașini
Avantajele RPC
Iată avantajele/beneficiile RPC:
- Metoda RPC ajută clienții să comunice cu serverele prin utilizarea convențională a apelurilor de procedură în limbaje de nivel înalt.
- Metoda RPC este modelată pe apelul procedurii locale, dar procedura apelată este cel mai probabil să fie executată într-un proces diferit și, de obicei, pe un computer diferit.
- RPC acceptă modele orientate pe proces și pe fire.
- RPC face ca mecanismul intern de transmitere a mesajelor să fie ascuns utilizatorului.
- Efortul necesar pentru a rescrie și re-dezvolta codul este minim.
- Apelurile de procedură de la distanță pot fi utilizate în scopul distribuției și mediului local.
- Angajează multe dintre straturile de protocol pentru a îmbunătăți performanța.
- RPC oferă abstractizare. De exemplu, natura de transmitere a mesajelor a comunicației în rețea rămâne ascunsă utilizatorului.
- RPC permite utilizarea aplicațiilor într-un mediu distribuit care nu este doar în mediul local.
- Cu codul RPC, efortul de rescriere și re-dezvoltare este minimizat.
- Suport de RPC pentru modele orientate pe proces și orientate pe fire.
Dezavantajele RPC
Iată care sunt dezavantajele/dezavantajele utilizării RPC:
- Apelul de procedură la distanță transmite parametrii numai după valori și valori de pointer, ceea ce nu este permis.
- Timpul de apelare (și returnare) a procedurii de la distanță (adică, cheltuielile generale) poate fi semnificativ mai mic decât cel pentru o procedură locală.
- Acest mecanism este foarte vulnerabil la eșec, deoarece implică un sistem de comunicații, o altă mașină și un alt proces.
- Conceptul RPC poate fi implementat în diferite moduri, ceea ce nu este standard.
- Nu oferă nicio flexibilitate în RPC pentru arhitectura hardware, deoarece se bazează în mare parte pe interacțiune.
- Costul procesului este crescut din cauza unui apel de procedură de la distanță.
Rezumat
- Un apel de procedură de la distanță este un comunicarea intraprocesuala tehnică.
- Trei tipuri de RPC sunt 1) RPC de apel invers 2) RPC de difuzare și 3) RPC în mod lot
- Arhitectura RPC are în principal cinci componente ale programului: 1) Client 2) Client Stub 3) RPC Runtime 4) Server Stub și 5) Server
- În metoda RPC, procesele nu împart spațiul de adrese
- RPC oferă o sintaxă simplă a apelurilor și o semantică cunoscută
- Metoda RPC ajută clienții să comunice cu serverele prin utilizarea convențională a apelurilor de procedură în limbaje de nivel înalt.
- Cel mai mare dezavantaj al metodei RPC este că este foarte vulnerabilă la eșec, deoarece implică un sistem de comunicații, o altă mașină și un alt proces.