Energy-Efficient Transaction Serialization for IoT Devices
Source: By:Author(s)
DOI: https://doi.org/10.30564/jcsr.v2i2.1620
Abstract:This article presents two designs, the Transaction Serial Format (TSF) and the Transaction Array Model (TAM). Together, they provide full, efficient, transaction serialization facilities for devices with limited onboard energy, such as those in an Internet of Things (IoT) network. TSF provides a compact, non-parsed, format that requires minimal processing for transaction deserialization. TAM provides an internal data structure that needs minimal dynamic storage and directly uses the elements of TSF. The simple lexical units of TSF do not require parsing. The lexical units contain enough information to allocate the internal TAM data structure efficiently. TSF generality is equivalent to XML and JSON. TSF represents any XML document or JSON object without loss of information, including whitespace. The XML equivalence provides a foundation for the performance comparisons. A performance comparison of a C reference implementation of TSF and TAM to the popular Expat XML library, also written in C, shows that TSF reduces deserialization processor time by more than 80%.
References:[1] G. Pinto and F. Castor. Energy Efficiency: A New Concern for Application Software Developers. Communications of the ACM, 2017. [2] Apache Group. Apache Avro. 2012. [Online]. Available at: https://avro.apache.org/docs/current/spec.html [3] Apache Parquet. 2013. [Online]. Available at: https://parquet.apache.org/documentation/latest/ [4] MongoDB, Inc. BSON (Binary JSON). 2018. [Online]. Available at: http://bsonspec.org [5] Java Language. Java Object Serialization. 1993. [Online]. Available at: https://docs.oracle.com/javase/8/docs/technotes/guides/serialization/index.html [6] G. van Rossum. Python Pickle - PEP 3154. 2011. [Online]. Available at: https://www.python.org/dev/peps/pep-3154/ [7] L. Wall. PERL Modules DataDumper, FreezeThaw, Storable. 1991. [Online]. Available at: https://perldoc.perl.org/Storable.html [8] The Object Management Group. CORBA. 2008. [Online]. Available at: https://www.omg.org/spec/CORBA/3.1/Interoperability/PDF [9] The Java Language. Java Remote Method Invocation. 1993. [Online]. Available at: https://docs.oracle.com/en/java/javase/13/docs/api/java.rmi/module-summary.html [10] H. Pennington et al.. The D-Bus Specification. 2003. [Online]. Available at: https://dbus.freedesktop.org/doc/dbus-specification.html [11] Apache Group. Apache Thrift. 2007. [Online]. Available at: http://thrift.apache.org/static/files/thrift-20070401.pdf [12] D. Winer. XML-RPC. 1998. [Online]. Available at: http://xmlrpc.scripting.com [13] M. Gudgin et al., Eds. SOAP Version 1.2. 2007. [Online]. Available at: https://www.w3.org/TR/soap12/ [14] International Telecommunications Union. Specification of Abstract Syntax Notation One (ASN.1). ITU Standard (Blue Book), 1988. [Online]. Available at: https://www.itu.int/rec/T-REC-X.208/en [15] K. McCloghrie, D. Perkins, J. Schoenwaelder, Eds.. RFC 2578 - Structure of Management Information Version 2 (SMIv2). 1999. [Online]. Available at: https://tools.ietf.org/html/rfc2578 [16] International Telecommunications Union. X.509 - IT OSI - Public-key and Attribute Certificate Frameworks. 2008. [Online]. Available at: https://www.itu.int/rec/T-REC-X.509 [17] T. Bray, J. Paoli, C. M. Sperberg-McQueen, Eds.. Extensible Markup Language (XML) 1.0. February 1998. [Online]. Available at: https://www.w3.org/TR/1998/REC-xml-19980210 [18] D. Crockford. Introducing JSON. 2005. [Online]. Available at: http://json.org/ [19] O. Ben-Kiki, C. Evans,d I. döt Net. YAML Ain’t Markup Language - Version 1.2. 2001. [Online]. Available at: https://yaml.org/spec/1.2/spec.html [20] R. Rivest. S-Expressions. 1997. [Online]. Available at: http://people.csail.mit.edu/rivest/Sexp.txt [21] M. Cokus, S. Pericas-Geertsen, Eds.. XML Binary Characterization Properties, W3C Working Draft 05, 2004. [Online]. Available at: https://www.w3.org/TR/2004/WD-xbc-properties-20041005/ [22] J. Schneider et al., Eds.. Efficient XML Interchange (EXI) Format 1.0 - W3C Working Draft 16, 2007. [Online]. Available at: https://www.w3.org/TR/2007/WD-exi-20070716/ [23] J. Clark, J. Cowan, Eds.. MicroXML. October 2012. [Online]. Available at: https://dvcs.w3.org/hg/microxml/raw-file/tip/spec/microxml.html [24] C. Bormann, P. Hoffman. Compact Binary Object Format. 2013. [Online]. Available at: https://tools.ietf.org/html/rfc7049 [25] Google. Protocol Buffers. 2008. [Online]. Available at: https://developers.google.com/protocol-buffers/docs/proto [26] W. van Oortmerssen. Flatbuffers, 2014. [Online]. Available at: https://github.com/google/flatbuffers [27] M. Eisler, Ed.. RFC 4506 - XDR - External Data Representation Standard. 2006, obsoletes RFC 1832.[Online]. Available at: https://tools.ietf.org/html/rfc4506 [28] B. Cohen. Bencoding - Part of BitTorrent. 2008. [Online]. Available at: http://bittorrent.org/beps/bep_0003.html [29] B. Ramos. Binn - Binary Data Serialization. 2015. [Online]. Available at: https://github.com/liteserver/binn/ [30] D. Crocker, Ed.. RFC 5234 - Augmented BNF for Syntax Specifications: ABNF. Internet Engineering Task Force Request for Comments, January 2008. [Online]. Available at: http://www.ietf.org/rfc/rfc5234.txt [31] T. Bray et al., Eds.. Extensible Markup Language (XML) 1.0 (Fourth Edition) - W3C Recommendation 16 August 2006. W3C Recommendation, August 2006. [Online]. Available at: https://www.w3.org/TR/2006/REC-xml-20060816/ [32] T. Bray, J. Paoli, C. M. Sperberg-McQueen, E. Maler, F. Yergeau, J. Cowan, Eds.. Extensible Markup Language (XML) 1.1. August 2006. [Online]. Available at: https://www.w3.org/TR/2006/REC-xml11-20060816 [33] The Expat Development Team. LibExpat - Version 2.2.6. 2018. [Online]. Available at: https://libexpat.github.io