Diagrammnachrichten auf einem Servicebus


9

Ich suche nach einer Möglichkeit, klar darzustellen, wie mehrere Anwendungen über einen Servicebus kommunizieren. Das Beste, was ich mir bisher ausgedacht habe, ist ein Sequenzdiagramm, aber das gefällt mir wirklich nicht. Sequenzdiagramme beziehen sich notwendigerweise auf eine Art Sequenz, und das ist wirklich nicht das, was ich will. Da jeder Dienst mit dem Dienstbus kommuniziert und Sequenzdiagramme jeden Dienst in einer separaten Spalte platzieren, erhalten Sie mit zunehmender Anzahl von Diensten viele überlappende Pfeile.

Zum Beispiel gegeben 4 Dienstleistungen FOO, BAR, BAZ, und QUX:

  • FOOveröffentlicht Nachrichten vom Typ veröffentlichen und regenerieren .
  • BARveröffentlicht Nachrichten vom Typ Request .
  • BAZabonniert Nachrichten vom Typ veröffentlichen , regen und Requeue und veröffentlicht Nachrichten vom Typ Sende .
  • QUXabonniert Nachrichten vom Typ Senden .
  • Jeder Dienst kann jederzeit einen beliebigen Nachrichtentyp veröffentlichen (es gibt keine implizite Reihenfolge).

Welche Art von Diagramm sollte ich verwenden, um diese Informationen klar und eindeutig darzustellen?

Hier ist das Beste, was ich mir bisher ausgedacht habe:
Sequenzdiagramm

Antworten:


5

Ich suche nach einer Möglichkeit, klar darzustellen, wie mehrere Anwendungen über einen Servicebus kommunizieren.

Das wäre super. Leider glaube ich nicht, dass Konfigurationen jeglicher Komplexität möglich sind. Ein Sequenzdiagramm für einfache Szenarien ist wahrscheinlich so gut wie alles andere.

Komponenten auf einem Bus veröffentlichen und abonnieren Nachrichten. Einige der Nachrichten können kausal zusammenhängen und ein Protokoll bilden. Es ist schwierig, dies grafisch darzustellen, insbesondere die Kausalzusammenhänge, wenn auf dem Bus mehr als ein Protokoll im Spiel ist.

Elektrische Busdiagramme gibt es schon lange

elektrisches Busdiagramm

aber sie befassen sich mit einer Menge einer einheitlichen Ware (elektrische Energie), nicht mit diskreten Signalen.

Ich mag es, Nachrichten anzuzeigen, die von jeder Komponente (und der Subkanal- / Themenstruktur, falls zutreffend) gesendet (rechts) und empfangen (links), aber auch für alles andere als die einfachsten Szenarien werden die Diagramme schnell unübersichtlich und nahezu unbrauchbar .

Geben Sie hier die Bildbeschreibung ein

Kehren wir also zu einer grundlegenderen Frage zurück: Was ist der Zweck des Diagramms? Was versuchst du zu zeigen?

Wenn Sie versuchen, kausale Beziehungen zwischen Komponenten und Nachrichten aufzuzeigen, sollte es in Ordnung sein, jeweils ein Protokoll mithilfe eines Sequenzdiagramms (oder eines Äquivalents) grafisch darzustellen.

Wenn Sie nur die Protokolle als Referenz anzeigen möchten, sollte das Einfügen von Nachrichten, die von jeder Komponente gesendet und empfangen werden, eine ausreichende Dokumentation sein, aber kausale / zeitliche Beziehungen gehen verloren.

Viel Glück und bitte lassen Sie uns wissen, wenn Sie etwas Besseres finden oder erfinden!


Vielen Dank, dass Sie sich die Zeit genommen haben, um zu antworten. Ja, für komplexe Orchestrierungen von Nachrichten ('Konversationen' innerhalb von 'Protokollen') sind sequentielle Diagramme in Ordnung. Im Moment versuche ich jedoch, einen allgemeinen Überblick darüber zu erhalten, welche Dienste für die Veröffentlichung eines bestimmten Nachrichtentyps verantwortlich sind und welche Dienste von einem bestimmten Nachrichtentyp betroffen sein können, nicht wirklich die Reihenfolge der beteiligten Nachrichten. Ich hoffe auf etwas Standardisiertes, aber wenn ich am Ende mein eigenes erfinden würde, würde es wahrscheinlich dem von Ihnen als Beispiel angegebenen elektrischen Busdiagramm sehr ähnlich sehen.
Pswg

@pswg: Gern geschehen. Beispieldiagramm hinzugefügt, das mit Balsamiq Mockups erstellt wurde. Ich benutze kleine Kreise, um die Verbindungspunkte hervorzuheben, falls ich Gateways oder andere Einschränkungen mit Anmerkungen versehen muss
Steven A. Lowe

Ja, so etwas würde funktionieren. Ich glaube, ich ziehe die kleinen Pfeile im Schaltplan einer Unterscheidung zwischen links und rechts vor, aber das gibt mir einige Ideen.
Pswg

@pswg: Ich habe festgestellt, dass die kleinen Pfeile größeren Diagrammen im Weg stehen;) Elektrische Komponenten verbrauchen und produzieren selten (wie ich gesehen habe) Strom, daher sind die Pfeile statisch. Deshalb habe ich mich (willkürlich) für die Unterscheidung zwischen links und rechts entschieden. Ich versuche auch, eingehende Nachrichten näher an der Box für die Komponente und ausgehende Nachrichten näher an der Buslinie zu platzieren - aber es ist definitiv keine ideale Lösung. Ich freue mich darauf zu sehen, was Sie sich einfallen lassen!
Steven A. Lowe
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.