Marshalling and Unmarshalling Objects
Marshalling is a generic term for gathering data from one process and converting it into a format that can be used either for storage or for transmission to another process (correspondingly, unmarshalling involves taking the converted data and recreating the objects). In RMI, marshalling is done either via serialization or externalization. Marshalling and unmarshalling occupy a strange role in designing a distributed application. On the one hand, the means by which you perform marshalling and unmarshalling is a technical detail: once you’ve decided to send information to another process, how you do so shouldn’t be a primary design consideration. On the other hand, it’s a very important technical detail, and the way you do it can often make or break an application.