Método de comunicação entre 2 serviços jsf

16 respostas
V

Olá pessoal, gostaria de saber uma forma onde consigo fazer 2 serviços web (JSF) se comunicarem, exemplo.
Aplicativo web 1 jsf precisa fazer um processamento que so o Aplicativo web 2 jsf faz, então eu invoco ele abrindo uma janela passando alguns paramentros, quando eu termino de executar o Aplicativo web 2 jsf, eu gostaria que ele avisa-se o aplicativo 1 que o processo foi feito.

eu poderia fazer via sockets, mas não sei se é a melhor forma.

16 Respostas

V

Mais ou menos como ser fosse um produtor e consumidor.
Aplicação 1 produz o número 10.
Aplicação 2 consome o número 10, processa ele, e produz o número 15.
a Aplicação 1 consome o número 15.

D

Amigo, facil facil. Só é utilizar WebServices ^_^.

O bom mesmo seria, vc criar um serviço back end e distribuir os “metodos” dele para os seus 2 sistemas JSF.

Entendeu?

A

Não sei se entendi direito seu problema mas acho que tenho a resposta.

Vc falou que precisa se comunicar entre aplicações java web, tem a api Java Message Service dentro do seu servidor

Se fosse entre outras aplicações de diferentes linguagens recomendaria fazer em Web Service

D

AndreBonatti:
Não sei se entendi direito seu problema mas acho que tenho a resposta.

Vc falou que precisa se comunicar entre aplicações java web, tem a api Java Message Service dentro do seu servidor

Se fosse entre outras aplicações de diferentes linguagens recomendaria fazer em Web Service
http://pt.wikipedia.org/wiki/Web_service

Amigo, mesmo em linguagens iguais, a distribuição de serviços em mais de um sistema, é altamente recomendável a utilização de Web Services, pois tem um alto padrão arquitetural. A forma mais facil de se fazer isso é utilizando o RestEasy : http://www.jboss.org/resteasy/

V

darksteel3000:
AndreBonatti:
Não sei se entendi direito seu problema mas acho que tenho a resposta.

Vc falou que precisa se comunicar entre aplicações java web, tem a api Java Message Service dentro do seu servidor

Se fosse entre outras aplicações de diferentes linguagens recomendaria fazer em Web Service
http://pt.wikipedia.org/wiki/Web_service

Amigo, mesmo em linguagens iguais, a distribuição de serviços em mais de um sistema, é altamente recomendável a utilização de Web Services, pois tem um alto padrão arquitetural. A forma mais facil de se fazer isso é utilizando o RestEasy : http://www.jboss.org/resteasy/

darksteel3000 e AndreBonatti obrigado pelas respostas.
mas no exemplo de webservice, cada aplicação JSF teria que ter um WS? pois eu gostaria que a resposta fosse como um push.

exemplo: estou na pagina (xhtml) da aplicação_1, ai eu preciso de um processamento que so a aplicação_2 faz para mim, então eu chamo via popup-url a aplicação_2, ai no popup eu digito algumas informações e confirmo, no momento da confirmação a aplicação 1 pode voltar ao funcionamento.

o problema de ser webservice é que por exemplo vai que 2 pessoas estão utilizando a aplicação_1(que estão no mesmo servidor e utilizando a mesma porta)

V

darksteel3000:
Amigo, facil facil. Só é utilizar WebServices ^_^.

O bom mesmo seria, vc criar um serviço back end e distribuir os “metodos” dele para os seus 2 sistemas JSF.

Entendeu?

"O bom mesmo seria, vc criar um serviço back end e distribuir os “metodos” dele para os seus 2 sistemas JSF. "
eu acho que é esse serviço que eu quero mesmo. a duvida é como fazer isso.

V

AndreBonatti:
Não sei se entendi direito seu problema mas acho que tenho a resposta.

Vc falou que precisa se comunicar entre aplicações java web, tem a api Java Message Service dentro do seu servidor

Se fosse entre outras aplicações de diferentes linguagens recomendaria fazer em Web Service
http://pt.wikipedia.org/wiki/Web_service

Vou dar uma olhada nesse api java message service.

A

Olá victormenegusso,

Pelo que entendi do que vc quer é fazer uma requisição em tela do aplicativo 1 para aplicativo 2 , isso se resolveria fazendo um servlet no aplicativo 2, manda uma request do aplicativo 1, fazendo o processando do que vc precisa e retorna o resultado para aplicativo 1 …

