BLUEPRINT
第10章 バージョン管理
10.1 バージョン番号フォーマット
DTP はセマンティックバージョニングを使用し、メジャーバージョン番号とマイナーバージョン番号を含みます:
{ major: number, minor: number }
各 Logical_Frame のフレームヘッダーにはプロトコルバージョン番号フィールドが含まれ、そのフレームが使用するプロトコルバージョンを示します。
10.2 バージョン互換性ルール
DTP_Engine は現在のバージョンと前のメジャーバージョンの Logical_Frame フォーマットを同時に処理することをサポートします。
| 受信フレームバージョン | 処理方法 |
|---|---|
| 現在のバージョン | 通常処理 |
| 前のメジャーバージョン | 互換処理(後方互換) |
| より高いバージョン | バージョン非互換通知を送信 |
| より低いバージョン(互換範囲外) | バージョン非互換通知を送信 |
10.3 バージョン非互換処理
受信側がフレームヘッダーのプロトコルバージョン番号が自身のサポートバージョンより高い Logical_Frame を受信した場合:
- そのフレームを処理しない
- 送信側にバージョン非互換通知(VERSION_INCOMPATIBLE, 7001)を送信
- 通知に自身がサポートする最高バージョン番号を含める
送信側がバージョン非互換通知を受信した後、以下が可能です:
- 受信側がサポートするバージョンにダウングレードして再送
- または上位アプリケーションにバージョン不一致を通知
10.4 プロトコル進化戦略
DTP のバージョン管理は、プロトコルの進化過程で後方互換性を維持することを保証します:
- マイナーバージョン番号のアップグレード:フィールドや機能の追加、既存フレームフォーマットの解析を破壊しない
- メジャーバージョン番号のアップグレード:フレームフォーマットの変更の可能性があるが、前のメジャーバージョンとの互換性を維持
これは、端末デバイスと Fay が同時にアップグレードする必要がないことを意味します——バージョン差が1メジャーバージョン以内であれば、双方は正常に通信できます。
