Marshalling in the context of computer programming is the transformation of components stored in the memory of the device into usable data that may be utilized by one or more of the programs residing on the hard drive. The action of gathering data into storage areas for easy retrieval is greatly enhanced by the process of marshalling, as it allows programs to recover the data for use without the need to translate the components each time the action is called for. From this perspective, marshalling aids in the speedy function of many of the software programs used in homes and businesses every day.
Along with converting objects into data and preparing the data for storage or transmission when needed, marshalling also acts as a buffer between the stored data and the various files or programs that make use of the data. This buffer helps to maintain the integrity of the stored data and allow it to be used for simultaneous actions involving more than one file or one program. The overall effect is to keep the system functioning at optimal levels without delays. For example, marshalling helps to make it possible to work with a spreadsheet, a word processing document, and an open Internet connection all at the same time, without delays. Marshalled data may be in use by all of these applications simultaneously without creating a drain on the resources of the hard drive.
Many persons who are knowledgeable about computer science in general consider marshalling to be somewhat similar to a process that is known as serialization. Serializing an object involves converting the object from the original state into a byte stream, but in a manner where the byte stream can be converted back into the original state if necessary. Marshalling differs from serialization in that serialization does not record codebases. Marshalling handles both the functions of conversion and the recording of codebases. In addition, marshalling can be utilized with remote objects, whereas serialization cannot. This means that for some configurations, the marshall approach to object conversion, storage, and transmission may be preferable.