Inhaltsverzeichnis

Multiknotenkommunikation via HTTP

Eine Kommunikation1) zwischen verschiedenen eBiss Systemen oder eBiss Knoten lässt sich via HTTP darstellen. Diese sieht sequentiell wie folgt aus:

eBiss\nKnoten A->URL&Port: HttpSendChannel URL&Port-->eBiss\nKnoten B: PortEventListener eBiss\nKnoten B->eBiss\nKnoten B:Job\nmit\nChannelReceiver URL&Port->eBiss\nKnoten B: HTTPReceiveChannel

Für die Multiknotenkommunikation wird also unterschieden zwischen einem sendenden- und einem empfangenden System/Knoten. Das empfangende System benötigt folglich einen HttpReceiveChannel welcher auf eine spezifizierte URL und Port empfängt. Damit dieser Kommunikationskanal geöffnet werden kann, brauch es zusätzlich einen Port Eventlistener der auf der selben URL(und Port) horcht und im Ereignisfall einen Job antriggert, welcher den vorher definierten Kommunikationskanal öffnet. Im sendenden System bedarf es lediglich eines HttpSendChannel der auf die im Zielknoten eingerichtete URL sendet.

Notwendige Einstellungen im empfangenden System

KomponenteBeschreibung
HttpReceiveChannelDort muss die Option MultiMessages per anhaken der CheckBox aktiviert werden. Dies erlaubt das der HttpChannelSender mehr als eine (alle vorhandenen) Nachrichten, die an die exakt gleiche URL gehen über eine Verbindung zu senden. Das ist besonders bei localhost-Übergaben sinnvoll. Durch diese Optimierung läuft nur ein Thread für alle Nachrichten.
Port Eventlistener URL und dedizierter Port
ChannelReceiverIn einem Job, welcher vom Port Eventlistener getriggert wird und den HttpReceiveChannel öffnet.

Notwendige Einstellungen im sendenden System

KomponenteBeschreibung
HttpSendChannelDort muss die Option UsePlainHttpSender per anhaken der CheckBox aktiviert werden. Dies veranlasst, dass nicht mehr der System.Net.HttpClient verwendet, sondern ein eigener, der schneller ist und eben auch MultiMessages (s.u.) unterstützt. Jedoch ist es so, dass diese keien Proxy-Settings und ähnliches unterstützten.

Desweiteren muss die Option MultiMessages per anhaken der CheckBox aktiviert werden. Mit dieser Einstellung wird das Gegenstück zu den Einstellungen beim ChannelReceiver(des empfangenden Systems/Knotens) gesetzt.

Nur wenn diese beiden Optionen gesetzt sind und auch UsePlainHttpSender, funktioniert dieses MultiMessage Feature.
ChannelSenderSortMessageyByRecipientAddress auf true setzen. Dadurch werden die Nachrichten entsprechend sortiert.
1)
auch Interknotenkommunikation