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

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.

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.

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?

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

[quote=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[/quote]

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/

[quote=darksteel3000][quote=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[/quote]

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/[/quote]

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)

[quote=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?[/quote]

"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.

[quote=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[/quote]

Vou dar uma olhada nesse api java message service.

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 …

[quote=victormenegusso][quote=darksteel3000][quote=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[/quote]

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/[/quote]

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)
[/quote]

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.

[quote=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 …

[quote=victormenegusso][quote=darksteel3000][quote=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[/quote]

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/[/quote]

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)
[/quote][/quote]

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.

[quote=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 …
[/quote]

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?

[quote=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.[/quote]

vou olhar esse cara.

[quote=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.[/quote]

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 ?

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 !

[quote=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 ![/quote]

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

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.