プロトコルエンジニアリング

プロトコル エンジニアリングは、体系的な手法を通信プロトコルの開発に適用することですソフトウェア エンジニアリングの原則の多くが使用されていますが、分散システムの開発に特化しています。

歴史

1970 年代に最初の実験用および商用コンピュータ ネットワークが開発されたとき、プロトコルの概念はまだ十分に開発されていませんでした。これらは最初の分散システムでした。新しく採用された階層型プロトコル アーキテクチャ ( OSI モデルを参照) のコンテキストでは、特定の層のプロトコルの定義は、あるコンピュータでその仕様を実装するエンティティが、同じ仕様を実装するエンティティを含む他のコンピュータと互換性を持つようにする必要がありますそれらの相互作用は、所望の通信サービスが得られるようなものである必要があります。一方、プロトコル仕様は、さまざまなコンピュータ上での実装にさまざまな選択ができるように十分に抽象的である必要があります。

特定の層によって提供される期待されるサービスの正確な仕様が重要であることが認識されました。[1]プロトコルの検証にとって重要であり、両方のプロトコル エンティティがプロトコル仕様を正しく実装している場合に通信サービスが提供されることを実証する必要があります。この原則は、後にOSI プロトコル スタック、特にトランスポート層の標準化の際に踏襲されました

また、ある種の形式化されたプロトコル仕様は、プロトコルの検証や実装の開発、さらに仕様に対する実装の適合性をチェックするためのテスト ケースに役立つことも認識されました。[2]当初は主に有限状態マシンがプロトコル エンティティの (単純化された) モデルとして使用されていましたが、[3] 1980 年代には 3 つの正式な仕様言語 (2 つは ISO [4]、1 つは ITU によって) が標準化されました。[5]後者はSDLと呼ばれ、後に産業界で使用され、 UML ステート マシンと統合されました

原則

階層化されたプロトコル アーキテクチャ
階層化されたプロトコル アーキテクチャ: より抽象的なビュー – 提供される通信サービスを示します。

以下はプロトコルの開発における最も重要な原則です: [1]

  • 階層化されたアーキテクチャ: レベル n のプロトコル層は、層のサービスがプロトコルのユーザーに提供されるサービス インターフェイスを持つ 2 つ (またはそれ以上) のエンティティで構成され、プロトコルのローカル エンティティによって提供されるサービスを使用します。レベル (n-1)。
  • レイヤのサービス仕様は、レイヤのサービス インターフェイスで見えるレイヤの動作を抽象的かつグローバルなビューで記述します。
  • プロトコル仕様は、各エンティティ実装が満たすべき要件を定義します。
  • プロトコル検証は、プロトコル仕様を満たす 2 つ (またはそれ以上) のエンティティが、その層の指定されたサービスをサービス インターフェイスで提供することを示すことから構成されます。
  • (検証済み) プロトコル仕様は、主に次の 2 つのアクティビティに使用されます。
  1. エンティティ実装の開発。サービス インターフェイスの抽象プロパティはサービス仕様によって定義されます (また、プロトコル仕様によっても使用されます) が、インターフェイスの詳細な性質は実装プロセス中にエンティティごとに個別に選択できることに注意してください。
  2. 適合性テストのためのテスト スイートの開発プロトコル適合性テストでは、特定のエンティティ実装がプロトコル仕様に準拠しているかどうかをチェックします。適合性テスト ケースはプロトコル仕様に基づいて開発され、すべてのエンティティ実装に適用できます。そのため、特定のプロトコル標準向けに標準適合テスト スイートが開発されました。[3]

方法とツール

プロトコルの仕様がツールで理解できる形式化された言語で記述されている場合、プロトコルの検証、エンティティの実装、およびテスト スイートの開発のアクティビティ用のツールを開発できます。前述したように、プロトコル仕様のために正式な仕様言語が提案されており、有限状態マシン モデルに基づく最初の方法とツールが提案されています。到達可能性分析は、分散システムの考えられるすべての動作を理解するために提案されました。これはプロトコルの検証に不可欠です。これは後にモデルチェックで補完されましたただし、有限状態の記述は、メッセージ パラメーターとエンティティ内のローカル変数の間の制約を記述するのに十分強力ではありません。このような制約は、前述の標準化された形式仕様言語によって記述することができ、そのための強力なツールが開発されています。

