|
|
Fast Infoset (or FI) specifies a binary encoding format for the XML Information Set (XML Infoset) as an alternative to the XML document format. It aims to give more efficient serialization than the text-based XML format.One can think of FI as gzip for XML, though FI aims to optimize both document size and processing performance, whereas gzip optimizes only the size. While the original formatting is lost, no information is lost in the conversion from XML to FI and back to XML.The Fast Infoset specification is defined by both the ITU-T and the ISO standards bodies. FI is officially named ITU-T Rec. X.891 and ISO/IEC 24824-1 (Fast Infoset), respectively. However, it is frequently referred to by the name Fast Infoset. ITU-T approved the standard on May 14, 2005. ISO initiated publication on March 30, 2007.The Fast Infoset standard can be downloaded for free from the ITU website at . There are no intellectual property restrictions on its implementation and use.A common misconception is that FI requires ASN.1 tool support. Although the formal specification uses ASN.1 formalisms, ASN.1 tools are not required by implementations. Implementations
Reference Implementation
A Java implementation of the FI specification is available as part of the GlassFish project. The library is open source and is distributed under the terms of the Apache License 2.0. Several projects use this implementation, including the reference implementation for JAX-RPC and JAX-WS used in JWSDP. Alternative Implementations
FastInfoset.NET is a C# implementation for the .NET Framework. It was dual licensed, available under the LGPL open-source license and under a commercial license, but only the proprietary option is now available.The OSS Fast Infoset Tools are designed for use with applications written in C or C++.Liquid Technologies provides both C++ and C# .Net implementations of Fast Infoset with its XML Data Binding product Liquid XML. Performance
In addition to a significant reduction in document size of Fast Infoset with respect to standard XML 1.0, SAX-type parsing performance of Fast Infoset is much greater than parsing performance of XML 1.0. Typical increases in parsing speed observed for the reference Java implementation are a factor of 10 compared to Java Xerces, and a factor of 4 compared to the Piccolo driver (one of the fastest Java-based XML parsers) . However, the parsing performance building DOM (needed for doing transformation and repetitive random access) remains a challenge. Typical Applications
Portable Devices - With mobile devices typically having access to low bandwidth data connections, and have slower CPU's. This makes Fast Infoset an obvious choice, lowing both data transmission and data processing times.Persisting Large Volumes of Data - When persisting XML either to file or a database, the volume of data your system produces can often get out of hand. This has a number of detrimental effects, the access times go up as you're reading more data, CPU load goes up as XML data takes more effort to process, and your storage costs go up. By persisting your XML data as Fast Infoset's you can reduce your data volumes by up to 5 times.Passing XML via the internet - As soon as an application starts passing information over the internet, one of the main bottle necks is bandwidth. If you sending reasonable chunks of data, this bottle neck can seriously degrade the performance of your client applications and limit your servers ability to process requests. By reducing the amount of data moving across internet you can reduce the time it takes a message to be sent or received. While increasing the number of transactions your server can process per hour.
Related Ads
|
|