Knoten (UML)
# Knoten (UML)

Ein Knoten (engl. Node) ist ein Modellelement in der Unified Modeling Language (UML), einer Modellierungssprache für Software und andere Systeme.

## Beschreibung

Ein Knoten repräsentiert ein Element in einem Rechnernetzwerk, auf das bei der Verteilung von Software Artefakte installiert werden können. Knoten ist ein sehr allgemeines Konzept, das auf zwei Arten konkretisiert werden kann. Erstens bietet die UML mit den beiden Modellelementen Gerät und Ausführungsumgebung zwei Spezialisierungen an. Zweitens können UML-Profile mit Hilfe von Stereotypen spezielle Knoten, zum Beispiel einen ApplikationsServer, einen Arbeitsplatzrechner oder eine DatenbankInstanz, definieren.

Ein Knoten wird graphisch als dreidimensionale Sicht auf einen Quader dargestellt.

## Spezielle Knoten

### Gerät

Ein Gerät (engl. Device) ist eine physische Ressource, zum Beispiel ein Rechner oder ein Speicherbereich.

Geräte werden mit dem Stereotyp «device» markiert.

### Ausführungsumgebung

Eine Ausführungsumgebung (engl. ExecutionEnvironment) ist ein Knoten, auf den bestimmte Arten von Komponenten installiert werden können. Typischerweise würde ein Java-Applikationsserver, auf dem Enterprise Java Beans installiert werden, als Ausführungsumgebung modelliert.

Ausführungsumgebungen werden mit dem Stereotyp «executionEnvironment» markiert.

## Verschachteln von Knoten

Die UML2 erlaubt, Knoten zu verschachteln. Das kann nützlich sein, wenn man ausdrücken will, dass eine Server-Software auf einem bestimmten Rechner läuft. Der Rechner wird dann als Gerät modelliert, die Server-Software als Ausführungsumgebung. Indem man die beiden Geräte verschachtelt, der Rechner außen und die Ausführungsumgebung innen, drückt man aus, dass die Ausführungsumgebung auf dem Rechner läuft. Graphisch wird die Ausführungsumgebung dazu im Innern des Geräts gezeichnet, siehe Abbildung rechts.

## Vernetzen von Knoten

Rechner sind häufig Teil eines Netzwerks, und eine Modellierungssprache sollte ermöglichen, dass diese Beziehungen zwischen Rechnern modelliert werden können. In der UML2 können Verbindungen zwischen Knoten als Kommunikationspfade, einer Spezialisierung von Assoziation, modelliert werden. Ein Kommunikationspfad zwischen zwei Knoten drückt aus, dass die beiden Knoten Signale und Nachrichten austauschen können.

Kommunikationspfade müssen nicht zwingend bei Knoten beginnen oder enden. Als Endpunkte kommen alle Modellelemente in Frage, die als Ziel einer Verteilung vorgesehen sind. Dazu gehört insbesondere auch die Ausprägungsspezifikation.

