Comparative Survey of Object Serialization Techniques and the Programming Supports

This paper compares six approaches of object serialization from qualitative and quantitative aspects. Those are object serialization in Java, IDL, XStream, Protocol Buffers, Apache Avro, and MessagePack. Using each approach, a common example is serialized to a file and the size of the file is measured. The qualitative comparison works are investigated in the way of checking whether schema definition is required or not, whether schema compiler is required or not, whether serialization is based on ascii or binary, and which programming languages are supported. It is clear that there is no best solution. Each solution makes good in the context it was developed.

Authors:



References:
[1] D. Hunter, J. Rafter and others, Beginning XML, 4th edition, Wiley, 2007.
[2] Greg Badros, JavaML: A Markup Language for Java Source Code, 9th
International World Wide Web Conference,
http://www9.org/w9cdrom/index.html, 2000.
[3] JSON, http://www.json.org/ (accessed at Oct. 20, 2011).
[4] The application/json Media Type for JavaScript Object Notation (JSON),
RFC 4627, http://www.ietf.org/rfc/rfc4627.txt (accessed at Oct. 20, 2011).
[5] Java SE 7 Serialization-related APIs and Developer Guides,
http://download.oracle.com/javase/7/docs/technotes/guides/serialization/
(accessed at Oct. 20, 2011).
[6] Java Object Serialization Specification: Contents,
http://download.oracle.com/javase/7/docs/platform/serialization/spec/
serialTOC.html (accessed at Oct. 20, 2011).
[7] OMG, Common Object Request Broker Architecture (CORBA), OMG
Released Versions Of CORBA, http://www.omg.org/spec/CORBA/3.1/.
[8] Richard Snodgrass, The Interface Description Language: Definition and
Use. Computer Science Press, 1989.
[9] XStream - About XStream, http://xstream.codehaus.org/ (accessed at Oct.
20, 2011).
[10] protobuf - Protocol Buffers, http://code.google.com/p/protobuf/ (accessed
at Oct. 20, 2011).
[11] Welcome to Apache Avro, http://avro.apache.org/ (accessed at Oct. 20,
2011).
[12] The MessagePack Project, http://msgpack.org/ (accessed at Oct. 20,
2011).
[13] Kazuaki Maeda, Executable Representation for Structured Data Using
Ruby and Scala, 10th International Symposium on Communications and
Information Technologies, pp.127-132, 2010.