b'\n_START_ARTICLE_\nChiamata di procedura remota\n_START_SECTION_\nParadigma RPC\n_START_PARAGRAPH_\nIl paradigma RPC risulta particolarmente adatto per il calcolo distribuito basato sul modello client-server; la "chiamata di procedura" corrisponde alla "richiesta" inviata dal "cliente", e il "valore restituito" della procedura corrisponde alla "risposta" inviata dal "servente".\n_START_SECTION_\nAspetti semantici\n_START_PARAGRAPH_\nPer quanto l\'obiettivo ultimo del paradigma RPC sia quello di fornire un meccanismo di chiamata di procedura remota la cui semantica sia essenzialmente equivalente a quella della chiamata di procedura locale (da cui la suddetta trasparenza del meccanismo), tale equivalenza non \xc3\xa8 mai compiutamente realizzata, a causa delle difficolt\xc3\xa0 che possono insorgere nella comunicazione su rete (sempre soggetta a fallimento). Non essendovi un unico modo ovviamente "giusto" per gestire queste complicazioni, i meccanismi di RPC possono differire in modo sottile per quanto concerne la semantica esatta della chiamata remota._NEWLINE_Alcuni meccanismi, per esempio, hanno una semantica "at most once" (semantica "al massimo una volta"): in altre parole, una chiamata di procedura remota pu\xc3\xb2 fallire (cio\xc3\xa8 non venire eseguita) ma \xc3\xa8 garantito che non possa risultare in molteplici attivazioni della subroutine richiamata. L\'approccio opposto \xc3\xa8 rappresentato dalla semantica "at least once", che garantisce che la subroutine venga richiamata almeno una volta (potrebbe quindi accadere che essa sia attivata pi\xc3\xb9 volte). La semantica ideale \xc3\xa8 la "exactly once" (semantica "esattamente una volta"), che coincide con la semantica tradizionale della chiamata a procedura. Nel caso di procedure idempotenti (cio\xc3\xa8 per le quali una singola attivazione e molteplici attivazioni sono funzionalmente equivalenti), la semantica "at least once" coincide con quella "exactly once"._NEWLINE_Altre differenze semantiche fra l\'RPC e la chiamata di procedura tradizionale riguardano l\'evidente impossibilit\xc3\xa0, per la procedura richiamata, di produrre effetti collaterali nell\'ambiente del chiamante. Anche alcune forme di passaggio parametri, come il passaggio parametri per indirizzo, non sono direttamente applicabili all\'RPC, ma possono essere sostituite da concetti semanticamente molto vicini (come la distinzione fra parametri di input e parametri di output).\n_START_SECTION_\nInteroperabilit\xc3\xa0 e indipendenza dal linguaggio\n_START_PARAGRAPH_\nUn medesimo protocollo RPC pu\xc3\xb2 essere reso accessibile attraverso numerose API per diversi linguaggi di programmazione. Questo consente a un programma di richiamare "subroutine" di programmi remoti potenzialmente scritti in altri linguaggi di programmazione. Nella maggior parte dei casi, sistemi RPC di questo genere usano un linguaggio di descrizione di interfacce che consente una rappresentazione formale uniforme dei meccanismi di "subroutine" ("procedura", "funzione", "sottoprogramma", ecc.) forniti dai diversi linguaggi. Esempi di piattaforme che consentono l\'interoperabilit\xc3\xa0 di programmi scritti in diversi linguaggi sono la Sun RPC (anche nota come ONC RPC), il Distributed Computing Environment o DCE, le tecnologie DCOM e ActiveX di Microsoft, e il middleware CORBA.\n_START_SECTION_\nEvoluzioni moderne dell\'RPC\n_START_PARAGRAPH_\nMolti meccanismi moderni di RPC sottendono, in modo pi\xc3\xb9 o meno esplicito, l\'idea che i programmi interagenti siano object-oriented. In tal caso si parla anche, pi\xc3\xb9 propriamente, di "invocazione remota di metodi". _NEWLINE_La remotizzazione dell\'esecuzione dei metodi \xc3\xa8 supportata oggi dai principali linguaggi di sviluppo ad alto livello come Microsoft .NET e Java, resa disponibile rispettivamente da tecnologie come .NET TCP Remoting (2.0), .NET WCF (3.X) e RMI (Remote Method Invocation)._NEWLINE_Recentemente, molti produttori hanno creato tecnologie simili all\'RPC classica usando XML come IDL (Interface Description Language) e HTTP come protocollo di rete. Questi sistemi vengono chiamati web service. Un esempio celebre \xc3\xa8 SOAP (Simple Object Access Protocol).'