victormenegusso:
darksteel3000:
AndreBonatti:
Não sei se entendi direito seu problema mas acho que tenho a resposta.

Vc falou que precisa se comunicar entre aplicações java web, tem a api Java Message Service dentro do seu servidor

Se fosse entre outras aplicações de diferentes linguagens recomendaria fazer em Web Service
http://pt.wikipedia.org/wiki/Web_service

Amigo, mesmo em linguagens iguais, a distribuição de serviços em mais de um sistema, é altamente recomendável a utilização de Web Services, pois tem um alto padrão arquitetural. A forma mais facil de se fazer isso é utilizando o RestEasy : http://www.jboss.org/resteasy/

darksteel3000 e AndreBonatti obrigado pelas respostas.
mas no exemplo de webservice, cada aplicação JSF teria que ter um WS? pois eu gostaria que a resposta fosse como um push.

exemplo: estou na pagina (xhtml) da aplicação_1, ai eu preciso de um processamento que so a aplicação_2 faz para mim, então eu chamo via popup-url a aplicação_2, ai no popup eu digito algumas informações e confirmo, no momento da confirmação a aplicação 1 pode voltar ao funcionamento.

o problema de ser webservice é que por exemplo vai que 2 pessoas estão utilizando a aplicação_1(que estão no mesmo servidor e utilizando a mesma porta)

D

Opa. Tipo, imagina que vc terá seu back-end, em outro projeto, toda a parte de acesso a dados estária nele. E daí, seus metodos seriam disponibilizados através de web services. O como fazer ja enviei um post atras que é o link do RestEasy, que é muito facil de usar, só levar la a documentação que desinrola.

Daí seus dados seriam trafegados atraves de JSON ou XML ( eu indico JSON xD ).

O funcionamento dele a principio é complicado, mas não é.

