Differenza tra Message passing e RPC (informatica)
Message passing
Il Message passing è un paradigma di comunicazione strettamente legato al concetto di socket, e come tale rappresenta una forma di comunicazione a basso livello. Con il message passing spesso vengono demandate all’applicazione molte funzioni basilari, come l’indirizzamento fisico o il data marshaling. La produzione dei messaggi è anche in questo caso asincrona, mentre rimane sincrono il consumo degli stessi. Produttore e consumatore sono accoppiati sia nel tempo, dato che entrambi devono essere contemporaneamente attivi al momento dello scambio dei messaggi, che nello spazio, dato che il produttore deve conoscere l’indirizzo fisico del consumatore.
RPC (invocazione remota)
La tecnica RPC (Remote Procedure Call) consiste nell’invocazione remota di eventi, nelle sue numerose forme, è ad oggi rappresenta il metodo più diffuso per implementare il calcolo distribuito. Con l’uso di questo paradigma lo sviluppatore può utilizzare nella propria applicazione metodi remoti come se questi fossero locali. La semplicità del paradigma, unita alla sua potenza, ha decretato il suo successo sin dalla prima apparizione sotto forma di RPC (remote procedure call), per continuare nelle successive incarnazioni object-oriented (Java RMI, CORBA, Microsoft DCOM). D’altra parte la natura uno-ad-uno della comunicazione con RPC rende poco naturale il suo uso in applicazioni che richiedono comunicazioni del tipo uno-a-molti. Inoltre l’intrinseca sincronia di RPC introduce forte accoppiamento temporale, spaziale e nel flusso delle operazioni sugli host interagenti.