Mithilfe von WebSphere Message Broker können Sie Verbindungen mit Anwendungen herstellen, die reine TCP/IP-Sockets zur Übertragung von Daten verwenden.
TCP/IP-Sockets bieten eine einfache Möglichkeit, Computerprogramme miteinander zu verbinden. Dieser Schnittstellentyp wird normalerweise zu vorhandenen Standalone-Anwendungen hinzugefügt. TCP/IP stellt einen Mechanismus zur Übertragung von Daten zwischen zwei Anwendungen bereit, die auf verschiedenen Computern aktiv sein können. Die Datenübertragung erfolgt bidirektional; solange die TCP/IP-Verbindung aufrechterhalten wird und keine Daten verloren gehen, bleibt die Sequenz der Daten erhalten. Ein wesentlicher Vorteil der direkten Nutzung von TCP/IP besteht darin, dass es schnell und einfach zu konfigurieren ist. Dadurch wird es zu einem hilfreichen Mechanismus für Prozesse, die keine Nachrichtenpersistenz erfordern (z. B. Überwachungsprozesse).
Allerdings gelten für die Verwendung von TCP/IP-Sockets zur Übertragung von Informationen zwischen Programmen einige Einschränkungen:
Aus diesen Gründen kann es empfehlenswert sein, einen Transportmechanismus wie WebSphere MQ zu verwenden, für den diese Einschränkungen nicht gelten. Wenn jedoch bereits Anwendungen vorhanden sind, die reine TCP/IP-Sockets zur Datenübertragung verwenden, können Sie über WebSphere Message Broker-TCP/IP-Knoten Verbindungen zu den Anwendungen herstellen, ohne sie für WebSphere MQ aktivieren zu müssen. Dies ermöglicht die schnelle Entwicklung einer WebSphere Message Broker-Lösung.
Eine TCP/IP-Verbindung zwischen zwei Anwendungen besteht aus einem Client-Ende und einem Server-Ende, d. h., eine Anwendung agiert als Server und die andere als Client. Die Begriffe Client und Server beziehen sich lediglich auf den Mechanismus zur Herstellung einer Verbindung; sie beziehen sich nicht auf das Datenaustauschmuster. Nachdem die Verbindung hergestellt wurde, können Client und Server dieselben Operationen durchführen und beide können Daten senden und empfangen. Das folgende Diagramm zeigt die Standorte von Client- und Serveranwendungen:
Der Server kann weitere Verbindungen von anderen Clientanwendungen annehmen. Diese Verbindungen können im selben Prozess, in einem anderen Prozess auf demselben Computer oder auf einem anderen Computer liegen:
Es kann nur eine Serveranwendung vorhanden sein, aber beliebig viele verschiedene Clientprozesse können Verbindungen mit der Serveranwendung herstellen. Bei jeder dieser Anwendungen (Client oder Server) kann es sich um Multithread-Anwendungen handeln, also um Anwendungen, die mehrere Verbindungen verwenden können.
Nachdem die Verbindung hergestellt wurde, existieren zwei Datenströme: einer für ankommende Daten und ein anderer für abgehende Daten:
Client- und Server-Ende der Verbindung sind identisch und können beide dieselben Operationen durchführen. Der einzige Unterschied besteht darin, dass der Ausgabedatenstrom des Clients der Eingabedatenstrom des Servers ist, und der Eingabedatenstrom des Clients der Ausgabedatenstrom des Servers.
Die beiden Datenströme sind völlig unabhängig voneinander, sodass von beiden Enden gleichzeitig auf sie zugegriffen werden kann. Der Client muss keine Daten senden, bevor der Server Daten sendet.
Das im vorherigen Diagramm dargestellte Beispiel kann dahingehend vereinfacht werden, dass es den Zugriff des Clients und Servers auf ein Socket zeigt, das über einen Eingabedatenstrom und einen Ausgabedatenstrom verfügt: