サービスバス上のメッセージの図解


9

複数のアプリケーションがサービスバスを介して通信する方法を明確に示す方法を探しています。私がこれまでに思いついた最高のものはシーケンス図ですが、私は本当にそれが好きではありません。シーケンス図は必然的にある種のシーケンスに関連しますが、それは私が本当に望んでいることではありません。さらに、すべてのサービスがサービスバスと通信し、シーケンス図が各サービスを別々の列に配置するため、サービスの数が増えると、矢印が重なってしまいます。

例えば、与えられた4つのサービスFOOBARBAZ、とQUX

  • FOOタイプpublishおよびregenのメッセージを公開します。
  • BARタイプrequeueのメッセージをパブリッシュします。
  • BAZタイプがpublishregen、およびrequeueのメッセージをサブスクライブし、タイプがtransmitのメッセージをパブリッシュします。
  • QUXタイプが送信のメッセージをサブスクライブします。
  • どのサービスでも、いつでもどのメッセージタイプでも公開できます(暗黙のシーケンスはありません)。

この情報を明確かつ明確に表すには、どのような図を使用する必要がありますか?

これが私がこれまでに思いついた最高のものです:
シーケンス図

回答:


5

複数のアプリケーションがサービスバスを介して通信する方法を明確に示す方法を探しています。

それは素晴らしいでしょう。残念ながら、どんな複雑な構成でも可能ではないと思います。単純なシナリオのシーケンス図は、おそらく他の何よりも優れています。

バス上のコンポーネントは、メッセージをパブリッシュおよびサブスクライブします。一部のメッセージは因果関係にあり、プロトコルを形成している場合があります。バス上で複数のプロトコルが動作している場合、これをグラフィカルに、特に因果関係を示すことは困難です。

電気バス図は長い間使用されてきました

電気バス図

しかし、それらは個別の信号ではなく、一定の量の商品(電力)を扱います。

各コンポーネント(および該当する場合はサブチャネル/トピック構造)によって送信されたメッセージ(右側)と受信されたメッセージ(左側)を表示したいのですが、最も単純なシナリオ以外では、図がすぐに乱雑になり、ほとんど役に立たなくなります。

ここに画像の説明を入力してください

では、より根本的な質問に戻りましょう。図の目的は何ですか。何を見せようとしているの?

コンポーネントとメッセージの間の因果関係を表示しようとしている場合は、シーケンス図(または同等のもの)を使用して一度に1つのプロトコルを図化することをお勧めします。

参照用にプロトコルを表示したいだけの場合は、各コンポーネントによって送受信されたメッセージを書き込むだけで十分ですが、因果関係/時間的関係は失われます。

幸運を祈ります。もっと良いものを見つけたり、発明したりした場合はお知らせください。


お返事をいただきありがとうございます。メッセージの複雑なオーケストレーション(「プロトコル」内の「会話」)の場合、はい、連続した図で問題ありません。しかし、現時点では、特定のメッセージタイプのパブリッシュに関与するサービスと、実際に関連するメッセージのシーケンスではなく、特定のメッセージタイプによって影響を受ける可能性のあるサービスの概要に取り組んでいます。標準化されたものを望んでいますが、自分で独自に発明した場合、それはおそらく例として挙げた電気バスの図によく似ています。
pswg 2013

@pswg:どういたしまして。Balsamiqモックアップを使用して構築されたサンプル図を追加しました。ゲートウェイやその他の制約に注釈を付ける必要がある場合に備えて、小さな円を使用して接続ポイントを目立たせます
Steven A. Lowe

ええ、このようなものがうまくいきます。電気回路図の小さな矢印の方が左/右の区別がある方がいいと思いますが、これはいくつかのアイデアを与えてくれます。
pswg 2013

@pswg:小さい矢印が大きな図の邪魔になることを発見しました;)電気部品(私が見たもの)がめったに電力を消費および生成しないため、矢印は静的です。そのため、左勝手と右勝手を使い分けました(任意)。また、着信メッセージをコンポーネントのボックスに近づけ、発信メッセージをバスラインに近づけようとしましたが、これは明らかに理想的な解決策ではありません。あなたが思いつくものを見るのを楽しみにしています!
スティーブンA.ロウ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.