I fjärrprocedursamtal (RPC) är klient- och serverstubbar avgörande kodbitar som fungerar som mellanhänder, vilket möjliggör kommunikation mellan en klientapplikation och en serverapplikation som finns på olika maskiner. De abstraherar komplexiteten i nätverkskommunikation, vilket gör det möjligt för programmerare att skriva kod som om de ringde lokala procedursamtal.
klientstub:
* Plats: Finns på klientmaskinen.
* Funktion: Fungerar som en proxy för fjärrförfarandet. När klienten kallar en fjärrprocedur kallar den faktiskt en funktion i klientstubben.
* Ansvar:
* Marshalling: Paketerar procedurens argument i ett format som är lämpligt för överföring över nätverket (t.ex. serialisering av datastrukturer).
* Nätverkskommunikation: Skickar den marskallade data till servern.
* unmarshalling: Tar emot svaret från servern och packar upp den (obehörig) till ett användbart format för klienten.
* Felhantering: Hanterar nätverksfel och andra undantag som kan uppstå under kommunikation.
* Presentation: Presenterar resultatet av fjärrprocedursamtalet till klientansökan som om det var ett lokalt samtal.
serverstub:
* Plats: Finns på servermaskinen.
* Funktion: Fungerar som en proxy för serverns faktiska implementering av fjärrproceduren. Den tar emot förfrågningar från klientstubben och interagerar med servern.
* Ansvar:
* unmarshalling: Tar emot de myrda uppgifterna från klientstubben och packar upp den (obehaglig) till ett format som är lämpligt för serverns procedur.
* Procedure Invocation: Ringer den faktiska implementeringen av serversidan av fjärrproceduren med de ommarshallade argumenten.
* Marshalling: Paketerar resultatet av proceduren (och eventuell felinformation) i ett format som är lämpligt för överföring tillbaka till klienten.
* Nätverkskommunikation: Skickar det myrda svaret tillbaka till klientstubben.
Analogi:
Tänk på en klientstubb och en serverstubb som två telefonoperatörer. Klienten (du) pratar med klientstubben (operatör 1), som sedan vidarebefordrar meddelandet till serverstubben (operatör 2) på en annan telefonlinje. Operatör 2 interagerar sedan med servern (personen du ringer) och vidarebefordrar svaret tillbaka via operatören 1 till dig. Du behöver inte oroa dig för detaljerna om hur telefonlinjerna fungerar; Operatörerna hanterar allt för dig.
i huvudsak: Klient- och serverstubbar hanterar detaljer om nätverkskommunikation, serialisering av datadata och felhantering, vilket gör att utvecklare kan fokusera på logiken i deras applikationer snarare än komplikationerna med distribuerad datoranvändning. De tillhandahåller ett rent och abstrakt gränssnitt till fjärrprocedursamtal.