Mensagens Assíncronas. Qual o caminho?

olá pessoal. Estou desenvolvendo uma aplicação que involve comunicação assíncrona, trata-se de um sistema base para rastreamento utilizando gps.
É o seguinte, eu tenho uma aplicação cliente que irá usar meu sistema da seguinte forma:
1- Aplicação escreve XML com requisição de serviço, por exemplo, requisitando ser notificada quando um veículo sair de um perímetro.
2- Meu sistema recebe XML, verifica o serviço requisitado e realiza o registro da Aplicação.

Depois que a Aplicação cliente está registrada, ela poderá aguardar notificações quando o evento solicitado acontecer.

1- Meu sistema detecta que o veículo saiu do perímetro
2- Envia XML de notificação à aplicação cliente.

Bem… a intençao é utilizar o velho modelo Publish/Subscribe entre um sistema java e outra linguagem qualquer.
Me parece que devo utilizar JMS… mas JMS não seria só entre java e java? Ou JMS depende de quem a implementa?
Qual implementação de JMS servirá pra mim? Ou JMS não é o caminho? Qual o caminho?

Talvez eu esteja querendo muito perguntando isso… mas quem sabe algum filho de Deus me dê uma luz. =D

vlw!

[quote=thiagorosa]olá pessoal. Estou desenvolvendo uma aplicação que involve comunicação assíncrona, trata-se de um sistema base para rastreamento utilizando gps.
É o seguinte, eu tenho uma aplicação cliente que irá usar meu sistema da seguinte forma:
1- Aplicação escreve XML com requisição de serviço, por exemplo, requisitando ser notificada quando um veículo sair de um perímetro.
2- Meu sistema recebe XML, verifica o serviço requisitado e realiza o registro da Aplicação.

Depois que a Aplicação cliente está registrada, ela poderá aguardar notificações quando o evento solicitado acontecer.

1- Meu sistema detecta que o veículo saiu do perímetro
2- Envia XML de notificação à aplicação cliente.

Bem… a intençao é utilizar o velho modelo Publish/Subscribe entre um sistema java e outra linguagem qualquer.
Me parece que devo utilizar JMS… mas JMS não seria só entre java e java? Ou JMS depende de quem a implementa?
Qual implementação de JMS servirá pra mim? Ou JMS não é o caminho? Qual o caminho?

Talvez eu esteja querendo muito perguntando isso… mas quem sabe algum filho de Deus me dê uma luz. =D

vlw![/quote]

Tradicionalmente Mensagem = JMS para Java com Java. Acho - não tenho a certeza- que pode até ser compativel com outro sistema de menssageria através de algum adpatador.
O ponto é que o JMS não funciona com XML ( pode até funcional via HTTP , mas não é explicito o uso de XML).
Acho que, talvez, no seu caso seria melhor usar webservices REST ( ou SOAP … )

Um servidor qualquer do seu cliente envia uma requisição de registro via XML para um Webservice seu. Nele está incluindo um endereço de callback que corresponde a um webservice com uma interface que vc define. Quando o evento acontece vc invoca o webservice do cliente. Desta forma vc ganha uma arquitetura baseada em serviços e consegue desacoplar as tencologias.

Agora, se vc visa um cliente especifico que usa JMS , então é melhor disponibilizar um Topic JMS para o registro.
(claro que uma coisa não impede a outra e vc pode ter os dois, mas acho que o webservice é mais genérico)

[quote=thiagorosa]olá pessoal. Estou desenvolvendo uma aplicação que involve comunicação assíncrona, trata-se de um sistema base para rastreamento utilizando gps.
É o seguinte, eu tenho uma aplicação cliente que irá usar meu sistema da seguinte forma:
1- Aplicação escreve XML com requisição de serviço, por exemplo, requisitando ser notificada quando um veículo sair de um perímetro.
2- Meu sistema recebe XML, verifica o serviço requisitado e realiza o registro da Aplicação.

Depois que a Aplicação cliente está registrada, ela poderá aguardar notificações quando o evento solicitado acontecer.

1- Meu sistema detecta que o veículo saiu do perímetro
2- Envia XML de notificação à aplicação cliente.

Bem… a intençao é utilizar o velho modelo Publish/Subscribe entre um sistema java e outra linguagem qualquer.
Me parece que devo utilizar JMS… mas JMS não seria só entre java e java? Ou JMS depende de quem a implementa?
Qual implementação de JMS servirá pra mim? Ou JMS não é o caminho? Qual o caminho?

Talvez eu esteja querendo muito perguntando isso… mas quem sabe algum filho de Deus me dê uma luz. =D

vlw![/quote]

Oi,

O que você precisa é utilizar algo como o Websphere MQ junto com algum servidor de aplicação que será responsável por criar os Message Driven Beans do EJB para consumir as filas

Caso não esteja disposto ou não possa pagar por uma ferramenta dessa existe uma solução da Apache que talvez resolva o problema

A ferramenta da IBM eu utilizo mas a da Apache eu nunca usei

Abs

vlw d+ a ajuda. Vou pesquisar sobre o que me falaram e ver se resolve meu problema. Quem tiver outras opiniões ficaria grato em ler =).

Você pode usar JMS -que posui compatibilidade com a maioria das plataformas de messaging - ou optar uma abordagem mais HTTP. Duas abordagens HTTP seriam usando um feed Atom ou RSS para informar a resposta do processamento ou usando uma URI de callback (quando o cliente requisita algo ele manda junto uma URL para onde deve er enviado o retorno). Outras soluções são XMPP e um servidor de email normal.

A melhor solução varia com o problema mas no seu caso me parece que JMS pode ser o ideal.

Faça um protótipo com xmpp:
http://www.xmpp.org/extensions/xep-0060.html