O serviço de sistema de mensagens da Web é uma implementação de publicação ou de assinatura que conecta o navegador ao barramento de integração de serviços (SIB) do WebSphere® Application Server para envio de eventos do lado do servidor. A comunicação de cliente/servidor é obtida por meio do protocolo Bayeux. O protocolo Bayeux é um protocolo de roteamento do sistema de mensagens baseado em HTTP. Para obter informações adicionais, consulte o website do Bayeux
e cometd. Suporte a clientes para o protocolo Bayeux é fornecido pelo Dojo Toolkit. Atualmente, o Dojo Toolkit é a única biblioteca
JavaScriptTM para suportar o protocolo Bayeux.
Mesmo assim, qualquer biblioteca JavaScriptTM ou cliente HTTP
que implementa o suporte para o protocolo Bayeux pode se comunicar com
o serviço de sistema de mensagens da Web. A implementação do serviço de sistema de mensagens da Web faz ponte dos pedidos que chegam do Bayeux para o barramento de integração de serviços, permitindo que serviços da Web, clientes de JMS ou qualquer item conectado ao barramento de integração de serviços publique eventos para clientes baseados na Web. É possível utilizar o serviço de sistema de mensagens da Web em um aplicativo novo ou existente, colocando um arquivo JAR (Java archive) de tempo de execução no WebSphere Application Server, colocando um arquivo JAR da biblioteca do arquivo do utilitário em um módulo da Web do aplicativo, configurando um simples arquivo de configuração e configurando mapeamentos de servlet.
Figura 1: Arquitetura Geral:
Em um aplicativo comum, um navegador periodicamente solicita atualizações a partir de um servidor em um intervalo ou sondagem especificada. Os tipos de comunicação do protocolo Bayeux diferem do modelo de sondagem tradicional e a comunicação é feita por uma conexão HTTP de longa duração, em que um servidor normalmente mantém uma conexão aberta por determinado tempo para aguardar um evento ser enviado para o navegador. Com esse estilo de comunicação, o contêiner de Web não pode escalar porque cada cliente em espera consome um encadeamento aguardando um evento. Outros servidores que manipulam esse estilo de pedido têm diferentes métodos para escalar. Como o serviço de sistema de mensagens da Web é projetado para funcionar com versões existentes do WebSphere Application Server e o contêiner de Web atual não tem a capacidade de escalar bem com esse método de comunicação, um novo mecanismo é introduzido no serviço de sistema de mensagens da Web para obter escalabilidade.
Esse novo mecanismo tira vantagem da arquitetura de estrutura de canal e cria novo canal de estrutura de canal que estende o canal de HTTP para fazer ponte dos pedidos que chegam do Bayeux para o barramento de integração de serviços.
O suporte do navegador atual para o serviço de sistema de mensagens da Web é tornado possível com o módulo do cliente de cometd do kit de ferramentas do Dojo. As operações de inicialização, assinatura, cancelamento de assinatura e publicação são fáceis de realizar com o cliente cometd. Através do cliente cometd, os eventos dirigidos pelo servidor são integrados no sistema de eventos e tópicos do Dojo. Exemplos de uso do cometd do Dojo são fornecidos no guia de desenvolvedores do Ajax e no aplicativo QuoteStreamer Sample.
O serviço de sistema de mensagens da Web conecta os clientes do navegador ao mecanismo do sistema de mensagens interno e o barramento de integração de serviços para assinar e publicar eventos e receber mensagens. A ponte subjacente para o barramento de integração de serviços ocorre por meio de chamadas de API diretas em um espaço de tópico de barramento de integração de serviços. Há várias maneiras para publicar mensagens para clientes da Web, pois eles são conectados ao barramento de integração de serviços. Algumas dessas opções incluem: a publicação de EJB (Enterprise JavaBeans) padrão para um tópico, a publicação de um cliente de JMS para um tópico, um serviço da Web ou o próprio cliente da Web publicando para outros clientes da Web.