В этой статье есть несколько проблем. Помогите улучшить ее или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти сообщения )
|
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 через Интернет. Когда приложение передает данные через Интернет, пропускная способность сети может стать серьезным узким местом, серьезно снижая производительность клиентских приложений и ограничивая возможности сервера по обработке запросов. [ необходима цитата ] Уменьшение объема данных, передаваемых через Интернет, сокращает время, необходимое для отправки или получения сообщения, и увеличивает количество транзакций, которые сервер может обработать в час.