Definição – o que significa Marshalling?
Marshalling é o processo de transformar a representação da memória de um objeto em outro formato, adequado para armazenamento ou transmissão para outros aplicativos de software. Marshalling permite a comunicação entre objetos remotos, convertendo um objeto em forma serializada.
Definirtec explica Marshalling
Há também um processo reverso chamado desempacotamento, no qual um objeto ou estrutura de dados é desserializada. Os processos de empacotamento e desempacotamento são o inverso um do outro, então cada processo executado em um método também é revertido no outro método. Se uma determinada sequência binária for adicionada durante o empacotamento, ela será removida durante o descompactação e vice-versa.
Diferentes mecanismos de chamada de procedimento remoto (RPC) são implementados por meio de marshalling, em que diferentes processos e threads normalmente têm formatos de dados diferentes, que exigem o uso de marshalling entre eles.
Os ponteiros de interface do COM (Component Object Model) da Microsoft usam marshalling para trocar dados entre os limites do objeto COM. A mesma coisa acontece no .NET framework, quando um tipo baseado em runtime de linguagem comum precisa se comunicar com outros tipos não gerenciados por meio de empacotamento.
Scripts e aplicativos baseados em tecnologia XPCOM (Cross-Platform Component Object Model) são outros exemplos em que o marshalling é de importância crítica. O Mozilla Application Framework usa XPCOM, que usa marshalling extensivamente.