Grizzly + Comet + Http Listener + Aplicação de Terceiro envia mensagem via socket

Prezados Bom dia,

Possuo o seguinte cenário, Tenho uma aplicação de terceiro que irá enviar uma mensagem de texto via socket para o meu AS, o meu AS deverá receber esta mensagem como HTTP é claro, e reenviar para os clientes esta mensagem.

Pensei em usar o Grizzly para enviar a mensagem via socket para o AS. E pro meu As enviar para os clientes eu pensei no Comet, DWR.

Minha dúvida é como vou fazer esta mensagem sair do servidor do terçeiro via TCP e chegar no meu AS via HTTP.

Oi!

Bem vindo ao forum!

Perguntas:

  1. O software de terceiros foi construido utilizando qual linguagem?

  2. Você liberdade para utilizar os fontes do software de terceiro?

  3. Os clients do seu AS foram feitos utilizando JSP, JavaScript ou swing?

  4. Qual é o seu AS?

flws

Olá,

  1. Foi construido em C++.

  2. Não, somente abrirá uma conexão com a máquina que está o meu AS e enviará a mensagem.

  3. Os clients serão web, provavelmente jsp, dwr.

  4. O AS tem que ser o container Tomcat, porque minha aplicação exibirá dados em um mapa que somente roda no tomcat.

Obrigado

[quote=lucaslessa]Prezados Bom dia,

Possuo o seguinte cenário, Tenho uma aplicação de terceiro que irá enviar uma mensagem de texto via socket para o meu AS, o meu AS deverá receber esta mensagem como HTTP é claro, e reenviar para os clientes esta mensagem.

Pensei em usar o Grizzly para enviar a mensagem via socket para o AS. E pro meu As enviar para os clientes eu pensei no Comet, DWR.

Minha dúvida é como vou fazer esta mensagem sair do servidor do terçeiro via TCP e chegar no meu AS via HTTP.

[/quote]

Se o cliente manda via TCP, o servidor recebe em TCP. Se um manda HTTP, o outro recebe HTTP. E por aí vai. Não existe essa de mandar de um jeito e receber de outro.

Também, servidor de AS não ouve só HTTP. Tem também EJBs remotos e filas JMS.

Partindo dessa correção, sugiro criar uma aplicação intermediária, fora do conteiner, que faz basicamente isso:

a) ouve o socket TCP
b) reeenvia o pacote para uma fila JMS do servidor de aplicação.

Essa é a parte fácil.

A parte difícil é você transformar o que recebeu na fila em notificações para clientes conectados via HTTP. Obter mensagem da fila não é difícil (pode usar EJB), ruim é mandar pros clientes web (vai precisar usar muito o Google).

Obrigado Leonardo,

A parte do servidor avisar os browsers é tranquila posso uar o DWR Comet que funciona belezinha.

Acho que vou ter mais trabalho nas outras o JMS com EJB.

Abraços