2

データ/コマンド交換プロトコルを記述する正式な/伝統的な方法はありますか? たとえば、プログラミング言語の場合、構文とセマンティクスを記述する複数のアプローチがあります (例: http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form )。

私が探しているアプローチは、(アカデミックとは対照的に)かなり実用的です。仕様に取り組んでいる間、アイデアを他の人に明確に転送/広めるために、データ交換の記述に日常的に使用するものが必要です。したがって、デファクト スタンダードとして認識されていないものの、有用なものがあれば、それも問題ありません。

UML シーケンス図と「通信プロトコルの仕様と検証のための正式な方法、Carl A. Sunshine 著、1979 年」を調べました。前者の方法には「ペイロード」の説明がありませんが (少なくとも私が理解していることから)、後者の方法は方法ではなく考慮事項を説明する教育的な論文です (ただし、私はまだこの論文を読んでいます)。

前もって感謝します

4

4 に答える 4

1

「実用的」が「有用」を意味する場合は、ペトリネットを検討してください。以下の私の返信を参照するか、返信のPDF バージョンを検討してください。

返信の最初のページ http://www.aespen.ca/AEnswers/lMtbX1428143440-0_Page_1.jpg 返信 の 2 ページ目 http://www.aespen.ca/AEnswers/lMtbX1428143440-0_Page_2.jpg

于 2015-04-05T00:26:09.847 に答える
1

プロトコルとは、一連のやり取りに従って送信されるメッセージに関するものです。

私が見たプロトコルを指定する最良の方法は、Colored Petri Nets (CPNs)を使用することです。

CPN は (「色付けされていない」)ペトリ ネット (PN)に基づいており、可能な状態を表す場所、状態を表すトークン イン プレース、および遷移 (同期) を使用して、メッセージ応答などの並列アクティビティを同期する方法を定義します。進行するために並列状態がどこで一致しなければならないかを示すゲート。ペトリネットは、有限状態マシン (FSA は、「現在の状態」などの「単一のトークン」を常に持つ PN) をモデル化でき、一般化も可能です。実際、それらは特定の FSA を非常に小さな記述に「指数関数的に圧縮」することができるため、複雑な相互作用シーケンスであっても非常に簡潔にすることができます。しかし、従来の PN は、交換されるデータに対応していません。

CPN は PN を一般化してデータ型を追加します。トークンには「色」(「データ型」の変な言い方) があり、遷移は同期するだけでなく、トークンを組み合わせて他のトークンを生成できます。たとえば、新しい値を計算します。

したがって、CPN としてモデル化されたプロトコルには、データ型としてのメッセージ コンテンツと、同期を示す PN 状態があります。CPN を使用したことがない場合は、それが何であるかを学ぶのに苦労するだけの価値があります。なぜなら、CPN は FSA を非常に一般化したものだからです。

OP の「功利主義的」発言に関しては、CPN Toolsには、グラフィカル モデリングやコード生成など、非常に優れたツールが用意されています。

于 2014-12-08T18:16:06.540 に答える