Message (Entwurfsmuster)
# Message (Entwurfsmuster)

Message (von englisch message ‚Nachricht‘) ist ein Entwurfsmuster in der Softwarearchitektur und -entwicklung aus der Kategorie Nachrichtenerzeugung im Werk Enterprise Integration Patterns von Gregor Hohpe und Bobby Woolf.

## Anforderung

Ein Unternehmen hat zwei separate Anwendungen, die per Nachrichtenübermittlung über einen, die beiden verbindenden, Nachrichtenkanal kommunizieren.

### Frage

Wie können zwei Anwendungen, die über einen Nachrichtenkanal miteinander verbunden sind, Informationen und Daten austauschen?

### Antwort

Die Informationen werden in eine Nachricht (Message), in einen Datensatz den das Nachrichtenübertragungssystem über einen Nachrichtenkanal übertragen kann, gepackt. Diese Nachricht besteht aus zwei Teilen:

* dem Header, der, unter anderem, die zu übertragenden Daten beschreibt, sowie den Ursprung und das Ziel der Nachricht enthält
* dem Body, der die zu übertragenden Daten enthält.

## Grundlage weiterer Muster

Andere Entwurfsmuster wie Command Message, Document Message und Event Message verwenden das Entwurfsmuster Message um unterschiedliche Nachrichtenarten zu repräsentieren. Muss ein Datensatz aufgeteilt werden, weil er zu groß ist, können die Teile entsprechend dem Entwurfsmuster Message Sequence als dann wiederum einzelne Nachrichten übermittelt werden, deren Header zusätzlich mit Informationen zur Bestimmung der Reihenfolge versehen ist.

## Implementierungsbeispiel

Beispiel einer Implementierung in Java:

## Verwendungsbeispiel

In den folgenden Beispielen in Java wird die DSL von Apache Camel verwendet, das auf den Enterprise Integration Patterns basiert.

## Verwandte Muster

Andere Muster aus der Kategorie Nachrichtenerzeugung (Message Construction) sind Command Message, Document Message, Event Message, Request-Reply, Return Address, Correlation Identifier, Message Sequence, Message Expiration und Format Indicator.

