Быстрый информационный набор - Fast Infoset
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
Быстрый информационный набор (или же FI) - международный стандарт, определяющий двоичное кодирование формат для Набор информации XML (Информационный набор XML) в качестве альтернативы XML формат документа. Он призван обеспечить более эффективную сериализацию, чем текстовый формат XML.
ФИ фактически сжатие без потерь, аналогично gzip, для XML, за исключением того, что, хотя исходное форматирование потеряно, никакая информация не теряется при преобразовании из XML в FI и обратно в XML. Хотя целью сжатия является уменьшение физического размера данных, FI стремится оптимизировать как размер документа, так и производительность обработки.
Спецификация Fast Infoset определяется как ITU-T и ISO органы по стандартизации. FI официально определен в Рек. МСЭ-Т. X.891 и ИСО / МЭК 24824-1, и под названием Быстрый информационный набор. Стандарт был опубликован ITU-T 14 мая 2005 г. и ISO 4 мая 2007 г. Стандартный документ Fast Infoset можно загрузить с Сайт МСЭ. Хотя документ не заявляет об ограничениях интеллектуальной собственности (IP) на реализацию или использование, страница ii предупреждает, что он получил уведомления, и тема может быть не полностью свободна от утверждений IP.
Распространенное заблуждение состоит в том, что FI требует ASN.1 инструментальная поддержка. Хотя формальная спецификация использует нотацию ASN.1, стандарт включает Обозначение управления кодированием Инструменты (ECN) и ASN.1 не требуются для реализации.
Альтернативой FI является FleXPath.[1]
Структура
Базовый формат файла ASN.1, с блоками тегов / длины / значения. Текстовые значения атрибутов и элементов хранятся с префиксами длины, а не с ограничителями конца, а для сегментов данных не требуется escape-последовательность для специальных символов. Эквивалент конечных тегов («терминаторы») нужны только в конце списка дочерних элементов. Двоичные данные передаются в собственном формате, и их не нужно преобразовывать в формат передачи, такой как base64.
Fast Infoset - это формат более высокого уровня, основанный на формах и обозначениях ASN.1. Имена элементов и атрибутов хранятся в потоке октетов, в отличие от традиционных схем кодирования ASN.1. Следовательно, обычный XML-файл может быть восстановлен из двоичного потока без ссылки на XML-схему, и XML-схему не нужно выражать как определение ASN.1. («Теги» ASN.1 - это просто имена типов, например String, Integer или сложные типы.) ASN.1 вместе с ECN используется для определения формата файла.
Для большинства строк создается индексная таблица, которая включает имена элементов и атрибутов, а также их значения. Это означает, что текст повторяющихся тегов и значений появляется только один раз в документе.
Реализации
Эталонная реализация
А Реализация на Java спецификации FI доступна как часть Стеклянная рыба проект. Библиотека Открытый исходный код и распространяется на условиях Лицензия Apache 2.0. Эта реализация используется в нескольких проектах, включая эталонную реализацию для JAX-WS используется в GlassFish Metro.QtitanFastInfoset - реализация для C ++ доступен по коммерческой лицензии как компонент для Digia Qt Framework.
Спектакль
Поскольку быстрые информационные наборы сжимаются как часть процесса генерации XML, они намного быстрее, чем использование алгоритмов сжатия в стиле Zip для потока XML, хотя выходные данные не так хорошо сжимаются.
Производительность синтаксического анализа типа SAX в Fast Infoset также намного выше, чем производительность синтаксического анализа XML 1.0, даже без сжатия в стиле Zip. Типичное увеличение скорости синтаксического анализа, наблюдаемое для ссылки Ява реализация в 10 раз больше Java Xerces, и в 4 раза больше Драйвер Piccolo (один из самых быстрых парсеров XML на основе Java).[2][3][4]
Типичные области применения
Портативные устройства - Мобильные устройства обычно имеют подключения для передачи данных с низкой пропускной способностью и более медленные процессоры. Fast Infoset использует меньшую полосу пропускания, чем XML, и быстрее обрабатывается, что делает его лучшим выбором.
Хранение больших объемов данных - При хранении XML в файле или базе данных объем данных, создаваемых системой, часто может превышать разумные пределы с рядом недостатков: время доступа увеличивается по мере чтения большего количества данных, нагрузка на ЦП увеличивается, поскольку данные XML потребляют больше энергии для затраты на процесс и хранение растут. Сохранение данных XML в формате Fast Infoset позволяет уменьшить объем данных на 80 процентов.
Передача XML через Интернет - Когда приложение передает данные через Интернет, пропускная способность сети может стать серьезным узким местом, серьезно снижая производительность клиентских приложений и ограничивая возможности сервера для обработки запросов.[нужна цитата ] Уменьшение размера данных, передаваемых через Интернет, сокращает время, необходимое для отправки или получения сообщения, и увеличивает количество транзакций, которые сервер может обрабатывать в час.
Смотрите также
Рекомендации
- ^ Амер-Яхья, Сихем, Лаки VS Лакшманан и Шашанк Пандит. «FleXPath: гибкая структура и полнотекстовые запросы XML». Материалы международной конференции ACM SIGMOD 2004 г. по управлению данными. ACM, 2004.
- ^ "Отчеты о производительности Fast Infoset". 2005-10-06. Архивировано из оригинал на 2011-08-07. Получено 2007-10-11.
- ^ "Отчет Japex: ParsingPerformance". 2005-01-10. Архивировано из оригинал на 2011-08-07. Получено 2007-10-11.
- ^ «Отчет Japex: производительность по размеру». 2005-01-10. Архивировано из оригинал на 2011-08-07. Получено 2007-10-11.
внешняя ссылка
- Тяжелое техническое описание OTN
- Домашняя страница FastInfoset.NET
- Домашняя страница проекта FI
- Страница Fast Infoset на сайте ASN.1
- Страница инструментов OSS Fast Infoset Tools
- Бесплатная загрузка стандарта Fast Infoset (Рекомендация МСЭ-Т X.891) с веб-сайта МСЭ
- Бесплатная загрузка стандарта Fast Infoset (ISO / IEC 24824-1: 2007) из свободно доступных стандартов ISO