logo

Vzdialené volanie procedúr (RPC) v operačnom systéme

Vzdialené volanie procedúry (RPC) je výkonná technika konštrukcie distribuované aplikácie na báze klient-server . Je založená na rozšírení konvenčného volania miestnej procedúry tak, aby volaná procedúra nemusí existovať v rovnakom adresnom priestore ako volajúca procedúra . Tieto dva procesy môžu byť na rovnakom systéme alebo môžu byť na rôznych systémoch so sieťou, ktorá ich spája.

Pri volaní procedúry na diaľku:



1. Prostredie volania je pozastavené, parametre procedúry sa prenesú cez sieť do prostredia, kde sa má procedúra vykonať, a tam sa procedúra vykoná.

konvertovať reťazec na jsonobject java

2. Keď procedúra skončí a vygeneruje svoje výsledky, jej výsledky sa prenesú späť do prostredia volania, kde sa vykonávanie obnoví, ako keby sa vracalo z bežného volania procedúry.



POZNÁMKA: RPC je obzvlášť vhodný pre klient-server (napr. dotaz-odpoveď) interakcia, v ktorej tok kontroly striedavo medzi volajúcim a volaným . Koncepčne sa klient a server nevykonávajú súčasne. Namiesto toho vlákno vykonávania preskočí z volajúceho na volaného a potom späť.

Fungovanie RPC



Počas RPC prebiehajú tieto kroky:

  1. Klient vyvolá a postup klientskeho útržku , odovzdávanie parametrov obvyklým spôsobom. Klientsky útržok sa nachádza vo vlastnom adresnom priestore klienta.
  2. Útržok klienta marshalls (balíček) parametre do správy. Marshalling zahŕňa konverziu reprezentácie parametrov do štandardného formátu a skopírovanie každého parametra do správy.
  3. Klientsky stub odošle správu transportnej vrstve, ktorá ju odošle na vzdialený server.
  4. Na serveri transportná vrstva odovzdá správu stub servera, ktorý demarshalls (rozbaliť) parametre a volá požadovanú rutinu servera pomocou mechanizmu volania pravidelných procedúr.
  5. Keď sa procedúra servera dokončí, vráti sa na stub servera (napr. prostredníctvom návratu volania normálnej procedúry) , ktorý zaradí vrátené hodnoty do správy. Stub servera potom odovzdá správu transportnej vrstve.
  6. Transportná vrstva odošle správu o výsledku späť klientskej transportnej vrstve, ktorá odovzdá správu späť klientovi.
  7. Klientsky stub demarshalluje návratové parametre a vykonanie sa vráti k volajúcemu.

Kľúčové úvahy pri navrhovaní a implementácii systémov RPC sú:

    Bezpečnosť: Keďže RPC zahŕňa komunikáciu cez sieť, bezpečnosť je hlavným problémom. Aby sa zabránilo neoprávnenému prístupu a chránili sa citlivé údaje, musia sa zaviesť opatrenia ako autentifikácia, šifrovanie a autorizácia. Škálovateľnosť: So zvyšujúcim sa počtom klientov a serverov sa nesmie znižovať výkon systému RPC. Techniky vyvažovania záťaže a efektívne využitie zdrojov sú dôležité pre škálovateľnosť. Odolnosť voči chybám: Systém RPC by mal byť odolný voči zlyhaniam siete, zlyhaniam servera a iným neočakávaným udalostiam. Opatrenia ako redundancia, núdzové prepnutie a elegantná degradácia môžu pomôcť zabezpečiť odolnosť voči chybám. Štandardizácia: K dispozícii je niekoľko rámcov a protokolov RPC a je dôležité vybrať si štandardizovaný a široko akceptovaný, aby sa zabezpečila interoperabilita a kompatibilita medzi rôznymi platformami a programovacími jazykmi. Ladenie výkonu: Je dôležité doladiť systém RPC pre optimálny výkon. To môže zahŕňať optimalizáciu sieťového protokolu, minimalizáciu dát prenášaných cez sieť a zníženie latencie a réžie spojenej s RPC hovormi.

PROBLÉMY RPC :
Problémy, ktoré treba riešiť:

c pole reťazcov programu

1. RPC Runtime:
RPC run-time systém je knižnica rutín a súbor služieb, ktoré obsluhujú sieťovú komunikáciu, ktorá je základom mechanizmu RPC. V priebehu volania RPC spracovávajú kód run-time systémov na strane klienta a servera viazanie, nadviazanie komunikácie cez vhodný protokol, odovzdávanie údajov o hovoroch medzi klientom a serverom a spracovávanie komunikačných chýb.

2. Stup:
Funkciou stub je poskytujú transparentnosť kódu aplikácie napísanom programátorom .

    Na strane klienta stub spracováva rozhranie medzi volaním lokálnej procedúry klienta a run-time systémom, zoraďuje a rozraďuje údaje, vyvoláva run-time protokol RPC a na požiadanie vykonáva niektoré kroky viazania. Na strane servera stub poskytuje podobné rozhranie medzi run-time systémom a procedúrami lokálneho manažéra, ktoré vykonáva server.

3. Viazanosť: Ako klient vie, komu má zavolať a kde sa služba nachádza?
Najflexibilnejším riešením je použiť dynamickú väzbu a nájsť server v čase spustenia pri prvom vytvorení RPC. Pri prvom vyvolaní klientskeho stub kontaktuje názvový server, aby určil transportnú adresu, na ktorej sa server nachádza.

Väzba sa skladá z dvoch častí:

hostiteľský linux
  • my:
  • lokalizácia:
    Server, ktorý ponúka službu, exportuje rozhranie. Exportovanie rozhrania ho zaregistruje v systéme, aby ho klienti mohli používať. Klient musí pred začatím komunikácie importovať (exportované) rozhranie.

4. Sémantika volania spojená s RPC :
Rozdeľuje sa hlavne do nasledujúcich možností:

    Znova skúsiť správu so žiadosťou –
    Či sa má zopakovať odoslanie správy so žiadosťou, keď server zlyhá alebo príjemca správu nedostal. Duplicitné filtrovanie -
    Odstráňte duplicitné požiadavky servera. Opakovaný prenos výsledkov –
    Na opätovné odoslanie stratených správ bez opätovného vykonania operácií na strane servera.

VÝHODY:

  1. RPC poskytuje ABSTRAKCIA t.j. povaha sieťovej komunikácie na odovzdávanie správ je pred používateľom skrytá.
  2. RPC často vynecháva mnohé vrstvy protokolu, aby sa zlepšil výkon. Aj malé zlepšenie výkonu je dôležité, pretože program môže často vyvolávať RPC.
  3. RPC umožňuje použitie aplikácií v distribuovanom prostredí, nielen v lokálnom prostredí.
  4. S RPC kódom je námaha na prepisovanie/opätovný vývoj minimalizovaná.
  5. Procesne orientované a vláknovo orientované modely podporované RPC.

Referencie: