Archyno
UMLStrukturdiagramme

UML-Verteilungsdiagramme

Was wo läuft. Knoten, die darauf verteilten Artefakte und die Verbindungen dazwischen - das Diagramm, das ein Infrastruktur-Review, ein Security-Review oder ein Vorfall um drei Uhr nachts tatsächlich braucht.

7 Min. LesezeitUML 2.5.121 von 35

Die kurze Antwort

  • Artefakte werden auf Knoten verteilt; Knoten werden auf nichts verteilt. Ein JAR ist ein Artefakt, die JVM, die es ausführt, ist ein Knoten.
  • Ein Gerät ist Hardware, eine Ausführungsumgebung ist Software, die andere Software beherbergt. Beide sind Knoten, und die Umgebung steckt im Gerät.
  • Die einfache Linie zwischen Knoten ist ein Kommunikationspfad. Beschriften Sie sie mit dem Protokoll - genau das macht das Diagramm im Security-Review nützlich.
  • Das ist kein informelles Architekturbild. Knoten, Artefakte, deploy und Kommunikationspfade haben definierte Semantik, also sind sich zwei Leser über die Aussage einig.
UML-Verteilungsdiagramm. Ein Browser-Gerät kommuniziert über HTTPS mit einer Kubernetes-Cluster-Umgebung, die zwei Artefakte enthält, checkout.jar und orchestrator.jar. Der Cluster spricht über TCP auf Port 5432 mit einem PostgreSQL-16-Gerät.
Ein Verteilungsdiagramm. Die dreidimensionalen Kästen sind Knoten - Dinge, die rechnen oder speichern. Die flachen Kästen darin sind Artefakte, und dass sie innen gezeichnet sind, sagt genau das: dort sind sie verteilt.

01Was es zeigt#

Ein Verteilungsdiagramm bildet Software auf Hardware ab. Es ist das einzige UML-Diagramm über die physische Welt - Maschinen, Container, Netzwerkverbindungen - und es beantwortet eine Frage, die kein anderes beantwortet: wenn diese Kiste abbrennt, was hört auf zu funktionieren?

Es ist außerdem das Diagramm, um das am ehesten jemand bittet, der nicht entwickelt. Sicherheitsprüfungen, Notfallwiederherstellungspläne, Fragen zum Speicherort von Daten und Kostengespräche beginnen alle bei „wo läuft das eigentlich und was spricht mit was“.

02Knoten, Artefakte, Pfade#

ElementNotationWas es bedeutet
Knotendreidimensionaler KastenEtwas, das rechnet oder speichert. Der allgemeine Fall; die beiden Stereotypen darunter verengen ihn.
Gerätdreidimensionaler Kasten, «device»Physische Hardware: Server, Telefon, Load Balancer, Datenbank-Host.
Ausführungsumgebungdreidimensionaler Kasten, «executionEnvironment»Software, die andere Software beherbergt: JVM, Container-Runtime, Kubernetes-Cluster, Serverless-Plattform.
ArtefaktRechteck, «artifact»Die physische Datei, die verteilt wird: ein Jar, ein Image, eine Binärdatei, eine Konfigurationsdatei. Benennen Sie sie wie die echte Datei.
VerteilungVerschachtelung oder «deploy»-PfeilDieses Artefakt läuft auf jenem Knoten. Es hineinzuzeichnen ist klarer als ein Pfeil, wenn es passt.
Kommunikationspfadschlichte durchgezogene LinieZwei Knoten können miteinander sprechen. Beschriften Sie ihn mit Protokoll und Port - genau darin liegt der Wert.

03Wie viel Detail#

Verteilungsdiagramme verfallen schneller als jede andere Art, weil Infrastruktur sich wöchentlich ändert und Diagramme nicht. Ein solches Diagramm bleibt nur nützlich, wenn Sie es auf der Höhe zeichnen, die sich langsam ändert.

Zeichnen Sie Topologie, keine Inventarliste. „Kubernetes-Cluster“ bleibt jahrelang wahr. „Drei m5.large-Instanzen in eu-central-1b“ ist im nächsten Quartal falsch und gehört in das Infrastructure-as-Code-Repository, den einzigen Ort, an dem es richtig sein kann.

Beschriften Sie die Verbindungen. Eine Linie, die nichts sagt, ist fast wertlos; eine Linie, die TCP 5432, HTTPS oder AMQP over TLS sagt, ist der Grund, aus dem ein Sicherheitsprüfer das Diagramm überhaupt liest. Dasselbe gilt für Vertrauensgrenzen - wenn eine Verbindung Ihr Netz in Richtung eines fremden verlässt, sagen Sie es.

