Tech moves fast! Stay ahead of the curve with Techopedia!
Join nearly 200,000 subscribers who receive actionable tech insights from Techopedia.
Marshalling is the process of transforming the memory representation of an object into another format, which is suitable for storage or transmission to other software applications. Marshalling allows communication between remote objects by converting an object into serialized form.
There is also a reverse process called unmarshalling in which an object or data structure is deserialized. Marshalling and unmarshalling processes are the reverse of each other, so every process performed in one method is also reversed in the other method. If a certain binary sequence is added during marshalling, it is removed during unmarshalling and vice versa.
Different remote procedure call (RPC) mechanisms are implemented via marshalling, where different processes and threads typically have different data formats, which require the use of marshalling between them.
The interface pointers of the Microsoft Component Object Model (COM) use marshalling in order to exchange data across COM object boundaries. The same thing happens in the .NET framework, when a common-language-runtime-based type needs to communicate with other unmanaged types via marshalling.
Scripts and Cross-Platform Component Object Model (XPCOM) technology-based applications are other examples where marshalling is of critical importance. The Mozilla Application Framework uses XPCOM, which uses marshalling extensively.