Fjärrprocedursamtal (RpC) är ett användbart paradigm för att tillhandahålla kommunikation över ett nätverk mellan program skrivna på ett högnivåspråk. I detta dokument beskrivs ett paket som är skrivet som en del av Cedar-projektet och som tillhandahåller en anropsenhet för fjärrprocedurer. I tidningen beskrivs de alternativ som en formgivare av ett sådant paket står inför och de beslut vi fattade. Vi beskriver den övergripande strukturen för vår RPC-mekanism, våra anläggningar för bindande RPC-klienter, transportnivåkommunikationsprotokollet och vissa prestandamätningar. Vi inkluderar beskrivningar av vissa optimeringar som vi använde för att uppnå hög prestanda och för att minimera belastningen på servermaskiner som har många kunder. Vårt främsta mål med att bygga ett RPC-paket var att underlätta byggandet av distribuerade system. Tidigare protokoll var tillräckligt svåra att använda att endast medlemmar i en utvald grupp av kommunikationsexperter var villiga att genomföra byggandet av distribuerade system. Vi hoppades kunna övervinna detta genom att tillhandahålla ett kommunikationsparadigm så nära de välbekanta faciliteterna i våra språk på hög nivå som möjligt. För att uppnå detta mål koncentrerade vi oss på att göra fjärrsamtal effektiva och på att semantiken för fjärrsamtal så nära samtalen som möjligt. För att använda paketet, en programmerare designar en gränssnittsmodul (precis som han skulle för en enda maskin program), sedan använder en översättare som heter Lupine för att producera stub programmoduler som ansvarar för att omvandla lokala samtal till samtal på ett paket som tillhandahåller nod-to-node pakettransport. Ett program som vill ringa ett fjärrsamtal gör bara en lokal järnväg till lämplig stubbmodul. Stubmodulen gör att RPC-runtime-systemet transporterar lämpliga paket Tillstånd att utan avgift kopiera hela eller delar av detta material beviljas under förutsättning att kopiorna inte görs eller distribueras för direkt kommersiell fördel, ACM copyright-meddelandet och titeln på publikationen och dess datum visas, och meddelande ges om att kopiering sker med tillstånd av Föreningen för datormaskiner. För att kopiera på annat sätt, eller för att återpublicera, krävs en avgift och/eller ett särskilt tillstånd. © 1983 ACM 0-89791-115-6/83/100/0003 $00.75 till motsvarande stubmodul på destinationsmaskinen, där paketen packas upp och ett lokalt samtal görs till programmerarens modul som genomför det önskade förfarandet. Vi tillhandahåller hjälpmedel för att binda ihop delarna av en distribuerad beräkning vid drifttidpunkten. Dessa anläggningar använder Grapevine distribuerade databasen för att lokalisera lämpliga noder på vårt internet, sedan göra en RPC samtal till lämplig nod för att få den bindande information. Bindningen utförs på nivån för en gränssnittsmodul. Vårt paket transportprotokoll fokuserar på två tekniker för att uppnå effektivitet. För det första är vi noga med att minimera antalet paket som skickas för enkla samtal. De enklaste samtalen tar bara ett paket i varje riktning. För det andra utformade vi vår förbindelsehantering för att se till att anslutningsetablering och nedmontering är billiga, och att underhåll av ett stort antal anslutningar inte medför en onödig belastning på servernoder. När en anslutning är tomgång, det enda tillstånd som underhålls av en uppringare är den bindande informationen och ett maskinomfattande sekvensnummer; det tillstånd som upprätthålls av en uppringare är bara identiteten och sista sekvensnumret för uppringaren. Dessutom kan uppringaren (som vi förväntar oss att vara typiskt en servermaskin som delas mellan många användare) efter ett lämpligt intervall kassera tillståndets information om en anslutning. Paketet genomförs fullt ut och vi befinner oss i ett tidigt skede när det gäller att skaffa oss erfarenhet av dess användning. Papperet innehåller vissa mätningar av systemets prestanda i testfall. Vi anser att de delar av vårt RPC-paket som vi diskuterar är av allmänt intresse på flera sätt. De utgör en särskild punkt i RPC:s designspektrum. Vi anser att vi har uppnått mycket goda resultat utan att vidta extrema åtgärder, och utan att offra användbara samtal och parametersemantik. Teknikerna för att hantera transportnivåanslutningar för att minimera kommunikationskostnaderna och det tillstånd som måste upprätthållas av en server är viktiga i vår erfarenhet av servrar som hanterar ett stort antal användare. Våra bindningssemantik är ganska kraftfulla, men konceptuellt enkla för en programmerare som är förtrogen med en maskinbindning. De var enkla och effektiva att genomföra.
Implicit Vårt arbete kan ses som ett allmänt fjärrsamtal (RPC) REF.