第10章 バージョン管理

10.1 バージョン番号フォーマット

DTP はセマンティックバージョニングを使用し、メジャーバージョン番号とマイナーバージョン番号を含みます:

{ major: number, minor: number }

各 Logical_Frame のフレームヘッダーにはプロトコルバージョン番号フィールドが含まれ、そのフレームが使用するプロトコルバージョンを示します。

10.2 バージョン互換性ルール

DTP_Engine は現在のバージョン前のメジャーバージョンの Logical_Frame フォーマットを同時に処理することをサポートします。

受信フレームバージョン処理方法
現在のバージョン通常処理
前のメジャーバージョン互換処理(後方互換)
より高いバージョンバージョン非互換通知を送信
より低いバージョン(互換範囲外)バージョン非互換通知を送信

10.3 バージョン非互換処理

受信側がフレームヘッダーのプロトコルバージョン番号が自身のサポートバージョンより高い Logical_Frame を受信した場合:

  1. そのフレームを処理しない
  2. 送信側にバージョン非互換通知(VERSION_INCOMPATIBLE, 7001)を送信
  3. 通知に自身がサポートする最高バージョン番号を含める

送信側がバージョン非互換通知を受信した後、以下が可能です:

  • 受信側がサポートするバージョンにダウングレードして再送
  • または上位アプリケーションにバージョン不一致を通知

10.4 プロトコル進化戦略

DTP のバージョン管理は、プロトコルの進化過程で後方互換性を維持することを保証します:

  • マイナーバージョン番号のアップグレード:フィールドや機能の追加、既存フレームフォーマットの解析を破壊しない
  • メジャーバージョン番号のアップグレード:フレームフォーマットの変更の可能性があるが、前のメジャーバージョンとの互換性を維持

これは、端末デバイスと Fay が同時にアップグレードする必要がないことを意味します——バージョン差が1メジャーバージョン以内であれば、双方は正常に通信できます。