Imagina que seu projeto JSF vai acessar um link ( que será o link para seu metodod que esta no web service, tipo “http://localhost:8080/back-end/cliente/consultarTodos”) onde essa chamada vai retornar um dos tipos que falei acima.

O mesmo raciocinio é para o resto do CRUD.

D

AndreBonatti:
Olá victormenegusso,

Pelo que entendi do que vc quer é fazer uma requisição em tela do aplicativo 1 para aplicativo 2 , isso se resolveria fazendo um servlet no aplicativo 2, manda uma request do aplicativo 1, fazendo o processando do que vc precisa e retorna o resultado para aplicativo 1 …

victormenegusso:
darksteel3000:
AndreBonatti:
Não sei se entendi direito seu problema mas acho que tenho a resposta.

Vc falou que precisa se comunicar entre aplicações java web, tem a api Java Message Service dentro do seu servidor

Se fosse entre outras aplicações de diferentes linguagens recomendaria fazer em Web Service
http://pt.wikipedia.org/wiki/Web_service

Amigo, mesmo em linguagens iguais, a distribuição de serviços em mais de um sistema, é altamente recomendável a utilização de Web Services, pois tem um alto padrão arquitetural. A forma mais facil de se fazer isso é utilizando o RestEasy : http://www.jboss.org/resteasy/

darksteel3000 e AndreBonatti obrigado pelas respostas.
mas no exemplo de webservice, cada aplicação JSF teria que ter um WS? pois eu gostaria que a resposta fosse como um push.

exemplo: estou na pagina (xhtml) da aplicação_1, ai eu preciso de um processamento que so a aplicação_2 faz para mim, então eu chamo via popup-url a aplicação_2, ai no popup eu digito algumas informações e confirmo, no momento da confirmação a aplicação 1 pode voltar ao funcionamento.

o problema de ser webservice é que por exemplo vai que 2 pessoas estão utilizando a aplicação_1(que estão no mesmo servidor e utilizando a mesma porta)

Servlet? Amigo, temos uma gama de frameworks arquiteturais para suprir a necessidade desta questão. Rest é uma delas. Caso queira uma coisa pra serviços mesmos utiliza SOAP, mas é BEM mais dificil. Pra q o amigo quer o lance é utilizar Rest mesmo, ja resolve e muito bem.

E quanto ao problema de concorrencia, na~ose preocupe, pois o rest controla isso bem pra caramba.

V

AndreBonatti:
Olá victormenegusso,

Pelo que entendi do que vc quer é fazer uma requisição em tela do aplicativo 1 para aplicativo 2 , isso se resolveria fazendo um servlet no aplicativo 2, manda uma request do aplicativo 1, fazendo o processando do que vc precisa e retorna o resultado para aplicativo 1 …

Exatamente isso, por isso eu estava pensando em fazer via socket, so que seria complicado o controle.
Vou ver o que posso fazer com servlet.

Como eu não vi nada de servlet estou com a seguintes duvidas;
as duas aplicações são em JSF isso daria algum problema?

V

darksteel3000:
Opa. Tipo, imagina que vc terá seu back-end, em outro projeto, toda a parte de acesso a dados estária nele. E daí, seus metodos seriam disponibilizados através de web services. O como fazer ja enviei um post atras que é o link do RestEasy, que é muito facil de usar, só levar la a documentação que desinrola.

Daí seus dados seriam trafegados atraves de JSON ou XML ( eu indico JSON xD ).

O funcionamento dele a principio é complicado, mas não é.

Imagina que seu projeto JSF vai acessar um link ( que será o link para seu metodod que esta no web service, tipo “http://localhost:8080/back-end/cliente/consultarTodos”) onde essa chamada vai retornar um dos tipos que falei acima.

O mesmo raciocinio é para o resto do CRUD.

vou olhar esse cara.

V

darksteel3000:
Opa. Tipo, imagina que vc terá seu back-end, em outro projeto, toda a parte de acesso a dados estária nele. E daí, seus metodos seriam disponibilizados através de web services. O como fazer ja enviei um post atras que é o link do RestEasy, que é muito facil de usar, só levar la a documentação que desinrola.

Daí seus dados seriam trafegados atraves de JSON ou XML ( eu indico JSON xD ).

O funcionamento dele a principio é complicado, mas não é.

Imagina que seu projeto JSF vai acessar um link ( que será o link para seu metodod que esta no web service, tipo “http://localhost:8080/back-end/cliente/consultarTodos”) onde essa chamada vai retornar um dos tipos que falei acima.

O mesmo raciocinio é para o resto do CRUD.

o problema é que a segunda aplicação ela abre um applet na maquina do cliente.
posso ter me confundido, mas você me disse para que a segunda aplicação que eu tenho hoje ser esse rest certo ?

D

Amigo, qualquer uma das aplicações pode ser “a rest”. Exemplo:

Se Ap1 fornece para Ap2 então Ap1 vai ter os metodos anotados com o RestEasy.
se Ap2 fornece para Ap1 então Ap2 vai ter os metodos anotados com o RestEasy.

A ideia que eu te dei, foi que, tivesse um “Ap3” onde nele teria todo o acesso aos dados e tanto Ap1 quanto Ap2 acessariam ele pra pedir ou jogar dados.

mas pelo que eu entendi, o sistema ja esta encaminhado, então, podes fazer com que Ap1 e Ap2 contenham os metodos anotados com o restEasy e um puxa do outro tranquilamente !

V

darksteel3000:
Amigo, qualquer uma das aplicações pode ser “a rest”. Exemplo:

Se Ap1 fornece para Ap2 então Ap1 vai ter os metodos anotados com o RestEasy.
se Ap2 fornece para Ap1 então Ap2 vai ter os metodos anotados com o RestEasy.

A ideia que eu te dei, foi que, tivesse um “Ap3” onde nele teria todo o acesso aos dados e tanto Ap1 quanto Ap2 acessariam ele pra pedir ou jogar dados.

mas pelo que eu entendi, o sistema ja esta encaminhado, então, podes fazer com que Ap1 e Ap2 contenham os metodos anotados com o restEasy e um puxa do outro tranquilamente !

Valeu amigo, vou tentar fazer isso que vocẽ falou.

V

Pessoal, gostaria de ressuscitar este post a fim de buscar sugestões para um questionamento …
Tenho um sistema em JSF e quero integrá-lo à um outro sistema, no caso, por exemplo, uma redesocial.
A intenção é que essa redesocial seja implementada como um módulo para o primeiro sistema, o que possibilitaria que outros sistemas também utilizem (caso necessário) uma instância deste módulo de redesocial de acordo com suas necessidades.

Dá pra entender?? Gostaria da ajuda de vocês. Obrigada.

Criado 10 de abril de 2013
Ultima resposta 29 de mai. de 2013
Respostas 16
Participantes 4