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?
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).
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
[]s
[editado]
trocado ‘bd’ por ‘persistência’, ainda continuo na luta para que as pessoa vejam que nem só de SGBD vive o mundo
[/editado]
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!!
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.
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.