ネットワーク負荷とパッケージサイズの軽減

TMIでは、XMLベースのアプリケーションプロトコルを使用します。XMLは、プロトコルデザインにおいて一定の拡張性と柔軟性を提供しますが、XMLを通信プロトコルのデータ形式の標準として使用すると次のような短所があります。

  • CGIで使用される名前/値のペアやバイナリ構造体などの他のデータ形式と比べて、XMLの解析には、より多くのシステムリソースが必要となります (プログラムが、サーバまたはデバイスのリソースをより多く消費します)。

  • XMLでは、情報の伝送に必要なエージェントの負荷が、他のデータ形式と比べて大幅に大きくなります。

  • データが必要とするリソースが大きくなるため、データ処理のパフォーマンスが低下します。

  • 他のデータ形式よりも、パケット伝送に時間がかかり、伝送速度が遅くなります。

上記のような問題に対して、MCPのデータ形式では問題解決の工夫が実装されています。MCPのデータ形式はBLOB (バイナリ) ストリームで、各項目は名前ID、型、長さ、および値によって構成されます。このBLOB形式には次の利点があります。

  • XMLよりもデータ転送サイズが小さい ― データ型を使用することで、情報の格納に使用されるバイト数を制限できます。データ型には、整数型、符号なし整数型、ブール型、浮動小数点型があります。

  • 解析速度がより速い ― 固定バイナリ形式を使用して、各データ項目を1つずつ簡単に解析できます。解析パフォーマンスは、XMLよりも数倍速くなります。

  • 設計の柔軟性の強化 ― 各項目が名前ID、型、長さ、および値から構成されることで、設計の柔軟性も考慮に入れられています。項目の順序は任意で、補助項目は必要な場合にのみ通信プロトコルに含めることができます。

MCPでは、データ伝送にバイナリストリーム形式が採用されたことに加えて、圧縮/非圧縮に関係なく、一度の接続で複数の種類のデータをパックして送信することができます。このデータ伝送方式によって、ネットワーク帯域幅の維持が可能になると同時に、スケーラビリティが向上します。