Object Serialization

For objects and primitive type values that are passed by copy, object serialization is needed: The objects are turned into a byte array representation, including all their primitive type instance variables and including the complete graph of objects to which all their non-primitive instance variables refer.

This wire format is unpacked at the recipient and turned back into a deep copy of the graph of argument objects. The serialization can copy even cyclic graphs from the caller's JVM to the callee's JVM; the serialization keeps and monitors a hash-table of objects that have already been packed to avoid repetition and infinite loops. For every single remote method invocation, this table has to be reset, since part of the objects' state might have been modified.

~

PHILIPPSEN, Michael and HAUMACHER, Bernhard, 1999. More efficient object serialization. In: ROLIM, José, MUELLER, Frank, ZOMAYA, Albert Y., ERCAL, Fikret, OLARIU, Stephan, RAVINDRAN, Binoy, GUSTAFSSON, Jan, TAKADA, Hiroaki, OLSSON, Ron, KALE, Laxmikant V., BECKMAN, Pete, HAINES, Matthew, ELGINDY, Hossam, CAROMEL, Denis, CHAUMETTE, Serge, FOX, Geoffrey, PAN, Yi, LI, Keqin, YANG, Tao, CHIOLA, G., CONTE, G., MANCINI, L. V., MÉRY, Domenique, SANDERS, Beverly, BHATT, Devesh and PRASANNA, Viktor (eds.), Parallel and Distributed Processing. Berlin, Heidelberg: Springer Berlin Heidelberg. p. 718–732. Lecture Notes in Computer Science. [Accessed 16 October 2023]. ISBN 978-3-540-65831-3.