Programa Desktop + servlets

Falae galera! 8)

seguinte… preciso fazer um programa q faça acesso a um banco de dados q fica em um outro servidor.
Gostaria de saber se tem como fazer um servlet rodar nesse servidor…
e o meu programa desktop interagir com ele…
tipo eu mando uma query SQL e ele me retorna um resultset…
o programa roda metade no meu micro mesmo, metade no servidor…
se der, como faço pra me comunicar com esse servlet?

valew!!

o q geralmente as pessoas fazem e fazer todo o processamento no servidor e mandar o objeto serializado para o cliente.

agora isso q vc esta querendo eu não sei se e possivel… eu acho q não, por causa da conexao com banco

Dá pra fazer sim, com certeza dá.

Mas eu usaria outras soluções, como RMI ou Web Services.

Existem 2 situacoes ai…

C o servidor estiver na mesma rede, tente acessa-lo diretamente (JDO, Hibernate, JDBC )

Caso vc nao consiga acessar o danado ( o banco ) de sua rede, utilize um WebService como o danieldestro falou :wink:

Olá

Meninos, não façam isto. Desktop, seja browser, swing, thinlet, SWT, XUL, Delphi, VB, etc. (view) jamais deve fazer outra coisa senão mostrar dados que solicita e recebe da camada de negócios (model). Entre a view no cliente e o model no servidor obviamente há o famigerado intermediário controller.

É simples: se o cliente é browser, o próprio browser se encarrega do post e se o cliente é uma aplicação Java a gente usa URLConnection + jakarta-commons-HttpClient para enviar e receber as solicitações. Opcionalmente os dados podem corresponder a um objeto serializável e nesta caso a alternativa de web-services pode e deve ser avaliada quanto a facilidade de desenvolvimento (muita) x performance da aplicação (pouca).

[]s
Luca

[quote=“Luca”]Olá

Meninos, não façam isto. Desktop, seja browser, swing, thinlet, SWT, XUL, Delphi, VB, etc. (view) jamais deve fazer outra coisa senão mostrar dados que solicita e recebe da camada de negócios (model). Entre a view no cliente e o model no servidor obviamente há o famigerado intermediário controller.[/quote]

Concordo, com uma exceção:

Às vezes você rpecisa fazer processamento nas pontas, por um motivo ou por outro. Mesmo assim, nada de cliente acessando persistência, não achem que isto é legal só porque parece mais fácil. Só o que você vai ter de problema para manter a sincronização, quebra toda a facildiade fictícia.

Use uma aplicação servidora para os clientes, use XML, CSV, formato binério… o que melhor couber :wink:

[]s

[editado]
trocado ‘bd’ por ‘persistência’, ainda continuo na luta para que as pessoa vejam que nem só de SGBD vive o mundo :slight_smile:
[/editado]

valeu galera, gostei de todas as respostas.

Em particular, gostei da soluçao da Luca (URLConnection + jakarta-commons-HttpClient).

Se puderem, gostaria que me passassem uns lugares legais pra eu ler sobre isso.

E também algo sobre RMI e webservices.

Brigadao de novo!!

Um exemplinho bem simples que eu fiz usando o HTTP-Client está no meu blog. A única diferença entre o exemplo e o seu servlet é que este deve devolver para você um documento XML contendo todos os dados que você vai precisar exibir. Uma dica é você adicionar à solução do Luca o XStream, que permite a serialização de objetos Java para um formato XML.

Hmm, um treco (hehhe) q fiz aqui foi um cliente em thinlet acessando um sistema rodando com actions no webwork, dai o retorno era exatamente um xml gerado pelo XStream…

Funcionou legal e para trocar o thinlet por swing ou qualquer outra coisa é uma barbada!!

Fallow

valew galera…

agora só keria tirar mais uma dúvida…
li sobre RMI no tutorial do GUJ… gostei… mto bom
mas pra funcionar eu preciso entao de um aplicativo servidor, rodando no servidor, certo??

isso no meu caso nao seria possivel. Quero deixar meu banco de dados na locaweb, fazer o acesso nele por dentro da locaweb mesmo, e retornar o resultado do banco pra meu aplicativo desktop.

Vou tentar ler sobre as outras soluçoes.

brigadao de novo!!

Na localweb tem um JBoss rodando. JBoss = suporte a ejb. Ejbs usam RMI, então talvez haja suporte a RMI, mas não tenho certeza.

ps.: caro pra caramba host pra ejbs na localweb :expressionless:

O plano linux básico da Locaweb tem TomCat… já dá pra fazer WebServices…

[]'s

Olá

Estes são os objetivos: flexibilidade e escalabilidade. Amanhã alguém pede um relatóriozinho a mais e vc faz direto em html buscando os dados na mesma fonte.

[]s
Luca

brigadao galera!!

acho q vou ficar com a opçao mais barata mesmo hehe…
o EJB do locaweb eh mto caro mesmo…

mas valeu pelas dicas!!

[]s