Быстрый набор информации

Формат сериализации данных

Fast Infoset (или FI ) — это международный стандарт, который определяет двоичный формат кодирования для XML Information Set ( 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 можно загрузить с веб-сайта ITU. Хотя документ не утверждает ограничений интеллектуальной собственности (ИС) на реализацию или использование, страница ii предупреждает, что он получил уведомления, и предмет может быть не полностью свободен от утверждений IP.

Распространенное заблуждение заключается в том, что FI требует поддержки инструмента ASN.1 . Хотя формальная спецификация использует нотацию ASN.1, стандарт включает нотацию управления кодированием (ECN), а инструменты ASN.1 не требуются реализациями.

Альтернативой FI является FleXPath. [1]

Структура

Базовый формат файла — ASN.1 с блоками тег/длина/значение. Текстовые значения атрибутов и элементов хранятся с префиксами длины, а не с конечными разделителями, а сегменты данных не требуют экранирования для специальных символов. Эквивалент конечных тегов («терминаторы») необходим только в конце списка дочерних элементов. Двоичные данные передаются в собственном формате и не требуют преобразования в формат передачи, такой как base64 .

Fast Infoset — это формат более высокого уровня, построенный на формах и нотации ASN.1. Имена элементов и атрибутов хранятся в потоке октетов, в отличие от традиционных схем кодирования ASN.1. В результате, обычный файл XML может быть восстановлен из двоичного потока без ссылки на схему XML, и схема XML не должна быть выражена как определение ASN.1. («Теги» ASN.1 — это просто имена типов, например, String, Integer или сложные типы.) ASN.1 вместе с ECN используется для определения формата файла.

Для большинства строк создается индексная таблица, включающая имена элементов и атрибутов, а также их значения. Это означает, что текст повторяющихся тегов и значений появляется только один раз в документе.

Реализации

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

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

Реализация QtitanFastInfoset для C++ доступна по коммерческой лицензии как компонент фреймворка Qt .

Производительность

Поскольку быстрые информационные наборы сжимаются в ходе процесса генерации XML, они работают намного быстрее, чем алгоритмы сжатия в стиле Zip для потока XML, хотя выходные данные сжимаются не так хорошо.

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

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

Портативные устройства – мобильные устройства обычно имеют низкоскоростные соединения и более медленные процессоры. Fast Infoset использует меньшую пропускную способность, чем XML, и быстрее обрабатывается, что делает его лучшим выбором.

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

Передача XML через Интернет. Когда приложение передает данные через Интернет, пропускная способность сети может стать серьезным узким местом, серьезно снижая производительность клиентских приложений и ограничивая возможности сервера по обработке запросов. [ необходима цитата ] Уменьшение объема данных, передаваемых через Интернет, сокращает время, необходимое для отправки или получения сообщения, и увеличивает количество транзакций, которые сервер может обработать в час.

Смотрите также

Ссылки

  1. ^ Амер-Яхья, Сихем, Лакс В.С. Лакшманан и Шашанк Пандит. «FleXPath: гибкая структура и полнотекстовые запросы для XML». Труды международной конференции ACM SIGMOD 2004 года по управлению данными. ACM, 2004.
  2. ^ "Fast Infoset performance reports". 2005-10-06. Архивировано из оригинала 2011-08-07 . Получено 2007-10-11 .
  3. ^ "Japex Report: ParsingPerformance". 2005-01-10. Архивировано из оригинала 2011-08-07 . Получено 2007-10-11 .
  4. ^ "Japex Report: SizePerformance". 2005-01-10. Архивировано из оригинала 2011-08-07 . Получено 2007-10-11 .
  • Подробное техническое описание OTN
  • Домашняя страница FastInfoset.NET
  • Домашняя страница проекта FI
  • Страница Fast Infoset на сайте ASN.1
  • Страница инструментов OSS Fast Infoset
  • Бесплатная загрузка стандарта Fast Infoset (ITU-T Rec. X.891) с веб-сайта ITU
  • Бесплатная загрузка стандарта Fast Infoset (ISO/IEC 24824-1:2007) из свободно доступных стандартов ISO
  • Liquid Fast Infoset .Net (реализация .Net с открытым исходным кодом)
Retrieved from "https://en.wikipedia.org/w/index.php?title=Fast_Infoset&oldid=1137168647"