Введение

Формат сериализации данных Fast Infoset (или FI) - это международный стандарт, который определяет двоичный формат кодирования для набора информации XML (XML Infoset) в качестве альтернативы формату документа XML. Он направлен на обеспечение более эффективной сериализации, чем основанный на тексте формат XML. FI - это эффективное беспотерйное сжатие, аналогичное gzip, для XML, за исключением того, что, хотя первоначальная форматизация потеряна, никакая информация не теряется при преобразовании из XML в FI и обратно в XML. В то время как цель сжатия заключается в уменьшении физического размера данных, FI направлена на оптимизацию как размера документа, так и производительности обработки. Спецификация Fast Infoset определена как ITU T, так и органами по стандартизации ISO/IEC. FI официально определяется в ITU T Rec. X.891 и ISO/IEC 24824 1, и называется Fast Infoset. Стандарт был опубликован ITU T 14 мая 2005 года и ISO 4 мая 2007 года. Стандартный документ Fast Infoset можно скачать на сайте МСЭ. Хотя в документе не утверждается, что интеллектуальная собственность (ИС) ограничивает реализацию или использование, на странице ii предупреждается, что она получила уведомления, и предмет может не быть полностью свободен от утверждений ИС. Распространенное заблуждение заключается в том, что FI требует поддержки инструмента ASN.1. Хотя в официальной спецификации используется обозначение ASN.1, стандарт включает в себя обозначение управления кодированием (ECN), а инструменты ASN.1 не требуются в реализации. Альтернатива FI - FleXPath.

Структура

Основной формат файла - ASN.1 с блоками тега/длины/значения. Текстовые значения атрибутов и элементов хранятся с префиксами длины, а не с окончательными делимитаторами, а сегменты данных не требуют эскаппера для специальных символов. Эквивалент конечных тегов ("терминаторы") необходим только в конце списка дочерних элементов. Бинарные данные передаются в собственном формате и не требуют конвертации в формат передачи, такой как base64. Fast Infoset - это формат более высокого уровня, построенный на формах и обозначении ASN.1. Названия элементов и атрибутов хранятся в потоке октетов, в отличие от традиционных схем кодирования ASN.1. В результате обычный XML-файл может быть восстановлен из бинарного потока без ссылки на XML-схему, и XML-схему не нужно выражать в виде определения ASN.1. (ASN.1 "Тэг" - это просто названия типов, например, строки, целые числа или сложные типы.) ASN.1 вместе с ECN используется для определения формата файла. Для большинства строк создается таблица индексов, которая включает в себя имена элементов и атрибутов, а также их значения. Это означает, что текст повторяющихся тегов и значений появляется только один раз в документе.

Референтная реализация

Java-исполнение спецификации FI доступно в рамках реализации JAXB Eclipse. Библиотека является открытым исходным кодом и распространяется на условиях лицензии Apache 2.0. Несколько проектов используют эту реализацию, включая эталонную реализацию для JAX WS, используемую в Eclipse Metro. Реализация QtitanFastInfoset для C++ доступна под коммерческой лицензией в качестве компонента для Qt framework.

Выступление

Поскольку быстрые инфосеты сжимаются как часть процесса генерации XML, они намного быстрее, чем с использованием алгоритмов сжатия стиля Zip в потоке XML, хотя вывод не так хорошо сжат. Производительность анализа типа SAX в Fast Infoset также намного быстрее, чем производительность анализа XML 1.0, даже без компрессии в стиле Zip. Типичное увеличение скорости анализа, наблюдаемое для эталонной реализации Java, составляет фактор 10 по сравнению с Java Xerces и фактор 4 по сравнению с драйвером Piccolo (один из самых быстрых анализаторов XML на основе Java).

Типичные применения

Портативные устройства Мобильные устройства обычно имеют низкие соединения данных с низкой пропускной способностью и более медленные процессоры. Fast Infoset использует меньшую пропускную способность, чем XML, и его обработка быстрее, что делает его лучшим выбором. Хранение больших объемов данных При хранении XML в файле или базе данных объем данных, производимых системой, часто может превышать разумные пределы, с рядом недостатков: время доступа увеличивается по мере считывания большего количества данных, нагрузка на процессор увеличивается, поскольку обработка XML-данных требует больше энергии, а затраты на хранение растут. Сохранение XML-данных в формате Fast Infoset может сократить объем данных на 80 процентов. Передача XML через Интернет Когда приложение передает данные через Интернет, пропускная способность сети может быть основным узким местом, серьезно ухудшая производительность клиентских приложений и ограничивая мощность сервера для обработки запросов. Сокращение объема данных, передаваемых через Интернет, сокращает время, необходимое для отправки или получения сообщения, и увеличивает количество транзакций, которые сервер может обрабатывать в час.