logo

Vzdálené volání procedur (RPC) v operačním systému

Vzdálené volání procedur (RPC) je výkonná technika pro konstrukci distribuované aplikace založené na klient-server . Je založen na rozšíření konvenčního místního volání procedur tak, aby volaná procedura nemusí existovat ve stejném adresním prostoru jako volající procedura . Tyto dva procesy mohou být na stejném systému nebo mohou být na různých systémech se sítí, která je spojuje.

Při vzdáleném volání procedury:



1. Volající prostředí je pozastaveno, parametry procedury jsou přeneseny přes síť do prostředí, kde se má procedura provést, a tam je procedura vykonána.

jaký je rozdíl mezi megabytem a gigabajtem

2. Když procedura skončí a vytvoří své výsledky, její výsledky se přenesou zpět do volajícího prostředí, kde se provádění obnoví, jako by se vracelo z běžného volání procedury.



POZNÁMKA: RPC je zvláště vhodný pro klient-server (např. dotaz-odpověď) interakce, ve které tok kontroly střídavě mezi volajícím a volaným . Koncepčně se klient a server nespouštějí současně. Místo toho vlákno provádění přeskakuje z volajícího na volaného a pak zase zpět.

Práce RPC



myši a typy myší

Během RPC probíhají následující kroky:

  1. Klient vyvolá a postup klientského útržku , předávání parametrů obvyklým způsobem. Klientský útržek se nachází ve vlastním adresním prostoru klienta.
  2. Útržek klienta maršálové (balení) parametry do zprávy. Zařazování zahrnuje převod reprezentace parametrů do standardního formátu a zkopírování každého parametru do zprávy.
  3. Klientský stub předá zprávu transportní vrstvě, která ji odešle na vzdálený server.
  4. Na serveru transportní vrstva předá zprávu útržku serveru, který demarshalls (rozbalit) parametry a volá požadovanou rutinu serveru pomocí mechanismu volání pravidelných procedur.
  5. Po dokončení procedury serveru se vrátí na server se zakázaným inzerováním (např. přes návrat volání normální procedury) , který zařazuje vrácené hodnoty do zprávy. Server pak předá zprávu transportní vrstvě.
  6. Transportní vrstva odešle zprávu o výsledku zpět do transportní vrstvy klienta, která zprávu předá zpět klientovi se zakázaným inzerováním.
  7. Klient se zakázaným inzerováním demarshalluje návratové parametry a provedení se vrátí volajícímu.

Klíčové úvahy pro navrhování a implementaci RPC systémů jsou:

    Zabezpečení: Vzhledem k tomu, že RPC zahrnuje komunikaci přes síť, bezpečnost je hlavním problémem. Opatření jako autentizace, šifrování a autorizace musí být implementována, aby se zabránilo neoprávněnému přístupu a chránila citlivá data. Škálovatelnost: S rostoucím počtem klientů a serverů nesmí dojít ke snížení výkonu systému RPC. Techniky vyvažování zátěže a efektivní využití zdrojů jsou důležité pro škálovatelnost. Odolnost proti chybám: Systém RPC by měl být odolný vůči selháním sítě, zhroucení serveru a dalším neočekávaným událostem. Opatření, jako je redundance, převzetí služeb při selhání a plynulá degradace, mohou pomoci zajistit odolnost proti chybám. Standardizace: K dispozici je několik rámců a protokolů RPC a je důležité vybrat si jeden standardizovaný a široce přijímaný, aby byla zajištěna interoperabilita a kompatibilita napříč různými platformami a programovacími jazyky. Ladění výkonu: Je důležité vyladit systém RPC pro optimální výkon. To může zahrnovat optimalizaci síťového protokolu, minimalizaci dat přenášených po síti a snížení latence a režie spojené s voláními RPC.

PROBLÉMY RPC :
Problémy, které je třeba řešit:

1. RPC Runtime:
RPC run-time systém je knihovna rutin a sada služeb, které zpracovávají síťovou komunikaci, která je základem mechanismu RPC. V průběhu volání RPC zpracovává kód run-time systémů na straně klienta a serveru vazby, navazování komunikace přes vhodný protokol, předávání dat volání mezi klientem a serverem a zpracovávání komunikačních chyb.

2. Útržek:
Funkcí pahýlu je zajistit transparentnost kódu aplikace napsaného programátorem .

kolik milionů je v miliardě
    Na straně klienta stub zpracovává rozhraní mezi voláním místní procedury klienta a run-time systémem, zařazuje a rozřazuje data, vyvolává běhový protokol RPC a na požádání provádí některé kroky vazby. Na straně serveru stub poskytuje podobné rozhraní mezi run-time systémem a procedurami místního správce, které spouští server.

3. Závaznost: Jak klient ví, komu má zavolat a kde se služba nachází?
Nejflexibilnějším řešením je použití dynamické vazby a nalezení serveru za běhu při prvním vytvoření RPC. Při prvním vyvolání se zakázaným inzerováním klienta kontaktuje jmenný server, aby určil transportní adresu, na které se server nachází.

Vazba se skládá ze dvou částí:

  • My:
  • lokalizace:
    Server, který nabízí službu, exportuje rozhraní. Export rozhraní jej zaregistruje v systému, aby jej klienti mohli používat. Klient musí před zahájením komunikace importovat (exportované) rozhraní.

4. Sémantika volání spojená s RPC:
Dělí se hlavně do následujících možností -

    Znovu zkusit zprávu s požadavkem –
    Zda se má opakovat odeslání zprávy s požadavkem, když server selhal nebo příjemce zprávu neobdržel. Duplicitní filtrování –
    Odstraňte duplicitní požadavky serveru. Opakovaný přenos výsledků –
    Chcete-li znovu odeslat ztracené zprávy bez opětovného provádění operací na straně serveru.

VÝHODY:

  1. RPC poskytuje ABSTRAKCE tj. povaha síťové komunikace předávání zpráv je uživateli skryta.
  2. RPC často vynechává mnoho vrstev protokolu, aby zlepšil výkon. I malé zlepšení výkonu je důležité, protože program může často vyvolávat RPC.
  3. RPC umožňuje použití aplikací v distribuovaném prostředí, nejen v lokálním prostředí.
  4. Díky RPC kódu je úsilí o přepisování / opětovném vývoji minimalizováno.
  5. Procesně orientované a vláknově orientované modely podporované RPC.

Reference: