É possível utilizar WebSphere Message Broker para conectar aplicativos que usam soquetes TCP/IP não processados para tranferir dados.
Os soquetes TCP/IP fornecem uma maneira simples de conectar programas de computador e este tipo de interface é comumente incluído em aplicativos independentes existentes. O TCP/IP fornece um mecanismo para transferir dados entre dois aplicativos, que podem ser executados em diferentes computadores. A transferência de dados é bidirecional; desde que a conexão TCP/IP seja mantida e nenhum dado seja perdido, a sequência dos dados é mantida. Uma vantagem significativa de usar o TCP/IP diretamente é que ele é rápido e simples de configurar, o que o torna um mecanismo útil para processos que não requerem persistência de mensagem (por exemplo, monitoramento).
No entanto, a utilização de soquetes TCP/IP para transferir informações entre programas possui algumas limitações:
Por estas razões, pode ser preferível utilizar um mecanismo de transporte como o WebSphere MQ, que não possui nenhuma destas limitações. No entanto, se você tiver aplicativos existentes que usam soquetes TCP/IP brutos para transferir dados, poderá usar os nós TCP/IP do WebSphere Message Broker para conectar-se aos aplicativos, sem precisar ativá-los para WebSphere, de forma que posa desenvolver uma solução WebSphere Message Broker rapidamente.
Uma conexão TCP/IP entre dois aplicativos possui uma extremidade de cliente e uma extremidade de servidor, que significa que um aplicativo age como um servidor e o outro age como um cliente. Os termos cliente e servidor referem-se apenas ao mecanismo utilizado para estabelecer uma conexão; eles não se referem ao padrão de troca de dados. Quando a conexão tiver sido estabelecida, o cliente e o servidor poderão desempenhar as mesmas operações e ambos poderão enviar e receber dados. O diagrama a seguir ilustra os locais de aplicativos cliente e do servidor:
O servidor pode aceitar mais conexões de outros aplicativos clientes. Estas conexões podem estar no mesmo processo, em um processo diferente no mesmo computador ou em um computador diferente:
Pode existir apenas um aplicativo do servidor, mas qualquer número de processos de cliente diferentes pode se conectar ao aplicativo do servidor. Qualquer um destes aplicativos (cliente ou servidor) pode ser multiencadeado, o que permite que utilizem várias conexões.
Quando a conexão tiver sido estabelecida, existirão dois fluxos de dados: um para dados de entrada e outro para dados de saída:
As extremidades do cliente e do servidor da conexão são idênticas e ambas podem desempenhar as mesmas operações. A única diferença entre elas é que o fluxo de saída do cliente é o fluxo de entrada do servidor e o fluxo de entrada do cliente é o fluxo de saída do servidor.
Os dois fluxos de dados são independentes e podem ser acessados simultaneamente a partir de ambas as extremidades. O cliente não precisa enviar dados antes do servidor.
O exemplo ilustrado no diagrama anterior pode ser simplificado da seguinte maneira, mostrando que o cliente e o servidor possuem acesso a um soquete que possui um fluxo de entrada e um fluxo de saída: