Efficient XML Interchange (EXI) について
Efficient XML Interchange (EXI) は、XML文書の処理効率と計算機資源の利用を最適化するために設計された、拡張可能なマーク付け言語の符号化規約です。W3Cによって勧告されており、特にリソースが限られた環境でのXMLデータ交換を効率化することを目指しています。
背景
XML (
Extensible Markup Language) は、データの構造化と交換において広く利用されています。しかし、その可読性と拡張性の高さの反面、冗長性が高く、データサイズが大きくなりがちです。この問題を解決するために、XML文書を圧縮する手法が用いられます。汎用的な圧縮手法も利用可能ですが、XMLの構造的特性を利用することで、より高い圧縮効率を達成できます。EXIは、そのような高効率圧縮を実現するための実装の一つです。
EXIの概要
EXIは、XML文書の構造を解析し、その構造に基づいて効率的なバイナリ表現に変換します。これにより、XML文書のサイズを大幅に削減し、データ転送や処理に必要なリソースを低減できます。EXIは、特にモバイルデバイスや組み込みシステムなど、計算資源が限られた環境での利用を想定しています。
EXIの原則
EXIは、以下の五つの原則に基づいて設計されています。
1.
汎用性: あらゆる機器間でのXML情報交換を目的とし、特定の用途に偏った最適化は避ける。
2.
最小性: 小規模な
携帯機器や組み込み機器での利用を想定し、シンプルで洗練された手法を採用する。
3.
効率性: 手作業で最適化されたバイナリ形式に匹敵する効率を目指し、データサイズと処理速度の両方を最適化する。
4.
柔軟性: 多様なスキーマやその拡張に対応し、スキーマからの逸脱時でもエラーにならない柔軟性を持たせる。
5.
相互運用性: 既存のXML関連技術との統合を容易にし、既存技術の変更を最小限に抑える。
EXIの形式
EXIは、大きく分けて二種類の符号化方式を提供しています。
1.
組込み文法 (Built-In Grammar): 要素や属性の名前を事前に把握できない場合に、EXIストリームにそれらの情報を格納します。これによりファイルサイズが大きくなる傾向があり、文法の解釈時にメモリ使用量を予測することが難しいという問題があります。
2.
スキーマ由来文法 (Schema-Informed Grammar): 要素や属性の名前を事前に把握できる場合に、EXIストリームにそれらの情報を格納する必要がありません。これによりファイルサイズを小さくでき、特にstrictモードでは、与えられたスキーマで解釈できる情報以外を復号しないため、実装時のメモリ使用量を固定できます。
EXIの評価
利点
省メモリ: 特にスキーマ由来文法を用いる方式は、メモリ使用量を大幅に削減できます。
データサイズ削減: XML文書を効率的に圧縮し、データ転送量を削減できます。
処理速度向上: バイナリ形式でデータを扱うことで、XML文書の解析・処理速度を向上させます。
欠点
XML構文解析の負担: EXIの利用が想定される省メモリ環境では、XMLの構文解析自体が負担になる場合があります。
仕様の複雑さ: 仕様が複雑であるため、実装が巨大になりがちです。
完全な解決策ではない: EXIは通信量を削減するものの、最終的にはXMLとして扱う必要があるため、XML処理に伴う根本的な問題を完全に解決するわけではありません。
実装例
EXIは、以下のライブラリで実装されています。
OpenEXI: NagasenaによるEXI標準の完全な実装で、Javaと.NETで利用できます。Apache License 2.0で提供されています。
EXIficient: EXIの実装の一つで、向けEXIであるEXI4用のプログラムも提供しています。
MIT Licenseで提供されています。
まとめ
EXIは、XML文書を効率的に交換するための重要な技術です。特にリソースが限られた環境でのデータ交換において、そのメリットを発揮します。ただし、XMLの構文解析に伴う問題や実装の複雑さも考慮する必要があります。EXIは、適切な状況で利用することで、より効率的なデータ処理を実現できます。
参考文献
“CA-EXI:運用コンテキストとEXI符号化を用いたIEEE1888メッセージ圧縮手法” (PDF) (2013年10月).
DLMフォーラム財団 (2013年3月25日). “コアサービス及びプラグインモジュール” (PDF).
上谷 卓己 (2009年5月12日). “EXIについて” (PDF).
佐藤 弓子、土井 裕介、寺本 圭一「XML-Less EXIを搭載した家電用通信アダプタの試作および評価」『情報処理学会論文誌 コンシューマ・デバイス&システム (CDS)』第2巻第2号、2012年7月26日、54-62頁.
米澤 祐紀、土井 裕介「IoT機器に対するEXI利用時のスキーマ簡約によるROM必要量最適化」『情報処理学会論文誌 コンシューマ・デバイス&システム (CDS)』第5巻第4号、2015年10月3日、52-60頁.
土井 裕介、佐藤 弓子、寺本 圭一「XMPPのSchema-Informed EXI利用における課題と解決」『研究報告インターネットと運用技術 (IOT)』2013-IOT-20第25号、2013年3月7日、1-6頁.
丸山 宏 (2009年12月26日). “XMLはバイナリ化するか”.
富士通株式会社 (2012年7月11日). “EXI (Efficient XML Interchange) ご紹介” (PDF).
d0i (2013年5月19日). “EXIとは何か?(準備編)”.
“Efficient XML Interchange (EXI) Primer”. W3C (2014年4月27日).
“Efficient XML Interchange Evaluation”. W3C (2009年4月7日).
諸規格
“Efficient XML Interchange (EXI) Format 1.0 (Second Edition)”. W3C (2014年2月11日).
JIS X 4159:2005「拡張可能なマーク付け言語 (XML) 1.0」
JIS X 4401:2014「オフィス文書のためのオープン文書形式 (OpenDocument) v1.1」
JIS X 4197:2012「変倍ベクタグラフィックス」
関連項目
XML
可逆圧縮
外部リンク
Efficient XML Interchange (EXI) Format 1.0 (Second Edition): EXIのW3C勧告。
*
EXI for : W3C作業部会が覚書として公開している、に対するEXI。