Zeichnen Sie Multiplizität dort, wo sie zählt. Ein Knoten kann eine Multiplizität tragen wie eine Klasse. 1..* am Anwendungsknoten und 1 an der Datenbank sagt etwas Echtes über die Ausfallmodi des Systems.

04Wann eines zu zeichnen ist#

Dazu greifen, wenn

  • Sicherheitsprüfung oder Compliance - was überschreitet welche Grenze und mit welchem Protokoll
  • Notfallwiederherstellung und Ausfallanalyse - was ist einzeln, was ist redundant
  • Jemanden einarbeiten, der das System betreiben und nicht nur ändern soll
  • Fragen zum Speicherort von Daten: welche Daten liegen in welcher Rechtsordnung

Zu etwas anderem greifen, wenn

  • Das ganze System ist ein Prozess auf einer Maschine
  • Ihr Infrastructure-as-Code beschreibt es bereits und wird wirklich gelesen
  • Sie denken über logische Dienste und Verträge nach - nehmen Sie ein Komponentendiagramm
  • Es müsste jeden Sprint aktualisiert werden, um wahr zu bleiben

05Häufige Fehler#

  1. Unbeschriftete Kommunikationspfade.Protokoll und Port sind der Inhalt. Ohne sie sagt eine Linie nur „diese sind verbunden“.
  2. Komponenten dort gezeichnet, wo Artefakte hingehören. Knoten beherbergen Dateien. Setzen Sie checkout.jar auf den Knoten und lassen Sie Checkout im Komponentendiagramm.
  3. Instanzdetails, die nicht wahr bleiben können. Hostnamen und Instanzgrößen gehören in den Code, nicht in ein Diagramm.
  4. Keine Vertrauensgrenzen. Wenn einige Knoten Ihnen gehören und andere einem Dritten, ist diese Unterscheidung oft das Wichtigste auf der Seite.
  5. Ein Diagramm pro Umgebung. Zeichnen Sie die Produktion. Notieren Sie Unterschiede im Text; zeichnen Sie nicht vier fast identische Diagramme, die auseinanderlaufen.

In je einer Zeile

  1. 01Das einzige UML-Diagramm über die physische Realität: was wo läuft und was mit was spricht.
  2. 02Knoten rechnen oder speichern; «device» ist Hardware, «executionEnvironment» ist beherbergende Software.
  3. 03Artefakte sind Dateien - Jars, Images, Binärdateien - und sie in einen Knoten zu verschachteln heißt, dass sie dort verteilt sind.
  4. 04Beschriften Sie Kommunikationspfade immer mit Protokoll und Port.
  5. 05Zeichnen Sie die Topologie, die sich langsam ändert; die Inventarliste überlassen Sie dem Infrastructure-as-Code.
  6. 06Markieren Sie Vertrauensgrenzen - dafür sind die Prüfer gekommen.

06Häufige Fragen#

Was unterscheidet einen Knoten von einem Artefakt?

Ein Knoten ist Hardware oder eine Ausführungsumgebung: ein Server, ein Container, eine JVM. Ein Artefakt ist eine physische Datei aus der Entwicklung, etwa ein JAR, ein Image oder eine Konfigurationsdatei. Artefakte werden auf Knoten verteilt; Knoten werden auf nichts verteilt.

Was unterscheidet ein Gerät von einer Ausführungsumgebung?

Beide sind Knoten. Ein Gerät ist physische oder virtuelle Hardware, mit dem Schlüsselwort device markiert. Eine Ausführungsumgebung ist Software, die andere Software beherbergt, etwa ein Anwendungsserver oder eine Container-Laufzeit, und wird normalerweise verschachtelt im Gerät gezeichnet, das sie ausführt.

Was ist ein Kommunikationspfad?

Die einfache Linie zwischen zwei Knoten, die besagt, dass sie Nachrichten austauschen können. Sie ist meist mit Protokoll oder Netz beschriftet - genau das macht ein Verteilungsdiagramm in einem Infrastruktur- oder Security-Review nützlich.

Ist ein Verteilungsdiagramm dasselbe wie ein Architekturdiagramm?

Nein. Die meisten sogenannten Architekturdiagramme sind informelle Kästen und Pfeile. Ein Verteilungsdiagramm ist ein UML-Strukturdiagramm mit definierter Semantik: Knoten, Artefakte, die deploy-Beziehung und Kommunikationspfade - zwei Leser sind sich also einig, was es behauptet.

In dieser Reihe

Passend dazu

Alle Artikel