モデルベース開発が非常に初期に使用されたのはプロトコル エンジニアリングの分野ですこれらの方法とツールは、後にソフトウェア エンジニアリングやハードウェア設計、特に分散システムやリアルタイム システムに使用されるようになりました。一方で、ソフトウェア エンジニアリングのより一般的なコンテキストで開発された多くの方法やツールは、プロトコルの開発にも使用できます。たとえば、プロトコル検証のためのモデル チェックやエンティティ実装のためのアジャイルメソッドなどです

プロトコル設計のための建設的な方法

ほとんどのプロトコルは人間の直観と標準化プロセス中の議論によって設計されています。ただし、ツールによってサポートされている可能性がある構築的な方法を使用して、特定の特性を満たすプロトコルを自動的に導出する方法がいくつか提案されています。以下にいくつかの例を示します。

  • 半自動プロトコル合成: [6]ユーザーはエンティティのすべてのメッセージ送信アクションを定義し、ツールは必要なすべての受信アクションを導出します (複数のメッセージが送信中である場合でも)。
  • 同期プロトコル: [7] 1 つのプロトコル エンティティの状態遷移はユーザーによって与えられ、メソッドは、他のエンティティが前のエンティティに対応する状態に留まるように、他のエンティティの動作を導き出します。
  • サービス仕様から派生したプロトコル: [8]サービス仕様はユーザーによって与えられ、メソッドはすべてのエンティティに適したプロトコルを派生します。
  • 制御アプリケーションのプロトコル: [9] 1 つのエンティティ (プラントと呼ばれる、制御される必要がある) の仕様が与えられ、メソッドは、プラントの特定の故障状態に決して到達せず、特定の状態が与えられるように、もう一方のエンティティの仕様を導き出します。プラントのサービス相互作用の特性が満たされます。これは監視制御の場合です

  • Ming T. Liu、Protocol Engineering、Advances in Computers、第 29 巻、1989 年、79 ~ 195 ページ。
  • GJ ホルツマン、「コンピュータ プロトコルの設計と検証」、プレンティス ホール、1991 年。
  • H. ケーニッヒ、プロトコル エンジニアリング、シュプリンガー、2012 年。
  • M. Popovic、通信プロトコル エンジニアリング、CRC Press、第 2 版 2018年。
  • P. Venkataram、SS Manvi、BS Babu、 通信プロトコル エンジニアリング、2014 年。

参考文献

  1. ^ ab G. v. Bochmann および CA Sunshine、通信プロトコル設計における形式手法、IEEE Tr. COM-28、第 4 号 (1980 年 4 月)、624 ~ 631 ページ。
  2. ^ 1981 年以降のプロトコル仕様テストおよび検証 (PSTV) に関する一連の会議を参照。
  3. ^ ab G. v. Bochmann、D. Rayner、CH West、プロトコル エンジニアリングの歴史に関するメモ、Computer Networks Journal、54 (2010)、3197 ~ 3209 ページ。
  4. ^ CA Vissers、G. v. Bochmann および RL Tenney、形式的記述技術、IEEE 議事録、vol. 71、12、1356-1364ページ、1983年12月。
  5. ^ GJディクソン ; PE de Chazal、CCITT 記述技術の状況とプロトコル仕様への適用、IEEE 議事録、vol. 71、12、1346-1355ページ(1983年)。
  6. ^ P. Zafiropulo、C. West、H. Rudin、D. Cowan、D. ブランド : プロトコルの分析と合成に向けて、IEEE Transactions on Communications (巻: 28、発行: 4、1980 年 4 月)
  7. ^ MG Gouda と YT Yu、進行が保証された有限状態マシン通信の合成、IEEE Trans. on Com.、vol. Com-32、No. 7、1984 年 7 月、779-788 ページ。
  8. ^ MF Al-hammouri および Gv Bochmann、サービス仕様の実現可能性、Proc. システム分析とモデリング (SAM) カンファレンス 2018、コペンハーゲン、LNCS、Springer。
  9. ^ G. v. Bochmann、ロジックを使用してサブモジュール構築問題を解決する、Journal on Discrete Event Dynamic Systems、Vol. 23 (1)、Springer、2013 年 3 月、27-59 ページ。