s.im.pl serialization

A Concise Binding Framework Facilitates Practical Object-Oriented Document Engineering

Semantic web researchers tend to assume that XML Schema and OWL-S are the correct means for representing the types, structure, and semantics of serialized data used for documents and interchange between programs and services. These technologies separate information representation from implementation. The separation may seem like a benefit, because it is platform-agnostic.

The problem is that separating data from code interferes with writing correct programs for practical document engineering, because it violates a primary principle of object-oriented programming: integration of data structures and algorithms. We develop an Object Binding Framework that connects object declarations with serialized representation. A basis of the framework is an Integrated Information Binding Annotation Metalanguage (iiBAM), embedded in Java or C# object and field declarations, designed to be particularly concise, to facilitate the authoring and maintenance of programs that generate and manipulate equivalent documents. In the present implementation, the serialization is performed as XML documents; support for other serialization formats is planned. The framework serves as the foundation for a layered software architecture that includes meta-metadata descriptions for multimedia information extraction, modeling, and visualization; Object-Oriented Distributed Semantic Services; interaction logging services; and a user studies framework.

s.im.pl serialization is part of the Interface Ecologylab Fundamental API, which is being released as open source. In addition to the Serialization and Object-Oriented Distributed Semantic Services (OODSS), this API includes other component bundles for building applications, storing and editing preferences, and working with HTTP.

The framwork currently supports iiBAM declarations in Java and C#. It also supports cross-compilation of Java-based declarations into equivalent serializable objects in C# and Objective C>

S.IM.PL serialization generalizes the framework formerly known as ecologylab.xml.

performance

Performance measures were computed using the bindmark XML binding benchmarks.

framework / marshalling time (nanoseconds) unmarshalling time (nanoseconds) runtime
(# runs) small (1000 runs) medium (100) large (10) small (1000) medium (100) large (10) size (KB)
s.im.pl serialization 39,004 1,528,674 7,151,383 289,966 5,815,660 35,446,572 176
JiBX* 35,943 1,719,212 15,627,181 70,420 5,683,769 39,249,876 141
JAXB 2.0 65,749 2,223,438 10,567,599 362,868 14,889,646 87,146,075 3,800
XStream 413,465 18,373,301 173,198,604 719,290 28,818,238 211,358,650 368
Castor 1,183,407 11,831,280 55,922,610 1,813,563 22,926,830 162,330,464 3,000
XML file size (KB)       1.42 123 1,003  
XML file lines       55 1,817 8,567  
XML file depth       2 20 45  

*JiBX uses a binding compile step to optimize Java byte code for performance; this step is excluded from the benchmark.

guide

A guide may be found here.

publications

Kerne, A., Toups, Z.O., Dworaczyk, B., Khandelwal, M. A Concise XML Binding Framework Facilitates Practical Object-Oriented Document Engineering , Proceedings of ACM Symposium on Document Engineering, Sao Paulo, Brazil, 16-19 September 2008.
Kerne, A., Toups, Z.O., Dworaczyk, B., Khandelwal, K., Expressive, Efficient, Embedded, and Component-based XML-Java Data Binding Framework, Interface Ecology Lab Technical Report 08-06