Il marshalling è una tecnica utilizzata da Java nell'RMI. Con RMI tu puoi invocare un metodo remoto come se fosse locale, senza doverti preoccupare di gestire nulla, viene fatto tutto da Java. Tu devi solo scrivere , ad esempio :
int ris=somma(5,5);
Java, tramite lo stub, un particolare file che sa come gestire il metodo remoto, capisce che quel metodo è un metodo remoto ed esegue le seguenti operazioni:
1) Locallizza dove si trova il metodo realmente
2) Effettua il marshalling dei dati, crea, cioè, un pacchetto contenente le informazioni da passare al metodo remoto, cioè gli eventuali i dati ed il nome del metodo.
3) Invoca una chiamata al server remoto in ascolto tramite il Sistema operativo
4) Invia i dati marshallati
5) Il server riceve il pacchetto esegue l'unmarshalling dei dati
6) Li passa alla procedura locale
7) Esegue le operazioni
8) Esegue di nuovo il marshalling del risultato
9) lo rimanda indietro al chimante il quale a sua volta effettuerà l'unmarhsalling e potrà visualizzare il risultato.