RPC

A HupWiki-ből...

Remote Procedure Call

Távoli eljáráshívás. A programozás egyik szent grálja: tüntessük el a különbséget a helyi gépen és a távoli gépeken futó programok között, használhassuk a távoli gépeken futó szolgáltatásokat is úgy, mintha egy helyi szubrutint hívnánk meg.

Jobbára két tükörszimmetrikus félből áll: egy adatstruktúrákat bájtfolyamba kiíró (marshalling) és az ilyen bájtfolyamokat adatstruktúrákká beolvasó (unmarshalling) részből. Ez nem mindig egyszerű feladat, függ a kívánt kifejezőerőtől is: milyen elemi adattípusokat akarunk kezelni, összetett adatszerkezetekkel (struktúrákkal) mit kezdünk, mutatókat/referenciákat követünk-e, ezekből tetszőleges gráfokat át tudunk-e vinni, jobb esetben azok egyediségi viszonyait változatlanul hagyva.

Az első, XDR-nek (External Data Representation) hívott ilyen protokollt és annak implementációt C nyelvben a Sun fejlesztette ki és az NFS protokoll, valamint az rsh, rlogin, rdate, stb parancsok alapját képezte. Mára a legtöbb platformon létezik valamilyen RPC implementáció. A legújabb ilyen irányú technológia az XML alapú szabványos RPC hívásokat lehetővé tevő SOAP protokoll, mely platformfüggetlen távoli eljáráshívást tesz lehetővé a webszolgáltatás koncepciónak megfelelően.

Az RPC jobbára tisztán adatátvitelt jelent, ennek egy jobb képességű változata az RMI: amikor kódot is át tudunk vinni.